gpt4 book ai didi

python - 排序元素(排列)的数量,在列表的所有可能排列中

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:10:44 24 4
gpt4 key购买 nike

给定一个数组,比方说,arr = [5, 5, 4, 4, 2, 1],我如何找到这个数组的所有可能排列中的排列数与原始数组本身相同(假设原始数组始终按降序排序)。在本例中,将有 4 个排列等于原始数组。嗯,这就是我在 python 中使用 itertools.permutations 得到的结果。有人有更快的东西吗?我将不胜感激。以下是我这么慢的 python 代码。

from itertools import permutations

arr = sorted(map(int, (raw_input().split())), reverse = True)

perms = permutations(n,len(arr))

cnt = 0;

for i in perms:
if list(i) == arr: print i; cnt += 1
print cnt

最佳答案

假设您的数组大小为 n,重复次数为 r1, r2, ..., rk,因此 sum(ri) = n。那么答案就是重复的阶乘的乘积。

例如,对于 arr = [5, 5, 4, 4, 2, 1],我们得到 r = [2, 2, 1, 1],答案为 2! * 2! * 1! * 1! = 4

关于python - 排序元素(排列)的数量,在列表的所有可能排列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52835381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com