1

ウェイトとウェイトカウントに指定されたナップサック容量でナップサック問題が発生しました。

ナップザックの容量がC、必要なウェイト数がN、ウェイトのリストがある場合に、ウェイトをナップザックにパックするアルゴリズムが必要です。重みの並べ替えは重要ではありません。アルゴリズムが再帰的であることが最善です。

例:
ナップザックの魔女は3つのウェイトしか保持できず、10のウェイトが必要で、9、8、7、2、1のウェイトがあります。正しい(そして唯一の)答えは7、2、1です。

誰かが擬似コードを書くのが最善ですが、一般的なプログラミング言語のいずれかであれば問題ありません。

PSどんなヒントもありがたいです:)

[編集]正確にCに重みを付ける正確にN個の重みカウントで答えを与えるアルゴリズムが必要です。

4

2 に答える 2

1

これは 0-1 ナップザック問題で、動的計画法を使用して疑似多項式時間で解くことができます。

動的計画法を使用して問題を解決する方法については、ウィキペディアのナップザック問題の記事を参照してください。

ウォークスルーと疑似コードについては、これらの CS レクチャー スライドを参照してください。

于 2011-03-27T19:55:22.820 に答える
0

http://en.wikipedia.org/wiki/Knapsack_problemが役に立ちます。アルゴリズムの疑似コードもあります。

于 2011-03-27T19:54:49.747 に答える