实现轮盘赌的几种方法

#实现轮盘赌几种方法:

在诸多的算法中,轮盘赌一般用来随机选择某个元素,其基本的算法如下:
1.基本方法,
计算累计概率分布,random一个值r,从低到高,判断r的位置
2.基于二分查找
对基本方法的改进,累计概率分布已经是个排好序的数列了,这个时候就可以利用二分查找来获得r的位置
3.基于随机接受
flag=1
N=len(fitness)
while(flag):
index=int(random()*N)
if random()<fitness[index]/max(fitness):
flag=0
return index
break

参考文献
https://arxiv.org/pdf/1109.3627.pdf
http://blog.csdn.net/armwangeric/article/details/50775206
https://github.com/mangwang/PythonForFun/blob/master/rouletteWheelSelection.py