Javascript 如何使用基于赔率的数字填充数组?

Javascript 如何使用基于赔率的数字填充数组?,javascript,probability,Javascript,Probability,我最近看到了一种轮盘赌,其中包含以下可能的数字。1、2、9、16、24、49j和49f。每个数字本身的概率都超过1。所以滚动2的几率是2/1,滚动9的几率是9/1。我认为用正确数量的每种类型的数字填充数组是一个有趣(且简单)的练习,但事实证明并非如此。我的第一个想法是构建一个名称/值数组来保存每个数字,然后构建第二个数组来保存计数器值 let numbers = { "1": "1", "2": "2", "9": "9", "16": "16", "24": "24", "49f": "49"

我最近看到了一种轮盘赌,其中包含以下可能的数字。1、2、9、16、24、49j和49f。每个数字本身的概率都超过1。所以滚动2的几率是2/1,滚动9的几率是9/1。我认为用正确数量的每种类型的数字填充数组是一个有趣(且简单)的练习,但事实证明并非如此。我的第一个想法是构建一个名称/值数组来保存每个数字,然后构建第二个数组来保存计数器值

let numbers = {
"1": "1",
"2": "2",
"9": "9",
"16": "16",
"24": "24",
"49f": "49",
"49j": "49"
};
let counter = {
"1": "0",
"2": "0",
"9": "0",
"16": "0",
"24": "0",
"49f": "0",
"49j": "0"
};
let tc = {
"1": "0",
"2": "0",
"9": "0",
"16": "0",
"24": "0",
"49f": "0",
"49j": "0"
};
最后一个tc只是计算最终数组中每个数字的数量,并确认我的数学天赋。因此,从这里开始,它应该是一个简单的问题,循环50次,通过每个数字循环,将其计数器增加1,当计数器值等于赔率值时,将该数字推入数组并将其计数器重置为0。所以每一次迭代我应该得到1,每三次迭代我应该得到2,依此类推

var wheel = [];

function load_numbers( ) {
for(let number in numbers) {
  var count = parseInt(counter[number], 10);
  var odd = parseInt(numbers[number], 10);
  var t = parseInt(tc[number], 10);
  count++;
  if (count == odd) {
    wheel.push(number);
    count = 0;
    t++; tc[number] = t; 
  }
  counter[number] = count;
}
}

function load_wheel( ) {
for (i = 0; i < 50; i++) {
  load_numbers();
}

for(let mc in tc) {
    document.write(mc + ": " + tc[mc] + " of " + wheel.length + " <br>");
}
}
这些几率显然是错误的,但我看不出这种方法有什么错,我已经尝试过将几率加倍并循环100次,仍然是错误的。在49j==1之后设置断点也会给我这些几率。在绝望中,我试着计算每个数字的赔率百分比,并将它们相加(即1=50%,2=33%),而这个过程一直给我108%!因此,在这一点上,我必须得出结论,我的整个人生都在数学上犯了错误,或者说赌场在开快车!还是我忽略了什么

1: 50 of 87
2: 25 of 87
9: 5 of 87
16: 3 of 87
24: 2 of 87
49f: 1 of 87
49j: 1 of 87