using System.Console;
using Oyster.Math;
def fiboN(x, y, n)
{
| (x, _, _) when x.ToString().Length == 1000 => n
| _ => fiboN(x + y, x, n + 1)
};
WriteLine(fiboN(IntX(1), IntX(1), 2))
Да. Я заглянул, там большинство решили brute force'ом. А мне чего-то не хотелось. Впрочем, там все не сложно с учетом оценки n-го члена последовательности через золотое сечение.
...Ei incumbit probatio, qui dicit, non qui negat...
> 12-е число Фибоначчи состоит из 3 цифр. Какое число по номеру состоит из 1000 цифр?
Брутфорсный ответ уже дали. Как это можно решить без брутфорса.
F(n) выражается через степень золотого сечения.
Решаем уравнение ]lg(F(n))[ = 100 или, по крайней мере, находим приближение.
Далее поиск в окресностях этого n.
Вот такой ход мысли.
Формулу навскидку не помню, поэтому запуляю только идею.
Доберутся руки — попробую.
Здравствуйте, Кодт, Вы писали:
К>F(n) выражается через степень золотого сечения. К>Решаем уравнение ]lg(F(n))[ = 100 или, по крайней мере, находим приближение. К>Далее поиск в окресностях этого n.
К>Вот такой ход мысли. К>Формулу навскидку не помню, поэтому запуляю только идею. К>Доберутся руки — попробую.
+1. Формула вроде в Кнуте была. Ещё можно числа считать за log(N) — тоже быстрее будет.
Здравствуйте, Кодт, Вы писали:
>> 12-е число Фибоначчи состоит из 3 цифр. Какое число по номеру состоит из 1000 цифр?
К>Брутфорсный ответ уже дали. Как это можно решить без брутфорса.
К>F(n) выражается через степень золотого сечения. К>Решаем уравнение ]lg(F(n))[ = 100 или, по крайней мере, находим приближение. К>Далее поиск в окресностях этого n.
К>Вот такой ход мысли. К>Формулу навскидку не помню, поэтому запуляю только идею. К>Доберутся руки — попробую.
Здравствуйте, vitaly_spb, Вы писали:
_>12-е число Фибоначчи состоит из 3 цифр. Какое число по номеру состоит из 1000 цифр?
Про брутфорс и вычисления написали.
А что если делать просто в long double? Наверняка точности хватит, т.к. числа очень быстро растут.
---
С уважением,
Лазарев Андрей
Re: Числа Фибоначчи
От:
Аноним
Дата:
20.04.06 22:46
Оценка:
Здравствуйте, vitaly_spb, Вы писали:
_>12-е число Фибоначчи состоит из 3 цифр. Какое число по номеру состоит из 1000 цифр?
def digitcount(n):
if n==0:
return 1
a=0
while n>=1:
n=(n-(n%10))/10;a+=1;
return a
if __name__ == "__main__":
a=1
b=1
counter=2
while digitcount(b)<1000:
a,b=b,a+b
counter+=1
print counter