質問編集履歴
2
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
c言語でナップザック問題を解きたい
|
4
4
|
重さと価値がそれぞれ w_i, v_i であるような n 個の品物があり、重さの総和がWを超えないように選んだときの価値の総和のの最大値を求める
|
5
5
|
例1)n = 4、(w, v) = { (2, 3), (1, 2), (3, 4), (2, 2) }、W = 5 → 出力 7
|
6
|
-
例2)n = 3、(w, v) = { (2, 2), (2, 1), (1, 1), }、W = 5 → 出力
|
6
|
+
例2)n = 3、(w, v) = { (2, 2), (2, 1), (1, 1), }、W = 5 → 出力 4
|
7
7
|
|
8
8
|
### 発生している問題
|
9
9
|
組み合わせを総当たりするという部分で躓いています
|
1
修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
C言語でナップザック問題
|
1
|
+
C言語でナップザック問題 総当たりで悩んでいます
|
body
CHANGED
@@ -7,11 +7,13 @@
|
|
7
7
|
|
8
8
|
### 発生している問題
|
9
9
|
組み合わせを総当たりするという部分で躓いています
|
10
|
+
|
10
11
|
上記の(例1)でいえば(2,3)(3,4)で済んでいますが、
|
11
12
|
(例2)ならば(2,2), (2,1), (1,1)になります。取る値が入力次第で変わるのでfor文をどのように回せばいいかがわかりません
|
12
13
|
|
13
14
|
考えている流れとしては
|
14
15
|
総和を超えない組み合わせを探す→価値の最大値を求める→出力です
|
16
|
+
今回は総当たりの部分のヒントをいただきたいです
|
15
17
|
|
16
18
|
### 該当のソースコード
|
17
19
|
|