の精度()で(A/B)の一部の(C/D)番目のルートを計算したい場合があります。たとえば、希望の精度が整数E
の場合、結果はE
数字小数点以下根; E
は少なくとも数万に等しいかもしれません; A、B、C、Dは数万の十進数を含む整数です)しかし、私が見つけたすべてのJavascript数学ライブラリは拒否しますそのような数字に対処する。
Decimal.jsを使用しようとしましたが、入力の精度とサイズが制限されています。私は(最後の桁が何らかの形で丸みを帯びていてもよい)1025桁と2の平方根を計算したい場合たとえば、私はDecimal.jsのための次のコードを使用:任意の大きな整数A、B、C、Dに対して任意の精度で(A/B)の(C/D)番目のルートを計算する方法は?
Decimal.set({ precision: 1025 });
var r2 = Decimal.pow(2, Decimal.div(1, 2)).toDP(1025).toString();
console.log(r2);
を私は
を取得しますError: [DecimalError] Precision limit exceeded
クライアント側(ブラウザで作業中)のJavascriptを使用して問題を解決することは可能ですか?私が知る限り、百万のの桁であっても、根を計算するための効率的なアルゴリズムがいくつかありますが、任意の数と任意精度のJSで実装されているものはありませんでした。まったく可能ですか?
'精度:1025': – Rajesh
-oあなたが計算チェーンに加えて、バッファ内のすべての2つのまたは3の操作が1桁、表示された精度よりも高い内部作業精度を設定することをお勧めしますこれは 'Decimal.set({precision:1029});' – LutzL
@LutzL:私には分かりません.1500桁の2の平方根を得るにはどのようなコードを使うべきですか? Decimal.jsで?さらに、私が理解する限り、Decimal.jsは2^1024以上の整数を扱うことはできません。 –