import random
'''
轮盘赌算法
思想,就是根据每个选择的对应的概率值,进行归一化操作,再根据概率的大小来进行选择。概率越大被选中的可能越高。
这里的概率也可以换成其它的评判标准,比如进化算法中常常出现的适应度指标
'''
p=[]
p.append(0.1)
p.append(0.2)
p.append(0.3)
p.append(0.4)
sum=[0,0,0,0]
for i in range(100000):
temp_prob = random.uniform(0.0, 1)
i=0
while(temp_prob>0):
temp_prob = temp_prob-p[i]
i+=1
print(i-1)
sum[i-1]+=1
print(sum)
- 结果
可以看出,进行100000次实验的情况下,每个选择项被选择的次数和它们的概率分布是相当的