你寫的實(shí)現(xiàn)是有點(diǎn)問題的,例如arr = ["a","b","c","d"],
for i in range(1,3), 將只循環(huán)2次,若想 arr[0] 為 “a”, 那么第一次循環(huán)選中b,1/2的概率, 第二次循環(huán)選中c或者d,2/3的概率, 那么arr[0]為“a”的概率是 1/2 * 2/3 = 1/3,而d將永遠(yuǎn)不會(huì)有機(jī)會(huì)在arr[0]位置。
python-洗牌算法的實(shí)現(xiàn)簡單來說 Fisher–Yates shuffle 算法是一個(gè)用來將一個(gè)有限集合生成一個(gè)隨機(jī)排列的算法(數(shù)組隨機(jī)排序)。這個(gè)算法生成的隨機(jī)排列是等概率的。Fisher–Yat...