--- title: ฝึก Revoice (ห้องเรียนสกลฯ) โครงสร้างอัลกอริทึม วันที่ 21 มิ.ย. 2565 subtitle: date: วันจันทร์ที่ 27 มิถุนายน 2565 เวลา 09.00 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) ไขปัญหาตัวนั้นเรียกว่าอัลกอริทึมแค่นี้นะคะคราวที่แล้วเราพูดถึงอัลกอริทึมของการต้มไข่ใช่ไหมคะมีต้มไข่ทำมาม่านะทุกคนจะเห็นว่าแต่ละคนมีกระบวนการของการต้มมาม่าไม่เหมือนกันแต่สิ่งที่ได้เราได้มาม่าเหมือนกันพร้อมรับประทานนะคะจะเห็นว่าโหลด 1 โจทย์เราสามารถมีวิธีการแก้ไขปัญหาที่แตกต่างกันได้หลากหลายรูปแบบนอกจากตัวอัลกอริทึมที่เราพูดไปแล้วนะคะเราแสดงอัลกอริทึมในรูปแบบที่เป็นขั้นตอน 123 นะคะนอกจากนั้นแล้วเรายังเขียนในลักษณะที่เป็นของโฟชาร์ตหรือว่าผังงานค่ะOKโดยผังงานตัวนั้นนี่เราเริ่มต้นเราจะมีสัญลักษณ์ของการเริ่มต้นแล้วก็มีสัญลักษณ์ของการสิ้นสุดนะคะสิ่งที่อยู่ข้างในก็คือ processคือสี่เหลี่ยมสี่เหลี่ยมผืนผ้าแทนด้วยโพสต์เศษนะกระบวนการไหนที่เราต้องการจะสิ้นใจเราจะใช้สี่เหลี่ยมข้าวหลามตัดแล้วด้วยการตัดสินใจของเรานี่ก็คือตัดสินใจว่าจริงหรือไม่จริงถ้าจริงให้ทำอะไรไม่จริงให้ทำอะไรแล้วก็คราวที่แล้วนะคะเราพูดถึงเรื่องของการเดินซื้อของนกที่ไปกินหมูให้ทุกคนสามารถเดินได้โดยการเดินไหนที่เราเดินซ้ำๆถูกไหมคะเราไม่จำเป็นต้นเขียนขั้นตอนเหล่านั้นฉันซ้ำเราจะใช้การวนลูปถ้าจำได้เราจะเขียนการวนซ้ำนะคะ แล้วข้างในก็ใช้สัญลักษณ์หรือคำสั่งที่เราเขียนหลายบรรทัดนั่นล่ะ เหลือแค่ 1 คำสั่งแล้วเราก็ระบุว่าเราทำคำสั่งนั้นอีกครั้งมันก็คือการวนลูปหรือการทำซ้ำคราวนี้จากอัลกอริทึมที่เราเขียนไปแล้วเราจะรู้ได้อย่างไรก็อันที่เราเขียนมันมีประสิทธิภาพมันดีหรือเปล่ามาทำงานได้เร็วหรือเปล่าเราต้องมีวิธีการวัดนะมีวิธีการวัดนะวัดจากอะไรได้บ้างวัฎจักรเวลาที่ใช้ในการประมวลผลโปรแกรมที่เราเขียนชื่อใช้เวลาประมวลผลเป็นอย่างไรใช้หน่วยความจำในคอมพิวเตอร์เป็นอย่างไรนะคะเหมือนกับเทียบกับการเรียนเรียนเสร็จก็ต้องมีการวัดผลรับข้อมูลเหมือนกันครูสอนเหมือนกันทุกคนเลยแปลการวัดผลทุกคนอาจจะแตกต่างกันบางคนได้ก็ได้เหมือนกันนะคะอัลกอริทึมก็มีวิธีการวัดประสิทธิภาพเขาจะได้รู้ว่าสิ่งที่เราเขียนนี่มีประสิทธิภาพมากแค่ไหน มันคือว่าจากเวลาจากหน่วยความจำนะคะ ในคอร์สนี้ใช้วิธีการเวลาจากการประมวลผล เราจะเรียนเรื่องที่ใช้วิเคาะห์เวลา แค่นี้วิธีการวิเคราะห์เวลาที่ใช้จากการประมวลผลคราวนี้เวลาที่ใช้ในการประมวลผลจะเป็นการประมาณเวลาโดยการใช้วัดที่มีชื่อว่า Bio-O เขียนแบบนี้มี Big-O แล้วก็กินตัวนี้ก็คือ Big-O จริง ๆ มันมีตัววัดประสิทธิภาพหลายตัว Big-O Acacia แต่ที่เราจะใช้กันวันนี้ก็คือ Big-O ทุกคนจะหา Big-O จากอัลกอริทึม 1 ตัวจะดูว่าเราจะใช้เวลาในการประมวลผลคิดเป็นเท่าไหร่เขาบอกว่า Big-O โดยที่เราวัดจากจำนวนรอบของการทำงานกับข้อมูลนับจำนวนรอบของการทำงานหมายความว่าอะไรเราเขียนโปรแกรมแต่ละบรรทัดเราเขียนโปรแกรมแต่ละบรรทัดเรียงลำดับลงมาเวลาเรากดปุ่มร้านปุ๊บมันจะค่อย ๆ ทำงานทีละบรรทัดใช่ไหมคะ มันจะทำงานทีละบรรทัดใช่ไหมคะ ไล่ลงมาจากบนลงล่างถ้าเราเขียนโค้ดเรียงลำดับลงมาเรื่อย ๆ อย่าทำงานเพียงหนึ่งครั้งทำบรรทัดที่ 1 เสร็จ บรรทัดที่ 2 เสร็จ บรรทัดที่ 3 บรรทัดที่ 4 เรื่อย ๆ นะคะ แบบเมื่อไรก็ตามที่เราใช้ลูบหรือว่าการทำงานแบบวนซ้ำที่เราเคยพูดไปแล้วนะตัวนี้อย่างเช่นตรงนี้นะคะ เป็นการทำงานแบบวนซ้ำแสดงว่าเราทำงานมากกว่า 1 รอบใช่ไหมคะ เมื่อไหร่ก็ตามที่มีการใช้ลูบหรือว่าวนซ้ำ แสดงว่าคำสั่งนั้นนี่อาจจะมีการทำงานมากกว่า 1 ครั้งว่าจะต้องรู้ว่าแล้วมันทำงานกี่ครั้ง โอเคถ้าไม่มีการวนลูปมันจะทำงาน 1 ครั้งนะคะแต่ถ้าเมื่อไหร่ก็ตามที่มีการทำซ้ำหรือวนลูปมันจะทำงานตามจำนวนรอบที่เรากำหนดว่าเรากำหนดให้มันทำงานกี่ครั้งเราถึงจะเอามาหาความเร็วของการทำงานของโปรแกรมเช้านี้สัญลักษณ์ของ Big-O คืออะไรก็คือตัว O ใหญ่เราจะใช้ตัวก็ใหญ่เป็นสัญลักษณ์ในการหาความเร็วนะคะของการทำงานเราเริ่มต้นอย่างที่ครูบอกว่าโอเค คือ การวัดความเร็วของการทำงานวัดจากจำนวนรอบเพราะฉะนั้น เรามาดูว่าแล้วเรานัดจำนวนครั้งของการทำงานลึกจำนวนรอบของการทำงานนี่อย่างไรมีอยู่ 2 แบบนะคะแบบค่าคงที่ ก็คืออย่างที่ครูบอกทำเรียงลำดับนำมาเรื่อย ๆ หรือทำงานแบบลูปลำดับ ก็คือวนซ้ำเราใช้รูปอะไรบ้างในการเขียนโปรแกรมในการวนซ้ำ เราใช้ลูปออะไรบ้างเอ่ย ตอนที่เราเขียน Python ใช้ลูปอะไรบ้างเอ่ย จำได้ไหมจำได้ไหมคะในการวนลูปในภาษา Python เราใช้รูปอะไรบ้างใช่แล้วใช้อะไรคะ แฟชั่นที่เขาเขียนก็คือลูก ใช่มี Why ใช่ไหมคะ มี Why อย่างที่เพื่อนบอกนะคะ อีกตัวหนึ่งคืออะไร Floor นะคะ ว่าจะคุ้นเคยนะการทำงานแบบวนซ้ำหรือวุฒินี่ For กับ For กับ Why ต่างกันอย่างไรทราบไหมคะ เมื่อไรเราจะใช้พร้อม เมื่อไรราจะใช้ Wifi วันนี้เราสันนิษฐานได้เลยอาจจะทำงาน 1 ครั้งหรือมากกว่า 1 ครั้งขึ้นอยู่กับเงื่อนไขแสดงว่าถ้าเราต้องการวนซ้ำสามารถใช้ for หรือใช้ WiFi ได้เมื่อไหร่ที่เราทราบจำนวนรอบที่แน่นอนของการวนซ้ำเราจะใช้ for นะคะ เพื่อความง่ายเมื่อไรก็ตามที่เรารู้จำนวนรอบของการวนซ้ำเราจะใช้ for เจนครูบอกว่าให้วิ่งรอบสนามฟุตบอล 10 รอบแสดงว่าต้องวิ่ง 10 รอบใช่ไหมวิ่ง 11 รอบได้ไหมไม่นับถูกไหมกูบอกว่า 10 รอบก็ต้อง 10 รอบเพราะฉะนั้นต้องใช้ forแต่ถ้าครูบอกว่าวิ่งจนกระทั่งเพื่อนในเอมารู้ไหมกี่รอบไม่รู้ไม่รู้ว่านาย A มาตอนไหนวิ่งเรื่อย ๆ จนกว่าจะนาย A จะมา A มาเมื่อไรเราถึงจะหยุด ฉะนั้น เราไม่รู้จำนวนรอบที่แน่นอนแต่พอใครคิดว่าเรารู้จำนวนรอบที่แน่นอนแม่ให้เงินมาโรงเรียนบอกว่าไม่ใช่มาโรงเรียนหรอกไปให้ไปซื้อของไปซื้อหมูปิ้งให้เงิน 100 บาทไปซื้อหมูปิ้งเรารู้ไหมต้องซื้อได้กี่ไม้ ไม่รู้เหมือนกันนะ เราก็มาใช้ Why ก็ได้ซื้อไปจนกระทั่งเงินหมดเงินเป็น 0 เมื่อไรถึงหยุดแม่ก็ซื้อไปเรื่อย ๆ มาซื้อหวยถูกไหมคือไปเรื่อย ๆ ไม่รู้ว่าจะถูกไหมไม่รู้ว่าจำนวนรอบต้องซื้อกี่รอบเราแยกรูปวาดการ์ตูนได้คราวนี้การนับตัวดำเนินการก็คือ 1 2 3 4 การนับจำนวนรอบในการทำงานในกรณีที่ไม่มีลูบการวนซ้ำเป็นคำสั่งนะคะ เรียงลำดับลงมาเรื่อย ๆ เป็นคำสั่งเรียงกันลงมาเรื่อย ๆ เช่นครูมีคำสั่งอยู่ 2 บรรทัดคำสั่งอยู่ 2 บรรทัดไม่ใช่การวนลูปผมมีคำว่า For กับคำว่าวายคำสั่งแรกเขาเท่ากับ 0 คืออะไรเราให้ค่ากับตัวแปรที่ Count C-o-u-n-t ตอนนี้เมื่อเรานอนอย่างนี้ เมื่อคำสั่งที่ถูกประมวลผลเขาจะมีค่าเป็นศูนย์ทำงาน 1 รอบนี่มาทักที่ 1 นี่เมื่อผ่านบรรทัดที่ 1 ไปเขามีค่าเป็นศูนย์เขาจะมีค่าเป็นศูนย์เสร็จแล้วทำงานบรรทัดที่ 2บรรทัดที่ 2 คือการคำนวณใช่ไหมคะคำนวณเสร็จแล้วก็เก็บในตัวแปรที่ชื่อว่า tital เวลาเรากด Run แล้วเขียนโปรแกรม Python แล้วเรากด Run มันจะอ่านบรรทัดที่ 1 ในกรณีที่ไม่มี error บรรทัดที่ 1 เสร็จแล้วก็มาบรรทัดที่ 2 มันหมดแล้วไม่มีอะไรมันก็จบงานทำงานใช่ไหมคะ เพราะฉะนั้น ครูเลยถามว่าคำสั่งของบรรทัดที่ 1 วันทำงานกี่ครั้ง คิดว่ามันทำงานกี่ครั้ง ครูกดปุ่ม Run ปุ๊บ มันมาอ่านบรรทัดที่ 1 ใส่ค่าให้กับตัวแปรเขา เสร็จแล้วก็มาทำประทัดที่ 2 คำนวณเศษเก็บในช่องแล้วก็จบ เพราะฉะนั้น บรรทัดที่ 1 นี่ทำงานกี่ครั้ง 1 ครั้งทำงานแค่ 1 ครั้งต่อการรันบรรทัดที่ 2 ทำงานกี่ครั้งกด Run ครั้งหนึ่ง มันอ่านบรรทัดที่ 1 1 ครั้งบรรทัดที่ 2 ก็ต้องทำ 1 ครั้งเหมือนกันแล้วก็จบใช่ไหมคะ เพราะฉะนั้น เมื่อไรก็ตามกรรมของเราไม่มีการวนลูปการทำงานแต่ละบรรทัดจะทำงาน 1 ครั้งเท่านั้นจะทำงาน 1 ครั้งเท่านั้นเราจะถือเป็นการนับตัวดำเนินการตรงนี้ก็คือ 1 ครั้งถ้าเราจะหาค่า Big-O เรานับตัวดำเนินการได้แล้วต่อไปเราจะหาค่า Big-O เราต้องหาค่าฟังก์ชันก่อนคือ F ย่อมาจาก Function เท่ากับตัวเลขตัวนี้มาจากไหน 1 สัญญาก็คือ 1 ตัวนี้ของบรรทัดที่ 1 บวกด้วย 1 บรรทัดที่ 2 ก็คือจำนวนรอบของบรรทัดที่ 2 ทำงาน 1 ครั้งทำงาน 1 ครั้งบวกกันเป็นทำงาน 2 ครั้งเราถือว่าค่า Big O ก็คือเป็นโอ 1 เขียนโอวงเล็บเปิดแล้วก็ใส่เลข 1 O1 แล้วถ้าเป็นเงื่อนไขบ้างเป็นเงื่อนไขเป็นอะไรมีการตัดสินใจ เมื่อไรก็ตามที่เราตัดสินใจ คือ การเลือกการตัดสินใจคือการเลือกถูกไหมคะ เลือกว่าจะไปทางซ้ายหรือจะไปทางขวาเวลาเราเจอสี่แยกเราต้องตัดสินใจเราต้องตัดสินใจก่อน เราจะตรงไปเลี้ยวซ้ายเลี้ยวขวาเพราะฉะนั้นการตัดสินใจเราใช้คำสั่ง if ใช้คำสั่ง if ใน Python คือ ถ้าแล้วตามด้วยเงื่อนไขใช่ไหมคะ ข้างในตรงนี้คือเงื่อนไข เงื่อนไขที่ครูกำหนดคือถ้า n น้อยกว่า 0 ถ้า n น้อยกว่า 0 มันคือตัวเลขเดี๋ยวเราจะไม่เซ็นค่า n กันจาก Code ตัวนี้นะคะ ถ้า n น้อยกว่า 0 ให้ทำอะไรถ้าเงื่อนไขตัวนี้เป็นจริงจะมาทำบรรทัดที่ 2 โอเค จะมาทำบรรทัดที่ 3 นะคะพูดจะมาบรรทัดที่ 3 ถ้าเงื่อนไขตัวนี้เป็นจริงจะมาทำบรรทัดที่ 3 ก็คือให้เป็นคำว่าฉีด integer คืออะไรคะ ถ้าเงื่อนไขตัวนี้จริง ก็คือเล่นมันมากกว่าเท่ากับ 0 ได้ไหมคะ ใครตรงนี้ไม่จริงคืออะไรคือ a มากกว่าเท่ากับศูนย์ตรงกันข้ามกับถ้าข้างบนไม่จริง ก็คือ n แล้วนี่มากกว่าหรือเท่ากับ 0 เราจะทำอะไร Advantages นะคะ คราวนี้คนช่วยครูดูนะ สิ่งที่เราจะต้องสอบครูให้ได้ว่าจะทำงานวัดทับที่ 3 หรือทำงานบรรทัดที่ 7 นะคะเดี๋ยวให้ยกมือนะครูถามตัวเลขกูแทนค่า n ใด ๆ ให้แล้วให้เราลองบอกครูหน่อยว่าเราจะทำงานบรรทัดที่ 3 เหลือบรรทัดที่ 7 ด้วยเงื่อนไขตัวนี้ถ้า n น้อยกว่า 0 จะทำบรรทัดที่ 3 ถ้า a มากกว่าเท่ากับศูนย์ครูกำหนดให้ n = 20 ธรรมทัศน์ไหนเอ่ยบรรทัดไหนดีn = 20 นะ คือ จะค้นตัวนี้ใช่ไหมคะ โค้ดตัวนี้ที่ครูให้มาผู้แทน Android ด้วยตัวเลขนี้ เราจะทำบรรทัดไหนดีคะ เดี๋ยวนะ เดี๋ยวครูลองกด 14 นะ ครูลองกด โจทย์ครูตัวนี้นะคะ ถ้าครูกำหนดตัวนี้ให้ n = 20 เมื่อไร Run โปรแกรมตามเงื่อนไขนี้แล้วแสดงข้อความในบรรทัดที่ 3 หรือบรรทัดที่ 7 เราต้องเช็คเงื่อนไขนะคะ 220 ไปแทน n ได้ไหมคะ โอเค 2 ตอบแล้วนะ คือ บรรทัดที่ 7 ใช่คือถ้าเราแทน n ด้วย 20 แล้วก็เทียบติดน้อยกว่า 0 จริงไหม 20 น้อยกว่า 0 จริงไหม ไม่จริงถ้าไม่จริงมาทำอะไรให้มันทำหลัง เพราะฉะนั้น จะต้องปริ้นบรรทัดนี้ออกมาที่หน้าจอ โอเคเอาใหม่นะ เอาทีละตัวนะคะ เอาใหม่นะ สมมติว่าถ้าครูถามอย่างนี้ล่ะกันนะ ถ้าถามทุกคนเลยนะคะ มาทำงานบรรทัดที่ 3 นี่เดี๋ยวจะให้ยกมือซ้ายนะ ถ้าทำงานวันที่ 7 ยกมือขวานะ เดี๋ยวครูเขียนให้ถ้าตัวนี้นะ ให้ยกมือขวามาทำงานตรงนี้มาทำงานตรงนี้ ให้ยกมือซ้ายเอาใหม่ ทุกคนดูนะ ครูกำหนดให้ n = 6 ยกมือซ้ายหรือมือขวา n = 6 มีใครยกอีก ยกมือให้ครูดูหน่อยเร็ว n = 6 6 น้อยกว่า 0 จริงไหม 6 น้อยกว่า 0 จริงไหมคะ 6 น้อยกว่า 0 ไม่จริงถูกไหม ไม่จริง แล้วแสดงว่า 6 มันมากกว่าเท่ากับ 0 ยกมืออะไรคะ ยกมือขวาเอาใหม่ เดี๋ยวทุกคนต้องยกมือนะตัวเลข ยกใครไม่ยก ยกมือด้วย 25 มากกว่า 0 ไหม มากกว่า เพราะฉะนั้น ยกมือ... มากกว่า 0 ยกมือขวา ใช่เพื่อนตอบถูกมือขวา เอาใหม่ -10, -10, -10 มันน้อยกว่า 0 ไหมน้อย อย่างนั้นตอบถูกยกมือซ้าย ใช่ยกมือซ้าย สมมติครูมีจดใหม่ อย่างนี้มือซ้ายหรือมือขวา ครูแทนตัวเลขให้แล้ว ได้ไหมคะ ถ้า 25 มันน้อยกว่า 0 จริงไหมคะ ไม่จริง 25 มันไม่ได้น้อยกว่า 0 เพราะฉะนั้น ทำบรรทัด ไม่จริงถูกไหม ไม่จริง บรรทัดนี้ไม่ทำ ต้องย้ายมาทำตัวนี้ 25 มากกว่าเท่ากับ 0 ใช่ไหม ใช่ก็เลยต้องยกมือซ้าย ดูเส้นอันนี้ 0 นะ ดูเลข -10 ใช่ไหมคะ มากกว่า 0 มาทางขวาอันนี้น้อยกว่า 0 ทางซ้าย คือน้อยกว่า 0 เอาตัวเล็กช่วงนี้เห็นไหมคะ ไปทำอะไรยกมือซ้ายใช่ไหม ถ้าตัวเลขอยู่ในช่วงนี้อันนี้ คือ รวมถึงตัวนี้ด้วยนะได้ไหม ดูเส้นจำนวนตัวนี้นะ ครูแปลงจากจำนวนนั้นมาเป็นตัวนี้แล้ว 0 เอามาทางขวา ให้ยกมือซ้าย 50 มองไปทางซ้ายคือตัวเลขมันติดลบน่ะ ทำไมมันไม่ลบให้ครูเอาใหม่นะคะ เลขติดลบนะถ้ามีตัวเลขติดลบแบบนี้ให้ยกมือขวา เอาใหม่นะครูบอกว่าเลข -15 -1 ยกมือขวาหรือมือซ้าย -1 ยกขวาหรือยกซ้ายขวา -1 ขวาใช่ไหม เอาใหม่เปลี่ยนเลขตัวนี้เป็น 9 15 15 ซ้ายหรือขวา 15 15 อันนี้โอเคขึ้นนะ เอาใหม่ครูเปลี่ยนใหม่ติดลบ บวกมากกว่า 0 ก็คือขวาใช่ไหมคะ วันนี้จะได้ไม่งงนะ 19 ยกมือไหน คนอื่นล่ะใช่ ๆ เปลี่ยนแล้ว ๆ ครูขีดฆ่าแล้วดูเส้นจำนวน ได้ไหมเอาใหม่นะอีกครั้งหนึ่ง -5 -5 ซ้ายหรือขวา ใช่ไหมคะ เราจะรู้ได้อย่างไรเราเอาตัวเลขนั้นมาเทียบ เราตัดสินใจอยู่ในอกซ้ายหรือเลี้ยวขวา นี่คือการตัดสินใจโดยมีเงื่อนไข อย่างที่ครูบอกว่าถ้ามากกว่าเท่ากับ 0 จะยกมือขวา เพราะฉะนั้น เมื่อไรก็ตามที่ครูบอกตัวเลขลงไป เราต้องมานั่งคิดตัวเลขตัดสินใจมันมากกว่า 0 หรือเปล่า ใช่ไหมถ้ามันมากกว่า 0 เราต้องยกมือซ้ายแต่ถ้าไม่ใช่มันน้อยกว่า 0 เราต้องยกมือซ้ายพูดผิด เรายกเราต้องยกมือซ้ายมากกว่า เราต้องยกมือซ้าย อันนี้ คือ การตัดสินใจนะนะคะ สินใจจะยกมือซ้ายหรือมือขวาเทียบกับอะไรก็ต้องมีเงื่อนไขเงื่อนไขของการตัดสินใจจะยกมอเตอร์ไซค์เมื่อไรจะยกมือขวา เมื่อไรเวลาเราเอาไปเขียนโปรแกรมเราจะใช้คำสั่ง If แล้วข้างในวงเล็บ ก็คือเงื่อนไขที่เรากำหนดขึ้น เงื่อนไขที่เรากำหนดขึ้นนะคะ เสร็จแล้วถ้ามันจริงให้เราทำอะไร ถ้ามันไม่จริงไปทำอะไรนะคะ โอเค ถัดมา จะเห็นว่าการตัดสินใจตรงนี้เราจะทำงานแค่ 1 ครั้งเท่านั้น ตรวจสอบเงื่อนไขนะเห็นไหม แล้วก็ยกมือตามโจทย์ตรวจสอบเงื่อนไข 1 ครั้งแล้วมันเป็นจริงหรือเปล่า ถ้าจริงก็มายกมือในบรรทัดนี้หรือตรวจสอบเงื่อนไขตัวนี้ แล้วไม่จริวก็มายกมือในบรรทัดมือบรรทัดซ้าย เพราะฉะนั้น เวลาเรานับการทำงานนะคะ เราก็จะนับเฉพาะบรรทัดที่เราทำงานเท่านั้น ทำงานเพียง 1 ครั้งเท่านั้นนะคะ ทำงานเพียง 1 ครั้งเท่านั้น เพราะฉะนั้น เราเปรียบเทียบที่เงื่อนไขทำงาน 1 ครั้งถ้ามันเป็นจริงอย่ามาทำบรรทัดที่ 3 แล้วก็จบการทำงาน ข้างล่างนี้จะไม่ทำต่อ เราไม่ทำต่อ เพราะเราตัดสินใจแล้ว เพราะเราตัดสินใจแล้วตัดสินใจให้แสดงข้อความนี้ แล้วก็จบ เพราะฉะนั้น การทำงาน 1 ครั้ง ทำงานบรรทัดที่ 3 ทำงานอีก 1 ครั้ง แล้วก็จบการทำงาน เพราะฉะนั้น Bio-O ที่ได้เราก็เอา 1 มาบวก 1 เป็น 2 เวลาเราเขียนค่า Big-O ต้องแทนด้วย 1 มันเป็นตัวเลขเราต้องแทนมันเป็น 1 คราวนี้ ไม่ได้ใช่ไหม ไม่เป็นไรค่ะ ต้องทำอย่างไร ถึงจะขึ้นใหม่อีกทีหนึ่ง กดซ้อน คราวนี้ดูต่อนะคะ คราวนร่ เมื่อกี้คือเงื่อนไขใช่ไหมคะ เงื่อนไขนะ เงื่อนไขการตัดสินใจถัดมาเมื่อกี้ครูบอกแล้วว่าถ้าเรามีคำสั่งซ้ำเราจะไม่เขียนคำสั่งเดิม ๆ หลาย ๆ ครั้ง เราก็จะใช้การวนซ้ำหรือการใช้ลูปแทนการเขียนแบบเดิมๆเหมือนกันแล้วการใช้รูปเขาจะพูดถึงลูกรอในที่สุดนะคะ การใช้ Loop for ก็คือเรามีจำนวนรอบที่แน่นอนเรานับจำนวนรอบได้ว่าทำงานกี่ครั้ง จากโจทย์ที่ครูกำหนดให้ เราใช้ for เราใช้เงื่อนไขกี่ครั้ง แล้วแต่เงื่อนไขที่เรากำหนดแล้วเราอยากรู้ว่ารถรอบของการทำงานเมื่อเราวัดประสิทธิภาพเวลาที่ใช้นะคะ เราจะวัดอย่างไรจะได้ค่าอะไรออกมา ในการทำงานนะเรากำหนดให้ n ใด ๆ เราแทนตัว n ใด ๆ หมายความว่าแทน n ด้วยตัวเลขอะไรก็ตามมีประสิทธิภาพในเรื่องความเร็วมีค่า Big-O คะบรรทัดแรกมันอยู่ในรูปอนะอัตราแลกเป็นการกำหนดค่าเริ่มต้นให้กับตัวแปรที่ชื่อว่า Total เมื่อเรารันทำงานผ่านเป็นที่หนึ่งไปขอโทษจะมีค่าเป็น 0 Total จะมีค่าเป็น 0 เป็นตัวเลขนะเจอเป็นตัวเลขจำนวนเต็ม ถัดมาคำสั่งบรรทัดที่ 2 การใช้ Loop for แล้วคัดเอาได้เลยว่ามันน่าจะต้องทำงานมากกว่า 1 ครั้งนะคะ ทำงานกี่ครั้งล่ะเขากำหนดให้ for i เล่นวงเล็บเปิด NX คำว่าไอ้ตัวนี้แปรนี้ แทนอะไรได้บ้างเมื่อเราแทนถ้าตัวเลขที่ตัวนี้ถ้ามันอยู่ภายในน่าจะเหมือนรอบที่เรากำหนดเมื่อเรากำหนดค่า n แล้ว มันจะมาทำงานคำสั่งบรรทัดที่ 3 จะวนรอบตามจำนวนที่กำหนดจนครบแล้วก็หลุดออกจากการวนซ้ำ มันก็จะทำมันก็จะหลุดออกจากการวนซ้ำนะคะ สมมุติครูกำหนดให้ n = 3 n = 3 1 2 3 n = 3 แล้วไอมีค่าเป็นอะไรได้บ้างตอนนี้ครูใช้ Python นะคะ ตัวนี้เป็นภาษา Python for I in range3ครูแทนตัวนี้ไป 3 แล้ววันนี้ครูเปลี่ยนแล้วครูใช้ตามแผนถามว่าถ้าไอคุณจะเป็นตัวเลขอะไรได้บ้างใน Python Index ตัวนี้จะเริ่มต้นด้วย 0 เสมอนะคะ เริ่มต้นที่ 0 ไม่มีข้อ 2 มี 3 ตัวถูกไหมคะ 0 1 2 หรือจำแบบเร็ว ๆ ที่ 0 ใช่ไหมตัวนี้จะเป็น 3 แสดงว่าถึงจะของขึ้นรถลงมา 1 เร็วลดลงมา 1 เพราะฉะนั้น เริ่มใหม่ 25 เป็นอะไรได้บ้างตรงนี้คุณมีค่าเป็นอะไรได้บ้าง ดูตัวนี้เป็นตัวอย่างนี้ด้วยอะไร คอมม่ามีอะไรคะไปต่อไหมได้หรือยังมี 2 ไหมเทียบกับตัวนี้แล้วก็ปิด ทุกคนมีกระดาษที่ครูให้แล้วใช่ไหม ไปหน้าหลัง หน้าหลังกระดาษที่กูจัดให้ขนลุกกระดาษที่ครูแจกให้ คราวนี้มีตัวอย่างให้ 2 อันนะ ที่เราทำเมื่อกี้ใช่ไหมคะ 3 ตัวเล็ก 2 ที่เหลืออีก 3 ข้อให้กูหน่อยสิ เลขที่อยู่ใน List มีค่าอะไรบ้าง range 1 อะไรเอ่ยเป็น L ใช่ไหมคะ คุณเป็นเลขอะไรได้บ้างทำเป็นลิงก์นะคะ ถ้าเรารู้ตัวเลขนะคะ ว่าที่อยู่ใน List ตัวนี้มีกี่ตัว เราจะรู้จำนวนรอบของการทำงาน เมื่อกี้ครูดูแล้วทุกคนง่ายนะ รู้ว่าหน้านะคะ ถ้าเป็นอะไรได้บ้างนะคะ 0 1 2 3 4 นะคะ 10 ตัวนะคะrange ก็คือ 0 1 2 3 4 5 6 7 8 9 ก็คือมี 10 ตัวเริ่มจากลูปนับไปให้ได้ 10 ตัว 9 ตัวนี้นะ รู้ไม่มีจุดเริ่มต้นครูไม่ได้บอกว่าเริ่มต้นด้วยตัวเลขอะไรเราจะเริ่มต้นเป็น 0 เสมอนะคะ ครูอยากจะระบุเริ่มต้นว่าควรเริ่มต้นด้วยตัวเลขอะไรตัวเลขอะไรที่ไม่ใช่ 0 เราจะไม่เริ่มต้นจากตัวแรกที่เป็น 0 นะคะ เราอยากจะเริ่มต้นเล่นตัวอื่นบ้างเราจะกำหนดเล่นพรุ่งนี้อย่างไรช่วงใช่ไหมคะวงเล็บ 1 คอมม่า 4 แสดงว่าตัวเลขตัวแรกที่เราจะเขียนขึ้น 1 นะคะ ตามที่เรากำหนดตัวแรก เสร็จแล้วนี่ข้างหลังมาถึง 4 ใช่ไหมลดลงไป 1 นะคะ1 2 3 เห็นไหม ตัวเลขข้างหลังนี่คือ 3 มันน้อยกว่าเลข 4 1 ตัวนะคะ จะแบบนี้ ถัดมา Range 1 คำว่า "3" เราเริ่มต้นที่เล็ก 1 คอมม่า 2 มันน้อยกว่าเล็ก 30 ตัวมากมาดูด้วยกัน 3 กับ 7เราควรใช้อะไรตัวแรกเป็นอะไรคะ ถามแล้วเลขอะไรอีกมี 7 ไหมไม่มีใช่ไหมคะ 3 4 5 6 2 ข้อนี้ทำให้ครูหน่อยเร็ว1 พม่า 2 ต้องมีตัวเลขอะไรบ้างอยู่ใน List ได้ไหมเราต้องมีกล้ามปูมีตัวเลขอะไรบ้าง คราวนี้ดู ครูดูแล้วตอบถูกนะ Range 1 Range 2 ได้เลขอะไรคะ เลข 1 ใช่ไหมวันนี้เลข 1 นะ 2 5 6 2 3 ข้อ 5 ถามต่อบรรทัดนี้ Commission ตามเขามา 7 รอบก็ดูสิคะ วันนี้ทำงานกี่รอบ 4 ทำงานทั้งหมดกี่รอบมีกี่ตัว 4 ตัวเปล่ามี 4 ตัวพนักงานกี่ตัวทำงานกี่รอบ 4 รอบเขียนให้ครูหน่อยมันเลยนี่เดี๋ยวรอบให้ครูดูหน่อยที่เราทำไปแล้วน่ะ เธอว่าทำงานกี่รอบเอากลับจุดครอบนับจากไหนมีกี่ตัวเรานี่มีกี่ตัวที่ทำงานเท่านั้นรอบ จากโค้ดโปรแกรมตัวนี้นะคะ เดี๋ยวเราจะไปเอารวมกับ Loop for นะคะ เราแยกส่วนนะเฉย ๆ นะให้รู้ว่าขอบเขตของข้าที่เรากำหนดสามารถเป็นเลขอะไรได้บ้างนะคะ ที่เราเขียนมาทำงานกี่รอบเมื่อคืนนับตัวกี่รอบ นั่นคือจำนวนรอบ ย้อนกลับมาดูโปรแกรมตัวนี้ ครูมีโค้ดอยู่ 3 บรรทัดนะ อย่างที่บอก รหัสแรกค่าเริ่มต้นนะคะ เริ่มต้นให้กับ Total เหมือนแม่ให้เงินเราน่ะ100 บาท สำหรับวันนี้เราคิดว่าวันนี้ทั้งวันนี่มีเงินอยู่ในกระเป๋านี่อยู่ที่ 100 บาทนะ ทั้งวันเราจะใช้กี่บาทค่ะ แต่ละคนแต่เริ่มต้นละ 100 บาทใช่ไหมคะตอนนี้ครูกำหนดค่าเริ่มต้นให้กับ Total นี่มีค่าเป็น 0 นะคะ เริ่มต้นมีค่าเป็นศูนย์ทำงานเป็นไปเรื่อย ๆ จะเปลี่ยนเป็นอะไรก็แล้วแต่เราสั่งนะคะ ถ้ามันมีค่าเป็นอะไรบรรทัดที่ 2 ที่เราเจอนี่พอแล้วทำงานวนซ้ำงานหลายรอบไม่อยากที่ครูถามทำงานกี่รอบนะคะ เราต้องหาคำตอบไม่ได้ว่าแล้วทำงานกี่รอบ for iinland คอมม่าวงเล็บเปิด n เห็นไหม I in Range นะคะ ที่เราเจอไปเมื่อกี้เองตัวเล็กตัวนี้นะคะ วงเล็บเปิดแล้วก็ตัว n เป็นตัวนี้อาจจะเป็นตัวเลขอะไรก็ได้ใช่ไหมเหมือนที่เราทำเมื่อกี้เมื่อกี้พิมพ์ไปตั้งเยอะเลย 32 51 ถูกไหมคะ นัดแล้วนี่ตัวนี้ n อะไรก็ได้ ที่ครูกำหนดให้นะคะ ภาพอยู่ในขอบเขตของข้อมูลตัวเลขที่เรากำหนดมันก็จะทำงานที่ 3 ก่อนตีบวกค่า ขอโทษไปเรื่อย ๆ เพิ่งทำไป Pan enteral ด้วย 3 เราต้องเป็นงานกี่รอบถามทำงานกี่รอบ ดูในกระดาษมีไหมถามที่เราทำไปเมื่อกี้ต้องทำงานกี่รอบคะ หาเจอไหมเราเขียนไปเมื่อกี้นี้ถ้าเรายังจำได้นี่ไงเล่น 3 ทำงานกี่รอบคะ 3 รอบ ฉะนั้น ขอบคุณครูได้แล้วว่าฝั่งนี้ทำงานกี่รอบ 3 รอบใช่ไหมรู้จักไหน ดูจาก Range ที่เรากำหนดให้มีค่าเป็นอะไรได้บ้าง 12 ทำงานกี่รอบรอบนะ 3 รอบเพราะฉะนั้นไอซ์ถ้าเป็นอะไรได้บ้าง I ตัวนี้มีค่าเป็นอะไรได้บ้างคะมีค่า 0 1 2 ใช่ไหมคะไอ้ตัวนี้สามารถมีค่าเป็น 0 1 2 นั่นหมายความว่ารอบที่ 1 บอกว่าทำงาน 3 รอบใช่ไหมคะ งานรอบที่ 1 ไม่มีค่าเป็นอะไรสูงรู้ได้อย่างไรนี่ไงเราเป็นคนเลี้ยงข้าวก็อยู่แล้วงานรอบ 2 I มีค่าเป็นอะไรคะ เป็นหนึ่งงานรอบที่ 3 อันมีค่าเป็น 2 ไม่มีขาตามนี้ตามที่เราขยายเมล็ดมีค่าเป็นอะไรได้บ้าง 0 1 2 เห็นไหมคะ I มีค่าเป็นอะไรได้บ้าง 0 1 2 แสดงว่า I นี่มีค่าเป็น 0 1 2 นะคะ แสดงว่าต้องทำงานทั้ง 2 บรรทัดนี้ใช่ไหมคะ ทำงานทั้งสองบรรทัดที่ 3 ทำงานอย่างละ 3 ครั้งหรือ 3 รอบ 22 ตรวจสอบเงื่อนไขอะไรนี่ก็ต้องทำ 3 ครั้งอันนี้คือบรรทัดที่ 3 บรรทัดที่ 2 อันนี้อันนี้คือประทัด 3 ทำงาน 3 ครั้งเหมือนกันใช่ไหมคะ ครูเปลี่ยนดูนะคะ ครูเปลี่ยนจาก Range ตัวนี้ครูเปลี่ยนเหรียญวันนี้นี่ค่า n ตัวนี้ต้องทำงานอีกรอบเปลี่ยนให้เองตัวนี้เป็น 2 หนูต้องทำงานกี่รอบคะ ทำงานกี่รอบ ทำงานกี่รอบ 2 แล้วประมาณกี่รอบคะ กี่รอบ 2 รอบนี่ไงคือมีค่าเป็นศูนย์ทำกี่รอบคะ 2 รอบ 2 เราทำงาน 2 รอบเป็นหยังหามเราทำงานกี่รอบคะ 3 รอบ ถ้า n เป็น 5 เราทำงานกี่รอบคะ n เป็น 5 เราทำงานกี่รอบคะ 5 รอบ n เป็น 1 เราประมาณกี่รอบคะ ทำงานกี่รอบคะ 1 รอบคือไอเป็น 0 ถูกไหมทำงานหนูรอบเล่นเป็น 10 เราต้องทำงานทั้งหมด 10 รอบ แล้วเราทำได้ไหมคะ เมื่อ n ใด ๆ อย่างที่เราทำกันนี่ n 3 ก็ทำงาน 3 รอบ n เป็น 5 ก็ทำงาน 5 รอบ ก็จะเป็น 99 รอบ n เป็น 1 ก็ทำงาน 1 รอบนะคะ เพราะฉะนั้น เราจึงบอกได้ว่าการทำงาน n ครั้งหมายความว่าไม่ว่าจะแทนด้วย ื เป็นตัวเลขอะไรก็ตาม มาทำงาน n ครั้ง เราจึงสามารถสรุปได้นะคะ ว่าในบรรทัดที่ 2 กำลังจะทำงาน n ครั้ง บรรทัดที่ 3 งาน n คลังนะคะ แต่ในบรรทัดที่ 1 มันอยู่นอกลูแ มันไม่ได้อยู่ข้างในลูแ Total มันอยู่ข้างในรูปมันกด Tab เข้ามาการกำหนด ค่าตัวแปรเครื่องบนเท่ากับ ศูนย์มันอยู่ข้างนอกรูปแสดงว่าทำงานกี่ครั้ง 1 ครั้งเราจึงสามารถเขียนนะคะ ข้างหลังได้ว่าบรรทัดที่ 1 ทำงาน 1 ครั้งบรรทัดที่ 2 ทำงาน n ครั้งบรรทัดถามก็ทำงาน n ครั้ง จะหาค่า bigo ทำอย่างไร เอาสิ่งที่เราเขียนด้านหลังของคำสั่งเอามาบวกเป็น 1 ตัวที่ 2 เป็นอะไรคะ n ที่ 3 ก็เป็น n บวกกันได้เท่าไร n + n ข้างหน้า n ตัวนี้ดูนะ Range ตัวนี้ก็คือเลข 1 นะ n คือเลข 1 เพราะฉะนั้น บวกกันแล้วได้กี่ n1 + 1 n + n ได้เป็น 2 n อันนี้คือ 1 เฉย ๆ ใช่ไหมไม่ได้มีตัวอื่นเลยคืนหนึ่งไม่ได้มีตัวไหนบวกเลยก็บวก 1 วันนี้มันบอกด้วยกันได้ เพราะมันเป็น ค่า n เลยเป็น 2 n อันนี้บวกไม่ได้นะ เพราะไม่มี n อะไรเลยเอามารวมกับพวกนี้ไม่ได้เราจึงสรุปได้ว่าเราสนใจเฉพาะเทอมของ n โดยตัดสัมประสิทธิ์ออก เพราะฉะนั้น เหลือแค่ n นะคะ ฉะนั้น ก็คือ on โปรแกรมนี้จะ Run ในเวลา on เดี๋ยวครูให้เบรกก่อนนะอีก 5 นาทีนะคะ เดี๋ยวเราจะมาหัดทำด้วยกันนะ มีโจทย์ 1 โจทย์ตัวนี้หลังจากเบรคละนะ จะมาทำโจทย์นี้ด้วยกันนะคะ มาดูต่อตัวนี้นะคะ เหมือนถ้าเราดูนะโปรแกรมบรรทัดที่ 1 บรรทัดที่ 2 บรรทัดที่ 3 เหมือนกับโจทย์ข้อนี้เลยใช่ไหมคะ เหมือนกันเลยแต่สิ่งที่ต่างกันคืออะไรจำนวนตัวแปรค่าของตัวแปร n นะคะ ตอนนี้ครูบอกว่าครูให้ a n = 2 ตัวนี้ได้ 2 ขออภัยแป๊บหนึ่งเขียนเลข 2 ครูแทน n ด้วย 2 นะคะ อย่างนั้นครูถามว่าบรรทัดนี้ทำงานกี่รอบจำนวนกี่รอบ เราแทน n ด้วย 2 เมื่อแทนตัวนี้ด้วย 2 Range 2 วันนี้ทำงานกี่รอบทำงานกี่รอบคะ คนอื่นทำงานกี่รอบเอ่ย Range 2 มีค่าเป็นอะไรได้บ้าง ลองดูที่เราเขียนเมื่อกี้นะ Range 2 มีค่าเป็น 0 แล้วก็ 1 เพราะฉะนั้น ทำงานเป็นกี่รอบ 2 รอบใช่ไหมคะ เราทำงานกัน 2 รอบ เพราะฉะนั้น ไอ้ตัวนี้มีคราบเป็นอะไรได้บ้าง ไอ้ตัวนี้มีค่าเป็นอะไรได้บ้างที่เราเขียน I มีค่าเป็น 0 แล้วก็ 1ใช่ไหมคะ ตามนี้เลยเห็นไหมคะ อันนี้ทุกคนแยกได้อยู่แล้วว่า Range 2 คืออะไร เพราะฉะนั้น i เราต้องมีท่าตามที่เราเขียนข้างบน 0 กับ 1 แค่นั้นนะเป็น 0 กับ 1 เพราะฉะนั้น มันทำเงื่อนไขตรงนี้ด้วย ใช่ไหมคะ เราก็ติ๊กถูกเลย จำนวนครั้งที่ทำตรงนี้ทำกี่รอบคะ 2 รอบเราใส่ 2 รอบ ดูนะคะ เดี๋ยวครูจะมีกระดาษให้ทำต่างหาก เป็น2 รอบนะ เราทำ 2 รอบ เพราะฉะนั้น เรามองด้านบนสิ เมื่อครูแทน n = 2 2 ตัวนี้เท่ากับค่า n เลยนะ ฉะนั้น ครูก็เลยสามารถเขียนตรงนี้เป็นเลขเป็นได้เลย ถูกไหมคะ เห็นไหม n = 2 บอกถามว่าแทนด้วย n ได้ ครูก็ขึ้นมาดูข้างบนนะคะ แล้วการทำงานแต่ละครั้งทำกี่รอบบรรทัดที่ 1 ทำงาน 1 รอบใช่ไหมมันไม่ได้อยู่ในรูปน่ะต้องทำงานแค่ 1 ครั้งเท่านั้นบรรทัดที่ 2 ทำงานเท่าไรคะ ทำงาน 2 รอบเมื่อแทนด้วย n ใด ๆ มันก็คือทำงาน n ครั้ง ที่ 3 คือ n ครั้ง เหมือนกันหาค่า fn ทำอย่างไรตัวนี้ 3 ตัวนี้มาบวกกัน 1 + n + n เท่าไรคะ ตรงนี้ได้กี่ n1 n2 n2 n แล้วก็บวก เห็นไหมคะ มันมี 1 ตรงนี้ 1 อีกตัวหนึ่งตรงนี้ ฉะนั้น Big-O คืออะไร ตัดสัมประสิทธิ์ออกถูกไหมคะค่า n ที่มากที่สุด ก็คือตัวนี้ก็จะกลายเป็น on o n นะคะคราวนี้ เราลองเริ่มค่า Range เปลี่ยนไปนะทำไปเริ่มจาก 0 เราไม่เริ่มจาก 0 กำหนดค่าเริ่มต้นใน Range ให้ใช่ไหมคะ แล้วเราจะทำงานกี่ครั้ง เราดูนะนี้ Range 1-4 เราทำงาน 3 ครั้ง Range 3-7 หมายถึงทำงาน 4 ครั้งหรือ 4 รอบเช้านี้มาดูคนนี้บ้างพรุ่งนี้นะคะมีตัวอย่างให้ดูข้างบนตรงนี้ด้วยนะตรงมุมขวา คำสั่งแรกนี่ Range 1,4 ทำงานกี่ครั้งคะทำงานกี่ครั้งทำงานกี่รอบ กี่รอบตัวนี้ตัวนี้ Range 1-4 ข้างบนเห็นไหมคะข้างบนกี่รอบ 3 รอบเพราะมีตัวเลขกี่ตัว 3 ตัวบรรทัดที่ 2 ทำงานกี่รอบ 2 รอบนะคะอันนี้คือ 2 รอบอันนี้คือ 3 รอบนะ ร. เรือ รอบนะคะ ในโจทย์นะคะ ในโจทย์ คำสั่งคล้าย ๆ เดิมเลย ถึงที่ต่างกันคืออะไร คำว่าวงเล็บเปิด 1 เห็นไหมคะ เริ่มเห็นความต่างแล้ว i เราไม่ได้เริ่มจาก 0 แล้วเราเริ่มต้นที่เลขอะไรคะเลข 1 ถูกไหมต้นจากเลข 1 นะคะ เพราะฉะนั้น ถ้าครูกำหนดให้ n = 3 ครูเปลี่ยนตรงนี้เป็น 3 บรรทัดที่ 2 ทำงานกี่รอบ ครูเปลี่ยนค่า n เห็นไหมคะ for I in Range เห็นไหมคะ วงเล็บ 1 คำว่า วงเล็บปิดผู้แทนช่วยถามวงเล็บเปิด 1 คอมม่า 3 บรรทัดที่ 2 ถ้าไอเป็น i บ้างและทำงานกี่รอบเห็นไหมนี่ไงที่เราเขียนข้างบนไงทำงานกี่รอบคะ 2 รอบ 1 comment 36 คันเลยไอที่เป็นไปได้ คือเลขอะไรคะ 1 แล้วก็รอ 2 มันทำงานกี่รอบ 2 รอบมันมีเลข 2 ตัวมันต้องทำงาน 2 รอบใช่ไหมคะ ฉะนั้นมันทำงาน 2 รอบ2 ครั้งที่เป็นไปได้ คือ มือหนึ่งข้อ 2 แล้วมันก็ทำงานติ๊กถูกได้เลยทำงานแค่ 2 บรรทัดนี้ก็คือทำงาน 2 ครั้งพูดถ้าแปลงเมื่อเป็น n ใด ๆ เมื่อเป็น n ใด ๆ สังเกตนะคะ ตัวนี้คือเลข 4 นะ มันคือค่า n ถ้าครูแทน n เป็น 4 ทำงานกี่รอบวันนี้ทำงานกี่รอบคะ 3 รอบ ทุกคน 1 คำว่า 5 ทำงานกี่รอบคะ มีค่าที่เป็นไปได้คือ 1 2 3 แล้วก็ 4 ไหมคะ ใช่ 4 รอบเป็น 4 ทำงาน 3 รอบ n เป็น 5 าทำงานกี่รอบว่าจำนวนรอบมันลดลง 1 เมื่อเทียบกับจำนวน n เพราะฉะนั้น เมื่อเราเขียนแทนสมการมันเป็น 2 ถูกไหมทำอย่างไรถึงจะได้เลข 2 - 1 - 1 ถูกไหม n คืออะไรที่ครูกำหนดให้คือ 3 - 1 คืออะไรคะเป็น 2 ให้ตัวเลขตรงกันไหมตรงกันเพราะฉะนั้น ตัวแทน n ด้วย 2 ก็ทำงาน 1 ครั้งตื่นตี 4 ก็ทำงาน 3 ครั้งตามนั้นแผ่น n ใด ๆ จะทำงานแทนเอ็นรบ 1 ครั้งเมื่อโค้ดตัวนี้นะคะ เมื่อโปรแกรมตัวนี้ผู้แทน n ด้วย 10 ผู้แทน n ด้วย 10 ทำงานกี่รอบ9 รอบ 10 - 1 ใช่ไหมคะหรือ 9 รอบ เราเพราะฉะนั้น เราจึงแทนจำนวนรอบของการทำงานบรรทัดที่ 1 คือทำงาน 1 ครั้ง 1 รอบเพราะมันไม่ได้อยู่ในรูปมันเลยทำงาน 1 ครั้งบรรทัดที่ 2 มันทำงาน n - 1 ครั้งเมื่ออื่นใด ๆ มันทำเป็นลบ 1 ครั้งนะคะ บรรทัดที่ 3 ก็เหมือนกันว่าเป็น n - 1 มันต้องเที่ยบกันนะ อันนี้ให้ดูนะ 2 ตัวนี้ก็ต้องเท่ากันเขียนเหมือนกันนะคะ หาค่าฟังก์ชันเอาตัวข้างหลังมาบวกกัน 1 + (-1) + (n - 1) นะคะ ที่ได้กระจายตัวนี้นะคะบวก n - 1 + n ลบ 1 n + 1 n ได้เป็น 2 n1 - 1 - 1 1 กับ -1 หมดไหมเป็นศูนย์ไหมคะเหลือลบ 1ก็เลยเป็น 2 n - 1ฉะนั้น Big-O ก็คือเอา n ที่มากที่สุดเลนส์ตัวนี้ตัดสัมประสิทธิ์ออกภาษาไทยเป็นโอเอ็นค่อยดูนะ ต้นเรารู้ว่าทำงานกี่รอบคะ ขอให้นับให้ได้ว่าไม่มีค่าเป็นอะไรได้บ้าง แล้วมันทำงานทั้งหมดกี่รอบ โอเค เข้าใจตัว basic ตรงนี้ก่อนก็ได้นะคะ อย่างนี้ดีกว่าก่อนที่กูจะไปไฟ Range สัญลักษณ์ตัวอื่นนะ เป็น n + 1 - 1 นะคะ เดี๋ยวครูมีแบบฝึกหัดให้ทำก่อนนะในกระดาษ จะลองทำตัวนี้ดูก่อน คราวนี้อยากให้ในห้องนะมันเป็นคำอธิบายสิ่งที่สอนวันนี้แหละ โจทย์เป็น Range n1 Comment เรียนผ่านไปเมื่อกี้ 2 โจทย์นะคะ ครูจะเขียนอธิบายไว้ในชีตที่แจกเพิ่มสามารถนั่งดูตัวนี้ได้นะ แล้วก็เดี๋ยวครูให้ทำแบบฝึกหัดตัวนี้ก่อนเลยจะได้รู้ว่าเราพอทำได้ไหมนะคะ คนละ 1 แผ่นโดยเขียนลงไปในนี้เลยนะคะ ลองทำในแบบฝึกหัดที่ครูแจกให้นะคะ ลองดูกระดาษในสไลด์ที่เราเรียนไปเมื่อกี้ น่าจะเป็นตัวนี้ OK ก็จะคล้าย ๆ กับตัวนี้เลยจะคล้าย ๆ กับสิ่งที่ครูโชว์บนกระดานนี้คนสไลด์ค่อย ๆ ดูนะคะ ลองดูแล้วก็ดูชีทประกอบแล้วลองทำราคา ลองทำอย่างไรกูให้โจทย์ตัวนี้มาบาร์โค้ดข้างบนน่ะเหมือนกันเลยพระครูเปลี่ยนค่า n เฉย ๆ ครูกำหนดให้ n = 4 คราวนี้ครูเปลี่ยนให้ n = 4 นะ เพราะฉะนั้น ค่า i นี่มาเป็นค่าอะไรบ้าง เขียนให้ครบรู้ได้อย่างไร ถ้าเรายังจำไม่ได้เราก็มาเขียนตรงนี้ก่อนก็ได้นะคะ Range (4 มันมีค่าเป็นอะไรได้บ้าง พอเราเขียนลิสต์ตรงนี้แล้วแล้วก็มาเขียนในคอลัมน์ที่ 1ค่า i มีค่าเป็นอะไรบ้างแล้วก็ติ๊กถูกเลยติ๊กเครื่องหมายถูกมาทำงานที่คำสั่งนั้นแล้วนับมาทำงานกี่ครั้งแล้วก็นับมันมีเครื่องหมายถูกกี่ครั้งคือทำนานกี่ครั้ง แล้วเทียบว่า i ตัวนับวันนี้ที่เรานับได้นี่มาเทียบแล้วนี่มันควรแทนด้วย n อะไร + 1 - 1 หรือ n เฉย ๆ จากนั้นเอากลับคืนมาเขียนด้านบนเพื่อบอกว่าแต่ละบรรทัดประมาณกี่ครั้งเหลือกี่รอบได้แล้ว มาหาค่าฟังก์ชันนะ เอาแต่ละตัวมาบวกกัน แล้วก็หาค่า Big- O เป็นตัวสุดท้ายลองทำดูสิคะ ไม่ได้เดี๋ยวบอกนะครูเดินไปเดี๋ยวกูฝากอันนี้นะ เอกสารที่ครูให้ไปมีอยู่ 3 แผ่นนะคะ อยู่ 3 แผ่นมี 3 ตัวอย่างไม่อยู่ 3 แผ่นฝากไปอ่านนะปากไม่อ่านก็ทำความเข้าใจอีกครั้งหนึ่ง นะคะ ครูฝากกลับไปอ่านแล้วก็ทำความเข้าใจอีกครั้งหนึ่งนะ มีอยู่ 3 ตัวอย่างด้วยกันนะ เรามาดูด้วยกันอีก 1 ข้อนี่คือ คือเราสามารถนับจำนวนรอบได้นะ เราสามารถรู้ว่าถ้าไอนี่มีค่าเป็นอะไรได้บ้างและรู้ว่า Loop For จะทำงานกี่รอบน่าจะสับสนการแปลงให้เป็นค่า n เดี๋ยวค่อย ๆ ดูนะคะ ว่าจะสับสนเรื่องของการแปลงให้เป็นค่า n พอเราแปลงให้เป็นค่า n เสร็จแล้วมันย้อนกลับขึ้นไปดูตัวโค้ดอีกครั้งหนึ่งเขียนนะคะ บอกว่าบรรทัดแรกทำงานกี่ครั้งภาพที่ 2 กี่ครั้งและบรรทัดที่ 3 ทำงานกี่ครั้งแล้วจึงเอาจำนวนครั้ง เหล่านี้มาบวกกันค่าฟังก์ชันตรงนี้นะคะ ตัวเลขนี้มาจากไหนจากจำนวนครั้งของการทำงานในแต่ละ คำสั่งเห็นไหมบรรทัดแรกทำงาน 1 ครั้งบรรทัดที่ 2 มาดูจากตรงนี้ก็ได้เห็นไหมคะเงื่อนไขไอ ก็คือไอเหมือนกันทำงาน n ครั้ง แล้วก็แล้วก็เอา 3 บรรทัดมาบวกกัน โอเคตอนนี้มาดูโจทย์พร้อม ๆ กันบนกระดานนะคะ จดบนกระดานพร้อมกันครูมี 3 บรรทัดเหมือนกันมีตัวสัมพัทธ์เหมือนกันก็คือโค้ดน่ะมีอยู่ 3 บรรทัดใช่ไหมคะ ขายของเดิมเลยนะสังเกตเห็นไหมคะ ครูเปลี่ยนไปผู้ใช้เลนส์วงเล็บ +1 ราคา n + 1กำหนดให้ a n = 3เพราะฉะนั้น พรุ่งนี้มันคือ 3 + 1 เล่นวงเล็บเปิดวงเล็บปิดค่าที่ได้มีทั้งหมด 4 ค่ะวันนี้ตอนที่เราเข้าใจนะคะ พี่จะเริ่มต้นจาก 0 วงเล็บ 1 0 1 2 3 ข้อมูลนะคะมีอยู่ทั้งหมด 4 ตัวต้องทำงานกี่รอบรอบเห็นไหมคะ เพราะมีข้อมูลอยู่ 4 ตัวต้องทำงานทั้งหมด 4 รอบใครเป็นอะไรได้บ้างเป็น 0 ใหญ่ ๆ คะ ที่เราเขียนด้านบนนี้เลย 0 1 2 3 จะมีค่าที่เป็นไปได้อยู่ 4 5 ด้วยกัน 0 1 2 3 เราหาจำนวนรอบใช่ไหมคะ อันนี้คือค่าที่เป็นไปได้ตรงนี้เราก็ติ๊กถูกให้หมดเลย เพราะฉะนั้น จำนวนครั้งที่ครั้งที่ทำ 4 ครั้งบรรทัด Total ทำ 4 ครั้ง ทำ 4 ครั้งคำสั่ง for I in Range ก็ทำ 4 ครั้งแล้วเมื่อแทรด้วย n ใด ๆ ใช่ไหมคะ เดิมเราเป็น 3 ทำอย่างไรจะเป็นสีได้ก็ต้องบวกอะไรคะ +1 ใช่หรือเปล่า 3 + 1 เป็น 4กับข้างบนเลยพวกนี้นะคะ ก็คือ 3 + 1เท่ากับ 4 นะ ตรงนี้เลยกลายเป็น n + 1 นะคะ เพราะด้วย 33 + 1 = 4เท่ากับตัวข้างบนเลยเพราะฉะนั้น เราจึงบอกได้คำสั่งแต่ละ คำสั่งในครัวบรรทัดนี้ทำงานกี่รอบบรรทัดที่ 1 ทำงาน 1 รอบเห็นไหมคะ เราเขียนไว้ก่อนเขียนไว้ก่อนมันทำงาน 1 รอบแน่นอนบรรทัดที่ 2 ทำงานกี่ครั้ง มาทำงาน n + 1 ครั้ง แล้วก็เขียนไว้ข้างหลังก่อนเห็นไหมคะ บรรทัดที่ 3 ทำงานกี่ครั้ง นี่ไง n + 1 ครั้งเราหาค่า n ตรงนี้ได้แล้วย้อนกลับขึ้นไปเขียนส่งหลังคำสั่งแต่ละคำสั่งด้วยวันนี้ทำงาน n + 1 ครั้งอันนี้คือทำงาน n + 1 ครั้ง เราลองแทนค่า n ด้วย 3 เห็นไหมคะ พระครูแทนด้วย 3 หรือเปล่าพรุ่งนี้ก็ทำงาน 4 ครั้งรวมกันเลยเห็นไหมคะ แล้วก็ตรงกับค่านี้คือทำงาน 4 ครั้งแล้วครูจะหาค่า Fn ก็เอาแต่ละบรรทัดมาเขียนไหม n + 1+ n + 1 นะคะ ครูก็กระจายค่าออกมา 1 + n + 1 + n+1 จะได้เท่ากับ 1 n + 1 n ก็กลายเป็น 2n นะคะ 1 + 1 + 1 ก็กลายเป็น 3หาค่า Big-O ก็เอ็นที่มากที่สุดก็คือตัวนี้เลยได้เป็นโอเอ็นนะคะ เราเลือกค่า n ที่มากที่สุดใช่เป็นตัวสุดท้ายก่อนนะ เดี๋ยวช่วยครูทำหน่อยก่อนเลิก ครูมีโจทย์นะเล่นวงเล็บ n - 1ใ ห้ N = 3 ช่วยครูหน่อยหาว่าค่าไอที่เป็นไปได้ถ้าเป็นอะไรได้บ้าง 3 - 1 ได้เท่าไรคะ ของฉะนั้น หน้าที่เป็นไปได้คือค่าอะไรบ้างคะ เริ่มต้นที่ 0 เพราะว่าไม่มีอะไรนี่ ครูไม่ได้บอกว่าเริ่มต้นที่เท่าไรจะออกไหมเริ่มต้นจาก 0 1 มี 2 ไหมไม่มีได้ไหมคะวงเล็บ 2 จะได้ค่าเป็น 0 1ทำงานกี่รอบ 2 รอบหรือเปล่าทำงาน 2 รอบวันนี้ทุกคนทำงาน 2 รอบทุกคนรู้ว่าทำงาน 2 รอบถูกไปก่อนใช่ไหมคะ ที่ได้คือ 0 กับ 1 ค่า i ที่เป็นไปได้คือ 0 กับ 1 ทำงาน 2 รอบต้องลบเท่าไรคะ ถึงจะเป็น 2 ตอนนี้ n เป็น 3 ลบอะไรถึงจะเป็น 2 3 - 1 2 เพราะฉะนั้น แผน 3 ก็คือ End นะคะก็เลยกลายเป็น n - 1 ทันไหมคะ ลบ 1 มาจากไหนเดิม n = 3 ถูกหรือเปล่าทำอย่างไรให้ n = 2 คือ -1 มันก็เลยจะเป็น 2 เพราะฉะนั้น วันที่ 1 ทำงาน 1 ครั้งที่ 2ทำงานครบ 1 ครั้งบรรทัดที่ 3 ก็ n - 1 ครั้งนะคะตัวเลขมาบวกกัน 1 บวกกับเป็นลบ 1 n - 1 เท่ากับเท่าไร ครูกระจายก่อน 1 + n - 1+ n - 1 = 2 n อันนี้ตัดได้ถูกไหม 1 - 1 ได้ 0 ก็ลบหนึ่งแล้วจะนั่น Big-O คืออะไรคะ on มีใครงงไหมเริ่มงงตรงไหนไหมคะ ตอนนี้นะเดี๋ยวกลับไปทวนอีกครั้งหนึ่งนะคะ เดี๋ยวพรุ่งนี้ครูจะฝากแบบฝึกหัดเดี๋ยวกูจะปริ้นแบบนี้มาให้ ให้ลองทำอีก 2 ข้อคนละ 1 แผ่นด้านหลังเดี๋ยวกูจะไปฝากไว้ที่ DSS นะคะ พรุ่งนี้เช้าเสร็จแล้ว เสร็จแล้วฝากไปอ่านชีทนี้ดีกว่า คืนนี้นั่งอ่านชีทที่ครูให้หน่อยนะนะคะ ไม่เข้าใจถามพี่เขา พรุ่งนี้หลังจากที่อ่านมาแล้วนี่ไม่เข้าใจประเด็นตรงไหนไม่เข้าใจบรรทัดไหนไม่บอกนะ ลงมาเลยเดี๋ยวให้พี่อุ๋ยเขาอธิบายให้ให้วงหรือไฮไลท์ที่เราไม่เข้าใจนะคะ เสร็จแล้วนี่เราทำแบบฝึกหัดนะคะ เดี๋ยวครูให้โจทย์ 2 โจทย์ เดี๋ยวครูทำบนกระดาน แบบฝึกหัดนี้มาให้แล้วก็ลองทำดูว่าถ้าครูกำหนดค่า n มาให้แบบนี้จะทำงานค่าไอที่เป็นไปได้มีค่าอะไรบ้างแล้วทำงานกี่รอบเริ่มต้นทำงานกี่รอบให้ได้ก่อนแล้วกันนะคะกูว่าน่าจะได้แล้วล่ะ ถ้าจะลงตารางอาจจะสับสนนิดหน่อยนะ ต้องลองทำแบบฝึกหัดนะคะ มันน่าจะเข้าใจมากขึ้นเดี๋ยวครูเช็คชื่อหน่อยศิริรัตน์ อดิศร มาค่ะ นพกิต พงศ์พร จันธกานต์ กัญญาณัฐ ติด COVID วริษาภัทรดา เทพอักษร ธนภัทร ภากร โอเคเดี๋ยวเจอกันสัปดาห์หน้านะ ค่ะ สวัสดีค่ะ เรียบร้อยแล้วค่ะขอบคุณค่ะล่าม