วิธีบน เรานับสินค้าทีละชิ้น ทุกชิ้นที่นับไปก็ทำการบวกราคาไปเรื่อยๆ ทีละ 10 บาท ถ้าเป็นคนก็จะเหนื่อยหน่อย แต่นี่เราให้คอมพิวเตอร์นับให้
วิธีล่าง เราหักสินค้าชิ้นแรกออกไปก่อน แล้วนำจำนวนชิ้นที่เหลือไปคูณ 10 บาท จากนั้นค่อยบวกค่าขนส่งชิ้นแรกกลับเข้าไป ก็จะได้ผลลัพธ์
ถามว่าไปถึงเป้าหมายเหมือนกันไหม เหมือนกันนะ แต่ผลกระทบจะไม่เหมือนกัน
วิธีบนลองนึกภาพว่า สินค้ามีล้านชิ้น คอมพิวเตอร์ก็ต้องบวกเลขล้านรอบเช่นกัน ถ้าเป็นระบบใหญ่ที่มีคนใช้จำนวนมากระบบจะกิน resource มากขึ้นเป็นเงาตามจำนวนชิ้น
แต่วิธีล่าง เราใช้ตรรกศาสตร์และคุณสมบัติของคณิตศาสตร์เข้ามาช่วยเหลือ การคำนวณเกิดขึ้นเพียงครั้งเดียว ถ้าจำนวนมีเป็นล้านชิ้นก็จะกิน resource น้อยกว่าวิธีบนแบบมหาศาล โค้ดก็สั้นกว่า ปัญหามีอย่างเดียวคือ ดูหนแรกเลย ยากที่จะเข้าใจ ไม่เหมือนวิธีบนที่ดูแล้วเข้าใจทันที
ถ้าแก้ปัญหาเฉพาะหน้าก็ไม่เป็นไร วิธีไหนก็ได้ทำๆไปเถอะ ให้งานมันเสร็จ แต่ถ้าอยากไปได้ไกลกว่าปัญหาที่เห็นอยู่ตรงหน้า ทฤษฎีก็เป็นอะไรที่สำคัญมาก
ที่มาของภาพและแรงบันดาลใจให้อยากเขียน: https://www.facebook.com/KunKode/photos/a.108315604420683/146906180561625
Facebook comment: