布冯针模拟

时间:2018-11-12 06:21:15

标签: java math

import java.lang.Math;
public class BuffonNeedle
{
public static void main(String args[])
{
  double drops = 100;
  int hit = 0;
  for(int r=1; r<=6; r++)
  {
     for(int i = 1; i <= drops; i++)
     {
        double y = Math.random() * 2;

        if(Math.sin(Math.random()*Math.PI) + y >= 2.){
           hit++;
        }   
     }

     System.out.println(drops/hit);
     drops = drops * 10;  
  }
 }
}

为什么约束距离相距2英寸,针距为1英寸,为什么不产生 Pi

模拟运行6次:100、1000、10000、100000、1000000、10000000。

1 个答案:

答案 0 :(得分:0)

您需要重置hit

System.out.println(drops/hit);
drops = drops * 10;  
hit = 0;  //<------reset