Поиск числа Фибоначчи
Итальянский ученый Леонардо Пизанский вывел закономерную последовательность чисел, при которой каждое стоящее в ряду число, является результатом суммы двух предыдущих чисел. Казалось бы, что в этой последовательности нет ничего особенного, но математик заметил, что при делении каждого последующего числа на предыдущее, получается всегда примерно одинаковое число 1.618. В дальнейшем число 1.618 стали называть числом Фибоначчи (прозвище гениального математика).
Последовательность Фибоначчи
Вот так выглядит последовательность Фибоначчи:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377 и так далее.
// Данные вычисления создают последовательность Фибоначчи
// 0 + 1 = 1
// 1 + 1 = 2
// 2 + 1 = 3
// 3 + 2 = 5
// 5 + 3 = 8
// Математическая формула
// Fn = F(n-1) + F(n-2)
При нарастании чисел в данной последовательности, результатом деления всегда будет число 1.618.
// Как получилось число Фи = 1.618
2 / 1 = 2;
8 / 5 = 1,625;
8 / 5 = 1,619;
89 / 55 = 1,618;
144 / 89 = 1,618;
...
Функция для поиска числа Фибоначчи
Напишем функцию на JavaScript для быстрого вычисления числа Фибоначчи. Сначала создадим саму функцию fib и внутри функции запустим цикл for(). Внутри цикла создадим переменную счетчик с начальным значением 1. Зададим условие, что цикл будет продолжать работу до тех пор, пока i меньше n. С каждым проходом цикла, будем увеличивать счетчик на единицу.
function fib(n) {
for(let i = 1; i <= n; i++ ) {
...
}
}
Укажем начальные значения и занесем их в переменные.
// руководствуемся математической формулой Fn = F(n-1) + F(n-2)
let f1 = 0; // первое значение n-1
let f2 = 1; // второе значение n-2
let cf = 1; // текущее значение
Для начала вычислим текущее значение числа Фибоначчи путем сложения переменных f1 + f2. Затем переместим значение f2 на место f1, а f2 будет равняться текущему значению числа Фибоначчи cf.
function fib(n) {
let f1 = 0, f2 = 1, cf = 1;
for(let i = 1; i <= n; i++ ) {
cf = f1 + f2;
f1 = f2;
f2 = cf;
}
return cf;
}
console.log(fib(60)); // 2504730781961
Проверяем работу функции: выберем случайное число и передадим его в функцию, на выходе получим значение числа Фибоначчи от 60 равным 2504730781961.
При чем здесь кролики?
В математике используется выражение "золотое сечение" - это такое пропорциональное деление отрезка на неравные части. Все, что нас окружает, находится в пропорциях "золотого сечения". Леонардо Пизанский в одной из своих задач решил посчитать, сколько пар кроликов появится на свет за один год от одной пары кроликов. Сначала от одной пары появится одна пара кроликов, затем две, а потом сразу три. От трех пар уже появится пять пар кроликов. Таким образом он получил последовательность, в которой каждый последующий элемент начиная с третьего, равен сумме двух предыдущих.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.