1. 程式人生 > >蒙特卡羅模擬求π值

蒙特卡羅模擬求π值

蒲豐氏問題

%%%%%%%%%%%%%%%%%%%%%%%
%蒙特卡洛模擬計算π的值
%2018-11-29 20:28
%Win10+Matlab2018a
%@moli99
%%%%%%%%%%%%%%%%%%%%%%%

A = 6;  %平行線線距一半
L = 6;  %針長
N = 100000000;  %模擬次數
count = 0;  %記錄與平行線相交的針的數量
for i = 1:N
   k1 = rand();  %產生均勻分佈的隨機數
   k2 = rand();
   x = A * k1;
   s = pi * k2;
   temp = L * sin(s);
   if x <= temp
       count = count + 1;
   end
end

val = double(count)/N;  %針與平行線相交的概率P的估計值P = 2L/(pi*A)

result  = double(2*L)/(A*val)