การสร้างภาพการเรียกซ้ำ

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

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

ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่เรียกตัวเอง มันจะเรียกตัวเองต่อไปจนกว่าจะตรงตามเงื่อนไขหรือกรณีพื้นฐาน

ปี. คอมลิงค์

ตัวอย่างที่ฉันจะใช้เพื่อแสดงให้เห็นว่านี่เป็นแฟกทอเรียล ชื่ออื่นที่ค่อนข้างข่มขู่ แต่เรียบง่าย แฟกทอเรียลเป็นผลคูณของจำนวน n และทุกจำนวนที่อยู่ด้านล่าง มันเขียนว่า ! หลังเลข. ดังนั้น 4! (แฟกทอเรียลของ 4) คือ 24. เมื่อเราเขียนมันออกมา, นี่ก็แค่ 4 x 3 x 2 x 1



นี่คือรหัส:

ไม่มีอะไรบ้าเกินไปที่นี่ เราเรียกฟังก์ชันแฟกทอเรียลของเราและตรวจสอบว่าเราชนกับกรณีฐานออกหรือไม่ ซึ่งก็คือ num นั้นเท่ากับ 1 หากตรงกับกรณีฐาน เราจะคืนค่า 1 มิฉะนั้น เราจะส่งคืนผลคูณของ num และฟังก์ชันแฟกทอเรียลแบบเรียกซ้ำ . ทุกครั้งที่เราเรียกใช้ฟังก์ชันแฟกทอเรียล การเรียกฟังก์ชันหรือรายการใหม่ จะถูกเพิ่มหรือผลักไปที่ด้านบนของสแต็กการเรียก แต่ละรายการใน call stack กำลังรอให้รายการด้านบนนั้นได้รับการแก้ไขเพื่อที่จะแก้ไขตัวเอง การเรียกใช้ฟังก์ชันครั้งแรกที่จะได้รับการแก้ไขคือฟังก์ชันที่กระทบกรณีพื้นฐาน เมื่อถึงจุดนั้น การเรียกใช้ฟังก์ชันที่กระทบกับตัวพิมพ์พื้นฐานจะถูกลบออกหรือถูกดึงออกจากด้านบนของ call stack ตอนนี้ เรามี call stack ตัวใหม่ และจะแก้ไขให้ สิ่งนี้จะดำเนินต่อไปจนกว่าเราจะไปถึงด้านล่างสุดของ call stack และเราได้ผลตอบแทนครั้งสุดท้าย

#programming #coding #อัลกอริทึม #javascript

medium.com

การสร้างภาพการเรียกซ้ำ

Visualizing Recursion - การเรียกซ้ำเป็นเทคนิคที่ค่อนข้างน่ากลัวในการเขียนโปรแกรม อย่างน้อยสำหรับฉันมันคือ อย่างไรก็ตาม เมื่อพิจารณาให้ละเอียดยิ่งขึ้นว่าการเรียกซ้ำคืออะไร และ...

ดูสิ่งนี้ด้วย: