A. python模拟蒙特卡罗法计算圆周率的近似值
画一个圆以及与其外切的正方形,在正方形内任取一个点,则它在圆内的概率=圆面积/正方形面积=πr^2/(2r)^2=π/4。所以π近似等于这个概率的4倍。用python多次取正方形内随机点,判断是否在圆内,算出这个概率后乘以4,就大致等于π。
B. python如何计算π
#coding=utf-8
'''
Createdon2014-11-04
@author:Neo
'''
importsys
importmath
fromdecimalimport*
defbbp(n):
pi=Decimal(0)
k=0
whilek<n:
pi+=(Decimal(1)/(16**k))*((Decimal(4)/(8*k+1))-(Decimal(2)/(8*k+4))-(Decimal(1)/(8*k+5))-(Decimal(1)/(8*k+6)))
k+=1
returnpi
defmain(argv):
iflen(argv)!=2:
exit('Usage:BaileyBorweinPlouffe.py<prec><n>')
getcontext().prec=(int(sys.argv[1]))
my_pi=bbp(int(sys.argv[2]))
accuracy=100*(Decimal(math.pi)-my_pi)/my_pi
print"Piisapproximately"+str(my_pi)
print"Accuracywithmath.pi:"+str(accuracy)
if__name__=="__main__":
main(sys.argv[1:])
result:
d:workspacePyDemo>python test.py 10 10
Pi is approximately 3.141592653
Accuracy with math.pi: 1.877369797E-8
d:workspacePyDemo>python test.py 25 25
Pi is approximately 3.141592653589793238462644
Accuracy with math.pi: -3.898171852150198570978563E-15
d:workspacePyDemo>python test.py 40 40
Pi is approximately 3.
Accuracy with math.pi: -3.-15
d:workspacePyDemo>
C. 求用python计算圆周率小数点后五万位的最快的方法,需要代码,谢谢
祖冲之(公元429-500年),字文远,范阳遒(今河北涞水)人,历任南徐州从事史、公府参军等职。他博学多才,在数学、天文历法方面造诣尤深。魏晋时期的数学家刘徽,求出了圆周率值约等于3.1416,这在当时世界上已是一个相当精确的数据。但祖冲之并不满足于前人的成就,他应用刘徽创立的割圆术,在刘徽的计算基础上继续推算,求出了精确到小数点后七位数字的圆周率。 祖冲之求出的圆周率,不足近似值是3.1415926,过剩近似值是3.1415927,用式子表示就是:3.1415926<圆周率<3.1415927。这样,圆周率的精确值就达到了小数点后七位。祖冲之的成果在世界上一直领先了1000年。到了公元15世纪和16世纪,阿拉伯数学家和法国数学家才求出更精确的数值满意望采纳
D. python求圆周率,if dist<=1.0与 if dist<=1,对结果有
从功能上看使用if dist<=1.0或 if dist<=1并没有区别,每次运行的结果都有一定差异的原因在于代码用的是随机数的方法求圆周率。
darts是1x1正方形内的所有点数,hits是落在半径1的1/4圆内的点数,二者之比近似为1/4Π
E. 现代计算机是如何计算圆周率的
可以用编程语言计算。以下是python语言
pi = 0.0
N = 100
for i in range(N):
pi += (1/pow(16,i) * ( 4/(8*i +1) -2/(8*i+4)-1/(8*i+5) -1/(8*i +6) ) )
print('圆周率为{:.10f}'.format(pi))
请把以上代码拷进python语言开发环境里运行,结果如下(下图是使用python开发环境Spyder运行上述代码的结果):圆周率为3.1415926536.
(5)python计算圆周率while函数扩展阅读
电子计算机的出现使π值计算有了突飞猛进的发展。1949年,美国制造的世上首部电脑-ENIAC(Electronic Numerical Integrator And Computer)在阿伯丁试验场启用了。
次年,里特韦斯纳、冯纽曼和梅卓普利斯利用这部电脑,计算出π的2037个小数位。这部电脑只用了70小时就完成了这项工作,扣除插入打孔卡所花的时间,等于平均两分钟算出一位数。
五年后,IBM NORC(海军兵器研究计算机)只用了13分钟,就算出π的3089个小数位。科技不断进步,电脑的运算速度也越来越快,在60年代至70年代,随着美、英、法的电脑科学家不断地进行电脑上的竞争,π的值也越来越精确。
在1973年,Jean Guilloud和Martin Bouyer以电脑CDC 7600发现了π的第一百万个小数位。
在1976年,新的突破出现了。萨拉明(Eugene Salamin)发表了一条新的公式,那是一条二次收敛算则,也就是说每经过一次计算,有效数字就会倍增。
高斯以前也发现了一条类似的公式,但十分复杂,在那没有电脑的时代是不可行的。这算法被称为布伦特-萨拉明(或萨拉明-布伦特)算法,亦称高斯-勒让德算法。
1989年美国哥伦比亚大学研究人员用克雷-2型(Cray-2)和IBM-3090/VF型巨型电子计算机计算出π值小数点后4.8亿位数,后又继续算到小数点后10.1亿位数。
2010年1月7日——法国工程师法布里斯·贝拉将圆周率算到小数点后27000亿位。2010年8月30日——日本计算机奇才近藤茂利用家用计算机和云计算相结合,计算出圆周率到小数点后5万亿位。
2011年10月16日,日本长野县饭田市公司职员近藤茂利用家中电脑将圆周率计算到小数点后10万亿位,刷新了2010年8月由他自己创下的5万亿位吉尼斯世界纪录。56岁的近藤茂使用的是自己组装的计算机,从10月起开始计算,花费约一年时间刷新了纪录。
F. python使用while循环计算圆周率的代码
importrandom
m=n=0
i=0
whilei<1000000:
x=random.random()
y=random.random()
ifx*x+y*y<1:
m+=1
else:
n+=1
i+=1
print("PI约等于:%.20f"%(4*((m/1.0)/(m+n))))
使用随机数,根据圆周面积S=PI*r*r
当r=1时,面积就是PI值,在第一象限中的四分之一个半圆就是四分之一个PI值,按照这个思路,可以设计上面的代码,里面的i值(就是随机点数目)越大,得到的值越准确,看你电脑的运行速度了。
G. Python编程:求圆面积小于100的最大整数半径,设圆周率为3.14,要求使用while语
按照题目要求编写的求圆面积小于100的最大整数半径的Python程序如下
r=0
s=0
while s<100:
r+=1
s=3.14*r*r
print("圆面积小于100的最大整数半径为{}".format(r-1))
源代码(注意源代码的缩进)
H. python用随机数计算圆周率PI 怎么做 韩国学校作业
蒙特卡罗法计算圆周率(就是往一个正方形里丢石子)。
from __future__ import division
import random
import time
for j in range(2, 8):
startT = time.clock()
counter = 0
for i in range(10 ** j):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
if x**2 + y**2 < 1:
counter = counter + 1
endT = time.clock()
print (4 * (counter / 10 ** j))
print (endT - startT)
print "*" * 10
计算结果3.12
0.000603650921827
**********
3.128
0.0035999800338
**********
3.1356
0.0214809227182
**********
3.14212
0.216073908518
**********
3.141856
2.14863667725
**********
3.1418724
21.6984940915
**********
I. 利用沃利斯公式计算圆周率。要求用Python语言写出相应的代码,并用Python中的for循环完成
摘要 python利用公式计算π的方法:首先导入数学模块及时间模块;然后计算Pi精确到小数点后几位数,代码为【print(' {:=^70}'.format('计算开始'))】;最后完成计算,代码为【print(' {:=^70}'】
J. 求用python计算圆周率小数点后10万位的最快算法 ,最好有代码,谢谢
#-*-coding:gbk-*-
from__future__importdivision
####################导入时间模块
importtime
###############计算当前时间
time1=time.time()
################算法根据马青公式计算圆周率####################
number=int(raw_input('请输入想要计算到小数点后的位数n:'))
#多计算10位,防止尾数取舍的影响
number1=number+10
#算到小数点后number1位
b=10**number1
#求含4/5的首项
x1=b*4//5
#求含1/239的首项
x2=b//-239
#求第一大项
he=x1+x2
#设置下面循环的终点,即共计算n项
number*=2
#循环初值=3,末值2n,步长=2
foriinxrange(3,number,2):
#求每个含1/5的项及符号
x1//=-25
#求每个含1/239的项及符号
x2//=-57121
#求两项之和
x=(x1+x2)//i
#求总和
he+=x
#求出π
pai=he*4
#舍掉后十位
pai//=10**10
############输出圆周率π的值
paistring=str(pai)
result=paistring[0]+str('.')+paistring[1:len(paistring)]
printresult
time2=time.time()
printu'总共耗时:'+str(time2-time1)+'s'
python pi.py