タグ付けされた質問 「biginteger」

9
BigIntegerの使用方法
私はこのコードを持っていますが、機能していません: BigInteger sum = BigInteger.valueOf(0); for(int i = 2; i < 5000; i++) { if (isPrim(i)) { sum.add(BigInteger.valueOf(i)); } } sum変数は常に0です。何が問題なのですか?
153 java  biginteger 

2
整数からBigIntegerへの変換
Integer型の変数をBigIntegerに変換する方法があるかどうか疑問に思っていました。Integer変数を型キャストしようとしましたが、変換できない型を示すエラーが発生します。
129 java  biginteger 

6
Javaで多数
Javaで非常に大きな数値を使用して計算するにはどうすればよいですか? 私は試しましたlongが、最大値は9223372036854775807です。整数を使用すると、十分な桁数が保存されないため、必要な精度が不十分です。 とにかくこれの周りにありますか?

8
任意精度の演算説明
私はCを習得しようとしていて、本当に大きな数字(つまり、100桁、1000桁など)を処理できないことに遭遇しました。これを行うライブラリが存在することは承知していますが、自分で実装したいと考えています。 私は、誰かが任意精度の算術の非常に詳細で馬鹿げた説明を持っているか提供できるかどうか知りたいだけです。

6
文字列をBigIntegerに変換するにはどうすればよいですか?
標準入力からいくつかの非常に大きな数値を読み取って、それらを合計しようとしています。 ただし、BigIntegerに追加するには、次を使用する必要がありますBigInteger.valueOf(long);。 private BigInteger sum = BigInteger.valueOf(0); private void sum(String newNumber) { // BigInteger is immutable, reassign the variable: sum = sum.add(BigInteger.valueOf(Long.parseLong(newNumber))); } これは問題なく機能しますが、をBigInteger.valueOf()とるだけなので、の最大値(9223372036854775807)longより大きい数値を追加することはできませんlong。 9223372036854775808以上を追加しようとすると、NumberFormatExceptionが発生します(これは完全に予想されます)。 のようなものはありBigInteger.parseBigInteger(String)ますか?

5
最高の(ポータブルな)クロスプラットフォームの任意精度の数学ライブラリは何ですか?[閉まっている]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、StackOverflowのトピックになります。 5年前に閉鎖されました。 この質問を改善する CまたはC ++で適切な任意精度の数学ライブラリを探しています。アドバイスや提案をお願いします。 主な要件: これは、必要があります任意の大きな整数を、私の扱う主要な関心は整数です。任意に大きいという言葉が何を意味するのかわからない場合は、100000のようなものを想像してください!(100000の階乗)。 ライブラリの初期化またはオブジェクトの作成中に精度を指定する必要はありません。精度は、システムの利用可能なリソースによってのみ制約される必要があります。 それはすべきプラットフォームのフルパワーを利用し、ネイティブで「小さな」の数字を処理する必要があります。つまり、64ビットプラットフォームでは、(2 ^ 33 + 2 ^ 32)の計算には使用可能な64ビットCPU命令を使用する必要があります。ライブラリは、同じプラットフォームで(2 ^ 66 + 2 ^ 65)を使用する場合と同じ方法でこれを計算するべきではありません。 それは必要があり、効率的付加をハンドル(+)、減算(-)、乗算(*)、整数除算(/)、残り(%)、電源(**)、インクリメント(++)、デクリメント(--)、GCD、階乗、及び他の一般的な算術計算整数。整数の結果を生成しない平方根や対数などの関数を処理する機能はプラスです。記号計算を処理する機能はさらに優れています。 これが私がこれまでに見つけたものです: JavaのBigIntegerクラスとBigDecimalクラス:私はこれまでこれらを使用してきました。ソースコードを読みましたが、その下の計算がわかりません。それは私が学んだことのない理論やアルゴリズムに基づいているのかもしれません。 組み込みの整数型またはbc、Python、Ruby、Haskell、Lisp、Erlang、OCaml、PHP、その他の言語のコアライブラリ:これらのいくつかを使用しましたが、どのライブラリを使用しているかわかりません。彼らが使用している実装の種類。 私がすでに知っていること: 使用するchar小数点以下の桁用とchar*進文字列のため、および使用して数字上の計算を行うfor-loopを。 int(または、、long intまたはlong long)を基本的な「単位」として使用し、そのタイプの配列を任意の長整数として使用し、for-loopを使用して要素の計算を行います。 整数型を使用して、10進数(または数桁)をBCD(2進化10進数)として格納します。 ブースの乗算アルゴリズム。 私が知らないこと: 単純な方法を使用せずに、上記のバイナリ配列を10進数で出力します。単純な方法の例:(1)ビットを最低から最高に追加します:char*1、2、4、8、16、32 、…(2)上記の-文字列を使用して中間の小数の結果を格納します)。 私が感謝すること: GMP、MPFR、decNumber(またはあなたの意見で良い他のライブラリ)の良い比較。 私が読むべき本や記事に関する良い提案。たとえば、ナイーブでない2進化10進変換アルゴリズムがどのように機能するかを示す図があればよいでしょう。ダグラス・W・ジョーンズによる「限られた精度での2進化から10進への変換」という記事は良い記事の例です。 一般的なヘルプ。 (または、、または)を使用するとこの問題を簡単に解決できると思われる場合は、この質問に答えないでください。そう思うと、問題の問題を理解できません。doublelong doublelong long double
81 c++  c  biginteger  bigdecimal  gmp 

13
C ++でbigintを実装する方法
プログラミング演習として、C ++でbigintクラスを実装したいと思います。これは、longintより大きい数値を処理できるクラスです。すでにいくつかのオープンソースの実装があることは知っていますが、私は自分で実装したいと思います。私は正しいアプローチが何であるかを感じ取ろうとしています。 一般的な戦略は、数値を文字列として取得し、それをより小さな数値(たとえば、1桁)に分割して配列に配置することであることを理解しています。この時点で、さまざまな比較演算子を実装するのは比較的簡単です。私の主な関心事は、足し算や掛け算などをどのように実装するかです。 実際に機能するコードではなく、一般的なアプローチとアドバイスを探しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.