给定一个整数列表,例如
是否有一种同样简单的方法可以根据它们的权重倒数选择项目?使用此方法,示例列表将等于加权列表
1, 2, 3, 4
,我知道如何根据它们的权重选择项目。这些示例项目的概率分别为10%,20%,30%和40%。是否有一种同样简单的方法可以根据它们的权重倒数选择项目?使用此方法,示例列表将等于加权列表
1,1/2,1/3,1/4
(48%,24%,16%,12%),但我想避免浮点算术的转换和使用。(假设所有整数均为正且非零。)
n
值,你会遇到整数溢出问题。即使使用 64 位长整型,在n
约为 25 的情况下也会失败。 - tskuzzy