Эффективный способ подсчета большого количества предметов в наборе, в Python? - PullRequest
1 голос
/ 21 февраля 2020

Итак, у меня есть этот код

#!/usr/bin/env python3.7

from itertools import permutations

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

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

Тем не менее, я действительно пытаюсь получить окончательный счет более эффективным способом, но я не знаю функции библиотеки, которую я ищу или более эффективный способ получить ответ.

Есть мысли?

1 Ответ

2 голосов
/ 21 февраля 2020

Вы создаете 3 перестановки целых чисел [0, 171476). Это означает, что в результирующем кортеже первое целое число имеет параметры 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...