【发布时间】:2017-11-02 09:59:53
【问题描述】:
我有一个值数组:
var my_arr = [/*all kinds of stuff*/]
我有一个生成随机数的函数,我用它作为my_arr中元素的索引...
var RandomFromRange = function (min,max)
{
return Math.floor(Math.random()*(max-min+1)+min);
};
...所以我可以这样做:
my_arr[RandomFromRange(0,my_arr.length)];
我想要做的是将my_arr 中的某些元素指定为具有“优先级”,以便RandomFromRange 返回 5,例如 25% 的时间,返回 4、14% 的时间,然后返回任何其他数字...
(100 - 25 - 14)/(my_arr.length - 2)
...% 的时间。
在我做研究的时候,我遇到了几个poststhat describesimilar problems,但他们的答案不是Javascript,而且我还没有足够的数学知识来理解他们的一般原则。任何建议将不胜感激。
【问题讨论】:
-
如果您有兴趣了解这一点,那么我建议您阅读来自这个 SO 问题的keithschwarz.com/darts-dice-coins:stackoverflow.com/questions/5027757/…
-
@david 链接的 javascript 源代码是 here。
-
非常感谢 dhilt 和 david 的参考。
标签: javascript probability non-uniform-distribution