เมื่อจำเป็นต้องรับเซตย่อยทั้งหมดที่มีผลรวมเฉพาะ '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' ซึ่งใช้ขนาดของรายการ รายการเป็นพารามิเตอร์
-
มันวนซ้ำในรายการและใช้วิธี 'การรวมกัน' เพื่อรับชุดค่าผสมทั้งหมด
-
หากผลรวมเท่ากับค่าใดค่าหนึ่ง จะถูกแปลงเป็นรายการและแสดงบนคอนโซล
-
นอกวิธีการกำหนดขนาด
-
รายการถูกกำหนดและแสดงบนคอนโซล
-
ค่าเซตย่อยถูกกำหนดไว้
-
วิธีการนี้ถูกเรียกโดยการส่งผ่านพารามิเตอร์ที่จำเป็น
-
เอาต์พุตจะแสดงบนคอนโซล