วิทย์ม.ต้น: เขียนไพธอนคำนวณเลข Fibonacci, เว็บ Snakify.org

การบ้านสัปดาห์ที่แล้วของเด็กๆม.2-3 คือไปหาวิธีคำนวณเลขฟิโบแนคชี (Fibonacci numbers) ครับ วันนี้ผมเลยให้เด็กๆดูคลิปเกี่ยวกับเลขเหล่านี้ในธรรมชาติ และแสดงวิธีคำนวณให้ดูหลายแบบคือแบบ recursion, แบบ dynamic programming (จำสิ่งที่เคยคำนวณไว้แล้วจะได้ไม่ต้องคำนวณใหม่), แบบ loop ตรงๆ, และแบบ divide-and-conquer (แบ่งปัญหาการคำนวณ F(n) ให้อยู่ในรูปของ F(n/2) และ F(n/2 – 1))

คลิปทีควรดูมีดังนี้ครับ:

และเว็บเพจสองหน้านี้ครับ: http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibnat.html และ http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibnat2.html

ส่วนวิธีคำนวณที่ดูในห้องหน้าตาประมาณนี้ครับ:

วิธีที่ฟังก์ชั่นเรียกตัวเองแบบ recursion
วิธีคำนวณแบบ dynamic programming หรือ caching โดยเก็บคำที่เคยคำนวณไว้แล้วไว้ใช้ใหม่ในการคำนวณอื่นๆ
วิธีคำนวณแบบใช้ loop วนคำนวณตรงๆ
วิธีคำนวณแบบ divide-and-conquer ทำปัญหาใหญ่ให้เป็นปัญหาที่เล็กลงและแก้ง่ายขึ้น

ดาวน์โหลดโค้ดต่างๆใน Jupyter Notebook ได้ที่นี่ หรือดูออนไลน์ได้ที่นี่ครับ

สำหรับเด็กม. 1 ผมโชว์วิธีสร้างลิสต์ด้วย list comprehension และให้เด็กๆเริ่มศึกษาและทำแบบฝึกหัดที่เว็บ Snakify สัปดาห์ละบทครับ

การสร้างลิสต์ด้วย list comprehension ครับ

ดาวน์โหลดโค้ดต่างๆใน 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.