📜  门| GATE-CS-2003 |问题 11

📅  最后修改于: 2021-09-26 04:07:53             🧑  作者: Mango

考虑一个用于将两个 n 位数字相乘的数组乘法器。如果电路中的每个门都有一个单位延迟,则乘法器的总延迟为
(A) Θ(1)
(B) Θ(log n)
(C) Θ(n)
(D) Θ(n 2 )答案: (C)
说明: ‘n’ 位数组乘法器中使用的门数 (n * n) = (2n – 1)
电路中的每个门都有一个单位延迟。

总延迟,

= 1 * (2n – 1) 
= O(2n – 1) 
= O(n)  

假设有 2 个数字 A 和 B。

拿,

A = A0 A1 A2 A3
B = B0 B1 B2 B3 

为了将 A 和 B 相乘,我们需要这样做,

  1. 将 A0 A1 A2 A3 与 B1 相乘需要 1 个与门
  2. 将 A0 A1 A2 A3 与 B2 相乘需要 1 个与门
  3. 将 A0 A1 A2 A3 与 B3 相乘需要 1 个与门
  4. 将 A0 A1 A2 A3 与 B4 相乘需要 1 个与门

还需要 3 个 OR 门来添加 AND 门获得的项。
因此,所需的总门数 = 4+3 = 7,即 2N-1。

所以,

Time complexity = ϴ(n) 

选项(C)是正确的。
这个问题的测验