java和beta_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));

}

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值