擬似コードと解説とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 擬似コードと解説の意味・解説 

擬似コードと解説

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/16 00:14 UTC 版)

カハンの加算アルゴリズム」の記事における「擬似コードと解説」の解説

このアルゴリズム擬似コード以下の通り: function kahanSum(input) var sum = 0.0 var c = 0.0 // 処理中に失われる下位ビット群の補償変数 for i = 1 to input.length do y = input[i] - c // 問題なければ、c はゼロ t = sum + y // sum大きく y は小さいとすると、y の下位ビット群が失われる c = (t - sum) - y // (t - sum) は y の上ビット群に相当するので y を引くと下位ビット群が得られる符号逆転sum = t // 数学的には c は常にゼロのはず。積極的な最適化注意 next i // 次の繰り返しで y の失われた下位ビット群が考慮される return sum 6十進浮動小数点演算を例として動作見てみようコンピュータは普通二進演算だが、基本原理は同じである。sum の値が 10000.0 で、次の input(i) が 3.14159 と 2.71828とする。正確な加算結果は 10005.85987 であり、6丸めると10005.9となる。単純に加算する1回目加算で 10003.1、2回目で 10005.8 となり、正しくない。 c の初期値ゼロとする。 y = 3.14159 - 0 y = input[i] - c t = 10000.0 + 3.14159 = 10003.1 大部分失われた c = (10003.1 - 10000.0) - 3.14159 これは書かれ通り評価される必要がある = 3.10000 - 3.14159 y の失われた部分を得るため、本来の y との差分を得る = -.0415900 6なので、最後にゼロ付与されるsum = 10003.1 このように input(i) の一部しか加算されていない 合計が非常に大きいため、入力数値一部しか反映されない。しかし、ここで次の intput(i) の値が 2.71828 とすると、今回は c がゼロはないた次のうになる。 y = 2.71828 - -.0415900 前回加算できなかった部分をここで反映する = 2.75987 大きな変化はなく、ほとんどの有効に計算される t = 10003.1 + 2.75987 しかし、総和加算しようとする一部しか考慮されない = 10005.9 丸め発生している c = (10005.9 - 10003.1) - 2.75987 反映されなかった分を計算する = 2.80000 - 2.75987 今回加算された値が大きすぎる = .040130 しかし、次の繰り返し反映するので問題ないsum = 10005.9 正確な値は 10005.85987 であり、正しく6丸められている ここで、総和2つ部分分けられ実行される考えられる。すなわち、sum総和保持し、c は sum反映されなかった部分保持する。そして次の繰り返しの際に sum下位への補正試みる。これは、何もしないよりはよいが、精度桁数)を倍にした方がずっと効果があるのも事実である。ただし、単純に桁数増やすことが現実的とは限らないinput倍精度だった場合四倍精度サポートしているシステム少ないし、四倍精度採用するなら input 内のデータ四倍精度にしなければならない

※この「擬似コードと解説」の解説は、「カハンの加算アルゴリズム」の解説の一部です。
「擬似コードと解説」を含む「カハンの加算アルゴリズム」の記事については、「カハンの加算アルゴリズム」の概要を参照ください。

ウィキペディア小見出し辞書の「擬似コードと解説」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「擬似コードと解説」の関連用語

擬似コードと解説のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



擬似コードと解説のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのカハンの加算アルゴリズム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS