提示:这里简述项目相关背景:
实验课作业
提示:这里描述项目中遇到的问题:
主要的思想是蒙特卡罗方法。思想:随机向在一个单位正方形和1/4的圆中,抛洒大量的随机种子,然后根据每个点到圆心的距离从而判断该点位于圆内还是位于圆外,然后根据落在圆内的点的数量除以总的随机种子就等于pi/4。随机点数量越大,越充分覆盖整个圆形区域,则得到的pi的数据越精准。这主要是利用离散点值表示图形的面积,通过面积比例来求解pi的值。
代码:
import random import math random.seed(123) num = eval(input()) count = 0 for i in range(1, num+1): x, y = random.random(), random.random() res = math.sqrt(x**2 + y**2) if res <= 1: count = count + 1 pi = 4*(count/num) print("{:.6f}".format(pi))
注:
random.seed()函数:用于指定随着数生产所用算法开始的整数值。如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同,而且设置的seed()值仅一次有效。