--- title: การทำซ้ำ (7.55 นาที) subtitle: date: วันพฤหัสบดีที่ 28 มีนาคม 2567 เวลา 11.27 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) พวกเราเคยเจอปัญหาแบบนี้บ้างไหมครับ ปัญหาที่มีลักษณะเดียวกันซ้ำหลายๆรอบ พวกเรา ลองไปชมสถานการณ์ตัวอย่างต่อไปนี้ดูนะครับ ควรจะสั่งอย่างไรเพื่อให้สั่งครั้งเดียวแล้วสามารถทำงานได้ตลอดนะ อ๋อ ใช้คำสั่งทำซ้ำเข้ามาช่วยดีกว่า จากสถานการณ์ตัวอย่าง เราจะพบว่า คุณครูได้สั่งงานให้นักเรียนทำการจัดโต๊ะ โดยใช้คำสั่งทีละคำสั่ง คุณครูจำเป็นจะต้องสั่งคำสั่ง หลายครั้งมาก คุณครูจะเลือกใช้การทำซ้ำมาแก้ปัญหา นอกจากการทำซ้ำที่เราพบเจอในชีวิตประจำวันแล้วเรายังสามารถ การทำซ้ำในสำนักงานอื่นได้อีกครับ ตัวอย่างให้ครับ เกมทายเลขมันเริ่มจะแบ่งผู้เล่นเป็น 2 ฝ่ายฝ่ายแรก เป็นผู้เขียนคำตอบไว้ในกระดาษซึ่งมีค่าตั้งแต่ 0 ถึง 100 นั้นให้ฝ่ายที่ 2 ขายตัวเลข เมื่อไปที่ 2 ทายตัวเลขมีค่ามากกว่าคำตอบให้ฝ่ายแรก บอกว่าถ้ามากเกินไป ที่ 2 คลายตัวเลขอีกถ้ามีค่าน้อยกว่าคำตอบ ให้ตอบว่าข้าน้อยเกินไปและเมื่อไปที่ 2 คล้ายตัวเลข หมายแรกจะตอบว่า ทายถูกต้องจากนั้นจะสลับกันเล่น โดยฝ่ายไหนทายตัวเลขได้น้อยครั้งกว่า เป็นผู้ชนะ เราไปชมวีดีโอสาธิตการเล่นเกมทายเลขกันครับ เสร็จแล้วราคาได้เลย 15 เกินไป เกินไปเกินไป น้อยเกินไป ถูกแล้ว เมื่อเราทำกิจกรรมเกมทายเลขเรียบร้อยแล้วนะครับ พวกเราลองร่วมกัน เขียนรหัสลำลองของเกมทายเลขที่ดูนะครับ เป็นยังไงบ้างครับ เขียนรหัสลำลองกันเสร็จแล้วใช่ไหม ลองดูนะครับว่าเหมือนของผมหรือเปล่าเริ่มต้นจากเราสุ่มตัวเลขตั้งแต่ 1 ถึง 100 ครับจากนั้นไปเก็บไว้จนจบแปลก 11 และจะทำคำสั่งต่อไปนี้ไปเรื่อยๆ เริ่มจากเรารัก ถ้าจะพูดเล่น ที่ถ่ายเป็นจำนวนเต็มมาเก็บไว้ซื้อกาแฟอันเซอร์ จากนั้น ตรวจสอบครับว่าต่อไปอาจจะมีค่าน้อยกว่า 11 ไหม ถ้าใช่ เราจะตอบกูเล่นไปว่าถ้าน้อยเกินไป แต่ถ้าไม่ใช่เราจะมาตรวจสอบอีกครับว่าตัวแป้นเสริมมากกว่า 41 ถ้าใช่เราจะตอบไปว่าห้ามมากเกินไป และ เซ็นเซอร์มีค่าเท่ากับ 48 เมื่อไหร่ เราก็จะตอบกูเล่นไปว่าทายถูกแล้ว และให้จบการทำงาน แต่ในกรณีที่ยังขายไม่ถูกเราจะวนกลับไปรับค่าใหม่ และตรวจสอบใหม่อีกครั้งนึงไปเรื่อยๆ จนกระทั่งเจอเงื่อนไขจบการทำงานครับ แล้วใช้วิธีการถ่ายแบบสูง ผังรายการทายน้อยที่สุดและพบคำตอบ คืนหนึ่งครั้ง จำนวนครั้งในการทานมากที่สุด โอกาสถึง 100 ครั้งเรามีกระบวนการ วิธีการ ในการค้นหาข้อมูล เราจะใช้ ในการถ่ายน้อยที่สุด และพบคำตอบคือ 1 ครั้งเช่นกัน แต่จำนวนครั้งในการถ่ายมากที่สุด จะเหลือเพียงแค่ 7 ครั้งเท่านั้น เราลองหาข้อมูลเกี่ยวกับการค้นหาข้อมูลหรือการ search ข้อมูลนะครับ binary search ว่าน่าสนใจเลยทีเดียวนะครับ ลองหาข้อมูลดูนะครับ ปัญหาอย่างหนึ่งของการทำซ้ำคือ แล้วเมื่อไหร่ล่ะเราจึงได้หยิบการทำซ้ำนั้นมาใช้งานเราลองกลับไปศึกษาเรื่อง พิจารณารูปแบบ หรือ internet connection เราจะพบว่า เมื่อไหร่ก็ตามที่เราพิจารณารูปแบบการแก้ปัญหาแล้วพบว่ามีรูปแบบการแก้ปัญหาที่เหมือนกัน เราก็จะสามารถยึดการทำซ้ำมาแก้ปัญหาในส่วนนี้ได้ครับ จากบทเรียนที่เรียนมา เราจะพบว่าการทำซ้ำนั่นนิ้ว 2 รูปแบบใหญ่ๆครับ รูปแบบแรกคือ การทำซ้ำที่มีจำนวนรอบที่ชัดเจนอย่างเช่นคุณครูสั่งให้นักเรียนยกโต๊ะครับ จะสังเกตว่านักเรียนจะทำ ไปเรื่อยๆจนกระทั่งหมดจำนวนโต๊ะก็จะหยุดการทำงาน กับอีกรูปแบบหนึ่งครับคือการทำซ้ำที่ไม่มีจำนวนรอบที่ชัดเจนครับ จบการทำงานก็ต่อเมื่อตรงตามเงื่อนไข ยกตัวอย่างเช่นเกมทายเลขครับ จะสังเกตว่าเกมไทยรจะไม่รู้ว่าจะจบการทำงานเมื่อครั้งที่เท่าไหร่ จบการทำงานก็ต่อเมื่อ ตรงตามเงื่อนไขครับ แล้วพวกเรา ตุ๊กตาคำซ้ำในรูปแบบใดบ้างและเป็นอย่างไรลองคิดดูนะครับ