さらなる最適化とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > さらなる最適化の意味・解説 

さらなる最適化

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/11 10:07 UTC 版)

冪剰余」の記事における「さらなる最適化」の解説

Python右向きバイナリ法(指数左端ビットから順に見ていく方法)を使った例である。 import mathdef bits(integer): #Gets number of bits in integer result = 0 while integer: integer >>= 1 result += 1 return resultdef power(base, exponent, modulo=None): #Allows fast exponentation with and without moduli result = 1 if not modulo: iteration = bits(exponent) while iteration >= 0: result *= result if (exponent >> iteration) & 1: result *= base iteration -= 1 else: firstModulus = base % modulo iteration = bits(exponent) while iteration >= 0: result = (result * result) % modulo if (exponent >> iteration) & 1: result = (result * firstModulus) % modulo iteration -= 1 return result この方法では、初期化後は変数 result(とループ変数iteration)だけが変化していき、他の変数変化しないという利点がある。このことからハードウェアによる暗号処理の実装高速かつ安価に実装できる。 firstModulus = base % modulo という行は、ちょっとした最適化であり、前の手法にも適用可能である。 これらのバイナリ法では、指数2進数表現の各ビットごとに自乗計算が必要であり、そのビットが1であるときだけ乗算も行う。 右向きバイナリ法では、乗算回数をさらに減らす bit windowing optimizationsliding window optimization がある。 また、剰余求め計算(%)の高速化として、モンゴメリ乗算がある。

※この「さらなる最適化」の解説は、「冪剰余」の解説の一部です。
「さらなる最適化」を含む「冪剰余」の記事については、「冪剰余」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

「さらなる最適化」の関連用語

さらなる最適化のお隣キーワード
検索ランキング

   

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



さらなる最適化のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS