我一直在想办法解决这个问题,但我遇到了一堵墙,我想我会在这里问。
下面是一个示例:
假设我有两个对象,食物和水,它们有不同的"机会"值。一个有20%的机会,一个有40%的机会。考虑到这个百分比,我如何能够在数学上增加他们的总数?
var food = {
name:'food',
total:0,
chance:0.2
};
var water = {
name:'water',
total:0,
chance:0.4
};
这就是我到目前为止所拥有的,但这并不是真正基于百分比的。寻找改进它的方法。
function test() {
var x = parseFloat(Math.random().toFixed(1));
if(x == food.chance) {
food.total += 1;
}
if(x == water.chance) {
water.total += 1;
}
}
关闭。
function test() {
var x = parseFloat(Math.random().toFixed(1));
if(x < food.chance) {
food.total += 1;
}
else if(x < food.chance + water.chance) {
water.total += 1;
}
}
两个注意事项:
在连续概率中,你几乎从不检查一些随机输出等于某物;只是它在某物之间。几乎根据定义,前者是 0。
仅供参考,这仍然留下了 40% 的既没有发生。
你需要这样的东西:
if ( (x >= 0.0) && (x < food.chance) ) food.total++;
else if ( (x >= food.chance) && (x < (food.chance+water.chance)) water.total++;