我试图在一个名为bustabit的着名网站背后计算数学。
我似乎无法找到合适的数学背后,因为每当我尝试我想出的事情时,似乎总是有所不同。根据网站,您可以在calc找到赔率。
好吧,所以基本上我正在尝试生成一个随机数,可以连接到他们的机会,如果我们删除所有边缘,数字为200的机会应该是大约50%,300三十三,并且500%左右。
我想要复制系统,在我看来并不适合这种情况。
var mainMultiplier = 99;
var numerator = 100;
var denominator = 101;
var chance = 1;
for(;;){
var randomInt = random.real(0, 1.0);
if(numerator/denominator > randomInt){
numerator = numerator+1;
denominator = denominator+1;
mainMultiplier = mainMultiplier+1;
chance = chance*(numerator/denominator);
}else{
break;
}
}
有没有办法以更好的方式做到这一点?
你可以计算出我想要复制的计算器的几率。
答案 0 :(得分:0)
听起来你只是想要:
var number = 100.0 / (1 - Math.random());
刚刚生成了这样的一百万个样本,相对分布如下:
100 - 199 : 499817
200 - 299 : 166405
300 - 399 : 83643
400 - 499 : 50002
500 - 599 : 33155
600 - 699 : 23717
700 - 799 : 18030
800 - 899 : 13811
900 - 999 : 11140
因此生成:
// make array
var a = [];
for (i = 0; i < 1e6; ++i) {
a.push(100.0 / (1 - Math.random()));
}
// count the distribution
var dist = a.reduce((p, n) => {
n = 100 * Math.floor(n / 100);
p[n] = ++p[n] || 1;
return p;
}, {});
请注意,不会生成低于100的数字 - 从该值中扣除100(并且可能会调整初始股息中的100)将解决该问题。