用的是外接圆方法,利用极坐标,随机两个变量:a角度制,r半径。
原理:随机n次,落在正方形内的次数记为count。
正方形边长是1,则外接圆半径是sqrt(2)。
利用等式:S正方形/S四分之一圆=count/n,化简得出Pi=2*n/count。
代码:
count=0;
n=10000;
for i=1:n;
r=sqrt(2)*rand(1,1);
a=90*rand(1,1);
if ((r*cosd(a)<1.000001)&&(r*sind(a)<1.000001));
count=count+1;
end
end
2*n/count
结果:
一直都没想明白,怎么会算得是2.5几呢。。用内切圆法能到3.14,但用外接圆极坐标法就成2.5了,求指点啊!!!!
原理:随机n次,落在正方形内的次数记为count。
正方形边长是1,则外接圆半径是sqrt(2)。
利用等式:S正方形/S四分之一圆=count/n,化简得出Pi=2*n/count。
代码:
count=0;
n=10000;
for i=1:n;
r=sqrt(2)*rand(1,1);
a=90*rand(1,1);
if ((r*cosd(a)<1.000001)&&(r*sind(a)<1.000001));
count=count+1;
end
end
2*n/count
结果:
一直都没想明白,怎么会算得是2.5几呢。。用内切圆法能到3.14,但用外接圆极坐标法就成2.5了,求指点啊!!!!