Python
 Computer >> コンピューター >  >> プログラミング >> Python

合計がsを持つすべてのサブセットを取得するPythonプログラム


特定の合計「s」を持つすべてのサブセットを取得する必要がある場合、リストを反復処理してリストのすべての組み合わせを取得するメソッドが定義され、合計と一致する場合はコンソールに出力されます。

以下は同じもののデモンストレーションです

from itertools import combinations

def sub_set_sum(size, my_array, sub_set_sum):

   for i in range(size+1):
      for my_sub_set in combinations(my_array, i):

         if sum(my_sub_set) == sub_set_sum:
            print(list(my_sub_set))

my_size = 6
my_list = [21, 32, 56, 78, 45, 99, 0]
print("The list is :")
print(my_list)
subset_sum = 53
print("The result is :")
sub_set_sum(my_size, my_list, subset_sum)

出力

The list is :
[21, 32, 56, 78, 45, 99, 0]
The result is :
[21, 32]
[21, 32, 0]

説明

  • 必要なパッケージが環境にインポートされます。

  • 「sub_set_sum」という名前のメソッドが定義されており、リストのサイズをパラメーターとして受け取ります。

  • リストを繰り返し処理し、「組み合わせ」メソッドを使用してすべての組み合わせを取得します。

  • 合計が特定の値と同じである場合、リストに変換されてコンソールに表示されます。

  • メソッドの外部では、サイズが定義されています。

  • リストが定義され、コンソールに表示されます。

  • サブセット値が定義されています。

  • このメソッドは、必要なパラメーターを渡すことによって呼び出されます。

  • 出力はコンソールに表示されます。


  1. リスト内の要素の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力としてリストが与えられた場合、与えられたリストの合計を計算する必要があります。 ここでは、考慮すべき2つのアプローチがあります。つまり、組み込み関数を使用する方法と、ブルートフォースアプローチを使用する方法です。 アプローチ1-組み込み関数の使用 例 # main arr = [1,2,3,4,5] ans = sum(arr) print ('Sum of the array is ',ans) 出力 15 すべての変数と関数はグローバルスコープで宣言されて

  2. リスト内のすべてのペア間の絶対差の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 リスト入力が与えられた場合、リスト内のすべてのペア間の絶対差の合計を見つける必要があります。 列挙() メソッドは、反復可能オブジェクトにカウンターを追加し、それを列挙オブジェクトタイプの形式で返します。 この方法では、絶対差を含むリスト「diffs」があります。 2つの変数が初期化された2つのループを使用します。 1つはカウンターを反復処理し、もう1つはリスト要素を反復処理します。すべての反復で、要素が類似しているかどうかを確認します。 そうでない場合は、絶対差を見つけて、それ