{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "2e2023d1",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"クイック・スタート\"\n",
        "description: \"量子回路を2分以内に構築・可視化。サインインやAPIキーは不要です。\"\n",
        "---\n",
        "\n",
        "{/* cspell:ignore miniconda */}\n",
        "\n",
        "<span id=\"quickstart\" />\n",
        "\n",
        "# クイック・スタート\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a82fbaaa",
      "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.1\n",
        "    ```\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "7bbbdb4b",
      "metadata": {
        "jp-MarkdownHeadingCollapsed": true
      },
      "source": [
        "サインインやAPIキーは必要ありません。\n",
        "\n",
        "<Admonition type=\"note\" title=\"Python、仮想環境は初めてですか？\">\n",
        "  * Python をダウンロードし、Qiskit で仮想環境を使用する（推奨）。\n",
        "\n",
        "  <Accordion>\n",
        "    <AccordionItem title=\"クリックすると拡大します。 **Python**.\">\n",
        "      - Python をインストールするには、 [まずQiskitの PyPI プロジェクトページ](https://pypi.org/project/qiskit/)にある「プログラミング言語」セクションを確認し、最新版がどの Python バージョンをサポートしているかを判断してください。 ダウンロード手順については、 [Python 初心者ガイド](https://wiki.python.org/moin/BeginnersGuide/Download)を参照してください。\n",
        "\n",
        "      <Admonition type=\"note\">\n",
        "        これらのインストラクションは、以下の標準的な Python ディストリビューションを使用しています。 [pypi.org](https://pypi.org/). しかし、 [Anaconda](https://docs.anaconda.com/anaconda/) や [miniconda](https://docs.anaconda.com/miniconda/) などの他の Python ディストリビューションを、 [Poetry の](https://python-poetry.org/docs/)ような他の依存関係管理ワークフローと一緒に使うこともできる。\n",
        "      </Admonition>\n",
        "    </AccordionItem>\n",
        "  </Accordion>\n",
        "\n",
        "  <Accordion>\n",
        "    <AccordionItem title=\"**仮想環境**に関する詳細情報を見るにはクリックしてください。\">\n",
        "      * [Python 仮想環境を](https://docs.python.org/3.10/tutorial/venv.html)使用して、Qiskit を他のアプリケーションから分離する。\n",
        "        Python 仮想環境は、特定の目的のために Python で作業するための隔離された空間です。そのため、マシンの「基本」 Python 環境に影響を与えることなく、好きなパッケージをインストールしたり、ライブラリや依存関係をセットアップしたりすることができます。\n",
        "\n",
        "      仮想環境の重要な利点のひとつは、 Python の環境が壊れても、簡単に削除してやり直せることだ！\n",
        "\n",
        "      仮想環境に関する情報を保存する場所を選択します。 通常、これらは各プロジェクト・ディレクトリ内の `.venv` というディレクトリに保存される。\n",
        "\n",
        "      仮想環境をセットアップするには、プロジェクト・ディレクトリに移動し、 Python のみをインストールした最小限の環境を作成する。\n",
        "\n",
        "      <OperatingSystemTabs>\n",
        "        <TabItem value=\"mac\" label=\"macOS\">\n",
        "          ```shell\n",
        "          python3 -m venv .venv\n",
        "          ```\n",
        "        </TabItem>\n",
        "\n",
        "        <TabItem value=\"linux\" label=\"Linux\">\n",
        "          ```shell\n",
        "          python3 -m venv .venv\n",
        "          ```\n",
        "        </TabItem>\n",
        "\n",
        "        <TabItem value=\"win\" label=\"Windows\">\n",
        "          ```text\n",
        "          python -m venv .venv\n",
        "          ```\n",
        "        </TabItem>\n",
        "      </OperatingSystemTabs>\n",
        "\n",
        "      次に、新しい環境をアクティブにする。\n",
        "\n",
        "      <OperatingSystemTabs>\n",
        "        <TabItem value=\"mac\" label=\"macOS\">\n",
        "          ```shell\n",
        "          source .venv/bin/activate\n",
        "          ```\n",
        "        </TabItem>\n",
        "\n",
        "        <TabItem value=\"linux\" label=\"Linux\">\n",
        "          ```shell\n",
        "          source .venv/bin/activate\n",
        "          ```\n",
        "        </TabItem>\n",
        "\n",
        "        <TabItem value=\"win\" label=\"Windows\">\n",
        "          を使用する場合 PowerShell:\n",
        "\n",
        "          ```text\n",
        "          .venv\\Scripts\\Activate.ps1\n",
        "          ```\n",
        "\n",
        "          Git Bashを使用する場合：\n",
        "\n",
        "          ```text\n",
        "          source .venv/scripts/activate\n",
        "          ```\n",
        "\n",
        "          コマンドプロンプトを使用する場合：\n",
        "\n",
        "          ```text\n",
        "          .venv\\Scripts\\activate\n",
        "          ```\n",
        "        </TabItem>\n",
        "      </OperatingSystemTabs>\n",
        "    </AccordionItem>\n",
        "  </Accordion>\n",
        "</Admonition>\n",
        "\n",
        "<span id=\"1-install-qiskit\" />\n",
        "\n",
        "## 1. Qiskit をインストールする\n",
        "\n",
        "お好みのパッケージマネージャー（例： `pip`）で以下をインストールしてください：\n",
        "\n",
        "* [`qiskit`](/docs/guides/install-qiskit)\n",
        "* [`matplotlib`](https://matplotlib.org/stable/users/explain/quick_start.html)\n",
        "* [`qiskit[visualization]`](/docs/api/qiskit/visualization)\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "c8da788c",
      "metadata": {},
      "source": [
        "<span id=\"2-build-your-circuit\" />\n",
        "\n",
        "## 2. 回路を構築する\n",
        "\n",
        "Python 環境を開き、このコードを実行してベル状態（2つのもつれた量子ビット）を構築する。\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "86784142",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'11': 528, '00': 496}\n"
          ]
        }
      ],
      "source": [
        "from qiskit import QuantumCircuit\n",
        "from qiskit.primitives import StatevectorSampler\n",
        "\n",
        "qc = QuantumCircuit(2)\n",
        "qc.h(0)\n",
        "qc.cx(0, 1)\n",
        "qc.measure_all()\n",
        "\n",
        "sampler = StatevectorSampler()\n",
        "result = sampler.run([qc], shots=1024).result()\n",
        "print(result[0].data.meas.get_counts())"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9a3180c2-56d7-4224-91fa-13d8cb87d93d",
      "metadata": {},
      "source": [
        "予想される出力は、「00」と「11」がほぼ均等に分かれる。\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a110ac90",
      "metadata": {},
      "source": [
        "<span id=\"3-visualize-your-results\" />\n",
        "\n",
        "## 3. 結果を可視化する\n",
        "\n",
        "結果のヒストグラムを得るには、以下のコードをプログラムに追加する。\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "dc4ff012",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<Image src=\"/docs/images/guides/quick-start/extracted-outputs/dc4ff012-0.svg\" alt=\"Output of the previous code cell\" />"
            ]
          },
          "execution_count": 2,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "# Uncomment lines 2 and 8 if you are not using Python in a Jupyter notebook\n",
        "# import matplotlib.pyplot as plt\n",
        "from qiskit.visualization import plot_histogram\n",
        "\n",
        "counts = result[0].data.meas.get_counts()\n",
        "plot_histogram(counts)\n",
        "\n",
        "# plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "738d4fc4-29c9-46ab-9879-3365e2149d04",
      "metadata": {},
      "source": [
        "この結果は量子もつれの特徴である。\n",
        "\n",
        "<span id=\"4-see-what-happens\" />\n",
        "\n",
        "## 4. どうなるか見てみよう\n",
        "\n",
        "コードを変更してみて、それが結果にどのような影響を与えるか見てみよう。 例:\n",
        "\n",
        "* `QuantumCircuit(3)` に変更して3つ目の量子ビットを追加し、 `qc.cx(1,2)` で2つ目のCXゲートを追加する。 これは、これら3つの量子ビットがすべてエンタングルされたことを意味する。\n",
        "\n",
        "* 回路の最後に `qc.x(1)` 。\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "b6062a16",
      "metadata": {},
      "source": [
        "<span id=\"next-steps\" />\n",
        "\n",
        "## 次のステップ\n",
        "\n",
        "<Admonition type=\"tip\" title=\"推奨事項\">\n",
        "  * [ハードウェアで最初の回路を実行する](/docs/guides/hello-world)ガイドの手順に従って、実際の量子ハードウェア上で回路を実行してください。\n",
        "  * ハードウェアで実行する準備ができていない？ 量子[情報の基礎](/learning/courses/basics-of-quantum-information)コースで量子の旅を始めましょう。\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "id": "a1b8767d",
      "source": "© IBM Corp., 2017-2026"
    }
  ],
  "metadata": {
    "hours": 1,
    "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": 5
}