Python получить все составления выборки из списка - PullRequest
0 голосов
/ 23 июня 2019

У меня есть два списка: А размером 49 и В размером 68.

Я хочу перебрать все возможные подвыборки размером 32 в списках.

Какой лучший способ сделать это в Python?

Ответы [ 2 ]

0 голосов
/ 23 июня 2019

Вы не хотите этого делать.

У вас есть два списка размером 48 и 68. Вам нужно подмножество размера 32 каждого.

Есть 2 e 12 и 2 e19 подмножеств каждого.Умножая, вы получите 4 e 31. Это очень большое число.

Так вот эмпирическое правило.10 ^ 9 - это примерно количество операций в секунду.10 ^ 16 - это 1 год ... Вы не хотите думать о ^ 31.

Скажем так.Хэш-бит всей сети биткойнов составляет около 70 000 000 триллионов хэшей в секунду.Или 2,2 е 27 в год.Это еще несколько коротких нулей.

Измените свой алгоритм.

0 голосов
/ 23 июня 2019

Вы можете использовать combinations метод itertools. Просто вы можете изменить items данные и количество отсчетов в методе combinations с 2 на 32. Пожалуйста, используйте следующий пример кода:

from itertools import combinations

items_a = ['a', 'b', 'c']
items_b = ['1', '2', '3', '4', '5']
items = items_a + items_b

print(list(combinations(items_a, 2)))
print(list(combinations(items_b, 2)))

Результат.

[('a', 'b'), ('a', 'c'), ('b', 'c')]
[('1', '2'), ('1', '3'), ('1', '4'), ('1', '5'), ('2', '3'), ('2', '4'), ('2', '5'), ('3', '4'), ('3', '5'), ('4', '5')]
...