这是一个简单的洗牌实例
Poker=zeros(54,1);
%NewPoker=zeros(54,1);
%NewPoker=zeros(54,1);
CardLeft=54;
for i=1:54
Poker(i)=i;
end
Poker(i)=i;
end
for CardGet=1:54
R_num=round(rand()*1000);
R_index=mod(R_num,CardLeft)+1;
% NewPoker(CardGet)=Poker(R_index);
temp = Poker(R_index);
if R_index == CardLeft %/*the last one*/
j=j+1;%Poker(R_index)=0;
else
for ii=R_index:CardLeft-1
Poker(ii)=Poker(ii+1);
end
%Poker(CardLeft)=0;
Poker(CardLeft)=temp;
end
CardLeft=CardLeft-1;
end
R_num=round(rand()*1000);
R_index=mod(R_num,CardLeft)+1;
% NewPoker(CardGet)=Poker(R_index);
temp = Poker(R_index);
if R_index == CardLeft %/*the last one*/
j=j+1;%Poker(R_index)=0;
else
for ii=R_index:CardLeft-1
Poker(ii)=Poker(ii+1);
end
%Poker(CardLeft)=0;
Poker(CardLeft)=temp;
end
CardLeft=CardLeft-1;
end
display(Poker);