「DA:subsetsum bruteforce」の版間の差分

提供:classwiki
ナビゲーションに移動 検索に移動
(ページの作成:「= 全探索(再帰関数で実装)を用いて部分和問題を解くPythonプログラム = 配列numbersのいくつかの要素を取り出して,それがtargetと同じ値る組み合わせを見つけると,"YES"と表示する. numbers = [1, 3, 4, 5, 8, 10] def solve(x, i=0): if i == len(numbers): return if x - numbers[i] == 0: print("YES") solve(x, i+1) solve(x - numbers[i], i+1) target = 8 solve(tar…」)
 
1行目: 1行目:
= 全探索(再帰関数で実装)を用いて部分和問題を解くPythonプログラム =
= 全探索(再帰関数で実装)を用いて部分和問題を解くPythonプログラム =


配列numbersのいくつかの要素を取り出して,それがtargetと同じ値る組み合わせを見つけると,"YES"と表示する.
配列numbersのいくつかの要素を取り出して,それがtargetと同じ値る組み合わせを見つけると,"YES"と表示するプログラムですが,必要なコードが1行足りません.修正してください.


  numbers = [1, 3, 4, 5, 8, 10]
  numbers = [1, 3, 4, 5, 8, 10]
10行目: 10行目:
     if x - numbers[i] == 0:
     if x - numbers[i] == 0:
         print("YES")
         print("YES")
    solve(x, i+1)
     solve(x - numbers[i], i+1)
     solve(x - numbers[i], i+1)
   
   
  target = 8
  target = 8
  solve(target)
  solve(target)

2025年3月28日 (金) 12:54時点における版

全探索(再帰関数で実装)を用いて部分和問題を解くPythonプログラム

配列numbersのいくつかの要素を取り出して,それがtargetと同じ値る組み合わせを見つけると,"YES"と表示するプログラムですが,必要なコードが1行足りません.修正してください.

numbers = [1, 3, 4, 5, 8, 10]

def solve(x, i=0):
    if i == len(numbers):
        return
    if x - numbers[i] == 0:
        print("YES")
    solve(x - numbers[i], i+1)

target = 8
solve(target)