วิธีลดปัญหากระเป๋าเป้สะพายหลัง

Oct 25 2020

ฉันมีข้อความแจ้งปัญหาที่ดูเหมือนจะเป็นปัญหากระเป๋าเป้รุ่นลดลง แต่ฉันไม่รู้ว่าจะทำอย่างไรใน Mathematica

ปัญหามีดังนี้: เมื่อกำหนดเซต S ของจำนวนเต็ม (เช่น {a, b, c, ... }) และจำนวนเต็ม T ให้ค้นหาชุดค่าผสมที่เป็นไปได้ทั้งหมดขององค์ประกอบของ S ที่มีผลรวมตรงกับ T (เช่นส่งกลับ {a, d, e} และ {e, f} เพราะ a + d + e = T และ e + f = T)

คำตอบ

11 ciao Oct 25 2020 at 13:18
Select[Subsets[s], Tr@# == t&]

ควรทำสิ่งที่คุณต้องการให้สำเร็จ

หากคุณต้องการอนุญาตผลลัพธ์หลายชุด

IntegerPartitions[t, All, s]