从JS中声明概率的数组中获取内容

时间:2017-05-22 17:15:11

标签: javascript arrays probability

我想从两个或多个数组中绘制值。例如,数组'age'包含值1-99,第二个数组'income'包含2000-10000。 如果我将绘制超过30岁的'年龄',我想从第二阵列获得价值,但是我获得超过5000的概率必须是例如超过75%。 如何使它成为可能?

1 个答案:

答案 0 :(得分:0)

您可以使用年龄检查和两个计算收入值的公式,而无需步进。

condition   random range       formula       min    max
---------  -------------  ----------------  -----  -----
 <= 5000   0.00 ... 0.25  r * 12000 + 2000   2000   5000
  > 5000   0.25 ... 1.00  r *  6666 + 3333   5000  10000

计算100000随机收入的示例,age > 30

&#13;
&#13;
function getRandomEarnings(age) {
    var r = Math.random();
    if (age > 30) {
        return r < .25 ? r * 12000 + 2000 : r * 6666.666666 + 3333.333333;
    } else {
        // add some more random values
    }
}

var count = [0, 0],
    i;

for (i = 0; i < 1e6; i++) {
    count[+(getRandomEarnings(35) > 5000)]++;
}

console.log(count);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
&#13;
&#13;