@hunter2

Не могу вычислить число фибоначи, есть кто силен в этом вопросе?

Нужно не столько вычислить сколько хочу понять как оно вычисляется.
Задача: Реализуйте функцию fib находящую числа Фибоначчи. Аргументом функции является порядковый номер числа.
f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)

Пример:
2 == fib(3) // если по формуле то должно быть fib(3) = f(n-1) + f(n-2) = f(2) + f(1) = 2+1=3, как 2 получилось ???
5 == fib(5) // тут что такое 5 ???
55 == fib(10)
  • Вопрос задан
  • 404 просмотра
Решения вопроса 1
isqua
@isqua
Научу HTML, CSS, JS, BEM и Git
f(2) = f(1) + f(0) = 1. Вот где вы ошиблись. Поэтому

f(3) = f(2) + f(1) = 1 + 1 = 2;
f(4) = f(3) + f(2) = 2 + 1 = 3;
f(5) = f(4) + f(3) = 3 + 2 = 5;
f(6) = f(5) + f(4) = 5 + 3 = 8;
f(7) = f(6) + f(5) = 8 + 5 = 13;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
alsopub
@alsopub
Вам нужно изучать понятие рекурсия.
"как 2 получилось" - так же f(2) = f(n-1) + f(n-2)
Только у вас ошибка, fib(3) = 2 а не 3
Код - codepen.io/anon/pen/ezOxMQ?editors=1111
Ответ написан
Комментировать
@entermix
Видимо проблема в Вашей функции, попробуйте:

function fibonacci($n)
{
    if ($n < 3) {
        return 1; 
    }
    else {
        return fibonacci($n-1) + fibonacci($n-2);
    }
}

for ($n = 1; $n <= 16; $n++) {
    echo(fibonacci($n) . ", ");
}
echo("...\n")

progopedia.ru/example/fibonacci/89
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы