最近学蒙特卡罗模拟,写了点小代码,运行之后效果还是不错的,供大家分享。
!m=10000
!n=1000
wfcreate simu u !m
for !j=1 to !n
!num=0
genr x=rnd
genr y=rnd
for !i=1 to !m
if (x(!i)^2+y(!i)^2)<1 then
!num=!num+1
endif
next
genr pa(!j)=4*!num/!m
next
smpl 2 !n+1
genr pai=@sum(pa)/!n
smpl @all
show pai
这段代码的大意:先模拟1万个点求出一个“PAI”,然后循环1000次求平均值。这样结果会更精确。