Я использовал следующую Java-программу:
import java.math.*;
public class Series {
public static void main(String[] args) {
BigInteger num = BigInteger.valueOf(2);
final int N = 1000000;
long t = System.currentTimeMillis();
for (int i = 1; i < N; i++) {
num = num.shiftLeft(1).add(num).shiftRight(1);
}
System.out.println(System.currentTimeMillis() - t);
System.out.println(num);
}
}
Обрезанный вывод: ( полный вывод на pastebin )
516380 (milliseconds)
196375676351034182442....29226123087
Так что потребовалось около 8,5 минут на моей скромной машинке. Я использовал -Xmx128M
, но не уверен, действительно ли это было необходимо.
Вероятно, существуют лучшие алгоритмы, но это заняло в общей сложности 10 минут, включая написание простой реализации и запуск программы.
N=500
(согласно OEIS 061418 ) N=100K
(1445232038814....522773508
) $(".loading").css("display", "block");
Затем, чтобы скрыть его после загрузки данных, вы можете использовать:
$(".loading").css("display", "none");