我如何在趋向较低数字的数组中执行选择(即删除元素的删除)。
如果我有一系列的健身,最高到最高,我该如何使用趋向较小数字的随机数来随机删除这些元素。
pop_sorted_by_fitness = [1, 4, 10, 330]
我想随机删除其中一个较小的元素之一,其中大部分时间1,有时是4,很少有10,几乎从未有330个。我如何实现这种算法。
如何使用指数分布使用numpy.random.pendential
对索引进行采样import numpy as np
s = [1, 4, 10, 330]
limit = len(s)
scale = 10**int(np.log10(limit))
index = int(np.random.exponential()*scale)%limit
测试
In [37]: sorted([int(np.random.exponential()*scale)%limit for _ in xrange(20)])
Out[37]: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 3, 3]