問題タブ [biginteger]

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 に答える
4854 参照

scala - 任意のバイト配列 (Scala) で BigInt を構築できますか?

MD5 ハッシュの結果を可能な限り短い文字列で表現しようとしています。単純に 16 進文字列にして、G から Z までを無駄にするのはもったいないようです。

私が持っていた 1 つのアイデアは、入力の MD5 ハッシュをバイト配列として取得し、それを使用して を構築するBigIntことです。次に、 を呼び出しtoString(36)て、数値を文字列の base-36 として取得-?[0-9a-z]*できます ( 、数値は正または負の値になります)。わたしにはできる。

問題は、任意のバイト配列で a を構築できるかどうか確信が持てBigIntず、テストでそれを証明できないことです (少なくともタイムリーな方法ではありません!)。BigInt は任意のサイズになる可能性があることを理解しているため、そう思います。この方法は、考えられるすべての出力で機能することが確実にわかるまで使用できません。それで、それがすべての入力に対して機能するかどうか(またはバイト配列を簡単に変換してbase 36で表現できるようにする方法)を教えてください。

明確化: 私は実装を持っています。ドメイン全体の動作について質問しています (つまり、00000000000000000000000000000 から FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)

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

java - Java /ScalaBigInteger貼り付け

JavaBigIntegerクラスに問題があります。大きな値をに貼り付けることができませんBigIntegerBigIntegerたとえば、次の番号にを割り当てたいとします。

コンパイラは整数と見なすため、直接割り当てることはできません。

しかし、私はそれをにしたいと思いますBigInteger。これをソースコードに直接貼り付ける方法はありますか?

そのような方法がない場合、BigIntクラスをはるかに使いやすいScalaに方法はありますか?

0 投票する
9 に答える
341071 参照

java - BigInteger の使い方

私はこのコードを持っていますが、動作していません:

sum 変数は常に 0 です。何が間違っていますか?

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

java - JavaBigInteger素数

BigInteger型の乱数を生成しようとしています。これは、指定した最小値と最大値の間にあります。

BigInteger.probablePrime(int bitlength、random)を知っていますが、ビット長が出力された素数の最大/最小値にどのように変換されるか、または変換されるかどうかはわかりません。

ありがとう、Steven1350

0 投票する
5 に答える
5810 参照

c++ - 大きな数の割り算

大きな整数 (128 ビット) を処理できる除算アルゴリズムが必要です。ビットシフト演算子を介してそれを行う方法をすでに尋ねました。ただし、私の現在の実装では、より良いアプローチが必要なようです

基本的に、数字を 2long long unsigned intの形式で保存します

A * 2 ^ 64 + BB < 2 ^ 64

この数は で割り切れる24ので、 で割りたいです24

私の現在のアプローチは、それを次のように変換することです

ただし、これはバグです。

(floor はA / 24であり、modはであることに注意してくださいA % 24。通常の除算は に格納されlong double、整数は に格納されlong long unsigned intます。

24はバイナリで等しいので11000、2 番目の被加数は 4 番目の加数の範囲内で何かを変更してはなりません。これは、64 ビット左にシフトされるためです。

したがって、A * 2 ^ 64 + Bが 24 で割り切れ、B が割り切れない場合、非整数を返すため、バグがあることが簡単にわかります。

私の実装のエラーは何ですか?

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

c++ - C++の大きな整数

この質問は、おそらくこのフォーラムやWebでも何度も聞かれていることを私は知っています。C ++で大きな整数の実装を作成するように求められますが、コンストラクターの1つが引数としてintを取る必要があるという制約があります...したがって、デフォルト以外のコンストラクターが複数あると思います。 。だから私の質問は、これを行う最も簡単な方法は何でしょうか?

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

c++ - 固定長の大きな整数

大きな整数のライブラリを探していますが、幅は固定されています (128 または 256 で十分です)。その理由は、ヒープに割り当てたくないからです。私はそれらを自分で作ろうとしましたが、効率的な方法で乗算、除算、剰余を実装するのはかなり面倒です。

これはすでにどこかに存在しますか?

ありがとう

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

c++ - Visual C++ 2008 を使用した C/C++ での大きな整数の処理

32 ビット PC 上の Visual C++ 2008 で大きな正の整数 (9,999,999,999 など) を処理するにはどうすればよいですか。
これらの大きな正の整数の宣言、printf、scanf の例を挙げてください。
あなたの例では 9,999,999,999 の使用を検討してください。

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

f# - F#のBigIntegerのPowに代わるものはありますか?

コンパイラが私に言ったとき、私はF#でBigIntegerクラスのPow関数を使用していました:

この構成は非推奨です。このメンバーは、このタイプが.NET4.0タイプのSystem.Numerics.BigIntegerとバイナリ互換であることを確認するために削除されました。

十分に公平だと思いますが、すぐに代替品が見つかりませんでした。

ありますか?独自のPow関数のみを使用する必要がありますか?そして(どのように)それはNET4.0で置き換えられますか?

0 投票する
4 に答える
16764 参照

python - Python の長い乗算

現在の通常の Python の長い乗算よりも高速なアルゴリズムが必要です。

まともなカラツバの実装を見つけようとしましたが、できません。

ご覧のとおり、これは複雑なことではなく、数回の掛け算だけです。ただし、最大 100000 桁の数字を 2.5 秒未満で処理する必要があります。

関数のスニペット、またはより高速な乗算関数の実装へのリンク、または役立つものをお願いします。