“หลักการแก้ปัญหาและการโปรแกรม” (ง32106)
ปัญหาคืออะไร
ปัญหาคืออะไร ปัญหา คือ สิ่งที่เรายังไม่ทราบคำตอบ และ ยังไม่ทราบขั้นตอนวิธีในการแก้ปัญหา
คิดสนุก ตัวอักษรแต่ละตัวแทนตัวเลขโดดที่ต่างกัน จงหาว่าตัวอักษรแต่ละตัวแทนตัวเลขอะไรที่ทำให้มีผลลัพธ์ดังนี้ A B C B B D C B C E A A +
คิดสนุก 7 1 4 4 คำตอบ A = 4 B = 2 C= 7 D = 8 E= 1 A B C B B D C B C E A A + 4 2 7 2 2 8 7 2 7 1 4 4 +
ตัวเลขแสนกล ให้เติมตัวเลข 1-9 ลงในช่องสี่เหลี่ยมที่จัดวาง ดังรูปข้างล่าง โดยตัวเลขในช่องจะต้องไม่ซ้ำกัน และผลรวมของตัวเลขในด้านตามแนวนอนแนวตั้ง และแนวทแยง แต่ละด้านมีค่าเท่ากับ 15 5
ค้นหาเหรียญปลอม มีเหรียญบาทอยู่ 9 เหรียญ เป็นเหรียญปลอม1 เหรียญซึ่งมีน้ำหนักเบากว่าเหรียญจริง จงหาวิธีในการหาเหรียญปลอมโดยการชั่งด้วยตาชั่ง 2 แขนเพียง 2 ครั้ง คุณสมบัติของตาชั่ง 2 แขนคือ ตาชั่งชนิดนี้จะสามารถบอกน้ำหนักได้ก็ต่อเมื่อของที่นำขึ้นชั่งทั้ง 2 แขนมีน้ำหนักเท่ากัน
ใครเป็นใคร เมื่อ อู๊ด, แอ๊ด, อ๊อด, และ อิ๊ด เป็นภรรยาของ ตุ้ม, ตุ๋ย, ต้อย และ ต้อม เราไม่ทราบว่า ใครเป็นคู่สามีภรรยากัน แต่ทราบว่า ทั้งสี่คู่ไปงานสังสรรค์แห่งหนึ่ง และมีข้อมูลของบุคคลเหล่านี้เกี่ยวกับ การไปร่วมงานสังสรรค์ ดังนี้ (1) ภรรยาของตุ้ม ไม่รำวงกับสามีตัวเอง แต่รำวงกับสามีของอู๊ด (2) ต้อมและอิ๊ด ไม่ยอมออกรำวงเลย (3) ตุ๋ยและอ๊อดทำหน้าที่เล่นดนตรีตลอดงาน (4) สามีของอิ๊ดไม่ใช่ตุ๋ย จงหาว่าใครเป็นคู่สามีภรรยากัน
“เขากล่าวว่าเขาเป็นชาวมูมู” “นั่นไม่ใช่ความจริง เขาเป็นชาวเมาเมา” ช่วยด้วย! สมมติว่าบนเกาะแห่งหนึ่งมีฝูงชนอาศัยอยู่สองเผ่า เผ่าหนึ่งเป็นชาวมูมู ซึ่งเป็นเผ่าที่พูดจริงเสมอ ข้อความที่เขาพูดจริงเสมอ ข้อความที่เขาพูดทุกข้อความเป็นจริงเสมอ อีกเผ่าหนึ่งเป็นชาวเมาเมา ซึ่งเป็นเผ่าที่พูดเท็จ ข้อความที่เขาพูดทุกข้อความเป็นเท็จเสมอ ในเช้าวันหนึ่งมีหมอกลงจัดรอบๆ เกาะนั้น ชาวเรือซึ่งรู้นิสัยของชนสองเผ่านี้ดีต้องการทราบว่าใครเป็นชนเผ่าใด ชาวเรือจึงตะโกนถามชายคนแรก ซึ่งยืนอยู่บนชายหาดว่า “ท่านเป็นชาวมูมู หรือชาวเมาเมา” เนื่องจากเสียงคลื่นกลบเสียงของชายคนแรกหมดจนไม่ได้ยิน แต่ชาวเรือได้ยินเสียงตะโกนของชายคนที่สองว่า “เขากล่าวว่าเขาเป็นชาวมูมู” “ข้าพเจ้าก็เป็นชาวมูมูเช่นเดียวกับเขา” ชายคนที่สามชี้ไปที่ชายคนแรก และตะโกนบอกว่า “นั่นไม่ใช่ความจริง เขาเป็นชาวเมาเมา” “ข้าพเจ้าเป็นชาวมูมู” จงหาว่าแต่ละคนเป็นชนเผ่าใด
การแก้ปัญหาโจทย์ ลองผิด ลองถูก การใช้เหตุผลประกอบ วิธีขจัด ลองผิด ลองถูก การใช้เหตุผลประกอบ วิธีขจัด การใช้ตารางแสดงความสัมพันธ์
สรุปกระบวนการแก้ปัญหาประกอบด้วย 4 ขั้นตอนคือ การวิเคราะห์และกำหนดรายละเอียดของปัญหา (State the problem) การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development) การดำเนินการแก้ปัญหา (Implementation) การตรวจสอบและปรับปรุง (Refinement)
1. การวิเคราะห์และกำหนดรายละเอียดของปัญหา (State the problem) การระบุข้อมูลเข้า ได้แก่ การพิจารณาข้อมูลและเงื่อนไขที่กำหนดมาในปัญหา การระบุข้อมูลออก ได้แก่ การพิจารณาเป้าหมายหรือสิ่งที่ต้องหาคำตอบ การกำหนดวิธีประมวลผล ได้แก่ การพิจารณาขั้นตอนวิธีการได้มาซึ่งคำตอบหรือ
ตัวอย่างที่ 1 แสดงการวิเคราะห์และกำหนดรายละเอียดของการหาค่าเฉลี่ยของจำนวนเต็ม 5 จำนวน ได้แก่ 3, 7, 2, 4 และ 9 (1) การระบุข้อมูลเข้า ในที่นี้โจทย์กำหนดให้หาค่าเฉลี่ยของจำนวนเต็ม 5 จำนวน ดังนั้น ข้อมูลเข้าได้แก่จำนวน 3, 7, 2, 4 และ 9 (2) การระบุข้อมูลออก จากโจทย์สิ่งที่เป็นคำตอบของปัญหา คือค่าเฉลี่ย (x) ของจำนวนทั้งห้า (3) การกำหนดวิธีการประมวลผล จากสิ่งที่โจทย์ต้องการ "ค่าเฉลี่ย" หมายถึง ผลรวมของจำนวนทั้ง 5 หารด้วย 5 ดังนั้น ขั้นตอนของการประมวลผลประกอบด้วย 3.1 รับค่าจำนวนทั้ง 5 จำนวน 3.2 นำจำนวนเต็มทั้ง 5 มาบวกเข้าด้วยกัน 3.3 นำผลลัพธ์จากข้อ 3.2 มาหารด้วย 5
ปัญหาคณิตคิดสนุก แสดงการวิเคราะห์และกำหนดรายละเอียดของการหาค่า x เมื่อ x คือจำนวนเต็มจำนวนหนึ่งในกลุ่มจำนวนเต็ม 5 จำนวนที่มีค่าเฉลี่ยเป็น 10 และจำนวนอีก 4 จำนวนได้แก่ 3 4 8 และ 12
ปัญหาปริศนาลากเส้น มีจุด 9 จุด ตามที่กําหนดดังรูป จงลากเส้นตรง 4 เส้น ให้ผานจุดทั้ง 9 จุดนี้ โดยไม่ยกปากกา(ดินสอ)
ปัญหา Water มีถังน้ำ 2 ใบ ความจุ 6 และ 8 แกลลอนตามลำดับ ทั้ง 2 ถังไม่มีมาตราบอกปริมาณน้ำ ถ้าต้องการให้ถังที่จุ 8 แกลลอนมีน้ำบรรจุอยู่ 4 แกลลอน ให้หาตัวกระทำการที่จะใช้ในการแก้ปัญหานี้ 6 แกลลอน 8 แกลลอน
2. การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development) ในการออกแบบขั้นตอนวิธีในการแก้ปัญหา ผู้แก้ปัญหาควรใช้แผนภาพหรือเครื่องมือในการแสดงขั้นตอนการทำงานเพื่อให้ง่ายต่อความเข้าใจเช่น ผังงาน (flowchart) รหัสลำลอง (pseudo code) การใช้เครื่องมือช่วยออกแบบดังกล่าวนอกจากแสดงกระบวนการที่ชัดเจนแล้ว ยังช่วยให้ผู้แก้ปัญหาสามารถหาข้อผิดพลาดของวิธีการที่ใช้ได้ง่ายและแก้ไขได้อย่างรวด
3. การดำเนินการแก้ปัญหา (Implementation) หลังจากที่ได้ออกแบบขั้นตอนวิธีเรียบร้อยแล้ว ขั้นตอนนี้เป็นขั้นตอนที่ต้องลงมือแก้ปัญหาโดยใช้เครื่องมือที่ได้เลือกไว้ หากการแก้ปัญหาดังกล่าวใช้คอมพิวเตอร์เข้ามาช่วยงาน ขั้นตอนนี้ก็เป็นการใช้โปรแกรมสำเร็จ หรือใช้ภาษาคอมพิวเตอร์เขียนโปรแกรมแก้ปัญหา ขั้นตอนนี้ต้องอาศัยความรู้เกี่ยวกับเครื่องมือที่เลือกใช้ ซึ่งผู้แก้ปัญหาต้องศึกษาที่เข้าใจและเชี่ยวชาญ ในการดำเนินการอาจพบแนวทางที่ดีกว่าที่ออกแบบไว้ก็สามารถปรับเปลี่ยนได้
4. การตรวจสอบและปรับปรุง (Refinement) หลังจากที่ลงมือแก้ปัญหาแล้ว ต้องตรวจสอบให้แน่ใจว่าวิธีการนี้ให้ผลลัพธ์ที่ถูกต้อง โดยผู้แก้ปัญหาต้องตรวจสอบว่าขั้นตอนวิธีที่สร้างขึ้นสอดคล้องกับรายละเอียดของปัญหา ซึ่งได้แก่ ข้อมูลเข้า และข้อมูลออก เพื่อให้มั่นใจว่าสามารถรองรับข้อมูลเข้าได้ในทุกกรณีอย่างถูกต้องและสมบูรณ์ ในขณะเดียวกันก็ต้องปรับปรุงวิธีการเพื่อให้การแก้ปัญหานี้ได้ผลลัพธ์ที่ดีที่สุด
ปัญหาบางปัญหาไม่สามารถแก้ได้ เชน มีเมือง ๆ หนึ่งมีชางตัดผมอยู 1 คน และเมืองนี้มี กติกาวา การตัดผม ตองใช ชางตัดผมของเมืองนี้ตัดให เทานั้นและหามตัดผมใหตัวเองปญหาเกิดขึ้นที่ชางตัดผมคนนี้จะจัดการกับผมตัวเองไดอยางไร จะเห็นว่าปัญหานี้ไมมีทางแกไดเลย ดังนั้น ปญหาบางอยางก็ไมสามารถใชคอมพิวเตอรชวยแก้ปัญหาใหไดเชนเดียวกัน