部分和問題のif文の中身が何をしているのかわからないです。
http://y0m0r.hateblo.jp/entry/20121203/1354549288
を参考に部分和問題を書いたら
# coding=utf-8 # 部分和問題 # 深さ優先検索 # 整数がn個与えられる。その中からいくつか選び、その環をちょうどkにすることができるかどうかを判定する def solve(integer_list, target_sum, i=0, sum=0): if i == len(integer_list): return sum == target_sum if (solve(integer_list, target_sum, i + 1, sum)): return True if (solve(integer_list, target_sum, i + 1, sum + integer_list[i])): return True return False # n個の整数 integer_list = [1,3,5,12,7] # k target_sum = 11 print(solve(integer_list, target_sum)) # => True
のようになったのですが、
この
if (solve(integer_list, target_sum, i + 1, sum)): return True if (solve(integer_list, target_sum, i + 1, sum + integer_list[i])): return True
の中のif文の条件が何をしているのかわかりません。
if (solve(integer_list, target_sum, i + 1, sum)):
if (solve(integer_list, target_sum, i + 1, sum + integer_list[i])):
は何の機能なのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/07/15 12:01
退会済みユーザー
2017/07/15 12:04
2017/07/15 12:17
2017/07/15 12:21 編集