新手上路,随机数求π为什么有问题
import randomtemp = input('请输入次数:')
n = int (temp)
t = 0
time = 0
while t < n :
a=random.randint(-1,1)
b=random.randint(-1,1)
if a ** 2 + b ** 2 <= 1:
time += 1
t += 1
p = time / n
pi = 4 * p
print (pi)
你可以先跟我说说思路,你就列个代码错了还不知道你啥意思呢 把06,07行改为:
a=random.uniform(-1,1)
b=random.uniform(-1,1) 冬雪雪冬 发表于 2017-7-27 18:53
把06,07行改为:
谢谢,uniform是什么? Krant5 发表于 2017-7-27 17:40
你可以先跟我说说思路,你就列个代码错了还不知道你啥意思呢
先求所选的点(a,b)落在圆里的频数,再除以圆外接正方形的面积,得到概率P。P=(πr^2)/4,r=1,π=4P hzxwonder 发表于 2017-7-27 20:17
谢谢,uniform是什么?
randint(-1,1)得到的是-1到1之间的整数,uniform(-1,1)得到的是小数。 冬雪雪冬 发表于 2017-7-27 20:21
randint(-1,1)得到的是-1到1之间的整数,uniform(-1,1)得到的是小数。
谢谢大佬{:10_256:} Krant5 发表于 2017-7-27 17:40
你可以先跟我说说思路,你就列个代码错了还不知道你啥意思呢
蒙特卡洛模拟
页:
[1]