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

質問編集履歴

2

2019/07/08 01:35

投稿

Senri551853
Senri551853

スコア12

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 → 出力 7
6
+ 例2)n = 3、(w, v) = { (2, 2), (2, 1), (1, 1), }、W = 5 → 出力 4
7
7
 
8
8
  ### 発生している問題
9
9
  組み合わせを総当たりするという部分で躓いています

1

修正

2019/07/08 01:35

投稿

Senri551853
Senri551853

スコア12

title CHANGED
@@ -1,1 +1,1 @@
1
- C言語でナップザック問題 for文回し
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