mindquantum.core.circuit.controlled

查看源文件
mindquantum.core.circuit.controlled(circuit_fn)[源代码]

在量子线路或量子算子(可以生成量子线路的函数)上添加控制量子比特。

参数:
  • circuit_fn (Union[Circuit, FunctionType, MethodType]) - 量子线路,或可以生成量子线路的函数。

返回:

可以生成Circuit的函数。

异常:
  • TypeError - circuit_fn 不是Circuit或无法返回Circuit。

样例:

>>> from mindquantum.algorithm.library import qft
>>> from mindquantum.core.circuit import controlled
>>> u1 = qft([0, 1])
>>> u2 = controlled(u1)
>>> u3 = controlled(qft)
>>> u3 = u3(2, [0, 1])
>>> u2(2)
      ┏━━━┓ ┏━━━━━━━━━┓
q0: ──┨ H ┠─┨ PS(π/2) ┠───────╳───
      ┗━┳━┛ ┗━━━━┳━━━━┛       ┃
        ┃        ┃      ┏━━━┓ ┃
q1: ────╂────────■──────┨ H ┠─╳───
        ┃        ┃      ┗━┳━┛ ┃
        ┃        ┃        ┃   ┃
q2: ────■────────■────────■───■───
>>> u3
      ┏━━━┓ ┏━━━━━━━━━┓
q0: ──┨ H ┠─┨ PS(π/2) ┠───────╳───
      ┗━┳━┛ ┗━━━━┳━━━━┛       ┃
        ┃        ┃      ┏━━━┓ ┃
q1: ────╂────────■──────┨ H ┠─╳───
        ┃        ┃      ┗━┳━┛ ┃
        ┃        ┃        ┃   ┃
q2: ────■────────■────────■───■───