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