美文网首页
二项分布记录

二项分布记录

作者: 中年大婶要努力 | 来源:发表于2018-02-27 09:34 被阅读0次

《算法》1.1.27原题: 

二项分布。估计用以下代码计算binomial(100,50,0.25)将会产生的递归调用次数。

public static double binomial(int N, int k, double p){  

if(N==0 && k==0) return 1.0;  

if(N < 0 || k < 0) return 0.0;  

return (1.0 - p) * binomial(N-1, k, p) + p * binomial(N-1, k-1, p);  

}  

二项分布简单的介绍就是计算 抽取n个样本,每个样本有a,b两种状态,出现a,b两种状态的概率独立,且出现a概率为p,二项分布就是计算n个样本中出现k次a状态的概率。

将原题描述转换成具体例子如下:某化验有阴性阳性两种状态,出现阴性的概率为0.25,100个人中,有50个人为阴性的概率是多少。

100个人中,50个人为阴性的概率  =  (一个人为阴性的概率)*(99个人中,49个为阴性的概率)+(一个人不为阴性的概率)*(99个人中,50个为阴性的概率)

提取下就是原题中的(1.0 - p) * binomial(N-1, k, p) + p * binomial(N-1, k-1, p);  

原题采用递归的算法进行计算,存在指数级的重复计算量,根据题目提示采用数组循环的方式来计算:

public static int index=0;

public static double[][] binomial(int n,int k,double p){

double[][] result =new double[n+1][k+1];

result[0][0]=1.0;

for(int i=1;i<=n;i++){

result[i][0]=(1-p)*result[i-1][0];

for(int j=1;(j<=k&&j<=i);j++){

index++;

result[i][j]=p*result[i-1][j-1]+(1-p)*result[i-1][j];

}

}

return result;

}

}

其中,二维数组result下标分别代表n,k,当k是0时,概率为(1-p)*result(n-1)(0),其余为p*result[n][k-1]+(1-p)*result[n-1][k];

index记录计算次数,为:3775

结果为:4.507310875086383E-8

相关文章

  • 二项分布

    二项分布 二项分布的期望与方差 二项分布的应用

  • 统计学第六章 几种离散变量的分布及其应用

    知识清单 二项分布性质应用 Poison分布性质应用 负二项分布性质应用 1. 二项分布 二项分布(binomia...

  • 二项分布记录

    《算法》1.1.27原题: 二项分布。估计用以下代码计算binomial(100,50,0.25)将会产生的递归调...

  • 学习笔记|程序员的数学:概率统计#3

    3.离散值的概率分布 3.1 一些简单的例子 pass 3.2 二项分布 3.2.1 二项分布的推导 二项分布概率...

  • Lesson 3 - 二项分布

    二项分布可用于计算具有两种可能结果的任何事件, 例如客户买与不买, 交易是不是属于诈骗等. 二项分布 二项分布 帮...

  • 2019-04-07

    常见概率分布 离散型 1.二项分布Binomial distribution:binom 2.负二项分布negat...

  • 数理统计拾遗

    两点分布取n此是二项分布,二项分布n->∞(取极限)是泊松分布

  • 【R】二项分布函数

    二项分布函数 二项分布指的是:N重伯努利实验,记为 parameterdescriptionx数字的向量p概率向量...

  • 重要的离散分布

    几何分布几何分布.PNG 几何分布具有无记忆性。 负二项分布(帕斯卡分布)负二项分布(帕斯卡分布).PNG 几何分...

  • GFOLD

    GFOLD:广义倍数变化 有重复的转录组数据,用的比较多的是DEseq2(负二项分布),edgeR(负二项分布),...

网友评论

      本文标题:二项分布记录

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