Sobes.tech
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-ро мебарорад
?>

Фоидаҳо:

  • Зебоии ва кӯтоҳии коди барои баъзе масъалаҳо.

Норасоиҳо:

  • Мумкин аст, ки ба пур кардани сақф дар сатҳҳои рекурсияи хеле амиқ оварда расонад.
  • Мумкин аст, ки камтар самараноктар аз ҳалли итеративӣ барои ҳамон масъалаҳо бошад, бо сабаби хароҷоти иловагии даъвати функсияҳо.

Бештар барои гузариш дар дарахтҳо, системҳои файлӣ, ҳалли масъалаҳои комбинаторӣ истифода мешавад.