mindquantum.core.circuit.apply
- mindquantum.core.circuit.apply(circuit_fn, qubits)[源代码]
将量子线路或量子算子(可以生成量子线路的函数)作用到不同的量子比特上。
- 参数:
circuit_fn (Union[Circuit, FunctionType, MethodType]) - 量子线路,或可以生成量子线路的函数。
qubits (list[int]) - 要应用的新量子比特。
- 返回:
Circuit,或可以生成Circuit的函数。
- 异常:
TypeError - 如果量子比特不是list。
ValueError - 如果量子比特的任何元素为负数。
TypeError - 如果 circuit_fn 不是Circuit或不返回Circuit。
样例:
>>> from mindquantum.algorithm.library import qft >>> from mindquantum.core.circuit import apply >>> u1 = qft([0, 1]) >>> u2 = apply(u1, [1, 0]) >>> u3 = apply(qft, [1, 0]) >>> u3 = u3([0, 1]) >>> u2 ┏━━━┓ q0: ─────────────■──────┨ H ┠─╳─── ┃ ┗━━━┛ ┃ ┏━━━┓ ┏━━━━┻━━━━┓ ┃ q1: ──┨ H ┠─┨ PS(π/2) ┠───────╳─── ┗━━━┛ ┗━━━━━━━━━┛ >>> u3 ┏━━━┓ q0: ─────────────■──────┨ H ┠─╳─── ┃ ┗━━━┛ ┃ ┏━━━┓ ┏━━━━┻━━━━┓ ┃ q1: ──┨ H ┠─┨ PS(π/2) ┠───────╳─── ┗━━━┛ ┗━━━━━━━━━┛