百分比分布-JavaScript Math.random()
我有百分比10%、20%和70%来决定采取哪种行动。我有两种决定方法:#1每次让一个新的Math.random()决定,或#2保留一个Math.random()结果。请参阅我在控制台中运行的代码(注意百分比分布-JavaScript Math.random(),javascript,math,random,Javascript,Math,Random,我有百分比10%、20%和70%来决定采取哪种行动。我有两种决定方法:#1每次让一个新的Math.random()决定,或#2保留一个Math.random()结果。请参阅我在控制台中运行的代码(注意rand1和rand2方法): 我不明白为什么图表1倾向于.18,72]?那是因为数学是错误的。如果你想在第二次比较中使用一个新的随机数,那么它应该适用于20/90的情况,而不是20/100。因此: var rand1 = function() { if (Math.random() <
rand1
和rand2
方法):
我不明白为什么
图表1
倾向于.18,72]
?那是因为数学是错误的。如果你想在第二次比较中使用一个新的随机数,那么它应该适用于20/90的情况,而不是20/100。因此:
var rand1 = function() {
if (Math.random() < 0.1) chart1[0]++;
else if (Math.random() < 0.222222222222222) chart1[1]++;
else chart1[2]++;
};
var rand1=function(){
if(Math.random()<0.1)chart1[0]+;
else if(Math.random()<0.2222222)chart1[1]+;
else图1[2]++;
};
如果您不使用新的随机数,则它会起作用,因为这样您就知道该数字在0.1范围内。。当你达到第二个条件时为1.0,所以如果小于0.3,则为20/90的情况。如果选择一个新的随机数,则该随机数的范围为0.0。。1.0.考虑在第一张图表的第二列生成数字的概率。首先生成一个概率为10%的数字,该数字在第一列中结束。如果这个数字不在第一列,有90%的可能性,则有20%的可能性在第二列结束。您将一个数字放入第二个图表的总概率为0.9*0.2=0.18。加上一些随机变化,你会得到大约18 对于第三列,您有100-10-18=72
如果接受第二个值的概率被更改为2/9而不是2/10,那么接受的总概率将是9/10*2/9=2/10,或者20%,这就是您想要的。嗯……为什么在If条件下再次调用Math.random()。???? 像这样使用
var rand1 = function(){
var number = Math.random();
if(number <= 0.1) chart1[0]++;
else if(number <= 0.3) chart1[1]++;
else chart1[2]++;
};
var rand1=function(){
var number=Math.random();
如果(数字是的,这就是OP在第二张图表中所做的,问题是为什么会有差异。该死,你是对的。其实很简单。如果我把18和72加起来,我得到90。在90-18到72之间是20%到80%的比率。18/90=0.2=20%。明白了。谢谢。是的。基础数学。真丢脸!谢谢
var rand1 = function() {
if (Math.random() < 0.1) chart1[0]++;
else if (Math.random() < 0.222222222222222) chart1[1]++;
else chart1[2]++;
};
var rand1 = function(){
var number = Math.random();
if(number <= 0.1) chart1[0]++;
else if(number <= 0.3) chart1[1]++;
else chart1[2]++;
};