วิทย์ม.ต้น: เขียนโปรแกรม Python หาด้านสามเหลี่ยมมุมฉากที่เป็นจำนวนเต็ม (เช่น 3-4-5), หัดใช้ range()

สัปดาห์ที่แล้วเด็กม. 2-3 ได้การบ้านไปให้พยายามหาเลขจำนวนเต็ม a, b, c ที่สามารถเป็นด้านของสามเหลี่ยมมุมฉากได้ และ a < b < c ซึ่งแปลว่า a2 + b2 = c2 โดยเราจะดูถึง c มีขนาดไม่เกิน 1,000

เด็กๆหลายคนก็พยายามทำและสำเร็จ วันนี้ผมจึงแสดงขบวนการที่ผมเขียนแต่ละขั้นตอนว่าผมทำอย่างไร ให้เห็นว่าผมเขียนทีละนิดและตรวจสอบว่าแต่ละขั้นตอนทำงานอย่างที่ผมคิดหรือเปล่า เพิ่มการทำงานไปทีละน้อยๆจนทำงานครบอย่างที่ต้องการ ไม่ใช่เขียนโปรแกรมไปทีละเยอะๆแล้วผลที่ได้ผิดแต่งงไม่รู้ว่าผิดตรงไหน เป็นตัวอย่างให้เด็กๆไปทดลองทำตามครับ

โค้ดม. 2-3 ของวันนี้อยู่ใน Jupyter Notebook อันนี้ครับ

จริงๆแล้วปัญหานี้เรียกว่า Pythagorean Triple และมีวิธีหาที่ดีกว่านี้ครับ แต่คณิตศาสตร์ที่เกี่ยวข้องซับซ้อนเกินความเข้าใจของเด็กๆ จึงใช้วิธีที่เด็กเข้าใจให้คอมพิวเตอร์ทำงานลองคำนวณและตรวจสอบให้ ส่วนวิธีที่ดีกว่านี้สามารถอ่านได้ที่ Pythagorean triple และ Tree of primitive Pythagorean triples นะครับ

สำหรับเด็กม. 1 ผมสอนให้รู้จักการทำงานซ้ำๆโดยใช้ for x in range(…) และให้รู้จักสร้างฟังก์ชั่นง่ายๆไปคำนวณสิ่งต่างๆในวิชาอื่นๆดูครับ แล้วให้ใช้ความรู้นี้คำนวณดูอัตราการเติบโตที่เปอร์เซ็นต์ต่างๆว่าต่างกันมากแค่ไหนครับ

โค้ดม. 1 ของวันนี้อยู่ใน Jupyter Notebook อันนี้ครับ

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.