Я пытаюсь найти первое число в последовательности Фибоначчи, которое содержит более 1000 цифр.
Учитывая число n (например, 4), я нашел способ найти, какое место занимает первое число с n-значными цифрами в последовательности Фибоначчи, а также способ найти число, учитывая его место в последовательности.
Скажем, например, вам нужно знать первое число с 4 цифрами в последовательности Фибоначчи, а также его место в последовательности. Мой код будет работать так:
var phi = (1+Math.sqrt(5))/2;
var nDigits = 4;
var fEntry = Math.ceil(2 + Math.log(Math.pow(10, nDigits-
1))/Math.log(phi));
var fNumber = 2 * Math.pow(phi, fEntry);
console.log(fEntry);
console.log(fNumber);
В консоли вы увидите fEntry (то есть место, в котором находится число в последовательности Фибоначчи) и fNumber (искомое число). Например, если вы хотите найти первое число из 4 цифр и его место в последовательности, вы получите номер 1597 на месте 17, что является правильным.
Пока все хорошо.
Проблемы возникают, когда я хочу найти большие числа. Мне нужно найти первое число с 1000 цифрами в последовательности Фибоначчи, но когда я пишу nDigits = 1000 и запускаю код, консоль отображает «Бесконечность» для fEntry и для fNumber. Я предполагаю, что причина в том, что мой код включает вычисления с числами выше, чем то, с чем может справиться Javascript.
Как мне найти это число и избежать Бесконечности?