所以,我有这段代码

#!/usr/bin/env python3.7

from itertools import permutations

count = len(set(permutations(range(171476), 3)))

print(f'Final Count: {count}\n')


但是,我实际上是在尝试以一种更有效的方式获得最终计数,但是我不知道我正在寻找的库函数或以一种更有效的方式获得答案的另一种方式。

有什么想法吗?

最佳答案

您正在创建整数[0, 171476)的3个排列。这意味着在结果元组中,第一个整数具有171476选项,第二个171476 - 1选项和最后一个171476 - 2。注意到模式了吗?

def num_permutations(n, k):
    result = 1
    while k:
        result *= n
        k -= 1
        n -= 1
    return result


这样我们找到了答案:

>>> num_permutations(171476, 3)
5041995277625400

关于python - 在Python中,有效的方法来计算集合中的大量项目吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60343546/

10-11 10:28