前言
正在学习信息安全数学基础这门课程。
编程实现模重复平方计算法。
先介绍一下模重复平方算法
一、模重复平方算法
图片来自大学MOOC陈恭亮老师的视频中,稍有模糊。。。

下面我们用C语言来实现这个算法。我们可以思考一下,这个算法一共可以分为几个小部分?
首先,我们需要一个十进制转化为二进制的函数,主要用于将指数转化为二进制形式;
我们还需要知道,我们的循环计算需要执行多少次,所以我们需要一个函数来确定指数的位数;
最后一个函数就是我们的模重复平方计算函数了。当然我们还可以来定义一个打印函数。
废话不多说,上代码!!!
上代码!
第一道习题,成功。
第二道习题,成功。
下面我们再用JAVA来实现第二种计算方法(这种是我们老师讲的,比较好理解)
首先还是将指数转化为二进制的形式,需要注意的是,第一次初始化,用底数乘1。当二进制的高位为1时,将底数平方再乘上底数,当元素为0时,只平方即可。
我们举个例子吧,如下图所示。
上JAVA代码!
程序执行结果截图: