วิทย์โปรแกรมมิ่งของม.2-3 เริ่มด้วยเฉลยการบ้านวาดกราฟด้วย PyPlot ที่เด็กๆไปหัดใช้กันมา มีการดูรูปกราฟว่าตัดแกน x แถวๆไหนแล้วใช้ bisection method หาค่า x ที่ละเอียดขึ้น:
มีการสร้างลิสต์ค่า x อย่างระมัดระวังไม่ให้เกิดการหารด้วยศูนย์ขึ้น:
กิจกรรมใหม่วันนี้ได้แรงบันดาลใจจากกระทู้พันทิพเรื่องการบ้านเด็กป.4 https://pantip.com/topic/39141834 ที่ถามว่าถ้า A-H เป็นตัวเลขโดดๆไม่ซ้ำกันและ AFBF + CGHB + DAFG +AEAB = BCDC ให้หาค่าว่า A-H มีค่าอะไรบ้าง เด็กๆ ม.1-3 เลยจะทดลองแก้และสร้างปัญหาตระกูลนี้กันด้วยคอมพิวเตอร์
วิธีที่เราใช้จะเป็นการบอกให้คอมพิวเตอร์ไล่ค่าที่เป็นไปได้ของตัวอักษรแต่ละตัวแล้วดูว่าทำให้สมการเป็นจริงไหม ความจริงแล้วมีวิธีอื่นๆที่สามารถทำงานได้เร็วกว่าแต่เด็กๆยังไม่มีพื้นฐานความรู้ของวิธีเหล่านั้น เราจึงใช้วิธีตรงไปตรงมาที่สุดที่พอจะนั่งรอได้ก่อน
ม.2-3 จะใช้ list comprehension ที่เคยใช้ไปในการบ้าน PyPlot ส่วนม.1 จะใช้ for loop กัน เด็กๆทั้งสองกลุ่มได้เห็นการใช้ len(set(x)) == len(x) ว่าลิสต์ x มีสมาชิกซ้ำกันหรือไม่ (อ่านเกี่ยวกับ set ได้ที่ Sets in Python หรือที่ ภาษา python เบื้องต้น บทที่ ๑๓: เซ็ต)
การบ้านของเด็กๆคือให้ไปหัดสร้างโจทย์ประเภทนี้กันมา สัปดาห์หน้าจะลองดูว่าให้คอมพิวเตอร์สร้างโจทย์ให้ได้อย่างไร
Jupyter notebook ของ ม.2-3 โหลดได้ที่นี่ หรือดูออนไลน์ได้ที่นี่
Jupyter notebook ของ ม.1 โหลดได้ที่นี่ หรือดูออนไลน์ได้ที่นี่
Jupyter notebook ไล่แก้ปัญหา AFBF + CGHB + DAFG +AEAB = BCDC โหลดได้ที่นี่ หรือดูออนไลน์ได้ที่นี่
One thought on “วิทย์ม.ต้น: หัดแก้และสร้างโจทย์ตัวอักษรแทนตัวเลขด้วยไพธอนกัน”