No.2ベストアンサー
- 回答日時:
そういうライブラリがあればいいんですが、
私も知りません。
要は筆算の手順をプログラムに実装すればいいんじゃ
ないでしょうか。
たとえば、多桁×多桁の計算を筆算風にやってみます。
手元の環境では、unsigned shortが0~65535、unsigned
intがその2乗の桁を持ってるんで、unsigned shortの
配列s[KETA]、t[KETA]、r[KETA]を使って、(KETA:定数)
s[0]、t[0]、r[0]には千の位まで、s[1]等には千万の位まで
入ってる、という風に多桁の十進数を表現すると、
[初期値] unsigned int carry = 0, i = 0, j = 0;
[ステップ1]
unsigned int result
= (unsigned int)s[i] * (unsigned int)t[j] + carry;
[ステップ2]
r[i+j] += (unsigned short)(result % 10000);
carry = r[i+j] / 10000;
[ステップ3]
if( s[++i] > 0 )
ステップ1へ
else if( t[++j] > 0 )
if( carry > 0 )
r[i+j-1] += carry;
carry = i = 0;
ステップ1へ
else
ステップ4へ
[ステップ4]
rの要素を添え字の大きいものから順に横に並べて表示
多分どこか間違えてますが、こんな感じで多桁×多桁の
掛け算はできませんかね。217!に必要なのは多桁×少桁(?)
ですが、そっちはもう少しシンプルですね。
ところで、217!の厳密解が欲しいという状況が理解できないんですが…。
そんなものを眺めて何か分かるんでしょうか?整数論の最先端では
そういうことをやってるんでしょうか?暗号理論?
さもなくば浮動小数点で十分なんでは?
No.3
- 回答日時:
UNIX の C なら、GNU の MP (または GMP)というライブラリがあります。
ソースは参考URLにあります。
Windows にも移植されているかもしれませんし、もしかするとコンパイル
すればそのまま動くかもしれません。
あと、Perl ではなく、Ruby なら、最初から多倍長精度演算が可能です。
参考URL:http://www.vector.co.jp/soft/solaris/sources/se0 …
No.1
- 回答日時:
アルゴリズムは考えていますか?
ただ標準の数値を使うのではなく、パック形式でやるとか、自分で10進構造を作ってやれば桁あふれはおこりませんよ。
ライブラリでそういう関数があるかもしれません。
無ければ自分でそういう関数を作ればいいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Google+ 5+9+24+32+128=? 各数字が2秒ほど表示されます。暗算できますか? 1 2023/02/05 20:16
- 高校 有効数字計算 確定した値を含む 2 2023/01/18 06:03
- 高校 高校化学、気体、温度の有効数字 3 2023/04/02 11:39
- その他(学校・勉強) そろばんのことで質問です。私は初心者なんですが・・・ ①かけ算の答えの桁数はかける数とかけられる数の 5 2022/11/03 11:11
- 数学 小数点の計算についてです。 答えは与えられた数字の中で最も少ない桁に四捨五入で合わせるのですが、ひと 2 2023/04/04 15:19
- 計算機科学 なぜ3桁3桁2桁の計算なのに答えが2桁になってるんですか? 3 2022/12/03 12:53
- 数学 小学生がたった1日で19×19までかんぺきに暗算できる本、のおみやげ算。数学的に言うと何? 3 2023/04/07 09:35
- 中学校 割り算を解くのが遅いです。商を見当つけるのが苦手で、計算遅くなってしまっていると思います。どのように 7 2023/04/17 14:34
- 化学 有効数字の問題にです 4 2022/08/02 22:33
- 化学 有効数字の取り扱いについて 高校化学では、測定値同士の計算結果の有効数字は、測定値に合わせるようにな 4 2022/06/30 14:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三角比の俯角の計算
-
O(n log n)について2
-
16進数 加算 減算 C言語
-
ExcelでPC(パソコン)によって...
-
c languageで 簡単な質問があ...
-
VBAでミリ秒まで出力する方法
-
ExcelのINT関数の計算結果がお...
-
三菱シーケンサ(Aシリーズ)で...
-
有効数字について 以前質問をし...
-
10進数での「25」が2進数では「...
-
VB6.0での小数点の扱いについて
-
”/”を使わずに割り算したいんで...
-
変換指定子%22-16gの表示...
-
VB.net Double と...
-
VBAでの割り算の余りの求め方
-
長い桁(小数点以下)が計算でき...
-
PICマイコンのアセンブラについて
-
PICで小数点の演算
-
Double型について
-
教えて小数点の比較!(C言語)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
O(n log n)について2
-
ExcelでPC(パソコン)によって...
-
ExcelのINT関数の計算結果がお...
-
16進数 加算 減算 C言語
-
VB.net Double と...
-
floatの有効桁数
-
三菱シーケンサ(Aシリーズ)で...
-
c languageで 簡単な質問があ...
-
除算を使わずに10で割りたい。
-
VBAでミリ秒まで出力する方法
-
VBAでの割り算の余りの求め方
-
VB6.0での小数点の扱いについて
-
VB6のFIX関数での誤差について
-
有効数字について 以前質問をし...
-
100桁の計算ができなくて困って...
-
浮動小数演算は実行環境の変化...
-
EXCELの関数"STDEV(標準偏差)"...
-
BCD・HEX・BINについて
-
コンピューターは指数関数をど...
-
乱数 なぜ剰余を使うのか
おすすめ情報