假设 c = 〈c[0], … , c[k – 1]〉 是一个长度为 k 的数组,其中所有条目都来自集合 {0, 1}。对于任何正整数 a 和 n,请考虑以下伪代码。
DOSOMETHING (c, a, n)
z ← 1
for i ← 0 to k – 1
do z ← z2 mod n
if c[i] = 1
then z ← (z × a) mod n
return z
如果 k = 4, c = <1, 0, 1, 1>, a = 2 and n = 8, 那么 DOSOMETHING(c, a, n) 的输出是____________。
(一) 0
(乙) 1
(三) 2
(四) 3答案:(一)
解释:
DOSOMETHING (c, a, n)
z ← 1
for i ← 0 to k – 1
do z ← z2 mod n
if c[i] = 1
then z ← (z × a) mod n
return z
如果 k = 4, c = <1, 0, 1, 1>, a = 2 and n = 8, 那么 DOSOMETHING(c, a, n) 的输出是____________。
For i = 0, z = 1 mod 8 = 1, since c[0] = 1, z = 1*2 mod 8 = 2.
For i = 1, z = 2*2 mod 8 = 1, since c[1] = 0, z remains 4.
For i = 2, z = 16 mod 8 = 0
一旦 z 变为 0,DOSOMETHING() 中的任何语句都不能使其非零。
这个问题的测验