問題タブ [bignum]

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 投票する
1 に答える
3010 参照

php - PHPで多数を比較するには?

PHPUnit で非常に多くの数をアサートする方法がわかりません。フィボナッチ数を書きました。しかし、ケース100の場合、私は以下に書きました。

これがTRUEを返すことを期待しています。失敗しました。

「平等に比較してはいけない」と理解しました。そして、それをどのようにアサートするのですか?最後に、to_string 同士を比較します。PHP で多数を比較する方法は?

悪臭として感じます。しかし、私はより良い方法を知りません。どう断言するか教えてください。

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

perl - Perlモジュールで無限をチェックする最良の方法は何ですか?

私のモジュールの 1 つで、無限の概念に対処する必要があります。今日まで、私は9**9**9正の無限大を使用してきましたが、これはうまく機能し、高速であり、perl の内部で無限大として使用されているようです。

ただし、私のモジュールのユーザーが大きな数のモジュール ( などuse bigint;)の 1 つを使用することを決定し、 inforを使用Math::BigInt->binf()して無限を表すと、事態は少し危険になります。

正常に動作しているように見える場所もありますが、他の場所では、真または偽であるはずの比較が間違った方向に進み、バグの追跡が困難になります。

通常の perl 数値と任意精度の数値の両方で機能する何かで、無限のさまざまな他の概念をサポートしたいと思います。

しかし、無限大との比較の一部がタイトな内部ループで発生するため、パフォーマンスについても懸念があります。inffromは明らかMath::BigIntに遅くなります9**9**9(各アクセスで結ばれたメソッドまたはオーバーロードされたメソッドを呼び出すため)。過去にこの問題に対処した人はいますか? もしそうなら、あなたの解決策は何でしたか?

私は、無限に独自の定数を使用することを考えました。次のように定義しました。

そして、bignum モジュールを最初にロードする必要があるという警告をモジュールに追加します。これは理にかなっていますか?そこに信頼できる実装がif_any_bignum...ありますか、それとも自分で展開する必要がありますか?

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

c - 巨大な数を使った基本的な算術演算

巨大な数とは、ギガバイト (4/8 バイトなどではなく) を取得し、それを他の任意の大きな (または小さな) 数値で加算/減算/乗算/除算しようとした場合を意味します。

加算と減算はかなり簡単です (一度に 1 k/m/バイト):

したがって、バイトごとに、ディスクから数値を読み取るときに加算/減算でき、RAM が不足するリスクはありません。

乗算/除算の場合は、上記をループで実行するだけです。

しかし、巨大な数の n 乗根を取る場合はどうでしょうか?

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

javascript - 非常に大きな数を処理できる JavaScript インタープリターはありますか?

重複の可能性:
JavaScript 用の bignum ライブラリはありますか?
JavaScript の Number メソッドの奇妙な構文

プロジェクトオイラーの質問を理解するためのコードをいくつか書きました。

私は得続けました...

Uncaught SyntaxError: Unexpected token ILLEGAL

コードに構文エラーが表示されませんでした...

私が使用している番号は 1000 桁です。Chromeのコンソールで実行しました

そして得falseた。残念。

コードを実行できるインタープリターはありますか?

必要に応じて、ここにコードがあります...

問題は、連続する 5 つの数の積である最大の数を見つけることです。Project Euler は回答がオンラインに投稿されることに眉をひそめていると思うので、一字一句入力するつもりはありません (私の回答がまだ機能するかどうかさえわかりません)。

intC で数値を処理するために を設定する方法がわからなかったため、JavaScript を使用しました。

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

c - OpenSSL の BN を使用した二次拡大体 (または複素数)?

OpenSSL は、BN API を使用した二次拡大体 (または、代わりに、複素数の操作) の操作をサポートしていますか?

そうでない場合、他のオープン ソース ライブラリはありますか?

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

c - Bignum ライブラリ、スロー プライム ジェネレーター

bignum ライブラリを開発しています: http://pastebin.com/nFgF3zjW Miller-Rabin アルゴリズム ( isprime()) を実装しましたが、たとえば OpenSSL の BN_is_prime_fasttest と比較すると非常に遅いです。

プロファイリングを試みたところ、最も実行される関数はbn_shr_atomicbn_cmpです。これをより速くする方法はありますか?

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

javascript - JavaScript で大きな数を処理する方法

本当に (長く、大きく、巨大な、嵐のような) 数値を扱う数学的ソリューションを探しています。まだ何も見つかっていませんが、現時点でこの問題が解決されていないとは思いたくありません。Microsoft Excel Precision (小数点以下 30 桁) や BigInteger (Java) ソリューションなどの簡単な Number ソリューションを探しています。もちろんJavascriptで。

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

javascript - Javascript で Microsoft Excel と同じように RoundUP する関数

数日前、メジャー計算を行う必要があるプロジェクトを開始しました。具体的には、統計計算。まあ、それは問題ではありません。問題は、浮動小数点数 (小数を含む数値) の丸めと、javascript がそれを処理する方法にありました。私はインターネットでJavaScriptの数値を丸めるためのいくつかのアプローチを見つけましたが、どれも正確にms Excelが行うこと(ROUND.MAX関数)に代わる優れたものではありませんでした。そのため、その関数の動作を自分で再現する必要があります。これはコードです:

さて、このコードは、javascript の数値で期待どおりに機能します。しかし、驚くべきことに、javascript は長い浮動小数点数を切り捨てます。そして次は同じことをしますが、非常に長い数を使用します。昨日誰かが私にリンクをくれましたが、それは本当に便利でした。この関数 (EXCEL の ROUND.MAX) が、この種の大きな浮動小数点数に対して既に実装されているかどうかを知りたいです。

これは例です:

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

c++ - GNUMPを使用してbase10の対数を見つける方法

C++ で問題に直面しています。標準の C++ double よりも正確な double が必要です。(C++ long double でも十分ではありません) そう.. 私を満足させる GNUMP を見つけました.. しかし..

与えられた数の10を底とする対数を見つける方法.

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

c - GCC __attribute__((mode(XX)) は実際に何をしますか?

これは、bignum ライブラリと C 言語への gcc 固有のハッキングに関する今日の質問から生じました。具体的には、次の 2 つの宣言が使用されました。

32 ビット システムおよび

64 ビット システムの場合。

これが C 言語の拡張であることを考えると、現在の (C99) 標準で達成されるものを達成する方法は存在しません。

だから私の質問は簡単です:その仮定は正しいですか?そして、これらのステートメントは、根底にあるメモリに何をしますか? 結果は、32 ビット システムと64 ビット システムで得2*sizeof(uint32_t)られたと思いますが、正しいですか?dword2*sizeof(uint64_t)