การเรียกซ้ำเป็นเทคนิคที่ค่อนข้างน่ากลัวในการเขียนโปรแกรม อย่างน้อยสำหรับฉันมันคือ อย่างไรก็ตาม การพิจารณาให้ละเอียดยิ่งขึ้นว่าการเรียกซ้ำคืออะไรและกระบวนการที่ดูเหมือนได้ขจัดการข่มขู่บางอย่างออกไป หวังว่านี่จะช่วยตอบคำถามสำหรับคนอื่น ๆ และเป็นการแนะนำให้รู้จักกับการเรียกซ้ำ
ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่เรียกตัวเอง มันจะเรียกตัวเองต่อไปจนกว่าจะตรงตามเงื่อนไขหรือกรณีพื้นฐาน
ปี. คอมลิงค์
ตัวอย่างที่ฉันจะใช้เพื่อแสดงให้เห็นว่านี่เป็นแฟกทอเรียล ชื่ออื่นที่ค่อนข้างข่มขู่ แต่เรียบง่าย แฟกทอเรียลเป็นผลคูณของจำนวน 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 - การเรียกซ้ำเป็นเทคนิคที่ค่อนข้างน่ากลัวในการเขียนโปรแกรม อย่างน้อยสำหรับฉันมันคือ อย่างไรก็ตาม เมื่อพิจารณาให้ละเอียดยิ่งขึ้นว่าการเรียกซ้ำคืออะไร และ...
ดูสิ่งนี้ด้วย:
- จะซื้อประกันการเงินได้อย่างไรและที่ไหน (INFI) – คำแนะนำทีละขั้นตอนง่าย ๆ
- พิมพ์ความเร็วโปรแกรม Java - คำนวณ WPM (คำต่อนาที)
- เรียนรู้ปฏิกิริยาโดยการสร้างแอปพลิเคชันอีคอมเมิร์ซด้วยส่วนประกอบคลาส
- สถิติแบบเบย์: เมโทรโพลิส-เฮสติงส์ตั้งแต่เริ่มต้นใน Python
- มาสร้างแอป MongoDB, React, Node และ Express (MERN) แบบเต็มสแต็กกันเถอะ