编程语言:python3.9
题目
求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值.
请以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。
from random import random, seed
while True:
s = input('输入投掷的点数(输入#结束程序):')
if s == '#':
print('bye!')
break
else:
s = eval(s)
seed(123)
hits = 0.0
for i in range(s):
x,y = random(),random()
dist = pow(x**2 + y**2,0.5)
if dist <= 1.0:
hits = hits + 1
pi = 4*(hits/s)
print("{:.6f}".format(pi))
运行结果