# qiskit.circuit.QuantumCircuit.prepare_state¶

QuantumCircuit.prepare_state(state, qubits=None, label=None)

Prepare qubits in a specific state.

This class implements a state preparing unitary. Unlike qiskit.extensions.Initialize it does not reset the qubits first.

Paramètres
• state (str or list or int or Statevector) –

• Statevector: Statevector to initialize to.

• str: labels of basis states of the Pauli eigenstates Z, X, Y. See Statevector.from_label(). Notice the order of the labels is reversed with respect to the qubit index to be applied to. Example label “01” initializes the qubit zero to $$|1\rangle$$ and the qubit one to $$|0\rangle$$.

• list: vector of complex amplitudes to initialize to.

• int: an integer that is used as a bitmap indicating which qubits to initialize to $$|1\rangle$$. Example: setting params to 5 would initialize qubit 0 and qubit 2 to $$|1\rangle$$ and qubit 1 to $$|0\rangle$$.

• qubits (QuantumRegister or Qubit or int) –

• QuantumRegister: A list of qubits to be initialized [Default: None].

• Qubit: Single qubit to be initialized [Default: None].

• int: Index of qubit to be initialized [Default: None].

• list: Indexes of qubits to be initialized [Default: None].

• label (str) – An optional label for the gate

Renvoie

a handle to the instruction that was just initialized

Type renvoyé

qiskit.circuit.Instruction

Exemples

Prepare a qubit in the state $$(|0\rangle - |1\rangle) / \sqrt{2}$$.

import numpy as np
from qiskit import QuantumCircuit

circuit = QuantumCircuit(1)
circuit.prepare_state([1/np.sqrt(2), -1/np.sqrt(2)], 0)
circuit.draw()


output:

     ┌─────────────────────────────────────┐
q_0: ┤ State Preparation(0.70711,-0.70711) ├
└─────────────────────────────────────┘


Prepare from a string two qubits in the state $$|10\rangle$$. The order of the labels is reversed with respect to qubit index. More information about labels for basis states are in Statevector.from_label().

import numpy as np
from qiskit import QuantumCircuit

circuit = QuantumCircuit(2)
circuit.prepare_state('01', circuit.qubits)
circuit.draw()


output:

     ┌─────────────────────────┐
q_0: ┤0                        ├
│  State Preparation(0,1) │
q_1: ┤1                        ├
└─────────────────────────┘


Initialize two qubits from an array of complex amplitudes .. code-block:

import numpy as np
from qiskit import QuantumCircuit

circuit = QuantumCircuit(2)
circuit.prepare_state([0, 1/np.sqrt(2), -1.j/np.sqrt(2), 0], circuit.qubits)
circuit.draw()


output:

     ┌───────────────────────────────────────────┐
q_0: ┤0                                          ├
│  State Preparation(0,0.70711,-0.70711j,0) │
q_1: ┤1                                          ├
└───────────────────────────────────────────┘