门方法与门同名,按比特数与参数个数分类:单比特无参 h x y z sx s t(及逆版本 sdg tdg sxdg),单比特带参 rx ry rz p u1(1 个参数)、u2(2 个)、u3(3 个),双比特 cnot/cx cz swap iswap 与带参 crx cry crz cp cu xx yy zz,三比特 toffoli cswap,角度一律弧度制。半加器验证三类门加测量的表达力,命题为 $s = a\oplus b$、$c = a\wedge b$,加权恒等式 $a + b = 2c + s$。
c.x(0); c.x(1) # a = 1, b = 1
c.cnot(0, 2); c.cnot(1, 2) # q2 ^= a, q2 ^= b -> sum
c.toffoli(0, 1, 3) # q3 = a AND b -> carry
c.measure(0, 1, 2, 3)
代入 $a=1$、$b=1$:$s = 1\oplus 1 = 0$、$c = 1\wedge 1 = 1$,核对 $a + b = 2\cdot 1 + 0 = 2 = 10_2$;计数键按"c[0] 在最右"读出 $c_3c_2c_1c_0 = 1011_2 = 11$。模拟输出 {11: 8}——X、CNOT、TOFFOLI 都是基矢置换,经典可逆计算的输出是确定性的。易错点:measure 的参数是被测比特编号,不要求连续。