お世話になっております。
「多倍長演算」の理論について詳しく知りたいです。
現在、(Double型でも)桁あふれが起こっており、多倍長演算なるものを利用しないといけない状況になっておりますが、いろいろ検索をかけてもよく分かりません。
まず言われているのが、
「配列を使って、一桁ずつ計算する」
というものを多く見かけました。
そのやり方を詳しく探そうとしていたところ、以下のサイト様を発見しました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1082763270
そこを見ると、C言語で
lang
1void Mul(int x[],int y[],int z[]){ 2 int i,a,b,c; 3 a=10000; 4 for(i=N-1;i >= 0;--i){ 5 b=a+x[i]*y[i]; 6 z[i] = b % 10000; 7 a=b / 10000; 8 } 9}
と、あります。(理論は一切書かれていません)
これが多倍長演算というものなのでしょうが、どのような定理、理論を利用しているのでしょうか?
また、
*何故引数は配列であるか
*10000のあまりを利用したり、10000で割っているのは何故か
*(おそらく)2つの値の計算なのに、何故引数が3つ用意されているのか
などもご教授いただけると幸いです。
よろしくお願いいたします。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/04/21 04:36