我尝试用 python 编写一个算法,但我不明白为什么它超出范围。我真的不明白问题出在哪里 这是我的代码
B = [1, 2, 3, 4]
n = 4
def b(m, i):
if m % 2 == 0 and m > 2:
if i < m - 1:
return 1
else:
return m - 2
else:
return m - 1
def PERM(m):
if m == 1:
print(P)
else:
for i in range(0, m):
PERM(m - 1)
if i < m:
k = P[m]
P[m] = P[b(m, i)]
P[b(m, i)] = k
PERM(n)
答案 0 :(得分:1)
在 for i in range(0, m): 中,循环从 0 到 4 迭代,总共 5 个索引,所以最好将 n = 4 更改为 n = 3,希望对您有所帮助:)