Числа Фібоначчі

Числа Фібоначчі Блог

Чи доводилося вам писати функцію, яка рахує значення послідовності, де кожен елемент залежить від попередніх?

Числа Фібоначчі – це послідовність, у якій кожен член дорівнює сумі двох попередніх, починаючи з 0 і 1.

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

Тисячу років тому люди захоплювалися зовсім не нейромережами, а числами та їхніми властивостями. Так, у XII столітті головним трендом були загадкові числа Фібоначчі, сліди яких і зараз можна знайти практично скрізь: від розташування пелюсток на дереві до форми ураганів і галактик.

Давайте дізнаємося, звідки з’явилися ці числа, навіщо вони потрібні і що нам з ними робити.

Що за числа Фібоначчі

Числа Фібоначчі – це послідовність чисел, які задаються за певним правилом. Воно звучить так: кожне наступне число дорівнює сумі двох попередніх. Перші два числа задані одразу і дорівнюють 0 і 1.

Ось як виглядає послідовність Фібоначчі:

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

Тривати цей числовий ряд може нескінченно, але для більшості завдань зазвичай вистачає перших десяти чисел:

  • перше – 0;
  • друге – 1;
  • третє – 1;
  • четверте – 2;
  • п’яте – 3;
  • шосте – 5;
  • сьоме – 8;
  • восьме – 13;
  • дев’яте – 21;
  • десяте – 34.

Ну вміємо ми складати числа одне з одним, і що з того? Можна придумати ще кілька таких самих послідовностей – наприклад, де наступне число дорівнюватиме сумі трьох або чотирьох попередніх. Як це стане в пригоді в науці та техніці? Але про все по порядку.

Для початку – заберемося трохи глибше в історію.

Поява чисел Фібоначчі

Першим цю послідовність описав італійський учений Леонардо Пізанський на прізвисько Фібоначчі. Він жив у XII столітті та старанно вивчав роботи античних та індійських математиків. У них Леонардо знайшов багато корисних знань – наприклад, що десяткова система зручніша, ніж римська нотація, і що за нею простіше рахувати.

Отримані знання Леонардо систематизував у своїй головній праці – «Книзі абака». Там же з’явилася і перша згадка про числа Фібоначчі – як не дивно, в контексті розв’язання задачі про кроликів:

Задача про розмноження кроликів: В обгороджену загороду посадили двох кроликів – самку і самця. Щомісяця пара являє світу ще одну пару кроликів. Запитання: скільки пар кроликів буде в загоні через рік?

Звісно, розв’язати це завдання не так просто, бо на розмноження кроликів впливає багато чинників – наприклад, вони можуть померти або втекти. Тому Леонардо обмежив задачу такими умовами:

  • кролики не можуть померти;
  • вони досягають статевої зрілості за місяць;
  • самки вагітні рівно місяць;
  • кролики завжди народжуються парами: самка + самець.

Тепер завдання цілком можна розв’язати: відповіддю на нього якраз буде послідовність Фібоначчі. Логіка така: кожна доросла пара кроликів створюватиме ще одну пару через місяць після народження. Ці кролики-діти будуть рости місяць, а потім розмножуватися з іншими кроликами. І так дванадцять місяців.

Дивіться, перша пара кроликів ще зовсім молода, тому поки що не може дати потомство. Але вже через місяць кролики підростуть і зможуть розмножуватися – відповідно, на третій місяць пар буде вже дві. Далі кількість пар дорівнюватиме сумі пар за два попередні місяці, і послідовність набуде вже знайомого нам вигляду.

Отримуємо відповідь на задачу: 233 пари кроликів.

І в цьому весь сенс чисел Фібоначчі – рахувати кроликів у загоні? Ні! Виявляється, Леонардо лише прочинив двері в можливості цієї послідовності. Основне застосування вона знайшла в математиці, архітектурі та мистецтві.

Числа Фібоначчі та золотий перетин

Архітектори античних і середньовічних міст багато часу приділяли ідеальним пропорціям. Вони хотіли створювати красиві споруди, якими б насолоджувалися всі жителі міста. Так з’явилося поняття золотого перетину.

Золотий перетин – це число, яке допомагає ділити речі на красиві частини. Воно дорівнює приблизно 1,618. Золотий перетин можна знайти так: якщо взяти два відрізки чогось, то великий відрізок має бути в 1,618 раза більшим за маленький відрізок, а вся річ має бути в 1,618 раза більшою за великий відрізок. Це число називається «фі» і пишеться так: φ.

Якщо коротко, коли ми чуємо про золотий перетин – йдеться про щось привабливе і пропорційне. Наприклад, за допомогою золотого перетину спроєктовані знамениті архітектурні споруди минулого.

Повернемося до чисел Фібоначчі. Виявляється, відношення кожного числа до попереднього приблизно дорівнює значенню золотого перетину. Щоправда, на перших числах послідовності цього не буде помітно.

Але якщо ми візьмемо, наприклад, тридцять перше число і поділимо на тридцяте, то отримаємо таке.

І ще пара тисяч знаків після коми. Воно дуже схоже на значення золотого перетину, але все ж не дорівнює йому точно. А що далі ми йдемо по числах, то ближче до нього наближатиметься це відношення.

Золотий перетин використовується не тільки в архітектурі, а й, наприклад, у фотографії, живописі та дизайні. Навіть деякі інтерфейси сайтів зроблені за цими принципами.

Але й на цьому застосування послідовності Фібоначчі не закінчується. Далі ми дізнаємося, як ці числа використовує сама природа і яке застосування вони знайшли в програмуванні.

