上位桁から計算する方式とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 上位桁から計算する方式の意味・解説 

上位桁から計算する方式

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

冪乗」の記事における「上位桁から計算する方式」の解説

上の方式同様に次の性質を使う。 a 2 x = ( a x ) 2 {\displaystyle a^{2x}=(a^{x})^{2}} これに性質 a x + 1 = a x ⋅ a {\displaystyle a^{x+1}=a^{x}\cdot a} を組み合わせると、次の関係が成り立つ。 a 2 x + 1 = ( a x ) 2 ⋅ a {\displaystyle a^{2x+1}=(a^{x})^{2}\cdot a} 指数偶数奇数かによってこれら二つの式を使い分け指数順次約1/2にしていくことができる。例えば a 43 {\displaystyle a^{43}} は、 a 43 = a 212 + 1 = ( a 21 ) 2 ⋅ a {\displaystyle a^{43}=a^{21\cdot 2+1}=(a^{21})^{2}\cdot a} である。そして a 21 {\displaystyle a^{21}} も同様にa 21 = a 102 + 1 = ( a 10 ) 2 ⋅ a {\displaystyle a^{21}=a^{10\cdot 2+1}=(a^{10})^{2}\cdot a} である。 a 10 {\displaystyle a^{10}} はこうなる。 a 10 = a 5 ⋅ 2 = ( a 5 ) 2 {\displaystyle a^{10}=a^{5\cdot 2}=(a^{5})^{2}} 以下同様に、こうなる。 a 5 = a 2 ⋅ 2 + 1 = ( a 2 ) 2 ⋅ a {\displaystyle a^{5}=a^{2\cdot 2+1}=(a^{2})^{2}\cdot a} a 2 = a 1 ⋅ 2 = ( a 1 ) 2 {\displaystyle a^{2}=a^{1\cdot 2}=(a^{1})^{2}} a 1 = a {\displaystyle a^{1}=a} これを逆順にたどり、 a 43 = ( ( ( ( ( a ) 2 ) 2 ⋅ a ) 2 ) 2 ⋅ a ) 2 ⋅ a {\displaystyle a^{43}=(((((a)^{2})^{2}\cdot a)^{2})^{2}\cdot a)^{2}\cdot a} として算出できる。(下図で「→」は乗算表し、「⇒」は2乗を表す。) a a a ↓ ↓ ↓ 二進表記: a1 ⇒ a10 ⇒ a100 → a101 ⇒ a1010 ⇒ a10100 → a10101 ⇒ a101010 → a101011 十進表記: a1 a2 a4 a5 a10 a20 a21 a42 a43 2乗した後に a を乗算するか否かは、指数 n を二進表記したときの各ビットが1であるか否か一致するコンピュータアルゴリズムとして書くとこうなる。 指数 n の二進表記を n とし、n の最下位を n[0]、最上位を n[m]、最下位から数えて k 目を n[k] と表記する結果値 v := 1 とし、 k := m とする(最上位)。 v := v * v n[k] が 1 ならば v := v * a とする。 k := k − 1 k ≧ 0 なら 3. に戻る。 この方式では、4. における乗数が常に a なので、下位桁から計算する方式比べて乗数桁数小さくなり、計算時間かからない。これは特に、レジスタ入りきらないような巨大な自然数を扱う場合顕著となる。ただし(RSA暗号のように)冪乗剰余計算する場合であって法の大きさが a と同程度ならば、この効果はない。 また 4. における乗数が常に a なので、あらかじめ a が定数(2 や 10 など、またはディフィー・ヘルマン鍵共有生成元 g など)であることがわかっている場合には、4. の乗算最適化をすることができる。 巨大な自然数汎用的な冪算ルーチン(a が小さ可能性が高い)や、a が小さかった定数であることがわかっている場合冪乗剰余計算する場合であってモンゴメリー演算用いず別途剰余計算する場合、数を保持するコストが高い場合など、指数二進表記するコスト上の効率得られる場合選択される

※この「上位桁から計算する方式」の解説は、「冪乗」の解説の一部です。
「上位桁から計算する方式」を含む「冪乗」の記事については、「冪乗」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

「上位桁から計算する方式」の関連用語

上位桁から計算する方式のお隣キーワード
検索ランキング

   

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



上位桁から計算する方式のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS