Я пытаюсь выполнить проект Эйлера № 219, но я не понимаю его. Я пытаюсь использовать Python, который, согласно проекту Эйлера, сможет сделать это в течение минуты! Это заставляет меня думать, что они не могут хотеть, чтобы я вычислил каждую отдельную битовую строку, поскольку это было бы слишком медленным в Python - должен быть алгоритм sub O (n).Project Euler # 219
Я рассмотрел рекурсивное решение, в котором хранятся бинты, возможные префиксы, чтобы он мог быстро выбрать новую битовую строку, и даже рассматривает их в группах. Это работает только в бессловесные форсирования значений до чуть более 10:
cost(1) = 1
cost(2) = 5
cost(3) = 11
cost(4) = 18
cost(5) = 26
cost(6) = 35
cost(7) = 44
cost(8) = 54
cost(9) = 64
cost(10)= 74
cost(11)= 85
cost(12)= 96
Прошлое это, я изо всех сил, чтобы понять, как уменьшить эту проблему. Всегда можно сделать рисунок, который выглядит следующим образом:
1
01
001
0001
00001
00000
Но это не оптимально для более чем 7 битстрон. Может ли кто-нибудь вести меня в том, что я должен рассматривать?
Я голосующий, чтобы закрыть этот вопрос не по теме, потому что Project Euler специально просит людей не публиковать ответы на свои вопросы онлайн , Для StackOverflow было бы плохой способ уничтожить их веб-сайт, опубликовав ответы на все их вопросы. – theJollySin 2015-10-23 19:20:59