{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "8cefe278-60a0-4980-a0c4-b2f5806d15b7",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"큐비트 측정\"\n",
        "description: \"큐비트 측정 방법과 측정 적용 가능 위치에 대한 제약 사항을 알아보세요.\"\n",
        "---\n",
        "\n",
        "<span id=\"measure-qubits\" />\n",
        "\n",
        "# 큐비트 측정\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "3b56a673-37b7-4837-b718-9d30d26ad87e",
      "metadata": {
        "tags": [
          "version-info"
        ]
      },
      "source": [
        "{/*\n",
        "  DO NOT EDIT THIS CELL!!!\n",
        "  This cell's content is generated automatically by a script. Anything you add\n",
        "  here will be removed next time the notebook is run. To add new content, create\n",
        "  a new cell before or after this one.\n",
        "  */}\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"패키지 버전\">\n",
        "    이 페이지의 코드는 다음 요구 사항을 사용하여 개발되었습니다.\n",
        "    다음 버전 이상을 사용하는 것이 좋습니다.\n",
        "\n",
        "    ```\n",
        "    qiskit[all]~=2.5.2\n",
        "    ```\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "99224c00-ef6f-4dad-98a8-df5702aa6bc3",
      "metadata": {},
      "source": [
        "큐비트의 상태에 대한 정보를 얻으려면 [클래식 비트로](/docs/api/qiskit/circuit#qiskit.circuit.Clbit) 큐비트를 *측정하면* 됩니다. 키스킷에서 측정은 계산 기준, 즉 단일 큐비트 폴리( $Z$ ) 기준으로 수행됩니다. 따라서 측정값은 Pauli- $Z$ 고유 상태 $|0\\rangle$ 및 $|1\\rangle$ 와의 중첩에 따라 0 또는 1을 산출합니다:\n",
        "\n",
        "$$\n",
        "|q\\rangle \\xrightarrow{measure}\\begin{cases}\n",
        "      0 (\\text{outcome}+1), \\text{with probability } p_0=|\\langle q|0\\rangle|^{2}\\text{,} \\\\\n",
        "      1 (\\text{outcome}-1), \\text{with probability } p_1=|\\langle q|1\\rangle|^{2}\\text{.}\n",
        "    \\end{cases}\n",
        "$$\n",
        "\n",
        "<span id=\"apply-a-measurement-to-a-circuit\" />\n",
        "\n",
        "## 회로에 측정을 적용하다\n",
        "\n",
        "회로에 측정값을 적용하는 방법에는 여러 가지가 있습니다:\n",
        "\n",
        "<span id=\"quantumcircuitmeasure-method\" />\n",
        "\n",
        "### `QuantumCircuit.measure` 메소드\n",
        "\n",
        "메서드를 사용하여 [`measure`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#measure) 메서드를 사용하여 [`QuantumCircuit`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#quantumcircuit-class).\n",
        "\n",
        "예:\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "6cc3aa2f-40a5-4191-8236-a5ffd2e64be0",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<qiskit.circuit.instructionset.InstructionSet at 0x7f21a47d7940>"
            ]
          },
          "execution_count": 1,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from qiskit import QuantumCircuit\n",
        "\n",
        "qc = QuantumCircuit(5, 5)\n",
        "qc.x(0)\n",
        "qc.x(1)\n",
        "qc.x(4)\n",
        "qc.measure(\n",
        "    range(5), range(5)\n",
        ")  #  Measures all qubits into the corresponding clbit."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "5c629673-9000-47ae-8bd3-f3fef65f8b0c",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<qiskit.circuit.instructionset.InstructionSet at 0x7f21b8a298d0>"
            ]
          },
          "execution_count": 2,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from qiskit import QuantumCircuit\n",
        "\n",
        "qc = QuantumCircuit(3, 1)\n",
        "qc.x([0, 2])\n",
        "qc.measure(1, 0)  # Measure qubit 1 into the classical bit 0."
      ]
    },
    {
      "cell_type": "markdown",
      "id": "d909843d-9c23-4017-83d6-8a09fae4c067",
      "metadata": {},
      "source": [
        "<span id=\"measure-class\" />\n",
        "\n",
        "### `Measure` 클래스\n",
        "\n",
        "키스킷 [측정](/docs/api/qiskit/circuit#qiskit.circuit.Measure) 클래스는 지정된 큐비트를 측정합니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "id": "b8855eed-8238-41ce-a45d-f8e81da05508",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<qiskit.circuit.instructionset.InstructionSet at 0x7f21b8a29ff0>"
            ]
          },
          "execution_count": 3,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from qiskit.circuit import Measure\n",
        "\n",
        "qc = QuantumCircuit(3, 1)\n",
        "qc.x([0, 1])\n",
        "qc.append(Measure(), [0], [0])  # measure qubit 0 into clbit 0"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "6583286c-d8e3-4adf-8bce-0e7d9dc3c44f",
      "metadata": {},
      "source": [
        "<span id=\"quantumcircuitmeasure_all-method\" />\n",
        "\n",
        "### `QuantumCircuit.measure_all` 메소드\n",
        "\n",
        "모든 큐비트를 해당 클래식 비트로 측정하려면 [`measure_all`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#measure_all) 메서드를 사용합니다. 기본적으로 이 메서드는 이러한 측정값을 저장하기 위해 `ClassicalRegister` 에 새로운 클래식 비트를 추가합니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "id": "cac45158-7e3e-47b6-bc89-8ac3a4bc9539",
      "metadata": {},
      "outputs": [],
      "source": [
        "from qiskit import QuantumCircuit\n",
        "\n",
        "qc = QuantumCircuit(3, 1)\n",
        "qc.x([0, 2])\n",
        "qc.measure_all()  # Measure all qubits."
      ]
    },
    {
      "cell_type": "markdown",
      "id": "8b4a57d5-ffc9-4247-b39c-2e19ab2c185b",
      "metadata": {},
      "source": [
        "<span id=\"quantumcircuitmeasure_active-method\" />\n",
        "\n",
        "### `QuantumCircuit.measure_active` 메소드\n",
        "\n",
        "유휴 상태가 아닌 모든 큐비트를 측정하려면 [`measure_active`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#measure_active) 메서드를 사용합니다. 이 방법은 측정 중인 비유휴 큐비트 수와 동일한 크기의 `ClassicalRegister` 를 새로 만듭니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "id": "3161f70d-5c59-48fa-842f-624ce7ed0bbe",
      "metadata": {},
      "outputs": [],
      "source": [
        "from qiskit import QuantumCircuit\n",
        "\n",
        "qc = QuantumCircuit(3, 1)\n",
        "qc.x([0, 2])\n",
        "qc.measure_active()  # Measure qubits that are not idle, that is, qubits 0 and 2."
      ]
    },
    {
      "cell_type": "markdown",
      "id": "5b049296-7cd5-4074-8473-ad462744e270",
      "metadata": {},
      "source": [
        "<span id=\"next-steps\" />\n",
        "\n",
        "## 다음 단계\n",
        "\n",
        "<Admonition type=\"tip\" title=\"권장사항\">\n",
        "  * [`Measure`](/docs/api/qiskit/circuit#qiskit.circuit.Measure) 클래스\n",
        "  * [`measure_all`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#measure_all) 메서드\n",
        "  * [`measure_active`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#measure_active) 메서드\n",
        "  * [`random_circuit`](/docs/api/qiskit/circuit_random#qiskit.circuit.random.random_circuit) 메서드\n",
        "  * [회로 중간 측정](/docs/guides/execute-dynamic-circuits#midcircuit) ( IBM Quantum Compute Service를 사용할 때만 이용 가능.)\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "id": "a1b8767d",
      "source": "© IBM Corp., 2017-2026"
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 4
}