数学与数学JavaScript |随机机会

时间:2017-03-26 00:11:11

标签: javascript math

我试图在一个名为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;
  }
}

有没有办法以更好的方式做到这一点?

你可以计算出我想要复制的计算器的几率。

1 个答案:

答案 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)将解决该问题。