python模拟蒙特·卡罗法计算圆周率

蒙特·卡罗方法是一种经过几率来获得问题近似解的方法,在不少领域都有重要的应用,其中就包括圆周率近似值的计问题。python

假设有一块边长为2的正方形木板,上面画一个单位圆,而后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),dom

若是扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值。函数

这就是蒙特·卡罗发明的用于计算圆周率近似值的方法。spa

编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,而后输出圆周率近似值。blog

 

import random,math
s = 1 * 1
c = int(input())
hit = c
hits = 0
while hit != 0 :
    hit = hit - 1
    x = random.random()
    y = random.random()
    z = math.sqrt(x**2+y**2)
    if z <= 1:
        hits = hits + 1
PI = 4 * hits/c
print(PI)

input

这段程序主要运用经过计算落点的坐标与原点的距离来肯定镖是否在中在圆内it

当运行的次数足够大,也就会愈来愈逼近圆周率import

 

另外再说一点就是python中的random()函数程序

random()函数的调用方法以下方法

import random

x = random.random()

返回的值在(0,1]之间

相关文章
相关标签/搜索