ここから本文です

C++で多桁計算の仕方。

ryou_0918_20さん

2007/11/3023:56:29

C++で多桁計算の仕方。

C++で多桁計算のクラスってありますでしょうか?
あれば一番いいと思うのですが、ざっくりと調べてみたところ
標準クラスはないとのこと・・・。

そこで多桁計算のやり方を詳しく教えてもらえないでしょうか?
サンプルプログラムも載せて頂けると助かります^^

よろしくお願いします。

補足たくさんの投稿ありがとうございます^^
私自身多桁計算や多倍長など知らないことだらけでしたので、
多くの助言ありがとうございます・・・。

全て良い回答と思いますので、ベストアンサーは決めかねます、
ので、投票にてベストアンサーを決めたいと思いますので、しばしお待ちください。

閲覧数:
4,484
回答数:
3
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

magurogetさん

編集あり2007/12/100:52:38

標準ライブラリにはないですよね。

ライブラリとしては、gmp や CLN が有名どころでしょうか。

追加:

ご参考:サンプルも載っています
http://ayapin.film.s.dendai.ac.jp/~matuda/TeX/PDF/27th.pdf


あと、CやC++でなくてもよいなら、perl や Java などは BigInt (Math::BigInt math.BigInteger)などは標準に装備されているので、そちらを利用するのがいいのではないでしょうか。浮動小数点に関しては、標準でどうだったっけかな。。^^ 興味があれば、調べてみてくださいな。標準でないはなかも知れませんが、(BigFloat や BigReal という名前で?)必ずあるでしょう(たぶん)^^;

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

nishukangoさん

2007/12/216:42:36

このあたりのリンクが参考になるかもです:
C/C++向け多倍長整数資料を探している人のためのガイド
http://idm.s9.xrea.com/ratio/2005/10/30/000283.html
[cppll:10403] Re: 多桁計算の標準クラスはないのでしょうか?
http://ml.tietew.jp/cppll/cppll/article/10403

magurogetさんも書かれているGIMPがとりあえず頭にあがりますけどね。
PerlのBigInt GMPとPariだったらGMPのほうが速かったような記憶があるので。
Perlのソースを参考にするのであれば、Math::Big*を探すといいかもしれません。
KobeSearch (Math)
http://cpan.uwinnipeg.ca/dist/Math/

distrofreakさん

2007/12/102:44:18

私の知っている中で強力なのは,NTLです.(多桁の整数演算用ですが.)
http://www.shoup.net/ntl/

NTLを用いれば,メモリの許す限り好きなだけ長いbitの整数が扱えるようになります.演算子もオーバーロードされているので,通常の四則演算と入出力ストリーム等は普通の整数型と同じように扱える点などが便利です.使うにはライブラリをビルドする必要があるなど,標準でないなりの対策は必要ですが・・・・・・.
実際に使う場合には,
g++ hoge.cpp -I /usr/local/include/NTL -L /usr/local/lib -lntl -lm
などとしてライブラリをリンクする必要があります.詳しくはホームページを参照してください.

さて,多桁の計算に関してですが,多倍長整数などで検索すると,いろいろとおもしろい情報源に出会えることと思います.がんばってください.

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。