bigint.js v0.5 beta 13
2004-01-07
巨大整数の平方根を実験的に実装。ニュートン法で逐次近似するナイーブなものです。
デモは、2001桁の整数 2*10^2000 の平方根を求めることで、2の平方根を小数1000桁求めます。
コストは10秒程度(アルゴリズムの工夫で高速化の余地があるはず)。[Demo1] をクリックすると実行します。
- div.js: 割り算の商の末尾の0が脱落する問題を暫定修正。下の「未満」→「以下」の変更で現象は回避できるが、まだよく確認してない。(2004年1月9日追記: 確認した。)
- while( Bigint.strcmp( strDividendHead.substr( 0, tmppos ), strDivisor ) < 0 && tmppos < strDividendHead.length ) {
+ while( Bigint.strcmp( strDividendHead.substr( 0, tmppos ), strDivisor ) < 0 && tmppos <= strDividendHead.length ) {
- mul.js: 平方根をとりあえず実装
- core.js: Bigint._fromFloatに桁数の上限を付けた。何かの拍子に数億桁とかいった数のオブジェクトを作ろうとするとリソースの問題が出るため。
[index]