Javaにおける部分集合の和の問題 - TechRepublic

Javaにおける部分集合の和の問題 - TechRepublic
  • Javaにおける部分集合の合計問題

    Javaで部分集合和問題を解こうとしています。ブログで解決策を見つけたのですが、正しく理解できていません。コードとその動作について教えていただけませんか?
    コードは以下の通りです。

    def subset_sum(set, n, sum):
    sum == 0 の場合:
    True を返す
    n == 0 の場合:
    False を返す
    set[n – 1] > sum の場合:
    subset_sum(set, n – 1, sum)
    を返す subset_sum(set, n – 1, sum) または subset_sum(set, n – 1, sum – set[n – 1]) を返す

    def main():
    set = [1, 2, 3, 4, 5]
    n = len(set)
    sum = 10
    print(subset_sum(set, n, sum))

    if __name__ == “__main__”:
    main()
    誰かコード内の次の部分を説明できますか:

    subset_sum() 関数は何をしますか?
    再帰呼び出しはどのように機能しますか?
    アルゴリズムの時間計算量と空間計算量はどれくらいですか?
    何かご教示いただけると幸いです。ありがとうございます!

    コードの出力も添付しました。Trueです。これは、指定された配列のサブセットが、指定された目標値の合計と一致することを意味します。

    注: 無関係なリンクはスパムとしてモデレーターによって削除されました。

    • このトピックはkees_bによって 2 年 1 か月前に変更されました。アバター写真
Tagged: