Category Archives: computer

วิทย์ม.ต้น: หัดไพธอน (Flow Control), หัด Scratch (ให้บวกเลข, ประมาณค่าพาย Pi)

วันนี้เราคุยกันเรื่องเหล่านี้ครับ:

1. คลาสรุ่นพี่ เรียน Python จากหนังสือฟรีบนเว็บชื่อ Automate the Boring Stuff with Python โดยเขียนโปรแกรมใน Mu-Editor เราคุยกันเรื่อง Boolean values, comparison operator, Boolean operators, flow control, if-else, while, break, continue, for loop, range, import, sys.exit()

2. คลาสรุ่นพี่ได้เล่นเกมทายเลขช่วง 1-100 ถ้ารู้ว่าคำตอบมากกว่าหรือน้อยกว่าที่ทายไป จะไม่ต้องทายเกินกว่า 7 ครั้ง เพราะถ้าเราแบ่งครึ่งช่วงที่เป็นไปได้เรื่อยๆช่วงใหญ่ๆ 1-100 จะหดลงเหลือช่วงขนาด 1 ในไม่เกิน 7 ครั้ง ทั้งนี้เพราะ 2 ** 7 = 128 ซึ่งมากกว่า 100

ทำนองเดียวกัน การทาย 10 ครั้งจะสามารถทายเลขในช่วง 1-1024 หรือทาย 20 ครั้งจะสามารถทายเลขในช่วง 1-1,048,576

3. รู้จักใช้เว็บ http://pythontutor.com/visualize.html เพื่อกดดูการทำงานทีละขั้นตอนของโปรแกรมไพธอนที่เราเขียน

การบ้านคือไปอ่านและพิมพ์ตาม Chapter 3 ต่อและแก้ปัญหาเหล่านี้โดยเขียนโปรแกรมไพธอนครับ: 1) โจทย์ข้อ 1 ของ Project Euler และ 2) ถ้าเขียนเลข 7 หลักโดยใช้ตัวเลข 1, 2, 3, 4, 5, 6, 7 ทุกตัว ตัวละหนึ่งครั้ง โอกาสที่เลข 7 หลักที่เขียนจะหารลงตัวด้วย 11 เท่ากับเท่าไร (ยกตัวอย่างเช่น 1235476, 2345761, และ 7645132 หารด้วย 11 ลงตัว แต่ 1234567, 234716, หรือ 7645123 หาร 11 ไม่ลงตัว)

3. คลาสรุ่นน้องหัดสอน Scratch ให้คำนวณตัวเลขให้เรา เช่นหาค่า 1+2+3+…+100, บวกเลขคี่บวกที่ไม่เกิน 100, หาค่าของ 1+1/2+1/4+1/8+…+1/1024, และประมาณค่า π (พาย) = 4/1 – 4/3 + 4/5 – 4/7 + 4/9 – 4/11 +…

