#用python初步实现蒙特卡罗方法,为了减少运算时间,
所以源码中n取10000,后续测试体验时可改正#
import random
n=10000
r=1.0
a,b=(0.0,0.0)
x_neg,x_pos=a-r,a+r
y_neg,y_pos=b-r,b+r
count=0
for i in range(0,n):
x=random.uniform(x_neg,x_pos)
y=random.uniform(y_neg,y_pos)
if x*x+y*y<=1.0:
count +=1
print((count/float(n))*4)
#用python测试蒙特卡罗方法进行简单积分运算
def intergral():
n=10000
x_min,x_max=0.0,1.0
y_min,y_max=0.0,1.0
count=0
for i in range(0,n):
x=random.uniform(x_min,x_max)
y=random.uniform(y_min,y_max)
if x*x>y:
count +=1
print ("integral_value is {0}".format(count/float(n)))
应用时出现的小问题:
打算输出数字,但是以下第一种输出字符串,第二种输出的是数字,print括号里字符串是需要加""的,其他类型则不用
01
#第一种
intergral_value=(count/float(n))
print ("integral_value")
#第二种
intergral_value=int(count/float(n))
print(intergral_value)
系列二将用python中的函数调用实现质心系下的卢瑟福散射公式