{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "2e2023d1",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Démarrage rapide\"\n",
        "description: \"Construisez et visualisez un circuit quantique en moins de deux minutes, sans inscription ni clé API.\"\n",
        "---\n",
        "\n",
        "{/* cspell:ignore miniconda */}\n",
        "\n",
        "<span id=\"quickstart\" />\n",
        "\n",
        "# Démarrage rapide\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=\"Versions de package\">\n",
        "    Le code figurant sur cette page a été développé selon les exigences suivantes.\n",
        "    Nous recommandons d'utiliser ces versions ou des versions plus récentes.\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": [
        "Construisez votre premier circuit quantique en moins de deux minutes, dans votre environnement local - aucune connexion ou clé API n'est nécessaire.\n",
        "\n",
        "<Admonition type=\"note\" title=\"Vous ne connaissez pas encore Python et les environnements virtuels?\">\n",
        "  * Téléchargez Python et utilisez un environnement virtuel avec Qiskit (recommandé).\n",
        "\n",
        "  <Accordion>\n",
        "    <AccordionItem title=\"Cliquez pour agrandir pour plus d'informations sur **Python**.\">\n",
        "      - Pour installer Python, consultez d'abord la section « Programming Language » (Langage de programmation) sur la [page du projet Qiskit PyPI](https://pypi.org/project/qiskit/) afin de déterminer quelles versions d' Python sont prises en charge par la version la plus récente. Pour obtenir des instructions de téléchargement, consultez le [guide du débutant d' Python](https://wiki.python.org/moin/BeginnersGuide/Download).\n",
        "\n",
        "      <Admonition type=\"note\">\n",
        "        Ces instructions utilisent la distribution standard Python de [pypi.org](https://pypi.org/). Cependant, vous pouvez utiliser d'autres distributions Python, telles qu' [Anaconda](https://docs.anaconda.com/anaconda/) ou [miniconda](https://docs.anaconda.com/miniconda/), ainsi que d'autres flux de gestion des dépendances comme [Poetry](https://python-poetry.org/docs/).\n",
        "      </Admonition>\n",
        "    </AccordionItem>\n",
        "  </Accordion>\n",
        "\n",
        "  <Accordion>\n",
        "    <AccordionItem title=\"Cliquez pour agrandir et obtenir plus d'informations sur **les environnements virtuels**.\">\n",
        "      * Utilisez les [environnements virtuels Python](https://docs.python.org/3.10/tutorial/venv.html) pour séparer Qiskit des autres applications.\n",
        "        Un environnement virtuel Python est un espace isolé permettant de travailler avec Python dans un but spécifique. Vous pouvez ainsi installer tous les paquets que vous souhaitez et configurer les bibliothèques, les dépendances, etc. sans affecter l'environnement Python \"de base\" sur votre machine.\n",
        "\n",
        "      L'un des principaux avantages d'un environnement virtuel est que si votre environnement Python est corrompu, vous pouvez facilement l'effacer et recommencer!\n",
        "\n",
        "      Choisissez un emplacement privilégié pour stocker les informations relatives à vos environnements virtuels. Ils sont généralement stockés dans un répertoire nommé `.venv` à l'intérieur de chaque répertoire de projet.\n",
        "\n",
        "      Pour mettre en place un environnement virtuel, accédez au répertoire de votre projet et créez un environnement minimal dans lequel seul Python est installé.\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",
        "      Ensuite, activez votre nouvel environnement.\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",
        "          Si l'on utilise PowerShell:\n",
        "\n",
        "          ```text\n",
        "          .venv\\Scripts\\Activate.ps1\n",
        "          ```\n",
        "\n",
        "          Si vous utilisez Git Bash :\n",
        "\n",
        "          ```text\n",
        "          source .venv/scripts/activate\n",
        "          ```\n",
        "\n",
        "          Si vous utilisez l'invite de commande :\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. Installez Qiskit\n",
        "\n",
        "Installez les éléments suivants à l'aide de votre gestionnaire de paquets préféré (tel que `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. Construisez votre circuit\n",
        "\n",
        "Ouvrez un environnement Python, puis exécutez ce code pour construire un état de Bell (deux qubits intriqués).\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": [
        "Le résultat attendu est une répartition presque égale entre \"00\" et \"11\".\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a110ac90",
      "metadata": {},
      "source": [
        "<span id=\"3-visualize-your-results\" />\n",
        "\n",
        "## 3. Visualisez vos résultats\n",
        "\n",
        "Pour obtenir un histogramme de vos résultats, ajoutez le code suivant à votre programme.\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": [
        "Ce résultat est une signature de l'enchevêtrement quantique.\n",
        "\n",
        "<span id=\"4-see-what-happens\" />\n",
        "\n",
        "## 4. Voyez ce qui se passe\n",
        "\n",
        "Essayez de modifier le code pour voir comment cela affecte les résultats. Par exemple :\n",
        "\n",
        "* Ajoutez un troisième qubit en passant à `QuantumCircuit(3)`, et ajoutez une deuxième porte CX avec `qc.cx(1,2)`. Les mesures devraient alors passer à 000 et 111, ce qui signifie que les trois qubits ont été intriqués.\n",
        "\n",
        "* Voyez vos résultats changer en ajoutant `qc.x(1)` à la fin du circuit.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "b6062a16",
      "metadata": {},
      "source": [
        "<span id=\"next-steps\" />\n",
        "\n",
        "## Etapes suivantes\n",
        "\n",
        "<Admonition type=\"tip\" title=\"Recommandations\">\n",
        "  * Suivez les étapes décrites dans le guide [Exécutez votre premier circuit sur du matériel](/docs/guides/hello-world) pour exécuter un circuit sur du matériel quantique réel.\n",
        "  * Vous n'êtes pas prêt à utiliser du matériel informatique? Commencez votre voyage quantique avec le cours \" [Les bases de l'information quantique](/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
}