我将改组算法实现为:
import random
a = range(1, n+1) #a containing element from 1 to n
for i in range(n):
j = random.randint(0, n-1)
a[i], a[j] = a[j], a[i]
由于该算法有偏差。我只是想知道任何 n(n≤17),是否有可能发现在所有 n中哪个排列的发生概率最高,哪个排列的发生概率最低! 排列。如果是的话,那是什么排列?
例如 n = 3 :
a = [1,2,3]
有3 ^ 3 = 27种可能的洗牌
不。不同排列的发生:
1 2 3 = 4
3 1 2 = 4
3 2 1 = 4
1 3 2 = 5
2 1 3 = 5
2 3 1 = 5
P.S。我数学不太好。