Shuffle 洗牌 演算法 Posted on 2018-04-03 Edited on 2019-06-22 In Code Views: Views: Disqus: Word count in article: 336 Reading time ≈ 1 mins. 之前有為了 搭配random做洗牌苦惱了很久後來也忘記有沒有找出解答了 單純,在剛剛突然想到了一種作法,紀錄一下 更新 : 後來發現 此算法就是 Fisher–Yates shuffle 的變化版 ... 果然古人早就(ry 想法很簡單,就是一個 array 放好之後,越取越小。 如果用 python 來做的話,大概是 : 123456789101112arr = []for i in range(52): arr[].append(i)new_arr = []for i in range(52): target = random().randint(0,arr.len()) # length 會隨著迴圈變小 new_arr.append(target) arr.remove(target) 算是一個直覺的想法,也許和已存在某種作法重複了。