首页 > 编程语言 > 详细

beta分布 java代码

时间:2017-11-13 16:11:50      阅读:346      评论:0      收藏:0      [点我收藏+]
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代码

原文:http://www.cnblogs.com/zhangbojiangfeng/p/7826707.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!