{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "15b60570",
   "metadata": {},
   "source": [
    "# Construcción de circuitos cuánticos\n",
    "\n",
    "Preparas estados concretos combinando puertas: superposiciones, fases, estados de Bell y estados GHZ. Cada idea se comprueba de dos formas: con `Statevector` (probabilidades exactas) y con `StatevectorSampler` (muestras, como en un experimento).\n",
    "\n",
    "El estado de un qubit es $|\\psi\\rangle = \\alpha|0\\rangle + \\beta|1\\rangle$, con $|\\alpha|^2 + |\\beta|^2 = 1$. Al medir se obtiene 0 con probabilidad $|\\alpha|^2$ y 1 con probabilidad $|\\beta|^2$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c708a946",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-29T19:07:21.976506Z",
     "iopub.status.busy": "2026-09-29T19:07:21.976326Z",
     "iopub.status.idle": "2026-09-29T19:07:22.515210Z",
     "shell.execute_reply": "2026-09-29T19:07:22.514879Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x: amplitudes [0.+0.j 1.+0.j] -> probabilidades {'1': 1.0}\n",
      "h: amplitudes [0.707+0.j 0.707+0.j] -> probabilidades {'0': 0.5, '1': 0.5}\n",
      "z: amplitudes [1.+0.j 0.+0.j] -> probabilidades {'0': 1.0}\n",
      "s: amplitudes [1.+0.j 0.+0.j] -> probabilidades {'0': 1.0}\n",
      "t: amplitudes [1.+0.j 0.+0.j] -> probabilidades {'0': 1.0}\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from qiskit import QuantumCircuit\n",
    "from qiskit.quantum_info import Statevector\n",
    "from qiskit.primitives import StatevectorSampler\n",
    "\n",
    "def probs(qc):\n",
    "    return {str(k): round(float(v), 3) for k, v in Statevector(qc).probabilities_dict().items()}\n",
    "\n",
    "for puerta in [\"x\", \"h\", \"z\", \"s\", \"t\"]:\n",
    "    qc = QuantumCircuit(1)\n",
    "    getattr(qc, puerta)(0)\n",
    "    print(f\"{puerta}: amplitudes {np.round(Statevector(qc).data, 3)} -> probabilidades {probs(qc)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4b5ed30e",
   "metadata": {},
   "source": [
    "`z`, `s` y `t` no cambian las probabilidades desde $|0\\rangle$: solo actúan sobre la fase de $|1\\rangle$.\n",
    "\n",
    "## Rotaciones: controlar la probabilidad\n",
    "\n",
    "Con `ry(θ)` la probabilidad de medir 1 es $\\sin^2(\\theta/2)$. Comparamos la teoría con el cálculo de Qiskit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "1da9fc59",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-29T19:07:22.516534Z",
     "iopub.status.busy": "2026-09-29T19:07:22.516329Z",
     "iopub.status.idle": "2026-09-29T19:07:22.597883Z",
     "shell.execute_reply": "2026-09-29T19:07:22.597378Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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TgNhlpm3bfacsqwmrXC6LWvSUibdo+bo724QVAkoktf055WdzL+FVc5eTERElKkCMn5OlJ6oir551QWFagILLTNv26xBmaenJxwcHBAerh+Nym0fHx+jj5H707O9i4uLumQp2SkkWk+hvzupf1q2Sy/Z2bK5+ZSIiMgi2WfCOTErz9nWPCWGs7Mzqlevjs2bNyfdJ4n+crtu3bpGHyP3624vNm3alOL22drfrRimDTIHjIiIyGLYW+452+zzlEnX4rx587Bw4UKcPHkSPXv2VKMru3Xrpv7epUsXvYEAffv2RXBwMKZOnaryzkaNGoUDBw6gd+/eltHf7VFY/36Jti18+QciIqIcJcAyz9lmzymTKS5u376NESNGqGR9mdpCgi5tMn9YWJgakalVr149NTfZF198gaFDh6Js2bJq5KVZ5yjTYg4YERGRdQiwvLxts89Tlt2sYu1LIiIishlc+5KIiIjIipg9p4yIiIiIGJQRERERWQS2lBERERFZAAZlRERERBbA7FNiZDftYNMsWZiciIiIyIA25khrwoscF5Q9fPhQ/Z/p618SERERpRGDyLRcKclx85TJMk7Xr19Hnjx5YGdnuLxC5tAuen7lyhXOhcZ6yxbc51hv2Y37HOuN+5zpJNSSgMzX11dvQnzk9JYyqYwiRYpky2vJ5LScoJb1lp24z7Heshv3OdYb9znTpNZCpsVEfyIiIiILwKCMiIiIyAIwKMsCLi4uGDlypPqfWG/Zgfsc6y27cZ9jvXGfy3w5LtGfiIiIyBKxpYyIiIjIAjAoIyIiIrIADMqIiIiILACDMiIiIiILwKAsk82cORMlSpSAq6srateujX379mX2S9ik7du3o2XLlmq2Y1lpYeXKleYuklWYMGECatasqVao8PLyQps2bXD69GlzF8vizZ49G5UrV06a+LRu3br466+/zF0sqzNx4kT1fe3Xr5+5i2LxRo0apepK9+Lv72/uYlmFa9eu4d1330XBggWRK1cuBAYG4sCBA7BFDMoy0ZIlSzBgwAA1HcahQ4dQpUoVNG3aFLdu3crMl7FJUVFRqr4kqCXTbdu2Db169cKePXuwadMmxMbGokmTJqo+KWWyqocEFAcPHlQH91deeQWtW7fG8ePHWW0m2r9/P77//nsV3JJpKlasiBs3biRddu7cyapLw/3791G/fn04OTmpH04n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",
      "text/plain": [
       "<Figure size 700x350 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "angulos = np.linspace(0, 2 * np.pi, 25)\n",
    "p1 = []\n",
    "for theta in angulos:\n",
    "    qc = QuantumCircuit(1)\n",
    "    qc.ry(theta, 0)\n",
    "    p1.append(Statevector(qc).probabilities()[1])\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(7, 3.5))\n",
    "ax.plot(angulos, np.sin(angulos / 2) ** 2, label=\"teoría: sin²(θ/2)\")\n",
    "ax.scatter(angulos, p1, color=\"C1\", zorder=3, label=\"Qiskit\")\n",
    "ax.set_xlabel(\"θ (radianes)\")\n",
    "ax.set_ylabel(\"P(1)\")\n",
    "ax.set_title(\"ry(θ) fija cualquier probabilidad entre 0 y 1\")\n",
    "ax.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8a51d15f",
   "metadata": {},
   "source": [
    "## Fase e interferencia\n",
    "\n",
    "$\\frac{1}{\\sqrt{2}}(|0\\rangle + |1\\rangle)$ y $\\frac{1}{\\sqrt{2}}(|0\\rangle - |1\\rangle)$ tienen las mismas probabilidades. La diferencia aparece al aplicar otra Hadamard: las amplitudes interfieren."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "aae3cb42",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-29T19:07:22.598926Z",
     "iopub.status.busy": "2026-09-29T19:07:22.598783Z",
     "iopub.status.idle": "2026-09-29T19:07:22.602953Z",
     "shell.execute_reply": "2026-09-29T19:07:22.602535Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "h-h   -> {'0': 1.0}\n",
      "h-z-h -> {'1': 1.0}\n",
      "¿h-z-h equivale a x? True\n"
     ]
    }
   ],
   "source": [
    "h_h = QuantumCircuit(1)\n",
    "h_h.h(0)\n",
    "h_h.h(0)\n",
    "\n",
    "h_z_h = QuantumCircuit(1)\n",
    "h_z_h.h(0)\n",
    "h_z_h.z(0)\n",
    "h_z_h.h(0)\n",
    "\n",
    "print(\"h-h   ->\", probs(h_h))\n",
    "print(\"h-z-h ->\", probs(h_z_h))\n",
    "print(\"¿h-z-h equivale a x?\", Statevector(h_z_h).equiv(Statevector.from_label(\"1\")))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9deec9e7",
   "metadata": {},
   "source": [
    "## Los cuatro estados de Bell\n",
    "\n",
    "Una Hadamard seguida de una `cx` entrelaza dos qubits. Agregando `x` o `z` se obtienen los cuatro estados de Bell."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "eb7ae03c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-29T19:07:22.604008Z",
     "iopub.status.busy": "2026-09-29T19:07:22.603873Z",
     "iopub.status.idle": "2026-09-29T19:07:22.611152Z",
     "shell.execute_reply": "2026-09-29T19:07:22.610716Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "phi+ amplitudes: [0.707+0.j 0.   +0.j 0.   +0.j 0.707+0.j] | probabilidades: {'00': 0.5, '11': 0.5}\n",
      "phi- amplitudes: [ 0.707+0.j  0.   +0.j  0.   +0.j -0.707+0.j] | probabilidades: {'00': 0.5, '11': 0.5}\n",
      "psi+ amplitudes: [0.   +0.j 0.707+0.j 0.707+0.j 0.   +0.j] | probabilidades: {'01': 0.5, '10': 0.5}\n",
      "psi- amplitudes: [ 0.   +0.j -0.707+0.j  0.707+0.j  0.   +0.j] | probabilidades: {'01': 0.5, '10': 0.5}\n"
     ]
    }
   ],
   "source": [
    "def bell(variante):\n",
    "    qc = QuantumCircuit(2)\n",
    "    if variante in (\"psi+\", \"psi-\"):\n",
    "        qc.x(1)\n",
    "    qc.h(0)\n",
    "    qc.cx(0, 1)\n",
    "    if variante in (\"phi-\", \"psi-\"):\n",
    "        qc.z(0)\n",
    "    return qc\n",
    "\n",
    "for v in [\"phi+\", \"phi-\", \"psi+\", \"psi-\"]:\n",
    "    print(v, \"amplitudes:\", np.round(Statevector(bell(v)).data, 3), \"| probabilidades:\", probs(bell(v)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1d37daed",
   "metadata": {},
   "source": [
    "`phi+` y `phi-` dan `00` y `11`; `psi+` y `psi-` dan `01` y `10`. Dentro de cada par solo cambia el signo de una amplitud: la fase.\n",
    "\n",
    "## Estados GHZ\n",
    "\n",
    "Encadenando `cx` se entrelazan más qubits. En un estado GHZ solo aparecen los resultados de todos ceros y todos unos."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "b9287087",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-29T19:07:22.612034Z",
     "iopub.status.busy": "2026-09-29T19:07:22.611917Z",
     "iopub.status.idle": "2026-09-29T19:07:22.624138Z",
     "shell.execute_reply": "2026-09-29T19:07:22.623772Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2 qubits -> {'11': 498, '00': 502}\n",
      "3 qubits -> {'111': 498, '000': 502}\n",
      "4 qubits -> {'1111': 498, '0000': 502}\n",
      "5 qubits -> {'11111': 498, '00000': 502}\n",
      "        ┌───┐                ░ ┌─┐         \n",
      "   q_0: ┤ H ├──■─────────────░─┤M├─────────\n",
      "        └───┘┌─┴─┐           ░ └╥┘┌─┐      \n",
      "   q_1: ─────┤ X ├──■────────░──╫─┤M├──────\n",
      "             └───┘┌─┴─┐      ░  ║ └╥┘┌─┐   \n",
      "   q_2: ──────────┤ X ├──■───░──╫──╫─┤M├───\n",
      "                  └───┘┌─┴─┐ ░  ║  ║ └╥┘┌─┐\n",
      "   q_3: ───────────────┤ X ├─░──╫──╫──╫─┤M├\n",
      "                       └───┘ ░  ║  ║  ║ └╥┘\n",
      "meas: 4/════════════════════════╩══╩══╩══╩═\n",
      "                                0  1  2  3 \n"
     ]
    }
   ],
   "source": [
    "def ghz(n):\n",
    "    qc = QuantumCircuit(n)\n",
    "    qc.h(0)\n",
    "    for i in range(n - 1):\n",
    "        qc.cx(i, i + 1)\n",
    "    qc.measure_all()\n",
    "    return qc\n",
    "\n",
    "sampler = StatevectorSampler(seed=7)\n",
    "resultados = sampler.run([ghz(n) for n in range(2, 6)], shots=1000).result()\n",
    "for n, r in zip(range(2, 6), resultados):\n",
    "    print(n, \"qubits ->\", r.data.meas.get_counts())\n",
    "print(ghz(4).draw(\"text\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "08ea490f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-29T19:07:22.625178Z",
     "iopub.status.busy": "2026-09-29T19:07:22.625055Z",
     "iopub.status.idle": "2026-09-29T19:07:22.666966Z",
     "shell.execute_reply": "2026-09-29T19:07:22.666542Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAN05JREFUeJzt3Qm8TfX+//HPOces5JgpQ1SmiqKkQaZIiopug1vSoFy6lVRXAynR5RY9mvMr1a+kuW4SMheKSAMlRNwyy5B52P/H+3v/a//22WdvzjnOdvb+ej0fj+04a6+z9hr2Xvu9vtNKC4VCIQMAAEDKSy/oFQAAAED+INgBAAB4gmAHAADgCYIdAACAJwh2AAAAniDYAQAAeIJgBwAA4AmCHQAAgCcIdgAAAJ4g2AFwHnroIUtLS/N6b1x//fV21FFH5Whe7Qvtk0T7888/rUKFCvbGG2+Yz6ZOner2qX5GHo8aNWrYkWDcuHHuvbdu3bqCXhV4jmAH5LNly5ZZr1697KSTTrISJUq4R7169axnz5723XffxQxT69evj7ksfeldfPHFWb4INf+BHsnyRblgwQK74oorrGbNmm4flCtXzpo1a2Yff/yxpaKZM2e647Vp06Z8Xe6TTz5pRx99tF111VXhaatWrbJ//OMf1qJFC/dcdCCKtW7nnnuu28+VKlWyv//97y4wRtu1a5fde++9VqVKFStevLg1adLEPvvss0NaJnLmwgsvtBNOOMEGDx7MLkNCFUrs4oEjy5gxY+zKK6+0QoUKWZcuXaxBgwaWnp5uP/30k73//vv23HPPueBXvXr1PC3/lltusdatW8d8btKkSfbKK6/YWWedZcng119/ta1bt1rXrl1dkNi+fbu999571qFDB3vhhRese/fulsx27NjhjmNk0BkwYIAL16VLl86X19izZ48LdnfeeadlZGSEpy9atMj++c9/2oknnminnHKKzZo1K+4y5s+fb61atbK6devaE088Yf/5z3/sX//6ly1evNg+/fTTLPNq3d99912744473LL1frnoootsypQpLsTlZZmHYsSIEbZ//347Uujz26dPH/c+UmAHEiIEIF8sWbIkVLJkyVDdunVDv//+e7bn9+zZE3ryySdDK1asCE/r379/SB/DdevWxVxm9erVQ+3btz/oa+v1ypcv7+bfuHFjntY/WJdE2rt3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hnUJaFu1n3Q8tY5qB6fgrGP70ksvZXntnC4zlptvvtkFZVVDKsQopGvddTFyMGqnqOOsamztP5W66rgqKAft2iJDmoK4OveoNFD7XPtbdzYRrb9K53Sc1dlB7w2tR24usLTtaiOr4U20LSoNVGDV52748OHhtrU5XW/td33GdHtBIGES0tcWOILpLgI9evRwwztoWJHixYuH6tSpE7r11ltD8+fPzzJvbu88od8PNjxKTj7W06ZNc8NFaIiPmjVrumEe4t154r333gude+657o4NemhbevbsGVq0aNEBX+PNN98MtW7dOlSxYkU3PEpmZqb7PXI4ioPRa+tOHkWLFg3Vq1fP3akheogM0f7r1KmTG8ZCr6MhLX744YeYw51oG5YuXRpq06aNm1/rp22PHi4mergTeeSRR0LHHnusG7YlGPpk0qRJoY4dO4aqVKni9qd+Xn311aGff/75oNu3a9euULly5dxyo+Xm+H7++eehs88+273fdAcSHZ9gKI5IutNEnz593JAl2qdnnHFGaNy4cTHXLafLjEVD6XTo0MHtX22fhgPR6xxsuJN3333XHZcKFSq4fVmtWjV3LFetWpVtuBO9h7t37+6Ot4Ye6dKlS/huHYEZM2aEzjrrLPcZ1HG555573J0zotdDw51oOJhYNCxJt27d3HZonU455ZQs76mcrrc899xzbp/kdD8CeZGmfxIXGwEgf6n0RO2n8rMzSkHSANOqDlVbrngdLfB/1GZOw5LMmTMn2yDKye60005zwx9pkGsgUWhjBwAFSLfbUtWybkkFf6n6X+FdVeFAItHGDgAKkNoa5nRMQKQutU2MNc4lkN8osQMAAPAEbewAAAA8QYkdAACAJwh2AAAAnqDzRBy6hYxGT9cAlNysGQAAFBSNTKc7wehezRro/kAIdnEo1AW32AEAAChoK1euPOjdiwh2cQS3itFOLFWqVP4fHQAAgBzQ7RlV2BRkkwMh2MURVL8q1BHsAABAQctJ0zA6TwAAAHiCYAcAAOAJgh2S1kMPPeSKnSMfderUCT+/c+dO69mzp5UtW9bdlqlTp062Zs2a8PPffvutXX311a5dQvHixa1u3br25JNPFtDWAACQeLSxQ1KrX7++TZw4Mfx7oUKFstw8/ZNPPrF33nnHjjnmGOvVq5ddfvnlNmPGDPf83LlzrUKFCvb666+7cDdz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NWrkaHBizcNNnAEAAJI42Kmna6xgpzFWvv32W3d/Vg2FogAIAACAJA52Gt4kHg1z8vjjj7tber300kt5fQkAAAAUdOcJleT16dPH6tevb3fffXciXgIAAACHs1ds48aNbfLkyYl8CQAAAByOYLd06VI6TgAAACR7G7t49u/fb7/99ptrg/fRRx9Zq1at8vslAAAAkJ/BLj09/YDDnagDRWZmputEAQAAgCQOds2aNYsZ7BT4FOjOOOMM69atm1WoUOFQ1xEAAACJDHZTp07N658CAAAgAbhXLAAAgCfypfPEjBkzbP78+bZlyxYrVaqUNWzY0M4555z8WDQAAAAOR7CbOXOma0e3ZMmScIeJoN3diSeeaCNHjrSmTZseyksAAAAg0cFuwYIF1qZNG9u+fbtdcMEF1qJFC6tcubKtXr3apkyZYhMmTLC2bdval19+afXq1cvrywAAACDRwe7hhx+23bt329ixY+3CCy/M8ty9995r48aNsw4dOrj5Ro8endeXAQAAQKI7T6hXbOfOnbOFuoCm63mV3gEAACCJg93mzZvt+OOPP+A8el7zAQAAIImDXZUqVVz7uQP56quv3HwAAABI4mCn9nOqjn3wwQdt586dWZ7T7/3793fVsB07dsyP9QQAAECiOk8o0I0ZM8YGDRpkL7zwgp155plWsWJFW7Nmjc2ZM8fWrVtnNWvWdPMBAAAgiYNd2bJlXVXsPffc43q9qndsoFixYm58u3/+859WpkyZ/FpXAAAAJGqA4nLlytnLL7/sSux++umn8J0n6tSpY4ULFz6URQMAACDRwe7RRx+1bdu22YABA8LhTT9POeWU8Dwa3+7++++3o48+2v7xj3/k9iUAAACQ6M4TEydOtH79+rlq2AOVyBUpUsTNo3DHOHYAAABJGOxee+01y8zMtF69eh103p49e7r2dbpfLAAAAJIs2M2cOdNat25tRYsWPei8mkfzzpgx41DWDwAAAIkIdr///rsbwiSndOeJVatW5eYlAAAAcDiCXXp6uu3ZsyfH82te/Q0AAAASL1epS7cH++GHH3I8v+Y99thj87JeAAAASGSwO++882zy5Mm2fPnyg86reTRvs2bNcrtOAAAASHSwU09XVa927tzZ1q9fH3e+DRs22BVXXGF79+61Hj165GW9AAAAkMgBik8//XS74447bPjw4VavXj27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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from qiskit.visualization import plot_histogram\n",
    "\n",
    "plot_histogram(resultados[1].data.meas.get_counts(), title=\"GHZ de 3 qubits (1000 disparos)\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "071eeb5c",
   "metadata": {},
   "source": [
    "## Ejercicios\n",
    "\n",
    "1. Prepara un qubit con probabilidad 0.9 de medir 1. ¿Qué ángulo de `ry` necesitas?\n",
    "2. Comprueba con `Statevector` que `h-x-h` equivale a `z`.\n",
    "3. Modifica `ghz(n)` para producir $\\frac{1}{\\sqrt{2}}(|000\\rangle - |111\\rangle)$ y verifica el signo en las amplitudes."
   ]
  }
 ],
 "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.13.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
