假设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并且n = 8,则DOSOMETHING(c,a,n)的输出为____________。
(A) 0
(B) 1
(C) 2
(D) 3答案: (A)
解释:
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并且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()中的所有语句都不会使其变为非零。
这个问题的测验