Langkau ke kandungan utama
Projek ini dalam fasa beta. Jumpa pepijat? Buat isu GitHub. Ada soalan atau idea? Tanya dalam Discussions — kami suka dengar maklum balas anda!
Bagaimana kualiti terjemahan pada halaman ini?

Ukur qubit

Versi pakej

Kod dalam halaman ini dibangunkan menggunakan keperluan berikut. Kami mengesyorkan penggunaan versi ini atau lebih baru.

qiskit[all]~=2.5.2

Untuk mendapatkan maklumat tentang keadaan qubit, anda boleh mengukurnya ke dalam bit klasik. Dalam Qiskit, pengukuran dilakukan dalam asas pengiraan, iaitu asas Pauli-ZZ satu-qubit. Oleh itu, pengukuran menghasilkan 0 atau 1, bergantung pada pertindihan dengan eigenstate Pauli-ZZ ∣0⟩|0\rangle dan ∣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}

Terapkan pengukuran pada litar​

Terdapat beberapa cara untuk menerapkan pengukuran pada Circuit:

Kaedah QuantumCircuit.measure​

Gunakan kaedah measure untuk mengukur QuantumCircuit.

Contoh:

# 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 0x7f47d8dc24d0>
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 0x7f47d8dc34f0>

Kelas Measure​

Kelas Measure Qiskit mengukur qubit yang dinyatakan.

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 0x7f47d8dc2da0>

Kaedah QuantumCircuit.measure_all​

Untuk mengukur semua qubit ke dalam bit klasik yang sepadan, gunakan kaedah measure_all. Secara lalai, kaedah ini menambah bit klasik baru dalam ClassicalRegister untuk menyimpan pengukuran ini.

from qiskit import QuantumCircuit

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

Kaedah QuantumCircuit.measure_active​

Untuk mengukur semua qubit yang tidak melahu, gunakan kaedah measure_active. Kaedah ini mencipta ClassicalRegister baru dengan saiz yang sama dengan bilangan qubit bukan-melahu yang diukur.

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.

Langkah seterusnya​

Cadangan