Qiskit量子隐形传态电路Statevector仿真结果与预期不符问题
Qiskit量子隐形传态态矢仿真问题解答
核心问题原因
- Qiskit的态矢默认采用小端(little-endian)比特序,基矢书写规则为
|q_{n-1}, q_{n-2}, ..., q_1, q_0>,寄存器索引越大的比特位于基矢左侧。你当前使用3比特寄存器q0、q1、q2,输出的态矢基矢实际为|q2 q1 q0>的顺序,而你预期的态是按|q0 q1 q2的顺序推导的,比特顺序不匹配导致看起来基组不一致。 - 你代码中的输出态变量
ouptutpsi存在拼写错误,且手动指定dims的方式没有调整比特序,无法匹配你的预期格式。
修正方案
直接调用Statevector的reverse_bits()方法反转比特顺序即可得到你预期的态矢结果,修改后的代码片段如下:
# 原有输出态获取逻辑不变 outputstate = result.get_statevector(teleportation_circ, decimals=3) # 新增:反转比特序匹配手动推导的|q0 q1 q2>顺序 outputpsi = Statevector(outputstate).reverse_bits() print(outputpsi.to_dict())
额外提示
你当前的电路只完成了纠缠分发、发送端Bell基变换两个步骤,尚未添加经典寄存器存储测量结果、接收端幺正校正的逻辑,若要实现完整的量子隐形传态功能,还需要补充对应测量和条件门操作。
内容的提问来源于stack exchange,提问作者Samuel Cheung
相关产品推荐
相关产品推荐