Використання чисел Фібоначчі

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

В природі

Перше, на чому можна простежити послідовність Фібоначчі, – це рослини, а конкретно – соняшник. Найімовірніше, ви бачили його в дитинстві і, можливо, навіть пробували смажити насіння на сковорідці.

Виявляється, насіння всередині квітки розташоване у вигляді двох рядів спіралей – коротких і довгих. Перші нахилені за годинниковою стрілкою, а другі – проти. Сенс у тому, що кількість коротких спіралей у соняшнику дорівнює 21, а довгих – 34. А це якраз сусідні числа в послідовності Фібоначчі.

Ще числа Фібоначчі можна зустріти, якщо подивитися на стебла і гілки дерев. Кожна гілка створює нові гілки, кількість яких дорівнює наступному числу в послідовності Фібоначчі.

Якщо говорити про золотий перетин, то за ним закручуються панцири равликів, вихори ураганів і навіть деякі галактики.

Як бачите, природа просто-таки пронизана магією чисел Фібоначчі, причому на всіх рівнях: від насіння соняшника до далеких галактик. Тому не варто дивуватися, якщо раптом зустрінете цю послідовність де-небудь у звичному для вас місці.

В мистецтві та дизайні

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

Часто художники використовують золотий перетин, щоб естетично розташовувати об’єкти на картині та створювати гармонійні образи. Фотографи користуються такими ж хитрощами.

Ще числа Фібоначчі допомагають створювати більш пропорційні обличчя, фігури людей та інші елементи. Так картини набувають реалістичного вигляду.

Дизайнери теж підхопили цю ідею і почали використовувати золотий перетин у своїх макетах. Наприклад, за цими правилами можна створювати більш приємні для ока логотипи. У тій же Apple, до речі, давно зрозуміли, що золотий перетин – це круто. В її фірмовому знаку якраз використовуються повторювані спіралі, навіяні числами Фібоначчі.

Стародавні греки одними з перших заглибилися в цю тему. Для них золотий перетин був символом краси і гармонії. На цих принципах вони навіть розробили поняття канонічних пропорцій, які лягли в основу, наприклад, відомих античних скульптур богів, героїв і атлетів.

Найяскравіший приклад – статуя Давида роботи Мікеланджело.

Однак золотий перетин – це зовсім не панацея й універсальний канон краси. Хоча деякі дослідження показують, що існує схожість між золотим перетином і аспектами людського тіла, такими як пропорції обличчя і тіла. Але прямих доказів немає, тому що краса – невимірна.

У фінансах і програмуванні

А тепер розберімося, як послідовність Фібоначчі почувається в природному середовищі існування – тобто у сферах, пов’язаних із логікою та обчисленнями.

Фінанси та біржова торгівля. Трейдери використовують числа Фібоначчі для аналізу змін на ринку. Вони допомагають визначити, коли ціна акції може зрости або впасти.

Трейдери застосовують цю послідовність у вигляді так званих Фібоначчі-рівнів, які будуються на графіку, щоб визначити потенційні можливості для зростання і падіння вартості акції.

Рівні Фібоначчі допомагають трейдерам визначити місця, де ціна може зростати або падати. Найчастіше це відбувається на трьох рівнях – 38,2%, 50% і 61,8%. Однак це працює не завжди точно, тому що на ціну можуть вплинути випадкові чинники – наприклад, раптова пандемія.

Програмування. Тут послідовність Фібоначчі використовують для створення криптографічних алгоритмів і 3D-моделей. А ще, звісно ж, лектори часто додають у свої курси задачки на знаходження цих чисел ?

Ось як алгоритм виглядає мовою Python. Функція приймає на вхід номер числа в послідовності, а видає – саме число Фібоначчі.

Працює функція так:

  • Отримує на вхід номер числа в послідовності Фібоначчі, яке ми хочемо знайти.
  • Далі дивиться на базові випадки – перше або друге число послідовності. Тоді функція одразу повертає одиницю.
  • Якщо номер числа Фібоначчі більший за два, алгоритм повертає суму двох попередніх чисел послідовності – або значення цієї ж функції, але з меншими аргументами. Це називається рекурсією.
  • Функція буде викликати сама себе, поки не зустрінеться базовий випадок. Тоді вона передасть значення по ланцюжку вгору і рекурсія закінчиться.

Рекурсія може здатися заплутаною. Тому ми зробили окрему статтю, де розповідаємо основні принципи на життєвих прикладах.

Фахівці з криптографії використовують числа Фібоначчі, щоб генерувати псевдовипадкові числа. Приставка «псевдо» використовується тому, що ці числа не є по-справжньому випадковими і з якогось моменту починають повторюватися.

Генератори псевдовипадкових чисел застосовують для створення ключів шифрування, криптографічних хеш-функцій і протоколів. Сенс у тому, що послідовність Фібоначчі має властивість непередбачуваності і значення функцій не повторюються до певного моменту.

Висновок

Ми вже побачили, що послідовність Фібоначчі  виникла з простої задачі про кроликів, а потім розійшлася на десятки галузей. Ії можна зустріти в природі, мистецтві, архітектурі, дизайні, фінансах і навіть у коді, який ви, можливо, вже писали.

Можливо, ви не будете згадувати про неї, але якщо колись у вашому коді, дизайні чи спостереженнях за природою щось буде повторюватися у знайомій послідовності – це не випадковість.

Павлов Максим

Founder & CEO Onpage School

Оцініть автора
Onpage School