from qiskit.quantum_info import random_statevector, Statevector
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit.visualization import plot_histogram, plot_bloch_multivector, array_to_latex
from qiskit.extensions import Initialize
from qiskit.ignis.verification import marginal_counts
from qiskit import Aer
qr = QuantumRegister(3, name="q")
teleportation_circ = QuantumCircuit(qr)
psi = random_statevector(2)
init_gate = Initialize(psi)
teleportation_circ.append(init_gate, [0])
teleportation_circ.h(1)
teleportation_circ.cx(1,2)
teleportation_circ.barrier()
teleportation_circ.cx(0,1)
teleportation_circ.h(0)
backend = Aer.get_backend('statevector_simulator')
job = backend.run(teleportation_circ)
result = job.result()
outputstate = result.get_statevector(teleportation_circ, decimals=3)
ouptutpsi = Statevector(outputstate, dims=(2, 2, 2))
print(ouptutpsi.to_dict())
teleportation_circ.draw('mpl')
What I expect is 1/2 ( α |000> + α |011> + α |100> + α |111> + β |010> + β|001> - β|110> - β|101> ). But it seems to give me another basis ? I wonder where goes wrong !