斐波那契数列在线计算器 计算第1024项

斐波那契数列在线计算器 计算第1024项

在10月24日的博客《写在1024的日子里》中提到了这个数列的问题。
在网上的大部分的计算器只能计算到第78项 ,其值为8944394323791464。
第79项开始,因为大数据的表示问题,都发生了溢出的错误。

本文提供了大整数计算的加法,减法和乘法的函数。同时利用了《算法时空》中的矩阵计算公式,
优化了斐波那契数列的计算。 测试的结果是可以在大约10秒内,计算到斐波那契数列第2048项。
这个结果有428位十进制的数字组成。

代码如下:
<html>
<head>
<title>
计算斐波那契数列
</title><meta charset="utf-8">
</head>
<body >
<p>
计算斐波那契数列,输入第N项</p>
<textarea id='txt1' rows="4" cols="80"></textarea>
<p>输出结果值</p>
<textarea id='txt2' rows="14" cols="80"></textarea>
<input type=button οnclick="test()" value="计算"></input>
<input type=button οnclick="test2()" value="计算大整数"></input>
<input type=button οnclick="test_add()" value="加法"></input>
<input type=button οnclick="test_subtract()" value="减法"></input>
<script>
function test_add(){
var txt2=document.getElementById("txt2");
  txt2.innerText=add([1,2,3],[1,2,7]);
}
function test_subtract(){
var txt2=document.getElementById("txt2");
  txt2.innerText=mul_by_array([9,9,9,9],[2]);//subtract([0,0,0,1],[9,9,9]);
}
function subtract_do(a,b){
     var bit=0;
   var res=0;
   var weight=10;
    var  re=initArray([a.length],function(a){return 0;});
    
      for(var i=0;i<b.length;i++)
       {res=a[i]-b[i