주 콘텐츠로 건너뛰기
이 프로젝트는 베타 단계입니다. 버그를 발견하셨나요? GitHub 이슈 만들기. 질문이나 아이디어가 있으신가요? Discussions에서 질문하기 — 피드백을 기다립니다!
이 페이지의 번역 품질은 어떻습니까?

Qubit 측정하기

패키지 버전

이 페이지의 코드는 다음 요구 사항에 맞춰 개발했어요. 이 버전 이상을 사용하길 권장해요.

qiskit[all]~=2.6.1

Qubit의 상태에 대한 정보를 얻으려면, 고전 비트(classical bit)로 _측정_할 수 있어요. Qiskit에서 측정은 계산 기저(computational basis), 즉 단일 Qubit의 Pauli-ZZ 기저에서 수행돼요. 따라서 측정 결과는 Pauli-ZZ 고유 상태 ∣0⟩|0\rangle 및 ∣1⟩|1\rangle과의 겹침에 따라 0 또는 1이 나와요:

∣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}

Circuit에 측정 적용하기​

Circuit에 측정을 적용하는 방법에는 여러 가지가 있습니다:

QuantumCircuit.measure 메서드​

measure 메서드를 사용하여 QuantumCircuit을 측정해요.

예시:

# 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 0x7f2cb8446b60>
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 0x7f2cb8446a70>

Measure 클래스​

Qiskit의 Measure 클래스는 지정된 Qubit을 측정합니다.

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

QuantumCircuit.measure_all 메서드​

모든 Qubit을 해당하는 고전 비트로 측정하려면 measure_all 메서드를 사용합니다. 기본적으로 이 메서드는 이러한 측정을 저장하기 위해 ClassicalRegister에 새로운 고전 비트를 추가합니다.

from qiskit import QuantumCircuit

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

QuantumCircuit.measure_active 메서드​

유휴 상태가 아닌 모든 Qubit을 측정하려면 measure_active 메서드를 사용합니다. 이 메서드는 측정되는 비유휴 Qubit의 수와 동일한 크기의 새로운 ClassicalRegister를 생성합니다.

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.

다음 단계​

권장 사항