Welcome!
轮盘赌算法是主要用在“遗传算法”中遗传对象的选择上。
设有N个个体,每个个体的概率为: \(Pi\) 则,\(P1 + P2 + ... + PN = 1\)
获取一个随机数:\(r\in [0, 1]\),i从1的概率开始累加至N,当累加和m大于r,则停止,返回i。
意思就是一个长度为1的线段被N个对象的P占据,随机产生一个r,看看落到对应的哪个i的P里面。
int RWS()
{
m = 0;
r =Random(0,1); //r为0至1的随机数
for(i=1;i<=N; i++)
{
m = m + P[i];
if(r<=m) return i;
}
}