算法编写、复杂度分析与病毒扫描技术解析
算法编写与对比
在算法领域,乘法运算有其对应的指数运算算法。下面是一个用于计算一个数的另一个数次幂的算法 EXPONENTIATE-HORNER :
1 algorithm EXPONENTIATE-HORNER(x,y) begin
2 t ←1
3 for i from |y| −1 downto 0 do
4 t ←MULTIPLY-HORNER(t,t)
5 if yi = 1 then
6 t ←MULTIPLY-HORNER(t,x)
7 end
8 end
9 return t
10 end
将 EXPONENTIATE-HORNER 逐行与之前的 MULTIPLY-HORNER 进行比较,可以发现它们思路相同,只是把所有的加法运算换成了乘法运算。 EXPONENTIATE-HORNER 常被称为平方 - 乘法算法,因为它会执行一系列的平方(第 4 行)和乘法(第 6 行)操作:对于 y 的每一位,无论其值为 0 还是 1,都会执行一次平方操作;而当 y 的某一位为 1 时,会执行一次乘法操作。
该算法处理 y 时通常是从左到右的顺序。例如,当 y = 6(10) = 110(2) 时
超级会员免费看
订阅专栏 解锁全文
26

被折叠的 条评论
为什么被折叠?



