beta分布 java代码
Posted 江枫1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了beta分布 java代码相关的知识,希望对你有一定的参考价值。
public class BetaDistributionActivity {
/**
* @param alpha: eg. click * @param beta : eg. pv - click
*/
public static double BetaDist(double alpha, double beta) {
double a = alpha + beta;
double b = Math.sqrt((a - 2) / (2 * alpha * beta - a));
if (Math.min(alpha, beta) <= 1) {
b = Math.max(1 / alpha, 1 / beta);
}
double c = alpha + 1 / b;
double W = 0;
boolean reject = true;
while (reject) {
double U1 = Math.random();
double U2 = Math.random();
double V = b * Math.log(U1 / (1 - U1));
W = alpha * Math.exp(V);
reject = (a * Math.log(a / (beta + W)) + c * V - Math.log(4)) < Math.log(U1 * U1 * U2);
}
return (W / (beta + W));
}
}
以上是关于beta分布 java代码的主要内容,如果未能解决你的问题,请参考以下文章
4. 抽样分布—卡方分布F分布t分布Beta分布Gamma分布——python实战