<prompt> Unda algoriti ambayo inagawanya safu fulani ya nambari katika seti mbili ili jumla ya vipengee katika kila seti iwe sawa.  <response>: Algoriti moja ya kugawanya safu katika seti mbili ili jumla ya vipengele katika kila seti iwe sawa ni kama ifuatavyo: 1. Tafuta jumla ya vipengele vyote katika safu, na uangalie kama inaweza kugawanywa kwa 2. Ikiwa jumla ni isiyo ya kawaida, safu haiwezi kugawanywa katika vikundi vidogo viwili sawa. 2. Ikiwa jumla ni sawa, tunaweza kupata ikiwa kuna sehemu ndogo yenye jumla sawa na nusu ya jumla ya jumla. Tatizo hili ni tofauti ya tatizo la jumla ndogo. 3. Unda safu ya ukubwa wa 2D jumla2 1 x ukubwa wa safu 1 na ujaze na maadili ya boolean. 4. Jaza safu mlalo ya kwanza ya jedwali na kweli, kwa sababu seti tupu huwa 0. 5. Jaza safu wima ya kwanza ya jedwali sivyo, kwa sababu hakuna njia ya kuunda kikundi kidogo kwa jumla chanya. thamani kwa kutumia seti tupu. 6. Jaza visanduku vilivyosalia kwa kutumia uhusiano wa kujirudia hapa chini: Ikiwa arri-1 j dpij dpi-1j If arri-1 j dpij dpi-1j dpi-1j-arri-1 7. Ikiwa dpnsum2 ni kweli, hii ina maana kwamba kuna sehemu ndogo ambayo jumla yake ni sawa na jumla2. Kisha unaweza kufuatilia nyuma jedwali ili kupata vipengele vilivyojumuishwa katika kitengo hiki kidogo. 8. Seti ndogo nyingine itakuwa vipengee vilivyosalia vya safu kwa kuwa viseti vidogo viwili haviunganishwa. Utekelezaji wa msimbo katika Python def find_partitionarr: n lenarr sum_arr sumarr kama sum_arr 2 ! 0: return False, , dp False for i katika masafasum_arr 2 1 kwa j katika masafan 1 kwa i katika masafan 1: dpi0 Kweli kwa i katika masafa1, n 1: kwa j katika safu1, sum_arr 2 1: ikiwa arri - 1 j: dpij dpi - 1j kingine: dpi j dpi - 1j au dpi - 