Я пытаюсь перебрать х! перестановки и у меня заканчивается память после 10! Перестановки
Вот код, пожалуйста, помогите мне очистить память
def test_your_might(NUMBER_OF_MARBLES, marbles):
angle = 360 / NUMBER_OF_MARBLES
angles = [angle * n for n in range(1, NUMBER_OF_MARBLES + 1)]
Fx = []
Fy = []
for n in range(0, NUMBER_OF_MARBLES):
angle = radians(angles[n])
Fx.append(cos(angle) * marbles[n])
Fy.append(sin(angle) * marbles[n])
return sqrt(pow(sum(Fx), 2) + pow(sum(Fy), 2))
def brute_force_solution(NUMBER_OF_MARBLES):
possibilities = permutations((_ for _ in range(1, NUMBER_OF_MARBLES + 1)))
best_solution = None
for possibility in possibilities:
solution = test_your_might(NUMBER_OF_MARBLES, possibility)
if best_solution is None or solution < best_solution[1]:
best_solution = (str(possibility), solution)
return best_solution
Цель игры - сбалансировать шарики на круглой доске. Каждый мрамор весит n единиц. мрамор 1 весит 1, 2 весит 2 и т. д.
Не думаю, что проблема связана с моим методом test_your_might, но если вы найдете способ сделать это быстрее, это было бы здорово!