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

时间:2019-03-17 18:21:14

标签: 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",
"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,并且每3次迭代我就应该得到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>");
}
}

但是该代码产生以下内容

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 

这些赔率显然是错误的,但是我看不出该方法有什么问题,我尝试将赔率加倍并循环100次,仍然是错误的。在49j == 1之后设置一个断点也给了我这些可能性。无奈之下,我尝试计算每个数字赔率的百分比并将它们相加(即1 = 50%,2 = 33%),并且该过程不断给我108%!因此,在这一点上,我必须得出结论,我一生都在数学上做错了,否则赌场正在快速发展!还是我忽略了什么?

0 个答案:

没有答案