Реализация последовательности Фибоначчи в Python

Опубликовано: 2023-02-23

Python — это мощный и универсальный многоцелевой язык программирования, который упрощает реализацию искусственных нейронных сетей и поддерживает обработку естественного языка, глубокое обучение, распознавание лиц, генетические алгоритмы и многие другие подобные современные задачи на основе искусственного интеллекта.

В этой статье рассматриваются некоторые из основных способов использования Python для точного создания последовательности Фибоначчи — отличный пример относительно простых алгоритмов, которые не только полезны сами по себе, но и часто лежат в основе создания продвинутых программ, способных выполнять сложные задачи. когнитивные функции.

Оглавление

Что такое последовательность Фибоначчи?

Последовательность Фибоначчи, пожалуй, одна из самых простых, самых ранних и самых известных математических последовательностей, известных человечеству.

Это непрерывный ряд целых чисел, где каждое последующее число равно сумме двух предыдущих чисел. Ряд Фибоначчи начинается с 0 и 1 и продолжается следующим образом: 0, 1, 1, 2, 3, 5, 8, 13. , 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368 и так далее.

С нулем в качестве отправной точки последовательность Фибоначчи бесконечно расширяется двунаправленным образом следующим образом:
…610, -377, 233, -144, 89, -55, 34, -21, 13, -8, 5, -3, 2, -1, 1, 0, 1, 1, 2, 3, 5 , 8, 13, 21, 34, 55, 89, 144, 233, 377, 610… Последовательность слева от нуля известна как последовательность «негафибоначчи».

Ознакомьтесь с нашими бесплатными технологическими курсами, чтобы получить преимущество над конкурентами.

Последовательность Фибоначчи может быть математически представлена ​​следующим образом:

н 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
х п 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610

Где n — номер термина, а xn значение термина. Формула для вычисления значения термина x n :
х п = х п-1 + х п-2

Итак, значение термина номер 8, например:

х 8 = х 7 + х 6

х 8 = 13 + 8

х 8 = 21

Вот немного мелочей, связанных с последовательностью Фибоначчи: День Фибоначчи отмечается 23 ноября, поскольку дата может быть представлена ​​цифрами 1, 1, 2 и 3, которые представляют правильно упорядоченный сегмент ряда чисел Фибоначчи.

Изучите наши популярные курсы по программной инженерии

Магистр компьютерных наук LJMU и IIITB Программа сертификатов кибербезопасности Caltech CTME
Учебный курс по полной разработке стека Программа PG в блокчейне
Программа Executive PG в Full Stack Development
Посмотреть все наши курсы ниже
Курсы по разработке программного обеспечения

История и происхождение последовательности Фибоначчи

Леонардо Пизано Боголло, широко известный как Фибоначчи, что на разговорном итальянском языке примерно переводится как «сын Боначчи».

Фибоначчи приписывают формулировку этой особой последовательности чисел, которая, как следствие, была названа в его честь. Он познакомил с ним большую часть Западной Европы в начале 13 века н.э. в своей знаменательной книгеLiber Abaci.

Между прочим, Фибоначчи, широко считавшийся одним из самых талантливых математиков своего времени, также приписал широкое распространение индийско-арабских цифр по всей Европе, которая до этого использовала гораздо более громоздкие римские цифры.

Однако известно, что то, что сегодня называется последовательностью Фибоначчи, использовалось в древней Индии еще в 3 веке до нашей эры.

Это нашло выражение в Пингала-сутрах, древнем трактате санскритской просодии, а также в Натья Шастре, трактате о древнеиндийском исполнительском искусстве, приписываемом почитаемым мудрецам древней Индии Ачарье Пингале и Бхарате Муни соответственно.

Самый точный комментарий к этой последовательности появляется в работе Вираханки в начале 8 века нашей эры. Хотя сам этот текст не был обнаружен, он упоминался и широко цитировался в работе Гопалы в 1135 году нашей эры. Так совпало, что цифры этого года представляют собой последовательную последовательность чисел Фибоначчи.

Считается, что другой индийский ученый в области метрического ритма, Ачарья Хемачандра, хорошо знал последовательность, которую он подробно описал в 1150 году нашей эры. Это предшествует работе Фибоначчи более чем на 50 лет.

Ознакомьтесь с курсами по разработке программного обеспечения upGrad

Формула Бине

Как и все константно-рекурсивные последовательности с постоянными коэффициентами, числа Фибоначчи могут быть представлены в виде выражения в закрытой форме, которое стало известно как формула Бине. Формула Бине, названная в честь Жака Филиппа Мари Бине, выдающегося французского математика начала 19 века, может быть представлена ​​следующим образом:

Учитывая, что F n является n-м числом Фибоначчи:

