Implement quantum teleportation in qiskit
我正在尝试在 qiskit 中实现 qiskit 教科书中的量子隐形传态协议:
我从 q_0 bit = 1 开始,我希望 q_3 = 1 最后但它不起作用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | from qiskit import * qc = QuantumCircuit(3, 3) qc.x(0) #q -> 1 qc.barrier() qc.h(1) qc.cx(1, 2) qc.barrier() # Next, apply the teleportation protocol. qc.cx(0, 1) qc.h(0) qc.barrier() # We measure these qubits and use the classical results to perform an operation qc.measure(0, 0) qc.measure(1, 1) qc.cx(1, 2) qc.cz(0, 2) #qc.barrier() backend = Aer.get_backend('qasm_simulator') job = execute(qc, backend, shots=1, memory=True).result() result = job.get_memory()[0] qc.measure(2, 2) print(job.get_memory()[0]) #q = 0 |
从你的代码中,我得到了电路。我认为无法正确获得 q_3 的原因。是"量子位测量后跟指令"。测量后就不能再做操作了。
但我不确定这是不是这个原因。
看起来它正在按预期工作。在教科书中,它在代码单元格的末尾说:
原则上,如果传送协议有效,我们有 q[2] = secret_unitary|0>
结果,我们应该能够通过应用secret_unitary的逆来恢复q[2] = |0>
因为对于单一的 u,u^dagger u = I.
你的