码迷,mamicode.com
首页 > 编程语言 > 详细

beta分布 java代码

时间:2017-11-13 16:42:32      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:return   public   while   java   reject   click   bool   min   param   

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代码

标签:return   public   while   java   reject   click   bool   min   param   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!