問題タブ [largenumber]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3776 参照

c - Tom-Cook 乗算アルゴリズムの実装

Tom-Cook 3 ウェイ乗算アルゴリズムを実装するタスクがあります。私はウィキペディアの説明に従っていますhttp://en.wikipedia.org/wiki/Toom%E2%80%93Cook_multiplication、ウィキペディアページの「分割」手順に従って、2つの大きな数字を文字列に保存し、文字列を小さな数字に分割することができました。次のステップは「評価」です。新しい数値 p0 = m0 + m2 (Bordrato による「高速評価」 - 同じページにあります) を計算する必要があります。ここで、m0 と m2 は、大きな数値を分割して作成した数字です。 (前のステップで)。問題は、m0 と m2 を単純に合計できないことです。これらの 2 つの数値は依然として非常に大きく、標準的な方法で合計することは不可能なためです。これは、大きな数を追加するための独自のアルゴリズムを実装する必要があることを意味しますか (減算と除算も必要なので)、それとも何か不足していますか? 誰かが私に可能な実装または疑似コードをリンクしていただければ幸いです。

0 投票する
3 に答える
7094 参照

algorithm - サイズが等しくない、2 の累乗でないオペランドのカラツバ乗算

サイズが等しくなく、サイズが 2 の累乗ではなく、おそらく偶数でもない入力オペランドを使用してカラツバの大数乗算を実装する最も効率的な方法は何ですか? オペランドのパディングは追加のメモリを意味するので、メモリ効率を高めたいと考えています。

偶数ではないサイズのカラツバで気付いたことの 1 つは、数値をできるだけ偶数に近い「半分」に分割しようとすると、半分には m+1 要素が含まれ、もう 1 つは m になるということです。ここで、m = floor(n/2)、n は分割数の要素数です。両方の数値が同じ奇数サイズの場合、n が偶数の場合の n とは対照的に、サイズ m+1 の 2 つの数値の積を計算する必要があり、n+1 のストレージが必要です。それで、奇数サイズのカラツバは、偶数サイズよりもわずかに多くのメモリを必要とするかもしれないと推測するのは正しいですか?

0 投票する
3 に答える
2047 参照

c# - 文字列に格納された非常に大きな数値を比較する

文字列リテラルに含まれる 2 つの非常に大きな数値を比較する最良の方法は何ですか?

たとえば、フォローを比較したいのは、 "900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

また

"0000000000111111111111111111111111111111111111111111111111111111111111111111" "0000001111111111111111111111111111111111111111111111111111111111111111111111"

どちらの場合も明らかに 2 番目の方が優れていますが、要素を反復処理せずに効率的に見つけるにはどうすればよいでしょうか?

0 投票する
1 に答える
204 参照

c# - 大きな BigInteger のログが正しく機能していませんか?

C# で非常に大きな BigInteger の対数を見つけようとしています。対数の底が何であるかは気にしません。これを試すと:

Int32 はログの結果を保持できないため、オーバーフロー例外が発生します。base の値を増やしても機能しません。

0 投票する
0 に答える
418 参照

wolfram-mathematica - 非常に大きな数の対数を計算する

非常に大きな数 (e^e^e^e^10 など) に対して次の関数を計算したいと考えており、次の用語の一般的な符号を知りたいです。いくつかの数字を試してみましたが、マイナスです。すべての n>m>m0 に対して、次の関数が正になるような m0 はありますか。

ここで、n は m より大きいです。

Mathematica と結びましたが、上記の数値を計算しません。スペシャルパッケージを使うべきですか?

ありがとう

ここに画像の説明を入力

0 投票する
1 に答える
316 参照

javascript - バイナリに変換する大きな16進数でJavascriptが壊れる

使用する

binary= parseInt(hex,16).toString(2)

jsで16進数を2進数に変換する方法は、非常に大きな値で壊れています。

たとえば、0xb5af48b5af48b5af48b5af48b5af48b5af48b5af48b5af48b5af48b5af48b5af48b5af48 16 進入力が生成するように

101101011010111101001000101101011010111101001000101110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

これは明らかに間違った応答です

10110101 10101111 01001000 10110101 10101111 01001000 10110101 10101111 01001000 10110101 10101111 01001000 10110101 10101111 01001000 10110101 10101111 01001000 10110101 10101111 01001000 10110101 10101111 01001000 10110101 10101111 01001000 10110101 10101111 01001000 10110101 10101111 01001000 10110101 10101111 01001000

が正しい反応になります。

これは、js が非常に大きな数を処理する方法に関連していると感じていますが、これを処理する方法がわかりません。どんな助けでも大歓迎です。base64 コンバーターの最終結果として AAAAAAAAAAAAAAAAAAAAAAAAAAAA を見つけるのは本当に奇妙です。

0 投票する
1 に答える
436 参照

lua - Redis Lua で大きな数を正確に処理する

Redis と連携する Lua で多数を処理する必要があります。通常、次のようにします。

などですが、残念ながら Redis Lua は「require」をサポートしていません。私が見つけた唯一の方法は、lua 自体で記述された多数のライブラリをスクリプトに直接挿入することです。

私が手に入れることができた唯一のそのようなライブラリ: oss.digirati.com.br/luabignum/index.htm

具体的なスクリプトの目的でライブラリを削除できますが、それでもまだ巨大なままです。Redis Lua でより効率的に多数を処理する方法はありますか?

UPDATE1:ライブラリ全体をキーに保存してから、次のようにアクセスするとどうなりますか?

構文がよくわからないので、すべてのライブラリを lua テーブル {} で囲む必要があるかもしれません。

0 投票する
2 に答える
147 参照

java - 3000桁を超える数字の扱い方

出力: 2147483647 無限大

しかし、実際の結果は 3000 桁を超えています。どうすれば完全な数を取得できますか?