teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

forループ間違いを修正

2019/07/10 04:20

投稿

rubato6809
rubato6809

スコア1382

answer CHANGED
@@ -11,8 +11,8 @@
11
11
  と対応させます。すると、 (2, 3) と (3, 4) をナップサックに詰めることを 5 (== 1 + 4) という値で表すことができます。値が0ならナップサックは空、15(==1+2+4+8)なら4アイテム全てを詰める、という意味になります。
12
12
  つまり、4個のアイテム全ての組合せは0~15という16種類の値で表現できることになり
13
13
  ```
14
- for (ksack = 0; ksack < 16; ksack) {
14
+ for (ksack = 0; ksack < 16; ksack++) {
15
- ...
15
+ // ksackの値=アイテムの組合せを評価する
16
16
  ```
17
17
  という格好の、**一重の for ループが総当たり検査になる**のです。
18
18
 

1

majipon -> majiponi

2019/07/10 04:20

投稿

rubato6809
rubato6809

スコア1382

answer CHANGED
@@ -23,4 +23,4 @@
23
23
  bit の値は 1, 2, 4, 8 ... と変化します。そこで
24
24
  ``` if ((ksack & bit) != 0) ``` と、AND演算(というビット演算)によって、**ksack にどのアイテムが含まれるかを判定する**ことに使えます。
25
25
 
26
- ※以上、私は majipon さんと違うコードで試したので、説明中のコード表記が異なりますが、言いたいことは伝わるだろうと思います。
26
+ ※以上、私は majiponi さんと違うコードで試したので、説明中のコード表記が異なりますが、言いたいことは伝わるだろうと思います。