Из приведенной выше формулы можно вывести тот факт, что, за исключением первых нескольких чисел, соотношение между каждой последовательной парой чисел в ряду Фибоначчи постепенно приближается к тому, что называется золотым сечением — 1: 1,618, обозначаемым 21-м числом. буква греческого алфавита – Φ (фи).

Это означает, что каждое число в последовательности равно 0,6180339887 следующего за ним числа Фибоначчи ИЛИ что каждое последующее число в 1,6180339887 раз превышает число, предшествующее ему в последовательности Фибоначчи.

Востребованные навыки разработки программного обеспечения

Курсы JavaScript Базовые курсы Java Курсы по структурам данных
Курсы Node.js Курсы SQL Курсы разработки полного стека
Курсы НФТ Курсы DevOps Курсы по большим данным
Курсы React.js Курсы по кибербезопасности Курсы облачных вычислений
Курсы по проектированию баз данных Курсы Python Курсы по криптовалюте

Последовательность Фибоначчи и золотое сечение

Значение последовательности Фибоначчи и ее производной, золотого сечения, значительно возрастает из-за ее сверхъестественно частого повторения в природе. Некоторые из наиболее распространенных примеров этого включают:

  • Количество лепестков на цветке почти всегда является числом Фибоначчи, будь то 3-лепестковая лилия, 5-лепестковый лютик, 21-лепестковый цветок цикория или 34-лепестковая маргаритка.
    Интересно, что это стойкое соответствие числам Фибоначчи, по-видимому, является продуктом дарвиновского замысла, поскольку ученые обнаружили, что именно такое расположение лепестков гарантирует, что каждый из этих цветов получает оптимальное воздействие солнечного света, влаги и агентов опыления, таких как птицы и насекомые. .
  • Золотое сечение или Φ наблюдается почти во всех природных спиралевидных узорах — от семенных головок подсолнуха до целых галактик, от выпуклостей на сосновых шишках до ураганов, от колючек на ананасе до кривизны рогов козы и от цветочков. цветной капусты до мутовок на отпечатке пальца человека.
    Спиралевидный узор раковины наутилуса считается особенно знаковым представлением того, что называется «спиралью Фибоначчи».
  • Ветвление деревьев и корневая система, соотношение самцов и самок пчел в улье, различные части тела животных — от микробов до улиток, от черепах до китов — все соответствует золотому сечению.
  • Аспекты человеческой физиологии — соотношение между общей длиной тела и расстоянием от головы до кончиков пальцев, например, или соотношение между длиной наших предплечий и кистей — все спроектировано в соответствии с Φ.
    Улитка в человеческом ухе представляет собой спираль Фибоначчи, как и пуповина. Считается даже, что нас подсознательно привлекают лица, соотношение высоты и ширины которых приближается к золотому сечению.

По своей сути математика — это поиск закономерностей во всех вещах. Нет лучшей и более всеобъемлющей арены для поиска этих закономерностей, чем на лоне матери-природы.

От микроорганизмов до галактик последовательность Фибоначчи находит отражение в огромном количестве естественной физиологии, а также явлениях, от микроскопических до космических масштабов — и не без оснований.

Золотое сечение или Φ придает эргономический баланс эстетической и функциональной гармонии всему, в чем оно находит выражение. Именно по этой причине Золотое сечение также называют Божественной пропорцией.

Но значение последовательности Фибоначчи простирается далеко за пределы мира природы, находя выражение в самых разных областях человеческой деятельности — в математике, естественных науках и искусствах.

Прочтите наши популярные статьи, связанные с разработкой программного обеспечения

Как реализовать абстракцию данных в Java? Что такое внутренний класс в Java? Идентификаторы Java: определение, синтаксис и примеры
Понимание инкапсуляции в ООП на примерах Объяснение аргументов командной строки в C 10 основных функций и характеристик облачных вычислений в 2022 году
Полиморфизм в Java: концепции, типы, характеристики и примеры Пакеты в Java и как их использовать? Учебник по Git для начинающих: Изучайте Git с нуля

Создание последовательности Фибоначчи с помощью Python

Последовательность Фибоначчи и Золотое сечение являются неотъемлемой частью различных аспектов:

  • Алгебра, геометрия, статистика и тригонометрия — все это можно применить к различным экономическим практикам и анализу фондового рынка.
  • Биология, физика и информатика – все это находит применение в синтетической биологии и генетике, гражданском и машиностроении, архитектуре, дизайне интерьеров и, конечно же, программировании.
  • Художественный и графический дизайн, а также поэзия, музыка и танцы

Часто это фундаментальный шаг в создании широкого спектра полезных приложений, связанных с вышеуказанными темами и не только.

Последовательность Фибоначчи может быть сгенерирована с использованием самых разных языков программирования. Как указывалось ранее, Python является одним из самых мощных и универсальных из них — он способен использовать и манипулировать числами Фибоначчи и последовательностью Фибоначчи различными способами для разработки некоторых из самых передовых технологических решений.

