Intern
Ի՞նչ է ռեկուրսիան։
sobes.tech AI
Պատասխան AI-ից
Ինքն իրեն կանչող ֆունկցիա:
Կիրառվում է այն խնդիրների լուծման համար, որոնք կարելի է բաժանել ենթաբազմությունների, որոնք ունեն նույն կառուցվածքը, ինչ սկզբնական խնդիրն է: Անհրաժեշտ է ունենալ ելքի պայման (բազային դեպք), որպեսզի խուսափել անսահման ցիկլից:
Օրինակ՝ ֆակտորիալի հաշվարկը:
<?php
function factorial(int $n): int
{
// Բազային դեպք
if ($n <= 1) {
return 1;
}
// Ռեկուրսիվ կանչ
return $n * factorial($n - 1);
}
echo factorial(5); // Կարտածի 120
?>
Առավելություններ՝
- Կոդի նրբագեղություն և կարճություն որոշ խնդիրների համար:
Նշանավոր՝
-
Կարող է հանգեցնել stack overflow-ի շատ խոր ռեկուրսիայի դեպքում:
-
Հնարավոր է՝ պակաս արդյունավետ, քան ինտերատիվ լուծումները նույն խնդիրների համար՝ ֆունկցիայի կանչումների ավելորդ ծախսերի պատճառով:
Օգտագործվում է հաճախ՝ ծառերի traversal, ֆայլային համակարգեր, կոմբինատորիկ խնդիրների լուծում։