คณิตศาสตร์สำหรับการเขียนโปรแกรม ตอนที่ 2

หลังจากย้อนความทรงจำกับการเรียน Logic กันไปแล้วในตอนที่แล้วเราจะมาดูกันต่อในเรื่องของการประยุกต์ใช้งาน Logic ในชีวิตจริง

เวลาเจอโจทย์ถ้าเราใช้ AND หรือ OR กับค่าของตัวแปรปกติ จะไม่มีผลอะไรมากเพราะไม่ค่อยซับซ้อนเท่าไหร่ เช่น

หรือ

จะเห็นว่าทั้ง 2 ตัวอย่างด้านบนจะเขียนเงื่อนไขแบบที่เป็นภาษาพูดได้เลย แต่ถ้าเมื่อไหร่ที่มี not เข้ามาเกี่ยวข้องการเขียนจะยากขึ้น เพราะจะต้องเรียบเรียงให้ใกล้กับภาษามนุษย์ได้ยากกว่าปกติ

ถ้าเราย้อนกลับไปสมัยเรียนคณิตศาสตร์ สูตรที่เราท่องกันอยู่คือ

ค่า not ของ p และ q จะเท่ากับ not p หรือ not q เป็นการกระจายเครื่องหมาย not เข้าไปในวงเล็บ และกลับจาก and หรือ or เป็นค่าตรงข้าม ถ้าเดิมเป็น and ให้เปลี่ยนเป็น or

เวลาเราเลือก logic ที่มีลักษณะนี้ให้เลือกเป็น “และ” เวลาอ่านจะง่ายที่สุด เช่น

ให้นิพจน์แรก (p) เป็น ลูกค้า และ q เป็น ซื้อเกิน 100000 บาท ถ้าเอา p และ q มาทำการเชื่อมกันจะแยกได้เป็น 4 กรณี

  1. เป็นลูกค้า และ ซื้อเกิน 100000
  2. เป็นลูกค้า และ ซื้อไม่เกิน 100000
  3. ไม่ใช่ลูกค้า และ ซื้อเกิน 100000
  4. ไม่ใช่ลูกค้า และ ซื้อไม่เกิน 100000

พยามใช้ Logic ที่มี และเป็นตัวเชื่อมในกรณีที่ต้องใช้ not ทั้งคู่ ดังนี้

  • ไม่ใช่ลูกค้าและซื้อไม่เกิน 100000 บาท (~p and ~q) มีกลุ่มที่ 4 กลุ่มเดียวเท่านั้นที่เข้าเงื่อนไข
  • ไม่ใช่ลูกค้าที่ซื้อเกิน 100000 บาท (~(p and q)) กลุ่มที่ 1, 2 และ 3 จะเข้าเงื่อนไขนี้ ซึ่งจริงๆแล้วประโยคนี้จะเขียนเป็น ไม่ใช่ลูกค้า หรือ ซื้อไม่เกิน 100000 บาท (~p v ~q) ก็ได้ แต่การอ่านทำความเข้าใจจะทำได้ยาก ดังนั้นเวลาเราเขียนโปรแกรมพยายามเลือกใช้ และ เป็นอันดับแรก

*** เมื่อไหร่ก็ตามที่ต้องมีการตรวจสอบที่มี 2 เงื่อนไขมาเชื่อมต่อกันให้พยายามเชื่อมด้วย “และ” เสมอ