蒙特·卡羅方法是一種通過概率來得到問題近似解的方法,在很多領(lǐng)域都有重要的應(yīng)用,其中就包括圓周率近似值的計問題。
創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、蕉城網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為蕉城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
假設(shè)有一塊邊長為2的正方形木板,上面畫一個單位圓,然后隨意往木板上扔飛鏢,落點(diǎn)坐標(biāo)(x,y)必然在木板上(更多的時候是落在單位圓內(nèi)),
如果扔的次數(shù)足夠多,那么落在單位圓內(nèi)的次數(shù)除以總次數(shù)再乘以4,這個數(shù)字會無限逼近圓周率的值。
這就是蒙特·卡羅發(fā)明的用于計算圓周率近似值的方法。
編寫程序,模擬蒙特·卡羅計算圓周率近似值的方法,輸入擲飛鏢次數(shù),然后輸出圓周率近似值。
import random,math
s = 1 * 1
c = int(input())
hit = c
hits = 0
while hit != 0 :
hit = hit - 1
x = random.random()
y = random.random()
z = math.sqrt(x**2+y**2)
if z = 1:
hits = hits + 1
PI = 4 * hits/c
print(PI)
這段程序主要運(yùn)用通過計算落點(diǎn)的坐標(biāo)與原點(diǎn)的距離來確定鏢是否在中在圓內(nèi)
當(dāng)運(yùn)行的次數(shù)足夠大,也就會越來越逼近圓周率
另外再說一點(diǎn)就是python中的random()函數(shù)
random()函數(shù)的調(diào)用方法如下
import random
x = random.random()
返回的值在(0,1]之間
#includestdio.h
#includemath.h
main()
{
double t,pi;
long int n,s;
t=1.0;
n=1;
s=1;
pi=0.0;
while (fabs(t)=1e-6)
{
pi=pi+t;
n=n+2;
s=-s;
t=(float)(s)/(float)(n);
}
pi=pi*4;
printf(" pi=%lf\n",pi);
}
def f(x,n):
s=1
for i in range(1,n+1):
s=s*i
a=1/s
return a
def e(n):
s=1
if n=0:
print('不符合要求')
elif n1000:
print('不符合要求')
elif isinstance(n,float):
print('不符合要求')
else:
for i in range(1,n+1):
s=f(i,i)+s
print('%.8f'%s)
if __name__=='__main__':
n=int(input('請錄入飛負(fù)正數(shù)=1000\n'))
e(n)
我寫的,格式化下,看看測試點(diǎn)對不
這里指的是麥克勞林級數(shù)。
泰勒級數(shù)用無限項(xiàng)相加來逼近一個函數(shù)。
泰勒級數(shù)取x0=0時得到麥克勞林。
通項(xiàng)公式為
按照這個公式寫程序即可。
一般加前十項(xiàng)即可,用一個while循環(huán)來寫。
#計算e的值(精度為10**-6)
sum,tmp = 1,1
for i in range(1,20);
tmp*=i;
sum += 1/tmp;
print("e的近似值(精度為10**-6)為%.6f"%sum)
輸出結(jié)果是2.718282;
擴(kuò)展資料:
Python的創(chuàng)始人為荷蘭人吉多·范羅蘇姆(Guido van Rossum)。1989年圣誕節(jié)期間,在阿姆斯特丹,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序,作為ABC 語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為該編程語言的名字,是取自英國20世紀(jì)70年代首播的電視喜劇《蒙提.派森的飛行馬戲團(tuán)》(Monty Python's Flying Circus)。
ABC是由Guido參加設(shè)計的一種教學(xué)語言。就Guido本人看來,ABC 這種語言非常優(yōu)美和強(qiáng)大,是專門為非專業(yè)程序員設(shè)計的。但是ABC語言并沒有成功,究其原因,Guido 認(rèn)為是其非開放造成的。Guido 決心在Python 中避免這一錯誤。同時,他還想實(shí)現(xiàn)在ABC 中閃現(xiàn)過但未曾實(shí)現(xiàn)的東西。
就這樣,Python在Guido手中誕生了??梢哉f,Python是從ABC發(fā)展起來,主要受到了Modula-3(另一種相當(dāng)優(yōu)美且強(qiáng)大的語言,為小型團(tuán)體所設(shè)計的)的影響。并且結(jié)合了Unix shell和C的習(xí)慣。
#計算e的值(精度為10**-6)
sum,tmp = 1,1
for i in range(1,20):
tmp*=i
sum += 1/tmp
print("e的近似值(精度為10**-6)為%.6f"%sum)
網(wǎng)站題目:關(guān)于python的近似值函數(shù)的信息
URL網(wǎng)址:http://muchs.cn/article20/hgcjco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、建站公司、網(wǎng)站營銷、域名注冊、品牌網(wǎng)站制作、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)