問題タブ [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 投票する
3 に答える
3204 参照

math - 多数を計算するための最速のプログラミング言語?

数億桁(正の整数)の数値を計算したい場合、どのプログラミング言語がそれに最も適していますか?

現在、Pythonを使用していて、スクリプトが実行されており、コーディングは簡単でしたが、速度に懸念があります。

組み立てについてはよくわからないので、最速かもしれませんが、使いたくありません。ここでCは最良の選択ですか?

私が使用しなければならない特定の操作は、*、-、%(mod)、べき乗、等式テスト(ifステートメント)、および基本的なループとある種の出力機能(たとえば、コンソール出力)です。

どうもありがとう。

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

java - 多数の処理

私はこの問題を抱えています:

正の整数はpalindrome、10進法での表現が左から右、および右から左に読み取られたときに同じである場合、aと呼ばれます。K桁以下の与えられた正の整数に対して、出力1000000するよりも大きい最小の回文の値を書き込みKます。数値は常に先行ゼロなしで表示されます。入力

最初の行にはt、テストケースの数である整数が含まれています。整数Kは次のt行に示されています。出力

それぞれについてK、よりも大きい最小の回文を出力しKます。例

入力:

出力:

私のコードは入力を文字列に変換し、文字列の両端を評価してそれに応じて調整し、内側に移動します。ただし、この問題では、最大10 ^ 6桁の長さの値が必要になる可能性があります。大きな数値を解析しようとすると、数値形式の例外が発生します。

また

範囲外LARGENUMBERです。誰かが回避策やそのような大量の処理方法を考えることができますか?

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

c++ - 文字列内の大きな数の除算

C++ で文字列を使用して大きな数を除算するプログラムを作成しました。つまり、数値の各桁を格納するために使用される文字列です。剰余と商を得るために連続減算を使用しました。

しかし問題は、この方法は非常に大きな数に対して非常に遅いことです。それを速くするために他にどのような方法がありますか?

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

c++ - C++でのカラツバアルゴリズムの実装についてサポートが必要

最初のちょっとした経歴:
-私は初めてのポスターで、大学の学生です(プログラミングではありません)。
-これは宿題の質問ではありません。私は楽しみのためにこれをしているだけです。
-私のプログラミング経験は、C ++の1学期(3か月)と高校でのQBasicで構成されています。
-はい、GMPおよびBignumライブラリを確認しました。特にプログラマーの意図を理解せずに、生のコードから何かを学ぶことは非常に困難です。その上、私は自分でそれを行う方法を学びたいです。

任意の大きさの整数の乗算関数をコーディングしています。これらの数字を表すために文字配列を使用しており、末尾に+または-を付けて番兵として機能させています(例:「12345 +」、「31415-」)。

現在、カラツバアルゴリズムを実装しています。問題は、再帰と動的メモリ割り当てを使用すると、関数が単純な方法よりも5倍遅くなることです。
実行時間を短縮する方法について、いくつかのヒントを使用できます。

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

c++ - 大きな整数を基数2^32に変換する方法は?

まず、私は自分でこれを行っているので、「GMP / xint / bignumを使用する」ことを提案しないでください(該当する場合でも)。

大きな整数(たとえば、9000桁以上)を232表現のint32配列に変換する方法を探しています。数字は基数10の文字列として始まります。

たとえば、string a = "4294967300"ちょうど上にある(基数10の)INT_MAX新しい基数2 32配列に変換したい場合は、になりますint32_t b[] = {1,5}。の場合int32_t b[] = {3,2485738}、基数10の数値はになります3 * 2^32 + 2485738。明らかに、私が使用する数値はint64の範囲を超えているため、文字列を正確に整数に変換して成功への道を変えることはできません。

10進数で減算する関数があります。今はsubtraction(char* number, "2^32")、負の数になるまでに何回カウントするかを考えていますが、数値が大きくなると時間がかかる可能性があります。

誰かが別の変換方法を提案できますか?ありがとう。

編集
タグが表示されなかった場合は申し訳ありませんが、私はC++で作業しています

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

r - 大きな整数の乗算

111111111*111111111と同じであるを乗算しようとしましたが、111111111^2間違った結果が得られました。を与えるはず12345678987654321ですが、代わりに丸め誤差を与えます。長い数値には特別な変数タイプを使用する必要がありますか、それともこれはRのバグですか?

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

java - 非常に大きな乱数を生成するjava

Javaで非常に大きな乱数を生成するにはどうすればよいですか?私は10000桁のようなものを話しているのですか?BigIntegerを使用する必要があることはわかっていますが、どうすればこれを実行できますか?このようなことをする最も効率的な方法は何ですか?小さな例を教えてください。ありがとうございました。

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

c++ - 非常に大きい A が非常に大きい B で分割される

長い数の掛け算、長い数の足し算、長い数の引き算、長い数の割り算の関数を既に作成しました。しかし、分割には非常に長い時間がかかります。どのように改善できますか? これが私のコードです:

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

perl - perl での非常に大きな数の高速乗算

50,000 個の数字があります (0 から 50,000 の範囲)。そして、(これらの数値の積) MOD 1000000007 が必要です。次のコードは非常に簡単なので、他の方法があるはずです。「分割統治」手法について聞いたことがありますが、実装方法がわかりません。

提案してください。