Sobes.tech
Intern

Фибоначчи тізбегі дегеніміз не?

sobes.tech AI

AI-дан жауап

Фибоначчи тізбегі — бұл әр келесі саны алдыңғы екі санның қосындысы болатын сандық тізбек. Әдетте, тізбектегі алғашқы екі сан 0 және 1-ге тең.

Ресми анықтама: F(0) = 0 F(1) = 1 F(n) = F(n-1) + F(n-2) n > 1 кезінде.

Тізбектің алғашқы бірнеше санының мысалы: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

PHP-да жүзеге асыру мысалы:

<?php

/**
 * Н-ші Фибоначчи санын рекурсивті түрде генерациялайды.
 * Үлкен n үшін тиімсіз, себебі қайталанатын есептеулер көп.
 *
 * @param int $n Тізбектегі санның индексі (0-ден басталады).
 * @return int Н-ші Фибоначчи саны.
 */
function fibonacciRecursive(int $n): int
{
    if ($n <= 1) {
        return $n; // Негізгі жағдай: F(0)=0, F(1)=1
    }
    return fibonacciRecursive($n - 1) + fibonacciRecursive($n - 2); // Рекурсив шақыру
}

/**
 * Н-ші Фибоначчи санын итеративті түрде генерациялайды.
 * Үлкен n үшін тиімдірек.
 *
 * @param int $n Тізбектегі санның индексі (0-ден басталады).
 * @return int Н-ші Фибоначчи саны.
 */
function fibonacciIterative(int $n): int
{
    if ($n <= 1) {
        return $n; // Негізгі жағдай
    }

    $a = 0; // F(n-2)
    $b = 1; // F(n-1)

    for ($i = 2; $i <= $n; $i++) {
        $c = $a + $b; // F(n) = F(n-2) + F(n-1)
        $a = $b; // F(n-2)-ні жаңарту
        $b = $c; // F(n-1)-ді жаңарту
    }

    return $b; // Соңғы есептелген сан нәтиже
}

// Қолдану мысалдары
// echo fibonacciRecursive(7); // Шығу: 13
// echo fibonacciIterative(7); // Шығу: 13

?>