質問

プログラムで行う数値操作は、特定のデータ型(またはハードウェアサポート)に対して言語が指定するバイト数によって制限されています。整数を使用して給料で計算を行うことができるとしましょう(「短い」」でさえ、1年の収益には十分です!!!;)が)が、ビルゲイツの富でも同じことをすることはできません。だから、私たちは長い長いものなどのために行きます。しかし、私たちはまだ私たちに与えられたビットの数に翻弄されていません。

ソフトウェアで数値操作をエミュレートする場合はどうですか?抽象化し、1000桁の数字で数値で数値操作を行うことができるクラスを言う...もちろんそれは遅すぎますが、私は複雑さについてはあまり心配していませんが、もっと計算可能性を探しています...

たぶん、私はそれを使用して、数ヶ月でPIから1000桁の精度を計算したり、数年後にMersenneプライムを手入れしたり、$ 100Kを持ち帰ることができます;)

だから今、私の質問、1)このようなライブラリはすでにこの種のことを行うようにしています(C/C ++)。 2)私がそれを実装しようとするなら、あなたは私に何か提案がありますか? (+、 - 、 *、 /、%、<<、>>操作は十分だと思います)


PS:

  1. 私はC/C ++プログラマです。

  2. そして、この制限は私の学生時代から私を悩ませ始めました。

役に立ちましたか?

解決

このようなデータタイプは、任意の前提条件数として知られています。 Javaにはクラスがあります BigDecimalBigInteger 桁レベルで基本操作(+、 - 、 *、 /)を処理します。 「組み込み」サイズの制限はありません。実際にはそれほど遅くなく、多くの現実世界ドメインで使用されています。

C/C ++は組み込みませんが、多くのライブラリがあります。ここでリストを参照してください:http://en.wikipedia.org/wiki/arbitrary-precision_arithmetic#libraries

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top