maxresdefault
Время для прочтения: 0 мин. 15 сек.

Нахождение чисел Фибоначчи при помощи формулы Бине

Чи́сла Фибона́ччи — элементы числовой последовательности, в которой каждое последующее число равно сумме двух предыдущих чисел. Название по имени средневекового математика Леонардо Пизанского (известного как Фибоначчи). Иногда число 0 не рассматривается как член последовательности.

Пример ряда чисел Фибоначчи:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 …

Обычно числа Фибоначчи находят при помощи рекурсивной функции, но проще и менее ресурсоёмко это сделать при помощи формулы Бине:

Формула Бине

На РНР это будет выглядеть так (пример):

function fibonacciNumbers($n) {
    $sq5 = sqrt(5);
    $a = (1 + $sq5) / 2;
    $b = (1 - $sq5) / 2;
    return (pow($a, $n) - pow($b, $n)) / $sq5;
}

Ссылки

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

9 комментариев

по хронологии
по рейтингу сначала новые по хронологии

Очень занимательно. Не знал про эти числа, хотя слышал в кино.

А нельзя просто складывать два числа, и так будет находится третье, потом это третье складывать с предыдущем, и оно будет являться четвертым и тп??

Автор
Кобзарёв Михаил

Попробуйте таким способом найти хотя бы тысячный член последовательности 🙂

при n=1475 и выше , скрипт уходит в infinity . как это побороть?

Автор
Кобзарёв Михаил

Зависит от вашей машины и настроек РНР

я думаю что нужно прикрутить GMP или BCMath . но я не знаю как это сделать. помогите пожалуйста.

Автор
Кобзарёв Михаил

А в чем трабл? В мануале посмотрите процесс установки и настройки

я плохо разбираюсь (