บวกเลข 1, 2, 3…, 100 ตัวอย่างนี้อยู่ที่ https://scratch.mit.edu/projects/431724939/
บวกเลขคี่ 1, 3, 5, …, 99 ตัวอย่างนี้อยู่ที่ https://scratch.mit.edu/projects/431728786/
บวกเลข 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + … + 1/1024 ตัวอย่างนี้อยู่ที่ https://scratch.mit.edu/projects/431731894/
ประมาณค่า π ด้วยสูตร Gregory-Liebniz (https://en.wikipedia.org/wiki/Leibniz_formula_for_π ):
π = 4/1 – 4/3 + 4/5 – 4/7 + 4/9 – 4/11 +…
ตัวอย่างนี้อยู่ที่  https://scratch.mit.edu/projects/431738509/

4. คลาสรุ่นน้องได้รู้จักเว็บหาวันเกิดตัวเองใน π ที่ https://www.piday.org/find-birthday-in-pi/

การบ้านรุ่นน้องคือให้ไปสั่งให้ Scratch คำนวณค่า π  จากสูตรนี้ดูครับ:

วิทย์ม.ต้น: Google-Fu, หัดออกเสียงภาษาอังกฤษ, Microsoft Math Solver, เล่นกับแรงตึงผิว

วันนี้เราคุยกันเรื่องเหล่านี้ครับ:

1. ได้รู้จักวิธีค้นหาด้วย Google ที่ซับซ้อนและเฉพาะเจาะจงมากขึ้น (มีคนเรียกกันเล่นๆว่า Google-Fu เลียนแบบ Kung-Fu หรือกังฟู) ได้รู้จักเครื่องหมายลบ, เครื่องหมายคำพูด, ตัวเชื่อม (AND และ OR), ค้นหาเฉพาะเว็บ (site:), ค้นหาเฉพาะประเภทไฟล์ (filetype:)

2. ดูตัวอย่างจากที่ภาพเหล่านี้ที่เป็นภาษาไทย:

สำหรับคนที่ยังไม่เคยใช้กูเกิ้ลหาแบบนี้นะครับ ลองดูครับ มีประโยชน์ หรือลองเข้าไปที่นี่ก็ได้ครับ: https://www.google.com/advanced_search via Coco Tan

Posted by Pongskorn Saipetch on Sunday, November 1, 2015

3. ถ้าจำวิธีใช้ต่างๆไม่ได้ให้เข้าไปที่หน้า Google Advanced Search แล้วกรอกฟอร์มค้นหาได้

4. ตัวอย่างเพิ่มเติมหาอ่านได้ที่ The Beginner’s Guide to Google-Fu? 10 tricks to be a Google-Fu Blackbelt, Improving Your Google-Fu: How To Find Anything You Want, และ dorking (how to find anything on the Internet)

5. รู้จักใช้ https://images.google.com ค้นหาด้วยภาพ เช็คว่าภาพซ้ำหรือมีข่าวปลอมเอาภาพจากที่อื่นมาใช้หรือเปล่า

6. หัดใช้แอพ Google บนโทรศัพท์หัดออกเสียงคำภาษาอังกฤษ:

[ตัวช่วยสอนเด็กออกเสียงภาษาอังกฤษ] ถ้าเราถาม Google บนโทรศัพท์ว่าคำภาษาอังกฤษออกเสียงอย่างไร จะมีปุ่ม Practice…

Posted by Pongskorn Saipetch on Thursday, April 9, 2020

7. ใช้เว็บอ่านออกเสียงให้เราฟังที่ https://ttsdemo.com

8. รู้จักใช้แอพ Microsoft Math Solver ที่มีให้โหลดสำหรับโทรศัพท์ (iOS และ Android) และแบบใช้บนเว็บทั้งแบบภาษาอังกฤษและภาษาไทย สามารถแก้ปัญหาคณิตศาสตร์ต่างๆและอธิบายขั้นตอนการแก้ได้ด้วย

แบบโทรศัพท์สามารถถ่ายรูปโจทย์เราแล้วแก้ปัญหาให้ได้ด้วย

9. เด็กๆเล่นลอยคลิปหนีบกระดาษโลหะบนผิวน้ำกัน เล่นกับแรงตึงผิวของน้ำ

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

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

เอากระดาษทิชชูรองคลิปแล้วเอาไปลอยครับ
สักพักกระดาษทิชชูจะจม เหลือแต่คลิปลอยอยู่

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

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

แล้วเด็กๆก็หัดทำลอยคลิปกันเองครับ จะเห็นน้ำยุบตัวลงไปชัดเจนเลย

วิทย์ม.ต้น: รู้จัก Simulation (การจำลองสถานการณ์ด้วยคอมพิวเตอร์) เพื่อตอบคำถามที่สนใจ

วันนี้เด็กๆม.ต้นรู้จักการพยายามตอบคำถามที่น่าสนใจแต่หาคำตอบตรงๆไม่เป็น จึงพยายามหาคำตอบด้วย simulation หรือการจำลองสถานการณ์ด้วยคอมพิวเตอร์ครับ

สมมุติว่ามีคนสองคนชื่อ A และ B มาเล่นเกมกัน แต่ละคนจะเลือกหัว (H) หรือก้อย (T) เรียงกันสามตัว เช่น A อาจเลือกก้อยหัวหัว (THH) และ B อาจเลือกหัวหัวหัว (HHH) จากนั้นผู้เล่นก็โยนเหรียญไปเรื่อยๆจนแบบที่เหรียญออกสามครั้งสุดท้ายตรงกับแบบที่ A หรือ B เลือกไว้ ถ้าตรงกับคนไหนคนนั้นก็ชนะ เช่นถ้าโยนเหรียญไปเรื่อยๆแล้วออก HHTHTTTHH จะพบว่าในการโยนแปดครั้งแรกยังไม่ตรงกับ THH หรือ HHH สักที แต่พอโยนครั้งที่ 9 ออก H ทำให้สามครั้งสุดท้ายเป็น THH ซึ่งตรงกับ A เลือกไว้ ในกรณีนี้ A ก็ชนะ

คำถามคือในกรณีเหล่านี้ใครจะมีโอกาสชนะมากกว่ากัน เป็นอัตราส่วนเท่าไร

  1. A เลือก THH, B เลือก HHT
  2. A เลือก HTT, B เลือก HHT

จริงๆเกมนี้เรียกว่า Penney’s Game และสามารถคำนวณด้วยวิธีความน่าจะเป็นได้ แต่ถ้าเราไม่รู้ว่าจะคำนวณอย่างไร เราสามารถจำลองการเล่นเกมนี้หลายๆครั้งแล้วนับจำนวนครั้งที่แต่ละคนชนะก็ได้

หน้าตาฟังก์ชั่นโยนเหรียญไปเรื่อยๆจนมีคนชนะจะเป็นประมาณนี้ครับ:

เราสามารถทดลองเอาคู่แข่งขันมาแข่งซ้ำๆกันหลายๆครั้งเพื่อดูอัตราส่วนการแพ้ชนะได้แบบนี้ครับ:

เราสามารถจับคู่แข่งขันที่เป็นไปได้ทั้งหมดมาแข่งกันแล้วดูอัตราส่วนการแพ้ชนะแบบนี้ก็ได้ครับ:

สามารถดาวน์โหลด Jupyter Notebook ที่มีตัวอย่างโค้ดได้ที่นี่ครับ