欢迎来到天天文库
浏览记录
ID:8836958
大小:18.50 KB
页数:3页
时间:2018-04-09
《必赢国际轮盘必赢概率算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、必赢国际总结轮盘必赢概率算法设P(i),其中i=1..n,为n个个体被选择的概率,在轮盘上表示为所占扇区的面积百分比,这里显然sum(P)=1。select用来保管n次选择的结果。技巧来自环球策略huanqbbs1)第一种完成方法:能够想象一个转动的轮盘,留意这里轮盘最多只转一圈。每次转轮盘前,把色子随机放到轮盘外缘的某处,即色子不随轮盘转动,以一个随机数sel代表它所处的位置。轮盘转动后,色子所指示的轮盘扇区号不时变化,轮盘中止时色子所指示的轮盘上扇区号,即为本次轮盘.所选中的个体号。fori=1:n %第i次掷色子 sel=rand; %产生一个0、1之间的随机数,代表
2、色子在轮盘外缘所指示的位置 sumPs=0; %轮盘初始转动的位置,从0变化到1 j=1; %轮盘初始指示的位置 whilesumPs3、n或者10*n,产生的结果都是“个体概率所表示扇区越大,该个体被选中的几率也越大”,并且随着实验次数的增大,这一结果越准确。2)这种办法能够想象成往划分好扇区的轮盘里扔色子,事前生成一组满足平均散布的随机数,代表n次掷色子或者n个色子一同扔,轮盘不动,色子所在区域为选择结果。r=rand(1,n) %预先产生n个色子的位置,留意这里r服从0、1之间平均散布fori=1:n %第i次轮盘. select(i)=n; %本次轮盘.的结果初始化为n forj=1:n %轮盘开端转动 ifr(j)<=P(i) %若色子停在轮盘第j扇区 4、 select(i)=j;%则第i次轮盘.的结果为j break; %第i次轮盘.完毕end%~第i次轮盘.完毕 end%~第i次轮盘.完毕end%n次轮盘完毕%%%%%%%%%%%%%下面为完好的matlab程序完成%%%%%%%%%%%%%%%functionSelect=Roulette(P,num)%:按轮盘.战略选择下一点,返回num次轮盘.结果%:第一种轮盘.办法,精度很低,%m=length(P);%Select=zeros(1,num);%fori=1:num% Select(i)=m;%初始化5、为最后一个% forj=1:m%:按概率选择% ifP(j)>rand()% Select(i)=j;% break;% end% end%end%:第二种轮盘.办法,精度较高m=length(P);Select=zeros(1,num);r=rand(1,num);fori=1:num sumP=0; j=ceil(m*rand);%产生1~m之间的随机整数 whilesumP6、 %Select(i)=mod(j-1,m)+1-1; Select(i)=mod(j-2,m)+1;end
3、n或者10*n,产生的结果都是“个体概率所表示扇区越大,该个体被选中的几率也越大”,并且随着实验次数的增大,这一结果越准确。2)这种办法能够想象成往划分好扇区的轮盘里扔色子,事前生成一组满足平均散布的随机数,代表n次掷色子或者n个色子一同扔,轮盘不动,色子所在区域为选择结果。r=rand(1,n) %预先产生n个色子的位置,留意这里r服从0、1之间平均散布fori=1:n %第i次轮盘. select(i)=n; %本次轮盘.的结果初始化为n forj=1:n %轮盘开端转动 ifr(j)<=P(i) %若色子停在轮盘第j扇区
4、 select(i)=j;%则第i次轮盘.的结果为j break; %第i次轮盘.完毕end%~第i次轮盘.完毕 end%~第i次轮盘.完毕end%n次轮盘完毕%%%%%%%%%%%%%下面为完好的matlab程序完成%%%%%%%%%%%%%%%functionSelect=Roulette(P,num)%:按轮盘.战略选择下一点,返回num次轮盘.结果%:第一种轮盘.办法,精度很低,%m=length(P);%Select=zeros(1,num);%fori=1:num% Select(i)=m;%初始化
5、为最后一个% forj=1:m%:按概率选择% ifP(j)>rand()% Select(i)=j;% break;% end% end%end%:第二种轮盘.办法,精度较高m=length(P);Select=zeros(1,num);r=rand(1,num);fori=1:num sumP=0; j=ceil(m*rand);%产生1~m之间的随机整数 whilesumP6、 %Select(i)=mod(j-1,m)+1-1; Select(i)=mod(j-2,m)+1;end
6、 %Select(i)=mod(j-1,m)+1-1; Select(i)=mod(j-2,m)+1;end
此文档下载收益归作者所有