蒙特卡洛法求pi(scala实现)
大数据入门学习Hadoop时有一个类似helloworld、wordcount的案例,就是案例jar包,用MapReduce计算pi,它的算法思想就是蒙特卡罗法。本次用scala实现一下。
蒙特卡洛法
大概意思就是说
概率:
有一随机事件,向方形区域投点,问落在圆形区域的概率
它服从均匀分布:可以表示为:圆形的面积/正方形的面积
频率:
现在做实验:
假设落在方形区域的点有m个,也即投点的总数
其中落在圆形的点有n个,m>n
那么这个频率可以用n/m表示
在样本次数或者说实验次数足够大时,满是条件
频率~=概率
用数学符号表示:设半径为r
最后的求pi公式
**