Python 是一門簡潔、易學、優雅的編程語言,有著豐富的工具庫和優異的性能表現,讓編程變得更加高效、更有趣。其中,一個非常神奇的操作便是 Python 鴿尾式洗牌算法(Fisher-Yates shuffle)。
鴿尾式洗牌算法是將一個有限集合隨機排列的一種算法。其基本思想是,每次從未確定的部分隨機選擇一個元素,與已確定的部分交換位置,直到所有元素都被選擇。
import random def shuffle(arr): for i in range(len(arr)-1, 0, -1): j = random.randint(0, i) arr[i], arr[j] = arr[j], arr[i] return arr arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(shuffle(arr))
代碼中,我們先導入 Python 中 random 模塊,該模塊提供了用于生成偽隨機數的工具函數。然后定義一個名為 shuffle 的函數,接受一個列表作為參數,用于將列表進行隨機排列。
在 for 循環中,從 i 的位置開始,每次從剩余部分中隨機選擇一個元素,與 i 交換位置。在隨機選擇元素的語句中,random.randint() 函數用于生成一個隨機整數,表示在 [0, i] 區間內選擇一個整數。最后,返回隨機排列后的列表。
最后,我們調用 shuffle 函數,并將一個長度為 10 的數組作為參數傳遞給它。打印出來的結果為該數組的隨機排列。
上一篇vue init函數