美文网首页算法思想
基本算法思想之概率

基本算法思想之概率

作者: JRTx | 来源:发表于2017-10-17 12:05 被阅读0次

因为很多数学问题,往往没有或者很难计算解析,这时候便需要通过数值计算来求解近似值.概率算法依照概率统计的思路来求解问题,其往往不能得到问题的精确解,但是在数值计算领域有着广泛应用.

概率算法执行的基本过程如下:

  1. 将问题转化为相应的几何图形S,S的面积是容易计算的,问题的结果往往对应几何图形中某一部分S1的面积.
  2. 然后,向几何图形中随机撒点.
  3. 统计几何图形中S中和S1中的点数,根据S的面积和S1面积的关系以及各图形中的点数来计算得到结果.
  4. 判断上述结果是否在需要的精度之内,如果未达到精度则进行执行步骤2.如果达到精度,则输出近似结果.

概率算法大致分为如下4中形式:

  • 数值概率算法;
  • 蒙特卡洛(Monte Carlo)算法;
  • 拉斯维加斯(Las Vegas)算法;
  • 舍伍德(Sherwood)算法;

下面我们通过一个实例来看看蒙特卡罗概率算法的应用.蒙特卡洛算法的一个典型应用便是计算圆周率pi.

MonteCarlo

对于图中圆的面积有如下公式


而图中阴影部分是一个圆的1/4,因此阴影部分的面积有如下的计算公式


图中正方形的面积为:


此时,如果均匀地向正方形内撒点,那么落入阴影部分的点数与全部的点数之比应该就是:


public class Solution {

    public double MontePI(int n) {
        double PI = 0;
        int sum = 0;
        int i = n;
        while (i > 0) {
            double x = Math.random();
            double y = Math.random();
            if ((x * x + y * y) < 1) {
                ++sum;
            }
            --i;
        }
        PI = (double) sum / n * 4;
        return PI;
    }

    public static void main(String[] args) {
        Solution s = new Solution();
        System.out.println(s.MontePI(100000000));
    }
}
运行结果

相关文章

  • 基本算法思想之概率

    因为很多数学问题,往往没有或者很难计算解析,这时候便需要通过数值计算来求解近似值.概率算法依照概率统计的思路来求解...

  • 基本算法思想之递归

    递归算法就是在程序中不断反复调用自身来达到求解问题的方法。这里的重点是调用自身,这就要求待求解问题能够分解为相同问...

  • 基本算法思想之递推

    分治算法的基本思想是将一个计算复杂的问题分为规模较小,计算简单的小问题求解,然后综合各个小问题,而得到最终问题的答...

  • 统计学5、6章

    概率与概率分布 1、几个基本概念 随机事件,基本事件,,样本空间 事件的概率 概率的基本性质与运算法则 基本性质:...

  • 自然语言处理——5.3 语言模型(数据平滑)

    基本思想 数据平滑的基本思想调整最大似然估计的概率值,使零概率增值,使非零概率下调,“劫富济贫”,消除零概率,改进...

  • 2018-07-18

    排序算法之选择排序 基本思想 选择排序算法的基本思想是:首先,找到数组中最小的那个元素,其次,将它和数组的第一个元...

  • 情感倾向PMI算法

    点互信息算法(PMI) 基本思想:是统计两个词语在文本中同时出现的概率,如果概率越大,其相关性就越紧密,关联度越高...

  • 归并排序

    图解排序算法(四)之归并排序 基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用...

  • 基于协同过滤的推荐算法

    1. 基本思想 协同过滤推荐算法是最经典的推荐算法,它的算法思想为物以类聚,人以群分,基本的协同过滤算法基于以下的...

  • EM算法

    EM算法 EM算法基本思想 ​ 最大期望算法(Expectation-Maximization algorit...

网友评论

    本文标题:基本算法思想之概率

    本文链接:https://www.haomeiwen.com/subject/jbnruxtx.html