グラフを移動したいという問題に取り組んでいます。ただし、コードをプロファイリングすると、グラフの作成が重要な部分であることがわかります。すべてのノードには、固定長Mの値が必要です。グラフにはベース2のすべての組み合わせが含まれている必要があります。したがって、たとえばM = 3の場合、次のようになります。 "000" "001" "010" "011" "100" "101" "110" "111"、つまり2 ^ M=8の組み合わせ。
次に、非常に特殊な方法でノードをリンクします。すべてのノードには、値が「0」と「1」の2つの出力エッジがあります。たとえば、「000」はエッジ1で「001」に接続されます。これは、右側の最初の数値を削除し、最後にエッジ値を追加すると、「001」になるためです。同様に、「111」はエッジ「0」によって「110」に接続されます。
ヘルプが必要です。ノードは文字列で表す必要はないことに注意してください。これは私が実装した方法ですが、実行が遅すぎるようです。ここで重要なのは、ノードが正しく接続されていることです。
これを解決するには、ノードをHashTableに格納し、セット全体をループしてノードを相互に接続します。
提案は、これをよりスマートにする方法を高く評価しました。