1. first compute N1 and N2 defined as:
N1 = floor(log2(n))
N2 = n - 2 ** N1
2. the number of multiplications needed is,
m = N1 + (# of bits set to 1 in N2)
(example)
the following is the example when n = 14:
N1 = floor(log2(14)) = 3
N2 = n - 2 ** N1 = 14 - 8 = 6
m = 3 + 2 = 5
a ** 14 is computed as follows using 5 multiplications.
a2 = a * a
a4 = a2 * a2
a8 = a4 * a4
a12 = a8 * a4
a14 = a12 * a2
No comments:
Post a Comment