Создание эффективного и экономящего время алгоритма для поиска разницы между комбинацией «больше» и «меньше».Python

Программы на Python
Anonymous
Создание эффективного и экономящего время алгоритма для поиска разницы между комбинацией «больше» и «меньше».

Сообщение Anonymous »

Я хочу создать скрипт Python, в котором у меня есть список длиной 14, и мне нужно найти определенную комбинацию, которая требует, чтобы комбинации, меньшие, чем комбинация, представляющая результат, были на 5617961 больше, чем комбинации, которые больше комбинации представляющие координаты.
Изображение
Вот что я придумал. Это должно работать, но очевидным отрицательным моментом является то, что это медленно и неэффективно. Поэтому мне нужна помощь в разработке лучшего алгоритма.
А также мой код:
from itertools import permutations

def generate_combinations(lst, length):
for combo in permutations(lst, length):
yield ''.join(map(str, combo))

# List setup
lst = [2, 2, 2, 2, 4, 4, 5, 5, 5, 6, 6, 6, 8, 8]
length = 14
FiveLst = []

for combination in generate_combinations(lst, length):
arv = [int(x) for x in str(combination)]
if arv[0] == 5 and arv[1] == 8:
print(combination)
FiveLst.append(combination)
for Fiveno in FiveLst:
difmin = 0
difplus = 0
for combination in generate_combinations(lst, length):
if combination > Fiveno:
difplus += 1
else:
difmin += 1
difference = difmin-difplus
if difference == 5617961:
print(f"Combination found!: {combination}")
break

print("Process complete!")
exit()


Подробнее здесь: https://stackoverflow.com/questions/782 ... een-greate

Вернуться в «Python»