ฟุตบอลตัวนั้นเรียกว่า
อัลกอริทึม
คราวนี้นะคะคราวที่แล้วเราพูดถึงอัลกอริทึมของการต้มไข่
ใช่ไหมคะ
มีต้มไข่ทำมาม่า
ทุกคนจะเห็นว่า
แต่ละคนมีกระบวนการของการต้มมาม่าไม่เหมือนกัน
แต่สิ่งที่ได้
เราได้มาม่าเหมือนกัน
พร้อมรับประทานนะคะ
จะเห็นว่า
โจทย์ 1 โจทย์
เราสามารถมีวิธีการแก้ไขปัญหา
ที่แตกต่างกันได้หลากหลายรูปแบบ
นอกจากตัวอัลกอริทึมที่เราพูดไปแล้วนะคะเราแสดงอัลกอริทึม
ในรูปแบบ
ที่เป็นขั้นตอน 123 นะคะ
นอกจากนั้นแล้วเรายังเขียนในลักษณะ
เป็นของผู้ชาย
หรือว่าผังงาน
ค่ะ
OK
โดยผังงานตัวนั้นนี่
เราเริ่มต้น
เราจะมีสัญลักษณ์ของการเริ่มต้น
แล้วก็มีสัญลักษณ์ของการสิ้นสุด
นะคะสิ่งที่อยู่ข้างในก็คือโพสต์
คือสิเหลี่ยม
สี่เหลี่ยมผืนผ้า
Android process นะ
กระบวนการหมายที่เราต้องการ
ตัดสินใจ
จะใช้สีเหลี่ยมข้าวหลามตัด
แล้วแต่การตัดสินใจของเรานี่
ก็คือตัดสินใจว่าจริงหรือไม่จริง
ถ้าจริงให้ทำอะไร
ไม่จริงให้ทำอะไร
แล้วก็คราวที่แล้วนะคะแล้วพูดถึงเรื่องของการเดิน
ซื้อของนก
ที่ไปกินหมู
ให้ทุกคนสามารถเดินได้
โดยการเดินไหน
ที่เราเดินซ้ำๆถูกไหมคะ
อะไรที่เราเดิมซ้ำๆทำเหมือนกันเลย
เราไม่จำเป็นต้นเขียนขั้นตอนเหล่านั้นฉันซ้ำ
เราจะใช้การวนลูป
ข้าจำได้
เราจะเขียนการวนซ้ำนะคะ
แล้วข้างในก็ใช้สัญลักษณ์หรือคำสั่งที่เราเขียน
หลายๆบรรทัดนั่นแหละ
เหลือแค่หนึ่งคำสั่ง
แล้วเราก็ระบุว่าเราทำคำสั่งนั้นอีกครั้ง
นั่นก็คือการวนลูปหรือการทำซ้ำ
คราวนี้จากอัลกอริทึมที่เราเขียนไป
แล้วเราจะรู้ได้อย่างไร
ว่าอัลกอริทึมที่เราเขียนมันมีประสิทธิภาพ
มันดีหรือเปล่า
มาทำงานได้เร็วหรือเปล่า
เราต้องมีวิธีการวัด
นะ
มีวิธีการวัดนะ
เราวัดจากอะไรได้บ้าง
วัดจากเวลา
ที่ใช้ในการประมวลผล
โปรแกรมที่เราเขียนขึ้น
ใช้เวลาประมวลผลเป็นอย่างไร
ใช้หน่วยความจำในคอมพิวเตอร์เป็นอย่างไร
นะคะ
เหมือนกับเทียบ
กับการเรียน
พอเรียนเสร็จก็ต้องมีการวัดผล
รับข้อมูลเหมือนกันอันนี้เหมือนกันทุกคนเลย
การวัดผล
ทุกคนอาจจะแตกต่างกันบางคนได้ก็ได้บีได้เหมือนกันนะคะ
อัลกอริทึมก็มีวิธีการวัดประสิทธิภาพเราจะได้รู้ว่า
สิ่งที่เราเขียนนี่มีประสิทธิภาพมากแค่ไหน
มันคือว่าจากเวลาจากหน่วยความจำนะคะ
ในคอร์สนี้
ครูจะใช้วิธีการ
วิเคราะห์เวลาจากการประมวลผล
เข้าใจนี้วิธีการ
ขอเวลาที่ใช้จากการประมวลผล
คราวนี้
เวลาที่ใช้ในการประมวลผล
จะเป็นการประมาณเวลา
โดยการใช้ตัววัด
ที่
มีชื่อว่า bigo
มิโกะ
เขียนแบบนี้นะ
b i g แล้วก็ขีดแล้วก็ตัว O
ตัวนี้ก็คือ Big O
จริงๆมันมีตัววัด
ประสิทธิภาพหลายตัว
bigo isetta
แต่ที่เราจะใช้กันวันนี้
ก็คือ bigo
ทุกคนจะหา Big O
จากอัลกอริทึม 1 ตัวจะดูว่า
เราจะใช้เวลาในการประมวลผล
คิดเป็นเท่าไหร่
เขาบอกว่า
bigo
ก็คือหน่วยวัดความเร็วของการทำงานของโปรแกรม
โดยที่
เราวัดจาก
จำนวนรอบของการทำงาน
กับข้อมูล
นับจำนวนรอบของการทำงานหมายความว่าอะไร
เราเขียนโปรแกรมแต่ละบรรทัด
เรียงลำดับลงมา
เวลาเรากด
ผมร้านปุ๊บ
มันจะค่อยๆทำงานทีละบรรทัดใช่ไหมคะ
มันจะทำงานทีละบรรทัดใช่ไหมคะ
ไม่ลงมาจากบนลงล่าง
ถ้าเราเขียนโค้ด
เรียงลำดับลงมาเรื่อยๆ
อย่าทำงานเพียงหนึ่งครั้ง
ทำบรรทัดที่ 1 เสร็จ
ทำบรรทัดที่ 27 บรรทัดที่ 3 บรรทัดที่ 4
เรื่อยๆนะคะ
แอบเมื่อไหร่ก็ตาม
ที่เราใช้ Room
หรือว่าการทำงานแบบวนซ้ำ
ที่เราเคยพูดไปแล้วนะตัวนี้
อย่างเช่นตรงนี้นะคะ
เป็นการทำงานแบบวนซ้ำ
แสดงว่า
เราทำงานมากกว่า
1 รอบ
ใช่ไหมคะ
เมื่อไหร่ก็ตามที่มีการใช้รูปหรือว่าวนซ้ำ
แสดงว่าคำสั่งนะนี่
อาจจะมีการทำงานมากกว่า 1 ครั้ง
เราจะต้องรู้ว่า
แล้วมันทำงานกี่ครั้ง
OK
ถ้าไม่มีการวนลูปมันจะทำงาน 1 ครั้งนะคะ
แต่ถ้าเมื่อไหร่ก็ตามที่มีการทำซ้ำหรือวนลูป
มันจะทำงานตามจำนวนรอบที่เรากำหนด
ว่า
แล้วกำหนดให้มันทำงานกี่ครั้ง
เราถึงจะเอามาหานะ
ความเร็วของการทำงานของโปรแกรม
คราวนี้สัญลักษณ์ของ Big O คืออะไร
ก็คือตัวโอ๋ใหญ่
เราจะใช้ตัวก็ใหญ่เป็นสัญลักษณ์
ในการหาความเร็วนะคะ
ของการทำงาน
เราเริ่มต้น
ครูบอกว่า
Big O คือ
การวัดความเร็วของการทำงาน
วัดจากจำนวนรอบ
เพราะฉะนั้น
มาดูว่า
แล้วเรานัดจำนวนครั้งของการทำงาน
จำนวนรอบของการทำงานนี่
นับอย่างไร
มีอยู่ 2 แบบนะคะ
แบบค่าคงที่
ก็คืออย่างที่ครูบอกทำเรียงลำดับนำมาเรื่อยๆ
หรือ
ทำงานแบบหลุด
ลำดับก็คือวนซ้ำ
เราใช้รูปอะไรบ้าง
ในการเขียนโปรแกรมในการวนซ้ำ
แล้วทำรูปอะไรบ้างเอ่ย
ที่เราเขียน python ใช้รูปอะไรบ้างเอ่ย
จำได้ไหม
จำได้ไหมคะ
ในการวนลูปในภาษา python
รถใช้รูปอะไรบ้าง
ใช่เราใช้อะไรคะ
ใน python ที่เขา
เขียน
เมื่อคืนลูก
floor
ใช่
มีไวน์
ใช่ไหมคะ
มีไวน์
อย่างที่เพื่อนบอกนะคะ
อีกตัวหนึ่งคืออะไร
floor
นะคะ
เราจะคุ้นเคยนะ
การทำงานแบบวนซ้ำหรือวุฒินี่
มี For กับ y
For กับ while
ต่างกันอย่างไร
ทราบไหมคะ
เมื่อไหร่เราจะใช้โปรเมื่อไหร่เราจะใช้ Wifi
อันนี้เราสันนิษฐานได้เลยอาจจะทำงาน 1 ครั้งหรือมากกว่า 1 ครั้ง
ขึ้นอยู่กับเงื่อนไข
แสดงว่า
ถ้าเราต้องการวนซ้ำ
เราสามารถใช้ for หรือใช้ WiFi ได้
เมื่อไหร่ที่เราทราบจำนวนรอบ
ที่แน่นอนของการวนซ้ำ
เราจะใช้ for
นะคะเพื่อความง่าย
เมื่อไหร่ก็ตามที่เรารู้จำนวนรอบของการวนซ้ำ
เราจะใช้ for
เช่น
ครูบอกว่าให้วิ่งรอบสนามฟุตบอล 10 รอบ
แสดงว่าต้องวิ่ง 10 รอบใช่ไหม
วิ่ง 11 รอบได้ไหม
ไม่นับถูกไหม
กูบอกว่า 10 รอบก็ต้อง 10 รอบ
เพราะฉะนั้นต้องใช้ for
แต่ถ้าครูบอกว่า
วิ่งจนกระทั่งเพื่อน
เนย์มาร์
รู้ไหมกี่รอบ
ไม่รู้
ไม่รู้ว่านายเอมาตอนไหน
วิ่งเรื่อยๆจนกว่าจะนายเอจะมา
a มาเมื่อไหร่เราถึงจะหยุด
เพราะฉะนั้นเราไม่รู้จำนวนรอบที่แน่นอน
แบบฟอร์ม
ใครคิดว่าเรารู้จำนวนรอบที่แน่นอน
เช่น
แม่ให้เงินมา
มาโรงเรียน
บอกว่า
ไม่ใช่มาโรงเรียนหรอก
แม่ให้ไปซื้อของ
ไปซื้อหมูปิ้ง
ให้เงิน 100 บาทไปซื้อหมูปิ้ง
เรารู้ไหมต้องซื้อได้กี่ไม้
ไม่รู้เหมือนกันนะ
แล้วก็มาใช้วายก็ได้
ซื้อไป
จนกระทั่งเงินหมด
เงินเป็นศูนย์เมื่อไหร่
ถึงหยุด
แม่ก็ซื้อไปเรื่อยๆ
มาซื้อหวยถูกไหม
ซื้อไปเรื่อยๆไม่รู้ว่าจะถูกไหม
ไม่รู้ว่าจำนวนรอบต้องซื้อกี่รอบ
เราแยก
รูปวาดกระดูกพอพอได้
คราวนี้
การนับตัวดำนวลเกลือ
ก็คือ 1 2 3 4
การพับ
จำนวนรอบ
ในการทำงาน
ในกรณีที่ไม่มีรูปการวนซ้ำเป็นคำสั่ง
นะคะเรียงลำดับลงมาเรื่อยๆ
คำสั่งเรียงกันลงมาเรื่อยๆ
เช่นครูมีคำสั่งอยู่ 2 บรรทัด
คำสั่งอยู่ 2 บรรทัดไม่ใช่การวนลูป
บ่มีคำว่า For กับคำว่าวาย
คำสั่งแรก
เขาเท่ากับ 0 คืออะไร
เราให้
ค่ากับตัวแปรที่ชื่อว่าเค้า
c o u n t
ตอนนี้
เมื่อเรารันคำสั่งนี้ปุ๊บ
เมื่อคำสั่งนี้ถูกประมวลผล
เขาจะมีค่าเป็นศูนย์
ทำงาน 1 รอบนี่
บรรทัดที่ 1 เนี่ย
เมื่อผ่านบรรทัดที่ 1 ไปเขามีค่าเป็นศูนย์
เขาจะมีค่าเป็นศูนย์
เสร็จแล้วทำงานบรรทัดที่ 2
บรรทัดที่ 2 คือการคำนวณใช่ไหมคะ
คำนวณเสร็จแล้วก็เก็บในตัวแปรที่ชื่อว่าโชว์
เวลาเรากด Run
เวลาเราเขียนโปรแกรม python แล้วเรากด Run
มันจะอ่านบรรทัดที่ 17
ในกรณีที่ไม่มี error
บรรทัดที่ 1
แล้วก็มาบรรทัดที่ 2
มันหมดแล้วไม่มีอะไรมันก็จบการทำงานใช่ไหมคะ
เพราะฉะนั้น
กูเลยถามว่า
คำสั่งของบรรทัดที่ 1 มันทำงานกี่ครั้ง
คิดว่ามาทำงานกี่ครั้ง
กูกดปุ่ม Run ปุ๊บ
มันมาอ่านบรรทัดที่ 1
ใส่ค่าให้กับตัวแปรเค้า
เสร็จแล้วก็มาทำประทัดที่ 2
คำนวณเศษเก็บในช่องแล้วก็จบ
เพราะฉะนั้นบรรทัดที่ 1 เนี่ยทำงานกี่ครั้ง
1 ครั้ง
ทำงานแค่ 1 ครั้ง
การรัน
บรรทัดที่ 2 ทำงานกี่ครั้ง
กด run run ครั้งหนึ่ง
มันอ่านบรรทัดที่ 11 ครั้งบรรทัดที่ 2 ก็ต้องทำ
1 ครั้งเหมือนกัน
แล้วก็จบ
ใช่ไหมคะ
เพราะฉะนั้น
เมื่อไหร่ก็ตาม
โปรแกรมของเรา
ไม่มีการวนลูป
การทำงานแต่ละบรรทัด
จะทำงาน 1 ครั้งเท่านั้น
เราจะถือเป็นการมอบตัวดำเนินการตรงนี้
ก็คือ 1
1 ครั้ง
ถ้าเราจะหาค่า Big O
เรารับตัวดำเนินการได้แล้วต่อไปเราจะหาค่า Big O
เราต้องหาค่าฟังก์ชันก่อนคือ F
f ย่อมาจากฟังก์ชัน
เท่ากับ
เลขตัวนี้มาจากไหน
1 ตัวนี้ก็คือ 1 ตัวนี้
ของปะทะที่ 1
บวกด้วย 1
บรรทัดที่ 2
คือ
จำนวนรอกของบรรทัดที่ 2
ทำงาน 1 ครั้ง
ทำงาน 1 ครั้งบวกกันเป็นทำงาน 2 ครั้ง
เราถือว่าค่า Big O
ก็คือเป็นโอ 1
เขียนโอวงเล็บเปิดแล้วก็ใส่เลข 1
no1
แล้วถ้าเป็นเงื่อนไขบ้าง
เป็นเงื่อนไขเป็นอะไรมีการตัดสินใจเมื่อไหร่ก็ตามที่เราตัดสินใจ
คือการเลือก
การตัดสินใจคือการเลือกถูกไหมคะ
เลือกว่าจะไปทางซ้ายหรือจะไปทางขวาเวลาเรา
สี่แยกแล้วต้องตัดสินใจ
ต้องตัดสินใจก่อน
เราจะตรงไปเลี้ยวซ้ายเลี้ยวขวา
เพราะฉะนั้น
การตัดสินใจเราใช้คำสั่ง
ใช้คำสั่ง If
ใน python
คือถ้า
ถ้า
แล้วตามด้วยเงื่อนไข
ใช่ไหมคะ
ข้างในตรงนี้คือเงื่อนไข
เงื่อนไขที่ครูกำหนดคือ
ถ้า n น้อยกว่า 0
n คือตัวเลขเดี๋ยวเราจะไม่เซ็นค่า n กัน
จาก Code ตัวนี้นะคะ
ถ้า n น้อยกว่า 0 ให้ทำอะไร
ค่าเงื่อนไขตัวนี้เป็นจริงจะมาทำบรรทัดที่ 2
โอเคจะมาทำมาทักที่ 3 นะคะพูดผิด
จะมาธรรมชาติที่ 3
ถ้าเงื่อนไขตัวนี้เป็นจริง
มาทำบรรทัดที่ 3
ก็คือให้เป็นคำว่า
งั้นก็จีบ integer
เอวคืออะไรคะ
ถ้าเงื่อนไขตัวนี้
ไม่จริง
ก็คือ
n มันมาก
เท่ากับ
0
ใช่ไหมคะ
เงื่อนไขตรงนี้ไม่จริงคืออะไร
คือเอนมากกว่าเท่ากับศูนย์
ตรงคำถามกับ
ถ้าข้างบนไม่จริง
ก็คือเอ็นเรานี่ต้องมากกว่าหรือเท่ากับ 0
เราจะทำอะไร
hostess
นะคะ
คราวนี้
ทุกคนช่วยคุยดูนะ
สิ่งที่เราจะต้องตอบครูให้ได้ว่า
ไปทำงานประทับที่ 3
หรือทำงานบรรทัดที่ 7 นะคะ
เดี๋ยวให้ยกมือนะ
กูถามตัวเลข
ผู้แทนค่า n ใดๆให้
เดี๋ยวให้เราลองบอกครูหน่อยว่า
เราจะทำงานบรรทัดที่ 3
เหลือบรรทัดที่ 7
ด้วยเงื่อนไขตัวนี้ถ้า n น้อยกว่า 0
จะทำบรรทัดที่ 3
ถ้า a มากกว่า
เท่ากับศูนย์
ครูกำหนดให้
n =
20
ธรรมทัศน์ไหนเอ่ย
บรรทัดไหนดี
n = 20 นะ
คำถามคือ
จะค้นตัวนี้
ใช่ไหมคะ
โค้ดตัวนี้ที่ครูให้มา
มาครูแทน Android ด้วยตัวเลขนี้
เราจะ