Бывают такие случаи, когда необходимо генерировать или вычислять числа Фибоначчи при помощи Python. Числа Фибоначчи — это рядность целых последовательных чисел. Числовой ряд строится по следующему принципу: каждое число является суммой предыдущих двух чисел.
Последовательность числового ряда Фибоначчи выглядит так: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 и так далее до бесконечности. Числа Фибоначчи известны не только своей грациозной последовательностью и красивыми графиками, но и одной особенностью: при делении двух соседних чисел (большее на меньшее) получается примерно одинаковый результат — 1,618. Такая пропорция названа «золотым сечением». Чуть позже люди стали замечать, что «золотое сечение» прослеживается везде в нашем окружении:
пропорциональный рост граней снежинок;
расположение лепестков в цветах и листьев в папоротнике;
рост «чешуек» ананаса;
раковины улиток завиты по этому сечению;
пропорции человеческого тела, например, рост разделить на расстояние от ступней и до пояса;
и др.
Кстати, ученые выяснили, что люди, чья внешность кажется наиболее приятной, несут больше соотношений «золотого сечения» в своем строении.
Цикл «while» в Python и числа Фибоначчи
Наиболее популярным методом вычисления числа Фибоначчи является использование цикла. Представим, что вам нужно вычислить число Фибоначчи с индексом «n». Что мы имеем:
fnum1 и fnum2 нам известны, значения первых двух чисел Фибоначчи равны 1;
количество проходов по циклу будет на 2 пункта меньше, потому что первые два числа нам известны, то есть «n-2»;
в цикле должны выполняться следующие действия: fnum1+fnum2, а полученную сумму необходимо будет сохранять в переменную, допустим, в fibSum;
после суммирования переменной fnum1 присваивается значение предыдущего fnum2, а fnum2 присваивает значение fnumSum, освобождая переменную для следующего суммирования;
цикл повторяется «n-2» количество раз;
после окончания прохождения цикла на экран необходимо вывести значение последней переменной fnum2.
Как это реализуется:
fnum1 = 1
fnum2 = 1
n = input (“ Введите номер числа Фибоначчи: “)
n = int(n)
i = 0
while i< n-2:
fnumSum = fnum1 + fnum2
fnum1 = fnum2
fum2 = fnumSum
i = i+1
print(“Число Фибоначчи под вашим номером: “, fnum2)
Результат программы будет следующим:
Введите номер числа Фибоначчи: 13
Число Фибоначчи под вашим номером: 233
Цикл «for» в Python и числа Фибоначчи
Цикл «for» в Python позволяет вывести не только конкретное число Фибоначчи, но и все предшествующие числа, то есть целый ряд чисел. Чтобы у нас это получилось, мы вывод значения «fsum2» поместим в цикл.
Как это реализуется:
fnum1 = fnum2 = 1
n = intput (“Введите номер числа Фибоначчи: “)
n = int(n)
print (fnum1, fnum2, end= )
for i in range(2, n):
fnum1, fnum2 = fnum2, fnum1 + fnum2
print(“Ряд чисел Фибоначчи до указанного номера: “, fnum2, end= )
Программа нам выдаст следующий результат:
Введите номер числа Фибоначчи: 13
Ряд чисел Фибоначчи до указанного номера: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233
Заключение
Числа Фибоначчи можно просчитать при помощи циклов «for» или «while». Иногда для генерации чисел используют рекурсию, однако она имеет ряд ограничений и работает медленнее, чем представленные функции.
Python