0
如何執行選擇(即刪除元素)在數組中傾向於更低的數字。Python遺傳算法「自然」選擇
如果我有一個從最低到最高排序的適合度數組,我該如何使用趨向於較小數字的隨機數生成來隨機刪除這些元素。
pop_sorted_by_fitness = [1, 4, 10, 330]
我想隨機刪除那些更小的元素之一,它的大部分時間1,有時4,很少10,幾乎從來沒有330我怎樣才能實現這種算法。
如何執行選擇(即刪除元素)在數組中傾向於更低的數字。Python遺傳算法「自然」選擇
如果我有一個從最低到最高排序的適合度數組,我該如何使用趨向於較小數字的隨機數生成來隨機刪除這些元素。
pop_sorted_by_fitness = [1, 4, 10, 330]
我想隨機刪除那些更小的元素之一,它的大部分時間1,有時4,很少10,幾乎從來沒有330我怎樣才能實現這種算法。
如何利用指數分佈的使用抽樣的指標numpy.random.exponential
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]
的[如何模擬在python偏模?]可能的複製(HTTPS:/ /stackoverflow.com/questions/479236/how-do-i-simulate-biased-die-in-python) – SiHa
這有點偏向於「適者生存」,但仍然使用RNG來選擇數組索引。 – Zavax
是的,對不起,評論有點sn。。不過,搜索* Python偏向隨機*會產生不少點擊。 – SiHa