【发布时间】:2019-05-09 15:16:44
【问题描述】:
如果我有数组:
ar = [1,3,5,3,6,1,4,6,7,6,6,6,6,6]
我可以将其减少到出现次数:
counts = {1=>2, 3=>2, 5=>1, 6=>7, 4=>1, 7=>1}
现在我想随机选择 ar 中使用最少的数字被更多加权
我了解如何根据最常用的数字轻松做出加权随机选择,但不是它的倒数。
【问题讨论】:
-
您的数组有
14元素,其中两个是1。那么选择1的概率应该是多少呢?您想如何应用权重? -
简单的答案是简单地反转权重并使用现有机制。还有更复杂(和直接)的机制,但从长远来看,它们都可能相似。
-
如何恢复权重顺序(使它们为负数或将 1 除以权重等 - 任何恢复顺序的转换都应该有效)并解决您已经了解解决方案的任务?
-
这一切都取决于预期的权重。选择
5的可能性是否应该是1的两倍? -
选择任何单调递减函数,在给定频率计算其值,考虑其相对概率,归一化,采样。