ขนาดวิดีโอ: 1280 X 720853 X 480640 X 360
แสดงแผงควบคุมโปรแกรมเล่น
เล่นอัตโนมัติ
เล่นใหม่
ขอบคุณที่ทำวิดีโอมาสอนครับคุ้นๆ ว่าเทคนิคตรง 4:39 นี้มันคือ memoization นี่ครับ จะต่างจาก dynamic programming อยู่นิดหน่อย ถ้าเป็น dynamic programming มันมักจะเป็น bottom-up จะกลายเป็นว่าเราจะเริ่มจาก base case ก่อนส่วน memoization จะเป็น top-down ครับ
ขอบคุณสำหรับคอมเม้นต์ครับบ~ ในทางทฤษฎีคิดว่าคงมีความต่างกันตามที่ว่าครับ ส่วนในทางปฏิบัติ ผมทำ memoization ก่อนตลอดเลยตอนที่ผมบอกว่า “dynamic programming คือ recursion + cache” นี่ก็คิดอยู่เหมือนกันว่าจะพูดเรื่อง top-down vs bottom-up ด้วยดีไหม แต่ก็เลือกอธิบายแบบ top-down เป็นหลักเพื่อให้เข้าใจง่ายไว้ก่อนครับจากที่ผมอ่านๆ ดู พบว่ามีหลายมุมมองเรื่องนี้ที่ต่างกันไปครับ:・ บ้างก็มองว่า memoization เป็นวิธีแก้ปัญหาแบบ top-down, ส่วน dynamic programming เป็นวิธีแก้ปัญหาแบบ bottom-up เสมอ・ บ้างก็มองว่า dynamic programming ไม่ใช่วิธีแก้ปัญหาซะทีเดียว แต่เป็นรูปแบบของปัญหาที่มี overlapping subproblem ซึ่งเวลาแก้ จะทำแบบ top-down (“memoization”) หรือ bottom-up (“tabulation”) ก็ได้ครับและยังมีประเด็นที่ว่า memoization กับ caching มันมีรายละเอียดปลีกย่อยที่อาจจะต่างกันอยู่ (ซึ่งผมก็ยังไม่สามารถพูดได้ว่าผมเข้าใจมัน) แต่คิดว่าเรียกว่า cache โอกาสที่คนเข้าใจง่ายกว่าเรียกว่า memoize ครับref. stackoverflow.com/questions/22918242/is-dynamic-programming-backtracking-with-cache
@@dtinth จริงๆ ตอนเรียนเค้าก็มักจะลำดับตามนี้อยู่แล้วครับRecursive => memoization => dpเลยคิดว่า approach น่าจะไม่มีปัญหาครับ
เรียนมาทั้งเทอมไม่เข้าใจ ดูคลิปนี้ 8 นาที เข้าใจเลย สอนได้เฉียบมากกกก!
ขอบคุณที่แชร์ครับ เปิดโลกผมเกี่ยวกับเรื่องrecursionเลยตั้งแต่เรียนมหาลัย ไม่เคยเข้าใจเลย เขาสอนทำrecursionไปทำไม computationก็แย่ มีดีแค่codeสั้น ทำงานเขียนโปรแกรมมา5ปีก็ไม่ได้ใช้เลย ดูอันนี้เสร็จ แล้วต้องหาไปเรียนrecursionใหม่เลย
ขอบคุณครับได้ความรู้มากๆ ผมไปอยู่ไหนมาพึ่งมาเจอช่องนี้ติดตามแล้วครับ 🙏
ความรู้ย่อยง่ายมาก ขอบคุณมากๆครับ
เข้าใจง่ายมากเลยครับ
LINQ ใน C# ก็โกงพอๆกันกับท่านี้ของ Ruby เลย แถมเท่าที่เคยลองใช้ Recursive สัก 100 ล้านก็ไม่ตายด้วย แต่ต้องใช้ Async await กับเรื่อง Intptr (pointer) ให้เป็น
อธิบายเข้าใจมากๆ ขอบคุณค่ะ ^^
เนื้อหาดีมาก ตรงประเด็นไม่พูดน้ำเลย
เปิดกะโหลกมากๆ ขอบคุณครับ
ของโครตดีอะ ขอบคุณความรู้เน้นๆ
คลิปดีมากครับ
เข้าใจง่ายมากครับ ปลอดล็อคเลย ขอบคุณมากๆครับ
รู้อะไรไม่สู้ ❤ รูบี้
😂
เปิดโลกมาก
ขอบคุณครับผมที่ทำมาให้รับความรู้เพิ่ม
พี่ไทใช่ไหมม ถ้าใช่คือบังเอิญมากที่มาเจอ โค้ดวอร์รูบี้ยังตราตึงใจ😂
yes, it's me krubbb
ขอบคุณครับ
ขอบคุณครับบบ
อาจารย์ ไท สอนที่ไหนเหรอครับ
ว่าจะสอนทาง TH-cam นี่แหละ 😂 แต่นานๆ อัพที แล้วแต่จังหวะและอารมณ์ครับบ 😅
Comic Sans Font is cute
เพิ่งรู้เหมือนกันว่า Bitwise not ใน JS/TS มันตัดทศนิยมออกจากการคำนวณเลย
กราบบบบบบบบบบบบบบบบบ
ชอบๆ
❤
Ruby 😂🎉
ภาษา ruby โกงจริงครับ😂 แต่เวลาเราจะยกตัวอย่างอะไรสักอย่างมันเขียนไวดีนะ
ดูไม่รู้เรื่องแต่เพลินมากครับชอบกระบวนการคิด
ขอบคุณที่ทำวิดีโอมาสอนครับ
คุ้นๆ ว่าเทคนิคตรง 4:39 นี้มันคือ memoization นี่ครับ จะต่างจาก dynamic programming อยู่นิดหน่อย
ถ้าเป็น dynamic programming มันมักจะเป็น bottom-up จะกลายเป็นว่าเราจะเริ่มจาก base case ก่อน
ส่วน memoization จะเป็น top-down ครับ
ขอบคุณสำหรับคอมเม้นต์ครับบ~ ในทางทฤษฎีคิดว่าคงมีความต่างกันตามที่ว่าครับ ส่วนในทางปฏิบัติ ผมทำ memoization ก่อนตลอดเลย
ตอนที่ผมบอกว่า “dynamic programming คือ recursion + cache” นี่ก็คิดอยู่เหมือนกันว่าจะพูดเรื่อง top-down vs bottom-up ด้วยดีไหม แต่ก็เลือกอธิบายแบบ top-down เป็นหลักเพื่อให้เข้าใจง่ายไว้ก่อนครับ
จากที่ผมอ่านๆ ดู พบว่ามีหลายมุมมองเรื่องนี้ที่ต่างกันไปครับ:
・ บ้างก็มองว่า memoization เป็นวิธีแก้ปัญหาแบบ top-down, ส่วน dynamic programming เป็นวิธีแก้ปัญหาแบบ bottom-up เสมอ
・ บ้างก็มองว่า dynamic programming ไม่ใช่วิธีแก้ปัญหาซะทีเดียว แต่เป็นรูปแบบของปัญหาที่มี overlapping subproblem ซึ่งเวลาแก้ จะทำแบบ top-down (“memoization”) หรือ bottom-up (“tabulation”) ก็ได้ครับ
และยังมีประเด็นที่ว่า memoization กับ caching มันมีรายละเอียดปลีกย่อยที่อาจจะต่างกันอยู่ (ซึ่งผมก็ยังไม่สามารถพูดได้ว่าผมเข้าใจมัน) แต่คิดว่าเรียกว่า cache โอกาสที่คนเข้าใจง่ายกว่าเรียกว่า memoize ครับ
ref. stackoverflow.com/questions/22918242/is-dynamic-programming-backtracking-with-cache
@@dtinth จริงๆ ตอนเรียนเค้าก็มักจะลำดับตามนี้อยู่แล้วครับ
Recursive => memoization => dp
เลยคิดว่า approach น่าจะไม่มีปัญหาครับ
เรียนมาทั้งเทอมไม่เข้าใจ ดูคลิปนี้ 8 นาที เข้าใจเลย สอนได้เฉียบมากกกก!
ขอบคุณที่แชร์ครับ เปิดโลกผมเกี่ยวกับเรื่องrecursionเลย
ตั้งแต่เรียนมหาลัย ไม่เคยเข้าใจเลย เขาสอนทำrecursionไปทำไม computationก็แย่ มีดีแค่codeสั้น ทำงานเขียนโปรแกรมมา5ปีก็ไม่ได้ใช้เลย ดูอันนี้เสร็จ แล้วต้องหาไปเรียนrecursionใหม่เลย
ขอบคุณครับได้ความรู้มากๆ ผมไปอยู่ไหนมาพึ่งมาเจอช่องนี้ติดตามแล้วครับ 🙏
ความรู้ย่อยง่ายมาก ขอบคุณมากๆครับ
เข้าใจง่ายมากเลยครับ
LINQ ใน C# ก็โกงพอๆกันกับท่านี้ของ Ruby เลย แถมเท่าที่เคยลองใช้ Recursive สัก 100 ล้านก็ไม่ตายด้วย แต่ต้องใช้ Async await กับเรื่อง Intptr (pointer) ให้เป็น
อธิบายเข้าใจมากๆ ขอบคุณค่ะ ^^
เนื้อหาดีมาก ตรงประเด็นไม่พูดน้ำเลย
เปิดกะโหลกมากๆ ขอบคุณครับ
ของโครตดีอะ ขอบคุณความรู้เน้นๆ
คลิปดีมากครับ
เข้าใจง่ายมากครับ ปลอดล็อคเลย ขอบคุณมากๆครับ
รู้อะไรไม่สู้ ❤ รูบี้
😂
เปิดโลกมาก
ขอบคุณครับผมที่ทำมาให้รับความรู้เพิ่ม
พี่ไทใช่ไหมม ถ้าใช่คือบังเอิญมากที่มาเจอ โค้ดวอร์รูบี้ยังตราตึงใจ😂
yes, it's me krubbb
ขอบคุณครับ
ขอบคุณครับบบ
อาจารย์ ไท สอนที่ไหนเหรอครับ
ว่าจะสอนทาง TH-cam นี่แหละ 😂 แต่นานๆ อัพที แล้วแต่จังหวะและอารมณ์ครับบ 😅
Comic Sans Font is cute
เพิ่งรู้เหมือนกันว่า Bitwise not ใน JS/TS มันตัดทศนิยมออกจากการคำนวณเลย
กราบบบบบบบบบบบบบบบบบ
ชอบๆ
❤
Ruby 😂🎉
ภาษา ruby โกงจริงครับ😂 แต่เวลาเราจะยกตัวอย่างอะไรสักอย่างมันเขียนไวดีนะ
ดูไม่รู้เรื่องแต่เพลินมากครับชอบกระบวนการคิด