คำตอบของ Aryabhataสามารถแก้ไขได้โดยการใช้ความจริงที่ว่าเราสามารถคูณตัวเลขทั้งหมดด้วยcขนาดใหญ่แล้วเพิ่มสิ่งเล็ก ๆ ลงไปในแต่ละอันเพื่อทำหน้าที่เหมือน "แท็กการแสดงตน" จากนั้นใส่ตัวเลขพิเศษบางอย่างที่จะอนุญาต เราจะได้ศูนย์ถ้าเราไปถึงcKโดยไม่มีพวกมัน โดยเฉพาะเราจะใช้c=2(n+1)และ 1 เป็นแท็กการแสดงตน
เนื่องจากอินสแตนซ์(S={x1,…,xn},K)ของปัญหาทั่วไปที่มีค่าเป้าหมายKเราจะสร้างอินสแตนซ์ของปัญหาเฉพาะ (ด้วยค่าเป้าหมาย 0) ที่มี:
- Y={y1,…,yn}ที่yi=2(n+1)xi+1 1
- จำนวนz=−2K(n+1)−n n
- n−1สำเนาของหมายเลข 1 เพื่อเรียกว่าหมายเลข "pull-up"
ฉันจะถือว่า Aryabhatta ทำเช่นนั้นว่าKเป็นบวก (เนื่องจากเป็นเวลา 6 ปีฉันจะตอบแบบฝึกหัดของเขาสำหรับผู้อ่าน: เหตุผลที่เราสามารถทำได้คือถ้าเราสลับเครื่องหมายของตัวเลขทั้งหมดในตัวอย่างของปัญหาทั่วไปรวมถึงKแล้วเราปิดท้ายด้วย ใหม่ปัญหาที่เท่าเทียมกันซึ่งหมายความว่าอัลกอริทึมในการแก้ปัญหาอินสแตนซ์Kเพียงพอสำหรับการแก้ปัญหาใด ๆ - เพื่อแก้ปัญหาด้วยค่าลบKเราสามารถทำการลงชื่อเข้าใช้นี้เรียกใช้อัลกอริธึมนั้น คำตอบสำหรับคำถามเดิมและแน่นอนถ้าK=0 จากนั้นเราไม่จำเป็นต้องทำการเปลี่ยนแปลงใด ๆ ของเคสทั่วไปเป็นเคสพิเศษเลย!)
ก่อนอื่นเราจะแสดงให้เห็นว่าคำตอบของ YES สำหรับปัญหาทั่วไปนั้นหมายถึงคำตอบของ YES สำหรับตัวอย่างพิเศษที่สร้างขึ้นของปัญหาพิเศษ ที่นี่เราสามารถสรุปได้ว่าวิธีการแก้ปัญหาบาง{xj1,…,xjm}เพื่อปัญหาทั่วไปที่มีอยู่นั่นคือคอลเลกชันนี้ว่างของmผลรวมหมายเลขKKดังนั้นถ้าเราใช้เวลาที่สอดคล้องกันy -values {yj1,…,yjm}ในการแก้ปัญหาของเราที่จะสร้างอินสแตนซ์ที่พวกเขาจะรวมไป2K(n+1)+mม. แล้วเราสามารถเลือกที่จะรวม−2K(n+1)−nในการแก้ปัญหาที่ออกจากเราด้วยผลรวมของm−n n ตั้งแต่1≤m≤nสิ่งนี้อยู่ในช่วง[−n+1,0]ซึ่งเราสามารถดึงขึ้นมาเป็น 0 ได้สำเร็จโดยการรวมส่วนย่อยของตัวเลขแบบดึงขึ้น
2(n+1)
{yj′1,…,yj′m′}m′Y[1,n−1]zz=−2K(n+1)−n≤−nn−1
zY2(n+1)nYn−1Yn+n−1=2n−12(n+1)z2(n+1)Y2(n+1)2(n+1)z=−2K(n+1)−n
z
(−2K(n+1)−n)+∑m′i′=1(2(n+1)xj′i′+1)+∑pull-ups=0
และเราสามารถจัดเรียงข้อกำหนด:
−2K(n+1)+∑m′i′=1(2(n+1)xj′i′)−(n+∑m′i′=11+∑pull-ups)=0
−2K(n+1)+∑m′i′=1(2(n+1)xj′i′)−(n+m′+∑pull-ups)=0
2(n+1)(−K+∑m′i′=1xj′i′)−(n+m′+∑pull-ups)=0
2(n+1)2(n+1)
−(n+m′+∑pull-ups)=0
สิ่งนี้สามารถทดแทนโดยตรงในสมการก่อนหน้าเพื่อรับ
2(n+1)(−K+∑m′i′=1xj′i′)=0
2(n+1)
−K+∑m′i′=1xj′i′=0
ซึ่งให้ผลเฉลยกับอินสแตนซ์ปัญหาทั่วไปดั้งเดิม