Ознакомьтесь с продвинутым программистом сертификатов upGrad в блокчейне от IIIT Bangalore

Вот некоторые из методов, с помощью которых Python можно использовать для создания последовательности Фибоначчи:

Итеративный подход

В этом методе алгоритм :

  • Назначает любые две переменные для представления первых двух последовательных терминов в последовательности. Где 0 представляет первый член последовательности, а 1 представляет второй.
  • Устанавливает желаемый диапазон членов для вычисления в последовательности и цикле от 0 вверх.
  • На каждой итерации алгоритм:
    • Добавляет две переменные.
    • Затем присваивает значение второй переменной первой переменной
      и сумма двух предыдущих переменных ко второй переменной.
    • И так далее…

Соответствующий код будет записан следующим образом :

деф Фибоначчи (число) :

а = 0

б = 1

для я в xrange (0, 20):

распечатать

а, б = б, а + б

Соответствующим результатом будут первые двадцать чисел последовательности Фибоначчи :

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

Рекурсивный подход

В этом методе алгоритм выводит :

Значение каждого последующего термина путем сложения значений двух предыдущих терминов. Это может быть представлено как термин n = термин n-1 + термин n-2.

Единственными двумя исключениями из этого правила являются случаи, когда значения термов равны 0 и 1, оба из которых возвращают неизмененные значения. Эти исключения можно представить как термин n = термин n.

Соответствующий код будет записан следующим образом :

защита recur_fodo (n):

если n < = 1:

вернуть н

еще:

возврат (recur_fibo (n-1) + recur_fibo (n-2))

Nср = 20

# проверяем правильность количества терминов

если число <= 0:

print («Пожалуйста, введите положительное целое число»)

еще:

печать («последовательность Фибоначчи»)

Для i в диапазоне (nterms):

Печать (recur_fibo i))

Соответствующим результатом будут первые двадцать чисел последовательности Фибоначчи :

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

Некоторые автономные приложения последовательности Фибоначчи

Помимо того, что они являются основополагающим шагом в разработке различных сложных моделей и приложений, числа Фибоначчи сами по себе обладают некоторыми уникальными характеристиками, которые делают их бесценными при выполнении определенных задач:

  • Числа Фибоначчи можно использовать для анализа времени выполнения алгоритма Евклида для определения наибольшего общего делителя случайной пары целых чисел, учитывая тот факт, что пара последовательных чисел Фибоначчи обычно представляет собой наиболее серьезную проблему для этого алгоритма.
  • Числа Фибоначчи уникальным образом представляют собой полную последовательность, так что каждое положительное целое число в ряду представляет собой сумму двух чисел Фибоначчи, любое из которых можно использовать только один раз.
  • Алгоритмы, основанные на числах Фибоначчи, помогли в разработке метода поиска Фибоначчи, структуры данных кучи Фибоначчи и кубических графов Фибоначчи, используемых для связывания параллельных и распределенных систем.
  • Числа Фибоначчи используются в скрам-покере — основанном на консенсусе и игровом методе для оценки целей разработки программного обеспечения.
  • Восстановление уровней Фибоначчи обычно используется в техническом анализе для торговли на фондовом рынке.

В заключение

В ходе этой статьи мы попытались пробудить ваш интерес к последовательности Фибоначчи или золотому сечению — ее ключевым особенностям и ее поразительно частому повторению в мире природы — как живом, так и неживом.

Мы попытались уловить влияние и воссоздать то чудо, которое это математическое явление создало в самых разных и многомерных сферах человеческой деятельности — в искусстве и науке, технике и технологиях, анатомии и генетике, экономике и финансах… и во многих других областях. .

Мы попытались воплотить в жизнь, как чрезвычайно универсальный язык программирования под названием Python может помочь вам манипулировать этими математическими концепциями, чтобы принести пользу человечеству неожиданно разнообразными способами — как прямо, так и косвенно.

Мы горячо надеемся, что эта мощная комбинация Python и последовательности Фибоначчи будет и впредь будет захватывать ваше воображение, зажигать ваши умы, питать ваши устремления и вдохновлять вас на величайшие достижения. Удачного кодирования! Счастливого сна!

В upGrad мы понимаем важность практического практического обучения, особенно когда речь идет о разработке программного обеспечения. В результате в основе наших курсов и инициатив по обучению лежит практичность. Одной из таких инициатив является учебный курс по разработке полного стека , который поможет вам развить все необходимые навыки, необходимые для достижения успеха в разработке полного стека.

Хотите поделиться этой статьей?

Планируйте свою карьеру в области разработки программного обеспечения прямо сейчас!

Подать заявку на получение степени магистра компьютерных наук