前言
正在學習資訊安全數學基礎這門課程。
程式設計實作模重複平方計算法。
先介紹一下模重複平方算法
一、模重複平方算法
圖檔來自大學MOOC陳恭亮老師的視訊中,稍有模糊。。。

下面我們用C語言來實作這個算法。我們可以思考一下,這個算法一共可以分為幾個小部分?
首先,我們需要一個十進制轉化為二進制的函數,主要用于将指數轉化為二進制形式;
我們還需要知道,我們的循環計算需要執行多少次,是以我們需要一個函數來确定指數的位數;
最後一個函數就是我們的模重複平方計算函數了。當然我們還可以來定義一個列印函數。
廢話不多說,上代碼!!!
上代碼!
第一道習題,成功。
第二道習題,成功。
下面我們再用JAVA來實作第二種計算方法(這種是我們老師講的,比較好了解)
首先還是将指數轉化為二進制的形式,需要注意的是,第一次初始化,用底數乘1。當二進制的高位為1時,将底數平方再乘上底數,當元素為0時,隻平方即可。
我們舉個例子吧,如下圖所示。
上JAVA代碼!
程式執行結果截圖: