Найти в Дзене

Фибоначчи без рекурсии

Оглавление

Что такое числа Фибоначчи, считаю описывать не стоит, в интернете полно информации об этом. Существует множество способов их вычисления, один из них рекурсия, которая имеет свои определенные недостатки.

Первый раз я вычисление чисел Фибоначчи написал на PascalABC через рекурсию. И когда начал изучать Python, решил написать вычисление на Python, но решил сделать это уже не через рекурсию.

Последовательность чисел Фибоначчи. Источник - Яндекс.Картинки
Последовательность чисел Фибоначчи. Источник - Яндекс.Картинки

А через списки.

Решение

В данном случае вычисляются все числа Фибоначчи от 0 до n, таким образом мы можем получить доступ к любому числу Фибоначчи.

В приведенном выше коде печатаются все числа Фибоначчи, но сделав

print(f[n - 1])

Мы получим n-е число Фибоначчи.

Задача

Числа Фибоначчи: F0 = 0, F1 = 1, а любое следующее число Фибоначчи равно сумме двух предыдущих: Fn = F(n – 1) + F(n – 2) .

Известно, что при достаточно больших n справедливо приближенное равенство:

Формула вычисления приближенного значения n-го числа Фибоначчи. Источник - Яндекс.Картинки
Формула вычисления приближенного значения n-го числа Фибоначчи. Источник - Яндекс.Картинки

Определите наименьший номер n, начиная с которого равенство выполняется с точностью до заданного eps.

Решение

А используя

a, b = b, a + b

в цикле мы всего в пару строчек сможем вычислить практически любое число Фибоначчи в несколько строк. Данное предположение думаю стоит проверить.

Спасибо за потраченное время на прочтение.

Строго не судите.

За уместные комментарии буду признателен.

Примечание:
Задача из: Потапова Е.А. Программирование: учебное методическое пособие. — Томск: Факультет дистанционного обучения, ТУСУР, 2013.

Наука
7 млн интересуются