nth число Фибоначчи is =
(g1^n-g2^n)/sqrt(5).
where g1 = (1+sqrt(5))/2 = 1.61803399
g2 = (1-sqrt(5))/2 = -0.61803399
Для нахождения длины n-го числа Фибоначчи мы можем просто вычислить логарифм (n-е число Фибоначчи). Таким образом, длина n-го числа Фибоначчи равна,
log((g1^n-g2^n)/sqrt(5)) = log(g1^n-g2^n)-0.5*log(5).
you can just ignore g2^n, since it is very small negative number.
Следовательно, длина n-го Фибоначчи равна
n*log(g1)-0.5*log(5)
и нам нужно найти наименьшее значение 'n', такое, что эта длина = 1000, поэтому мы можем найти значение n, для которого длина чуть больше 999.
Итак,
n*log(g1)-0.5*log(5) > 999
n*log(g1) > 999+0.5*log(5)
n > (999+0.5*log(5))/log(g1)
n > (999.3494850021680094)/(0.20898764058551)
n > 4781.859263075
Следовательно, наименьшее необходимое n - 4782. Никакого кодирования не используется, самый простой способ.
Примечание: везде используется журнал в базе 10.