题目:
尝试使用蒙特卡罗法计算圆周率(π)的值。原理如下:
如图:边长为1的正方形内部有一个半径为1的四分之一个圆。
现往该正方形内随机投点,数量足够多的情况下,落入圆内的点m与落入整个
外切正方形的点n的数量比值大概为:
m/n = (1/4)pi ,然后就可以得到π的值。
让点(x,y)投在整个矩形中,x与y的取值范围为(0≤x≤1, 0≤y≤1)
注意
1.请使用random库中的uniform来生成随机数。
2.使用运算符x*x求x的平方。
3.使用x**(1/2)求x的平方根。
输入格式:
在一行中给出种子和投点次数,中间以空格隔开。
输出格式:
对每一组输入,在一行中输出pi的值,并保留五位小数。
输入样例:
在这里给出一组输入。例如:
2 10000
输出样例:
在这里给出相应的输出。例如:
3.13560
代码展示:
from random import *
a,b=map(int,input().split())
seed(a)
c=0
for i in range(b):
x=uniform(0,1)
y=uniform(0,1)
##取值范围是0到1
if x**2+y**2<=1:
c+=1
pi=float(4*(c/b))
print("%.5lf"%pi)