错位数的葡萄酒测试

import itertools
from collections import Counter

k = int(input("请输入整数:"))
num_set = [num for num in range(1, k+1)]
arr_set = list(itertools.permutations(num_set, len(num_set)))
s_n = []

for arr in arr_set:
    add = 0  # 求和
    for i, num in enumerate(arr, 1):
        add = add + abs(num - i)
    s_n.append(add)
sn = sorted(s_n)
print("求和后的情况:{}".format(sn))
h = dict(sorted(Counter(sn).items(), key=lambda x:x[0], reverse=False))
print("统计后列表的次数:{}".format(h))  # 统计次数

  

原文地址:https://www.cnblogs.com/mysterygust/p/14562867.html