プロジェクト オイラー数219を実行しようとしていますが、それを把握できていません。プロジェクトオイラーによると、Pythonを使用しようとしていますが、1分以内に実行できるはずです! これは、Pythonでは遅すぎるため、個々のビット文字列を計算することをおそらく望んでいないと考えるようになります.sub O(n)アルゴリズムが必要です。
新しいビット文字列をすばやく選択し、それらをグループで考慮することさえできるように、ビット文字列の可能なプレフィックスを格納する再帰的なソリューションを見てきました。これは、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 つを超える場合は最適ではありません。私が考慮すべきことについて誰かが私を導くことができますか?