Zum Hauptinhalt springen
Dieses Projekt befindet sich in der Beta-Phase. Einen Fehler gefunden? GitHub Issue erstellen. Frage oder Idee? In Discussions fragen — wir freuen uns über dein Feedback!
Wie ist die Übersetzungsqualität auf dieser Seite?

Qubits messen

Package versions

Der Code auf dieser Seite wurde mit den folgenden Anforderungen entwickelt. Wir empfehlen die Nutzung dieser oder neuerer Versionen.

qiskit[all]~=2.5.2

Um Informationen über den Zustand eines Qubits zu erhalten, kannst du es auf ein klassisches Bit messen (measure). In Qiskit werden Messungen in der Berechnungsbasis durchgeführt, das heißt, der Ein-Qubit-Pauli-ZZ-Basis. Daher liefert eine Messung 0 oder 1, abhängig von der Überlappung mit den Pauli-ZZ-Eigenzuständen ∣0⟩|0\rangle und ∣1⟩|1\rangle:

∣q⟩→measure{0(outcome+1),with probability p0=∣⟨q∣0⟩∣2,1(outcome−1),with probability p1=∣⟨q∣1⟩∣2.|q\rangle \xrightarrow{measure}\begin{cases} 0 (\text{outcome}+1), \text{with probability } p_0=|\langle q|0\rangle|^{2}\text{,} \\ 1 (\text{outcome}-1), \text{with probability } p_1=|\langle q|1\rangle|^{2}\text{.} \end{cases}

Eine Messung auf einen Circuit anwenden​

Es gibt mehrere Möglichkeiten, Messungen auf einen Circuit anzuwenden:

Methode QuantumCircuit.measure​

Nutze die Methode measure, um einen QuantumCircuit zu messen.

Beispiele:

# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit": "qiskit"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit import QuantumCircuit

qc = QuantumCircuit(5, 5)
qc.x(0)
qc.x(1)
qc.x(4)
qc.measure(
range(5), range(5)
) # Measures all qubits into the corresponding clbit.
<qiskit.circuit.instructionset.InstructionSet at 0x1068db370>
from qiskit import QuantumCircuit

qc = QuantumCircuit(3, 1)
qc.x([0, 2])
qc.measure(1, 0) # Measure qubit 1 into the classical bit 0.
<qiskit.circuit.instructionset.InstructionSet at 0x1068da4a0>

Measure Klasse​

Die Qiskit Klasse Measure misst die spezifizierten Qubits.

from qiskit.circuit import Measure

qc = QuantumCircuit(3, 1)
qc.x([0, 1])
qc.append(Measure(), [0], [0]) # measure qubit 0 into clbit 0
<qiskit.circuit.instructionset.InstructionSet at 0x1068daef0>

QuantumCircuit.measure_all Methode​

Um alle Qubits in die entsprechenden klassischen Bits zu messen, nutze die Methode measure_all. Standardmäßig fügt diese Methode neue klassische Bits in einem ClassicalRegister hinzu, um diese Messungen zu speichern.

from qiskit import QuantumCircuit

qc = QuantumCircuit(3, 1)
qc.x([0, 2])
qc.measure_all() # Measure all qubits.

QuantumCircuit.measure_active Methode​

Um alle Qubits zu messen, die nicht im Leerlauf sind, nutze die Methode measure_active. Diese Methode erstellt ein neues ClassicalRegister, dessen Größe der Anzahl der gemessenen, nicht im Leerlauf befindlichen Qubits entspricht.

from qiskit import QuantumCircuit

qc = QuantumCircuit(3, 1)
qc.x([0, 2])
qc.measure_active() # Measure qubits that are not idle, that is, qubits 0 and 2.

Nächste Schritte​

Empfehlungen