巡回セールスマンの問題に取り組む任務があります。嘘をつくつもりはありませんが、私が現在行っている部分については、彼らが求めていることを実際には完全には理解していません。なんとなくわかりますが、完全ではありません。
セールスマンのおおよその距離を計算しています。ビットセットの 2 次元配列を作成する必要があると思いますか? とにかく値をバイナリで保存します。0 は都市が訪問されていないことを表し、1 は訪問されたことを表します。
私たちには非常に役立つアルゴリズムが与えられています。ここにいる誰かが最初のステップを手伝ってくれるなら、私はそれを完成させることができるはずです:
Create memoisation table [N][(1 << N)]
(ここで、N = 都市の数)。1 << N は、都市の数 (たとえば 5) を 2 進数に変換し、セットを 1 桁左に移動することを意味します。
私の主な問題は次のとおりです。
- N をバイナリに変換する (これが私がする必要があることだと思いますか?)
- セットを 1 つ左に移動する
- 実際にこれらのサイズの 2 次元配列を作成すると...
私はここで間違っている可能性があります。実際、おそらくその可能性はかなり高いです...どんな助けも大歓迎です、ありがとう!