Ⅰ 高分求一個除去大小王52張牌的洗牌演算法
洗牌的方法很多,我喜歡用隨機選擇法,基本方法是:先把52張牌順序存放到一個數組裡面,然後產生一個1~52的隨機數,把隨機數的那張牌抽出來放到新數組的第一個位置,在原數組裡面把抽取出的牌之後的牌前移動一個位置,然後產生1~51的隨機數類似處理,直到只剩一張排。
描述如下:
VAR A1,A2:[1..52] OF POKE;
A2[1..52]=POKE1..POKE52;
FOR I=1 TO 51 DO
BEGIN
N=RANDOM(1,52-I+1)
A1[N]=A2[N]
FOR J=I TO 52 A2[J]=A2[J+1];
END
A1[52]=A2[1]