C#入门经典里面的洗牌
入门经典里面的洗牌代码:for(int i=0;i<52;i++)
{
int destCard=0;
bool foundCard=false;
while(foundCard==false)
{
destCard=sourceGen.Next(52);
if(assigned[destCard]==false)
{
foundCard=true;
}
}
assigned[destCard]=true;
newDeck[destCard]=cards[i];
}
newDeck.CopyTo(cards,0);
而我喜欢这样洗牌:
for (int i = 0; i < 52; i++)
{
temp = tempcard[i];
int k = ran.Next(52);
tempcard[i] = tempcard[k];
tempcard[k] = temp;
}
书上面 的洗牌方法,最好情况下是循环52次,而最坏情况下会运行:1+2+3+...+52次,
而我这种洗牌方法,只需要52次。
请教下,书上这样做的好处在那?我这种方法,有什么不好的地方呢?
[ 本帖最后由 over1230 于 2014-12-22 16:47 编辑 ]