Skip to content

Instantly share code, notes, and snippets.

@IvanIsCoding
Created December 24, 2019 06:14
Show Gist options
  • Save IvanIsCoding/9254c3b34f837e0b233e148939da833a to your computer and use it in GitHub Desktop.
Save IvanIsCoding/9254c3b34f837e0b233e148939da833a to your computer and use it in GitHub Desktop.
Superdense Coding, Quantum Teleportation's cousin
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"# Superdense Coding\n",
"%matplotlib inline\n",
"from qiskit import *"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 337.12x204.68 with 1 Axes>"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Step 0: Prepare the Bell State\n",
"bell_circuit = QuantumCircuit(2, 2)\n",
"bell_circuit.h(0)\n",
"bell_circuit.cx(0, 1)\n",
"bell_circuit.barrier()\n",
"bell_circuit.draw(output=\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 216.72x204.68 with 1 Axes>"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Step 1: Prepare Alice circuits depending on b0b1\n",
"\n",
"# Case 00: the circuit has no gates\n",
"alice_00 = QuantumCircuit(2, 2)\n",
"alice_00.barrier()\n",
"alice_00.draw(output=\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 276.92x204.68 with 1 Axes>"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Case 01: the circuit has the X gate\n",
"alice_01 = QuantumCircuit(2, 2)\n",
"alice_01.x(0)\n",
"alice_01.barrier()\n",
"alice_01.draw(output=\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 276.92x204.68 with 1 Axes>"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Case 10: the circuit has the Z gate\n",
"alice_10 = QuantumCircuit(2, 2)\n",
"alice_10.z(0)\n",
"alice_10.barrier()\n",
"alice_10.draw(output=\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 337.12x204.68 with 1 Axes>"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Case 11: the circuit has the X gate and then Z gate\n",
"alice_11 = QuantumCircuit(2, 2)\n",
"alice_11.x(0)\n",
"alice_11.z(0)\n",
"alice_11.barrier()\n",
"alice_11.draw(output=\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAWcAAACoCAYAAAA8cS9YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAWVklEQVR4nO3deVRU96EH8C8zLIIgiiiyuLEpoCwCbnVDEko4NuYZosHU0yTwpAR9bq/H2FRx6SMmVUl8rRKfNObFpYqQmsW8ahKhrhXiEjUKUiU4ERFRjIiKwLw/KOiwzaB35ndn7vdzDudM7vzmztcT+PLj3t+9Y6XVarUgIiJZUYkOQEREbbGciYhkiOVMRCRDLGciIhliORMRyRDLmYhIhljOREQyxHImIpIhljMRkQyxnImIZIjlTEQkQyxnIiIZYjkTEckQy5mISIZYzkREMsRyJiKSIZYzEZEMsZyJiGSI5UxEJEPWogMQmYsLFy7oHfPHP/4Rc+bM6XTM0KFDpYpEFowzZyIJ/elPfxIdgSwEy5mISIZYzkREMsRyJpLQ7t27RUcgC8FyJiKSIZYzkYTi4+NFRyALwXImIpIhrnMmo5q/zfTv+d4rpn9P0aysrIS8r1arFfK+SsCZM5GEUlNTRUcgC8FyJpKQvqsDiQzFciaS0IQJE0RHIAvBciaSUGVlpegIZCFYzkREMsRyJpJQYGCg6AhkIVjORBLKyckRHcFgPj4+mDx5Mp599lmMGDECdnZ2HY5Vq9VYsGABbGxsTJhQ2VjORBJatmyZ6AidmjBhAv7yl7/g1q1bKCkpwddff419+/bh22+/xZ07d3Ds2DEkJSXBwcGh5TVqtRrbt2/HunXrkJWVJTC9slhpuYrcItXVA6fLgPLbgLUKCPAABrkCpr5WwZIuQjHkZvsBAQE4f/58p2OMcbN9fRehDBo0CFlZWZg8eXLLtmvXruHChQt4+PAhPDw8MHToUKjVagBARUUFUlJS8Omnn2L79u2YPn06bt++jZiYGBw/frxlH6wP41HczLmxsRFr1qyBn58funXrhpCQEOTn52PIkCGYPXu26HiSOFEKpOUC244C33wP7DsLvL8PWPMlUFUjOl3nNs/xwNkDm3W2abVabEzqgZKCTwSlMm9TpkzBmTNnMHnyZNy4cQMrV67E4MGD4e7ujqioKMTExGDYsGFwdnbGL3/5SxQUFMDNzQ25ubkoKirqsJjJuBRXzomJiVi1ahWSk5Px5ZdfYvr06UhISMClS5cQHh4uOt5TO3MF+N/DwL2HbZ+7egv47/1AzX3T5zJEzc0fcbe6HH0Ghupsv339Euru34Gbd4SgZOYrLi4Oubm5cHR0RHZ2NgICApCWlobS0tI2Y+/evYtt27Zh1KhRmDt3Lurr6+Hj44O6ujoWswCKurfGjh07sGXLFuTl5WHixIkAgKioKJw4cQK5ubkYMWKE4IRPR6sFPj0JWAFo749NLYDqWuDQRSB2uInDGaDiUgGsVGr09hqms/1G2Wk4OLvBqXd/QckMl5+fLzpCCw8PD2zbtg02NjZYs2YNfvOb3xj0OpVKhfHjx8Pa2hparRa2trYICQlhOZuYombO6enpiI2NbSnmZr6+vrCxsUFwcDAAoLS0FBMnToS/vz+GDx+OgwcPiojbZaU3gMo77Rfz445eNEmcLqu4VIBe/fxhbdtNZ3tl2Wn0HWwes+Zz586JjtBi48aN6NmzJz777DODi7n55F/zoYylS5cCANauXQtPT09jxqVWFDNz1mg0OHv2LBYsWNDmubKyMgQFBbUsJUpOTsaMGTPwxhtv4MiRI3jppZdw+fJl2NraGiWbVHcU8xs1HXFzd+odV13bCCsrtSTvqc+8rYafMKq4VIDqihJ88GtXne0PH9Qg4hdLDN6Pse7Q1t73TmsZGRl6x2VkZEgVqUPDhg3D888/jzt37iA5Odmg17Qu5uZDGZGRkZg6dSpSU1Px29/+Vuc1ou6GZ84MPYmqmJmzRqMBAPTr109n+71795Cfn99ySOPGjRs4dOgQEhMTAQBjx46Fh4cHDhw4YNrAT6Du3m2Dxj28L8+zghWXCzFq2nLM/K9TOl/WNvZwM5OZs1w0F/JHH32E8vJyveM7KmYAWL16NQAgKSmJ65xNSDEzZ1fXptlYcXEx4uLiWra/++67KC8vbzkZWFZWBjc3N50F+YMHD8YPP/xgtGxSLUd62NC0SqO2ruMxVgAmDu+BDSZaAmXoUrrqayV4cPcWBgb/HE69vXS311bDzTvS4Pc01vIuQ5bSZWRk6F31s27dOqkitWg9g42OjgYAfPzxx3pf21kxA8CxY8dw8eJF+Pn5Yfjw4Thx4kTLc1xKZzyKKWdvb28EBwcjPT0dLi4u8PT0xO7du7F3714AsIiVGjZqICoA+OJ0+89bAVCpgInSL7N9ahWXCmBt54A+A0J0tpdfPALH3v3h4NxXULKuWbFihegI6N69O4YMGYK6ujqcOnWq07H6irnZ8ePH4efnh/DwcJ1yJuNRzGENlUqF7OxsBAUFISUlBa+99hpcXV2RmpoKtVrdcjJwwIABqKiowIMHD1pee/nyZQwcOFBU9C6JDgJ+5tf0uPXRQGs1kDgB6Ods8lh6VVwqgNvgSKjUuvOF8pKjZnVIY/r06aIjwN3dHSqVCleuXEFdXcd/RhlazABQUlICoGkFCJmG4q8QnDVrFk6fPo3vvvuuZVtMTAxeeOGFlhOC8fHxKC0tNdoJQalptUBZFXD4InD8UtO2uBBgtA/Qw960WXiFYFvGvkLQysoKDg4OsLGxQXV1dYevcXBwwN69exEaGqp3HbODgwOsra1RW1uL+vr6lu0Krw+jUsxhjY4UFhZi9OjROtsyMzPx6quv4r333oOtrS127NhhNsUMNF2iPdC16au5nGOGdf4ashxarRZ3797VO662thZxcXHw9fXVmZx0NJZMS9HlXFNTg+LiYrzxxhs62729vfH3v/9dUCoi06mtrdVbzCSGosvZ0dERDQ0NomOQBZk0aZLoCGQhFHNCkMgUNm7cKDoCWQiWM5GEUlJSREcgC8FyJpJQXl6e6AhkIVjOREQyxHImIpIhljORhPRdgEJkKEUvpSPjM9bVenK1a9cuIZdwP8mVem++swkAsHrxbJ3HJA+cORNJKC0tTXQEshAsZyIiGWI5ExHJEMuZSEIbNmwQHYEsBMuZSEJBQUGiI5CFYDkTSaj1J7sTPSmWMxGRDLGciSQUGWn4B9ESdYblTCShgoIC0RHIQrCciYhkiOVMRCRDLGciCe3evVt0BLIQLGciIhliORNJKD4+XnQEshAsZyIiGeL9nIlIGCsrK5O/55Pc+1oEzpyJJJSamio6AlkIljORhObMmSM6AlkIlrOFqm8Art569N83awAz+WvOrE2YMEF0BLIQPOZsQerqgVNlwLES4IcqoKHx0XMr9wDd7YCh7sA4f2CQKyDgcJ/Fq6ysFB2BLATL2UKc0wA7jwM/3et4zN0HwLelTV9D+gEvjwZ6dTdVQiLqCh7WMHONWiCnAPif/M6LubWia8Dqz4HvfzReNiUKDAwUHYEsBMvZjGm1wK5/AAeLn+z1D+qBzfksaCnl5OSIjkCPsbe3h62tregYT4TlbMaOXwKO/bPzMe+90vTVkUYt8PFh4HattNmUatmyZaIjWCRnZ2e8/vrryMzMxJEjR/Ddd9+hsLAQ27dvx8KFC+Ht7d3mNfb29vjss8+QnZ1tlgXNcjZTt+8Bn3wrzb7uPQSyeRtiSWRnZ4uOYFFcXV2RmZmJq1evIisrC8nJyRgzZgyGDx+O8PBwJCQkYO3atbh48SK++OILhISEAHhUzNHR0YiMjISHh4fgf0nXKa6cGxsbsWbNGvj5+aFbt24ICQlBfn4+hgwZgtmzZ4uOZ7BDRcD9h9Lt76wGKK+Wbn9ET+v555/HuXPnkJycDAcHB3z11VdYuHAhJk2ahODgYIwaNQpJSUnYunUr6urqEBcXh4KCAqxataqlmMvLyxEVFYXS0lLR/5wuU9xqjcTEROTm5mLp0qUIDw/HkSNHkJCQgMrKSixcuFB0PIM0NAJH9RzOeBKHi4H4kdLvl6irEhMTsWnTJqhUKnzzzTdITU3FhQsX2ow7fvw4srKyMG/ePCxfvhxz587F7373OwBoKeaioiJTx5eEosp5x44d2LJlC/Ly8lo+JTkqKgonTpxAbm4uRowYITihYcqrgZr70u+3uEL6fSpNfn6+6AhmLzY2tqWY33rrLbz99tt674dx8+ZNLF68GOPGjUNYWBgA4PPPPzfbYgYUdlgjPT0dsbGxbT6+3tfXFzY2NggODgbQdFLH398fKpVKljdPv3LTOPut/EnaQyVKdO7cOdERzJqzszM2b94MlUqFtLQ0pKenG3SjouZjzGFhYaiqqkJDQwMSExMxZswYE6Q2DsXMnDUaDc6ePYsFCxa0ea6srAxBQUGws7MD0PSb+9VXX8Xrr79ukmxdvTPXqH9bhtEvrtDZ1tmKjM6en7/t0WMtAPcB/qi+drFLeZSive+d1jIyMvSOy8jIkCrSU1m8+gMATd9/jz8W6c0334SnpyeOHj2K3//+9wa95vGTf82HMn71q19hyZIleP/99zFypO6xOtH/RkPviqeYmbNGowEA9OvXT2f7vXv3kJ+fr3NIY+zYse0uzZENY35z8ZpuEsTOzg5JSUkAgIULF6KxsVHPK9ov5qKiIqxcuRJVVVWIjIxERESEsaMbhWJmzq6urgCA4uJixMXFtWx/9913UV5ejvDwcFHRunx/2YNFQE6h7rbHZ8CPa54xd/R8a5rLRehu16U4itHeCanWMjIy9K76WbdunVSRnsqb72wC0PT99/hjU3p8FvvMM8/A1dUVJ0+exLFjx/S+tqNiBoD79+9jy5YtWLRoERISElBY+OgHxlzu56yYcvb29kZwcDDS09Ph4uICT09P7N69G3v37gUAoeXcVV4uxtlvr+5gMT+lFStW6B9E7Wqe4e7fv1/v2M6Kudn+/fuxaNEis505K+awhkqlQnZ2NoKCgpCSkoLXXnsNrq6uSE1NhVqtbjkZaA48ewF2Rvi16tNH+n0qzfTp00VHMFtBQUEAgNOnT3c6zpBiBoBTp07p7NfcKGbmDAD+/v44cOCAzrZZs2YhMDAQ9vb2glJ1na01EDkYOCTxebuxftLuT4kCAgJw/vx50THMUk5ODoqKinDixIlOx6WlpektZqBpeV16ejpqamqMEdfoFFXO7SksLMTo0aN1ti1duhQffvghKisrcebMGcyfPx/5+fnw8fERlLKt8UObLkRp0H/OxCADewODOXMmgXbu3ImdO3fqHbdy5UoMGjQIaWlpna5jfvjwId566y0pI5qUYg5rtKempgbFxcVtLj5ZtWoVNBoNHjx4gKqqKmg0GlkVMwC49QB+PkyafalVQMIYLtQg81BbW4uXX37ZrC8wMYSiZ86Ojo5oaGgQHeOJRQcBJdeB4msdjzFklcaLEUA/Z+lyKdmkSZNERyALoeiZs7lTq4DEiU0fPfUkrNBUzDzWLJ2NGzeKjkAWguVs5uysgdmTgKkjAGu14a/r4wT8RwwwfojRoilSSkqK6AhkIRR9WMNSqFRAVAAQOgA4fLHpBvwd3Ripv0vTB7yGDWxa9UHSysvLEx2BLAR/PC1Ir+7AlFAgLgSougNobgG1D5pO9PXq3lTMjt1EpyQiQ7CcLZDKCujTo+mLiMwTjzkTSYgXoJBUWM5EEtq1a5foCGQhWM5EEkpLSxMdwaxotdoufS1e/QEWr/6gzeOufJkLljMRkQyxnImIZIjlTCShDRs2iI5AFoLlTCQhc713MMkPy5lIQq0/2Z3oSbGciYhkiOVMRCRDvHybyEBDhw7VOyYtLc2gcUT6cOZMJKHly5eLjkAWguVMRCRDLGciIhliORMRyRDLmYhIhljOREQyxHImIpIhljMRkQyxnBXiypUriI6ORkBAAIKCgrBkyRLRkciMzZs3D15eXrC2Nq/r2PLy8hAUFARfX18kJSWhoaFBdKQOsZwVwtraGu+88w7Onz+PkydP4tChQ9izZ4/oWGSmXnrpJRQWFoqO0SWNjY1ISkpCdnY2SkpK8NNPP2Hr1q2iY3WI5awQ7u7uiIiIAADY2toiLCwMZWVlglORuRo3bhz69esnOkaXFBQUwMPDA4GBgQCAxMRE5OTkCE7VMfP6m4QkcfPmTfz1r3/Fvn37REchEzp28nv841TbTwd//8OcNo979nDErGkxUFlZmSxfe2rv3ceH2V+ivqFRZ3t7mQFgSvQY+AzwaHdfGo0G/fv3b/nvAQMG4MqVKxInlg5nzgpTV1eH+Ph4zJs3jzfoUZiQAB/cvlOD8utVKL9e1bK99ePy61UIDfQVXswA4GDfDd4DPAzKbK1WYXB/9w73ZU4f7gqwnBWloaEBM2fORGhoKBYtWiQ6DpmYfTc7xIyP1DtuoKcbgod6myCRYaLGhMGxu73ecVOix3b6C6V///46M+WysjJ4eXlJktEYWM4KMnv2bDg5OWHt2rWio5AgkSFD4ebaq9Mxv4geCysZzJqbdbOzxc/1/FIJDfTFQE+3TsdERERAo9Hg+++/BwBkZWVh2rRpkuWUGstZIQ4fPow///nPKCwsRFhYGEJDQ7F+/XoA5vfnHj05tUqFKZPHdPj8iGH+8HLvo3c/ycnJ8PLyQkNDA7y8vJCamiplzDbCh/vDvW/vdp+zsVYjduJIvftQq9XYvHkz4uPj4ePjA0dHR8yaNUvqqJKx0vInU/F2fPo1evfsgZgJ+v/kJcvwUc7/4XyJ7modWxtr/Oe/z0APp+6CUnXuUtlVbNrxeZvt0WNH4NnxEQISGRdnzq3s2bMHU6ZMQd++fWFnZ4eBAwdi5syZOHPmjOhoRnG14gZOn/8nVCp+KyhJXNRoqFS6hy4mjQ6VbTEDgPcADwzzH6yzrYejAyaOChGUyLj4E/kv9fX1eOWVV/DCCy/gzJkzmDZtGubNm4ewsDDk5OTgxx9/FB3RKL4+cgLd7Gzxs4hhoqOQCfVx6YmxIx79P+/ZwxHjI4MFJjLMc1GjoFY/qq3YiSNha2sjMJHx8LDGv6SkpCAzMxNz5sxBRkaGzmWpGo0Gzs7OcHJyMsp7v/nOJqPsl4jkZ/Xi2QaN40UoAA4ePIjMzEzExsZi/fr1bc5Uy3m5DRFZJs6cAbz44ovIzc3FqVOnEBJimcevWrtacQPrt+TimZ+F45lx4aLjkCANjY24Wf0T+rj0FB2lSypu3NK7JNDcsZwBODk5wdXVFZcvXxby/jysQaQchh7WUPwJwerqatTU1GDQoEGioxARtVD8zPnWrVtwcXFBYGAgzp07JzqOSXz8yT7884erWPzrBNh3sxMdh4jaofiZc69eveDt7Y3z58/jq6++avN8UVGRgFTGc7XiBs4Vl2JcxHAWM5GMcbUGgLfffhszZszAc889h6lTp8LHxwfXr1/HkSNHEBgYiE8++UR0RMncrL4Dl55OXNdMJHOKP6zR7G9/+xv+8Ic/oKCgAPfv30ffvn0xcuRIzJ8/H+PHjxcdT1KNjY28IpBI5ljOREQyxOkTEZEMsZyJiGSI5UxEJEMsZyIiGWI5ExHJEMuZiEiGWM5ERDLEciYikiGWMxGRDLGciYhkiOVMRCRDLGciIhliORMRyRDLmYhIhljOREQyxHImIpIhljMRkQyxnImIZIjlTEQkQyxnIiIZYjkTEckQy5mISIZYzkREMsRyJiKSIZYzEZEMsZyJiGSI5UxEJEP/D1Dg+xmaujjYAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 457.52x204.68 with 1 Axes>"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Step 2: Apply the inverted entanglement circuit, and then measure\n",
"invert_circuit = QuantumCircuit(2, 2)\n",
"invert_circuit.cx(0, 1)\n",
"invert_circuit.h(0)\n",
"invert_circuit.barrier()\n",
"invert_circuit.measure([0, 1], [1, 0]) # Qiskit measures are always reversed, b1b0 not b0b1\n",
"invert_circuit.draw(output=\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAngAAACoCAYAAABzNpM8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAeK0lEQVR4nO3de1xUdd4H8M/McFWQVBRC0ERAYRQvYBoqeFlN21LXSNPW3UoXRX092tp9K2v1Yc1UWrdMe9Jsy/VRgbJn1xskoKkV5A0JxTughLfQJQVxZp4/ZiVHYGaAM/M758zn/XrxeuHhzOGjfmfmM+cyozGZTCYQERERkWpoRQcgIiIiImmx4BERERGpDAseERERkcqw4BERERGpDAseERERkcqw4BERERGpDAseERERkcqw4BERERGpDAseERERkcqw4BERERGpDAseERERkcqw4BERERGpDAseERERkcqw4BERERGpDAseERERkcqw4BERERGpDAseERERkcqw4BERERGpDAseERERkcq4iQ5ApBTHjh2zuc57772HOXPmWF2nR48eUkUiGeF8kC22ZoTzQVLiHjwiCb3//vuiI5CMcT7IGs4HSYkFj4iIiEhlWPCIiIiIVIYFj0hCaWlpoiOQjHE+yBrOB0mJBY+IiIhIZVjwiCSUmJgoOgLJGOeDrOF8kJRY8IiIiIhUhu+DpxDz1ov5ve8+Jeb3UtN4ZG4T8ntvjRzTotuLyN3SzOQ8fNxzHo1GI+T3mkwmIb/XFXAPHpGEZs+eLToCyRjng6zhfJCUWPCIJGTrXejJtXE+yBrOB0mJBY9IQvHx8aIjkIxxPsgazgdJiQWPSEKXLl0SHYFkjPNB1nA+SEoseEREREQqw4JHJKGoqCjREUjGOB9kDeeDpMS3SSGSUHp6uugIJGOcD7JGSfPh7u4OvV4Pf39/mEwmlJaW4sSJE42+7UlwcDBGjBiBTz75xMlJXRf34BFJ6I033hAdgWSM80HWyH0+PD09MXXqVOzevRtVVVU4ePAgMjMzkZWVhePHj6OyshIZGRkYOXKkxfvqBQcHIzs7G+vWrcOTTz4p8G/gWljwSFbKrgLbjwBfHgD2nQCqa0UnaprNmzeLjkAypqT5uHYDyC4y3xezCoGrVaITqZ+c52PUqFE4ceIE/v73v2PIkCHw8PDA8ePHkZWVhV27dqGsrAxt2rTBb37zG+zcuRN79+5F9+7d68pdWFgY8vPzsX37dtF/FZfhcgXPaDRi6dKlCA8Ph5eXF3r37o3c3Fx0794dSUlJouNJ5qM5QTia/ZHFMpPJhA+mt8HJvM8FpWpcVTXwXiawdBuwvQDYVQRs+g54PR3YfVx0OnUx3byJ2ieehHH3178sq6nB7XnzcfvP/w2T0SgwXeOMO3aiduyE+l+jH0Xt6EdhunlTdERVMBiBjHzgzS+ALQfM98V/HgIWbgE27AduG0QnbJzSHveUQKPRYMmSJdixYwdCQkJw5MgRTJs2DX5+fujRowdGjhyJESNGICQkBMHBwfjTn/6E8vJyPPTQQzh06BDy8vLqyt3IkSNRWVkp+q/kMlyu4E2bNg0LFy7EjBkzsG3bNkycOBGTJ0/G6dOnERMTIzqeJKqunsfPleXo0KWPxfJrF0/jVvW/ERAaKyhZw27dBt7/Cjh1sf7Pag3mJ5u9J5yfS6003t7QJj4Ow/p/wGQywWQwwLDoL4C7O3QvvwiNVp4PC9qHR8H9ywyLL938eYBOB91z/wWNt7foiKqQnm9+UXXvqVQmAN+eBtbvExLLJqU97inF8uXL8cILL+DWrVt48cUX0a9fP6xduxbXr1+vt+758+eRkpKCyMhIbNq0CV5eXggMDMTp06dZ7gRwqYssNmzYgHXr1iEnJwcJCQkAgGHDhuHAgQPIyMhAv379BCeURsXpPGi0OrQP7mmx/HLJYbTyC4Bv+xBByRr2/Vmg3Mb9/l+HgAGhgJvOKZGaLTc3V3QEu2jHPgZjWgZMe/bCmJcP0+XLcFu6BBoPd9HR7GbM+gqG1BXQzZ8H7fBhouPYRe7zcem6+dQIaw6WAMOuAJ3bOyeTvZT2uNcQuc1HYmIi5s2bh5qaGowbNw47duyw63a+vr4Wz6eBgYHw9/dnwXMyeb5Ud5CUlBSMHj26rtzdERYWBnd3d0RHRwMAzp49i4SEBERERKBXr17Ys2ePiLjNVnE6D20DI+Dm4WWx/FLJYXTsKr9XsftPArY+5vrGLeDoeafEaZHCwkLREeyi8faC9onHYVi6HKYjR+CWshCa1q1Ex7Kbcet2c7l7+QXFlDtA/vPx3Wnb62gAfHvK4VGaTGmPew2R03y0a9cOK1euBADMnTvX7nJ37zl3GzduRKtWrbBmzRpHxqUGuMwevLKyMhw9ehTPPfdcvZ+VlJRAr9fD09MTADBjxgxMmjQJs2bNwr59+/DEE0/gzJkz8PDwcEi2u682aszczxq+9LwhFafzUFlxEqtn+lssr62pQuxjr0ieraWmv3cBre+73+Z6z878Iw5uS3V4nsY0NDv3Sk1Ntbleaqr0fwf3nVubd8PqaugmTYSmbdtm3byl89Gc3IYvvoTxo7XQvfYqtA8NaPLtHTXTcp4Pe42a8Qm6x02BVtf4U4PBaMCnG7di4oCxDs+jtsc9e/7v5TIf06dPR4cOHZCbm4vVq1fbdZt7y92dq2mHDx+O+Ph4DBo0CHv37rW4jTOeY9SmsbeiuZdLFTzAvKv4bjdv3kRubi7GjBkDALh8+TK+/vprfPnllwCAuLg4BAUFITs7Gw8//LBzQzdTxZl8DJjwJiIH/85i+fpXeiFAhq9ka25UopVfADQa6zuUb9245qRE6mfM2gXjxk3QPDwKhs+3QDPmYUU80Bo2pcH46Xro3nwD2lh1nFIhJzU3rwG25sBkwq2b8rsvKu1xT+5mzpwJAFi8eLFd6zdU7u4ckl29ejVee+01JCcn1yt45DguU/D8/c2v6oqLi/HII4/ULV+yZAnKy8vrLrAoKSlBQEBA3d48AOjatSvOnTvnsGz2tPF56+3bVuWPJ1Hz80/oEv0wfNsHWy6/UYmA0P6SZ2up7UfMV85ao9MC32xfAx8vcbv5jx07ZnOd1NRUm1djL1++XKpIdTwyt9m9rvG7PBjeex+6P78JTXg4bv/uGZh274EmoekfdN7S+WhKbsNn/4Bxczp0i96Ctnd0s3+no2ZazvNhr1MXgb9lWl9Hq3PD0ld/i+0rf+vwPGp73LM1IyLn4+4XeKGhoejatSsqKirsOjRrrdwBwKefforXXnsNI0aMqHdbZzzHuCqXKXihoaGIjo5GSkoK2rVrh06dOiEtLQ1bt5oPEanlCtqK03lw82yFDp17WywvP7EPPu1D0Mqvo6BkjXsoHMg5BtTUmq/Ua3CdMMDHq5Efyshbb70lOoJVxsIfYEhZDN0L86GN7gUA5nPxPtsAzZDBsr2C1rB2HYxf/hO6lIXQ6pX7cU5yn4/QDkCX9kDJlYbvixoAHdsAUUHOTmadEh/3GiKX+bjzfJifn2+zgNkqd4B5x0plZSUCAwMRFBSECxcuOCw7/UKej+YOoNVqsXnzZuj1eiQnJ+OZZ56Bv78/Zs+eDZ1OV3eBRefOnVFRUYGampq62545cwZdunQRFb1JKk7nIaBr/3rn0JSf3C/bwxR+3sDM4YDXPRdw3nk92SsEGK+Qo3ETJ04UHaFRpjNnYXjjTehm/AHaQXF1y7VjHwWuXYNptzwvJjKdOgXj/24CampgeOW1eu+DZ1jzseiIdpPzfADmo7PThwJB/zkl896Dtf6+5vuq3F4HKPFxryFymY+gIHODP3XK+tU09pS7O06ePGmxbXI8jcnF949OnToVhw8fxpEjR+qWjRo1CuPHj6+7yCIxMRFnz5512EUW9rD3UIXU3n3Keb/rRg3w3Rngi+/Nf+7bBYgLA8ICbJ8W5Az2HIKLjIxEUVGR1XV69OghVaQ6TTnUKaVbI8e06PYicrc0c2PkPB9NZTACBaXmq2p/+M/Olt/GAb07A+5OfKsitT3u2ZoRkfNx9yFanU6H1q1bw2Aw4Oeff270Nnq9HtnZ2Th37pzN97nz8/Or297dtcPFK4hDucwh2sbk5+dj4MCBFstWrVqFp59+Gu+++y48PDywYcMGoeXOVbTyBIb2+KXg/X6w2DxErkqnBfp0MX/dKVmxXcVmIucxGAwNvpHxvQoLCxEfH48ff/zR5nvcXbsmvwtz1M6lC15VVRWKi4sxa9Ysi+WhoaHYvXu3oFRERETKYM+eaxLDpQuej48PDAYZf7AiKc7QoUNFRyAZ43yQNZwPkpLMTpUlUrYPPvhAdASSMc4HWcP5ICmx4BFJKDk5WXQEkjHOB1nD+SApseARSSgnJ0d0BJIxzgdZw/kgKbHgEREREakMCx4RERGRyrDgEUnI1puUkmvjfJA1nA+Skku/TYqSOPMTJaj5Nm3aJOTjhhz16QyOptTczSVqPpTK1R73RM5HUz9R4uW3PwQALH4pyeJ7kg/uwSOS0IIFC0RHIBnjfJA1nA+SEgseERERkcqw4BERERGpDAsekYRWrlwpOgLJGOeDrOF8kJRY8IgkpNfrRUcgGeN8kDWcD5ISCx6RhBISEkRHIBnjfJA1nA+SEgseERERkcqw4BFJqH///qIjkIxxPsgazgdJiQWPSEJ5eXmiI5CMcT7IGs4HSYkFj4iIiEhlWPCIiIiIVIYFj0hCaWlpoiOQjHE+yBrOB0mJBY+IiIhIZVjwiCSUmJgoOgLJGOeDrOF8kJRY8IiIiIhUxk10ACIiIqLm0Gg0Tv+dJpPJ6b+zObgHj0hCs2fPFh2BZIzzQdZwPkhKLHhEEpozZ47oCCRjnA+yhvNBUmLBI1m5duOX70uvArUGcVmaIz4+XnQEkjElzUd1LXD28i9/vlEjLourUNJ8kPzxHDwSruwqsPcEUFgGXK/+ZfmybYBWA3RqCwzoBsR2BbzcxeW0x6VLl0RHIBmT+3xcuwHsPwUcOAtcvG75s1fTAH8foG8XIC4caNtaSERVk/t8kLKw4JEwVdVAWh5wqKTxdYwm85680qvAvw4Bv4kF+ncFBJxXS6RaBiOQWQhkHjV/35jLVeb1sgqBYVHAmGjAXee8nERkPxY8EuLsZeCjHKCqCYd9btYC/9gP/HAe+G0c4CbDJ5aoqCjREUjG5Dgf/64G/icHKLli/21MAHb9YL4vzhjGvXlSkeN8kHLxHDxyupIrwAdfNa3c3e1QCfDxHut7GkRJT08XHYFkTG7z8XMN8H5W08rd3X68BryXZXnuLDWf3OaDAD8/P9ERmo0Fj5yquhb4eDdQc7vxdd59yvxlTeF54KsfpM0mhTfeeEN0BJIxOc2HyQRs/NZc0qyxdX+8UgWs32/eHrWMnOZDbcLDw/H8889jw4YN+P7771FQUIC9e/di5cqV+P3vfw9fX996t4mMjMSxY8cUe3UzCx451f8dBH6S6NX+jgLbT07OtnnzZtERSMbkNB+HS4EjpdJsq/hH4JtT0mzLlclpPtQiJiYGO3bsQHFxMd555x08+eST6NevH3r27Im4uDgkJydj3bp1uHDhAv72t7+hbdu2AMzlLjs7G4GBgXjssceg1SqvLikvcQsZjUYsXboU4eHh8PLyQu/evZGbm4vu3bsjKSlJdDxVu35T2icBg9F8HhARNY3JZL6gQkpZheaLoojkQKvVYtGiRfjmm28watQo3LhxA5988gmmTZuGAQMGIDo6GsOHD8f8+fORnZ0NHx8fzJkzB4WFhUhKSkJ2djYCAgKQmZmJcePGwWiU4TlBNrjcRRbTpk1DRkYGXn/9dcTExGDfvn2YPHkyLl26hD/+8Y+i46nat6ekP2/uwDlgfD+glae02yVSs3NXgPM/SbvNK1XAsQtAVCdpt0vUVDqdDuvXr8ekSZNgNBqxbNkyLFq0CJWVlfXWzc7OxvLly9GzZ0+sXLkSQ4YMwapVq6DRaJCZmYmxY8eiurq6gd8ify5V8DZs2IB169YhJycHCQkJAIBhw4bhwIEDyMjIQL9+/QQnVLfiH6Xf5m0DcOYyoJfJk0pubq7oCCRjcpmP4nLHbPdEBQteS8hlPpRu2bJlmDRpEq5du4Zx48bZ9e969OhRzJw5E99++y18fHxgMpmwbNkyxZY7wMUO0aakpGD06NF15e6OsLAwuLu7Izo6GoD5RNeIiAhotVqkpaWJiKo6JhNQJvEegztKm3kFoCMUFhaKjkAyJpf5KL3qmO0292pcMpPLfCjZ0KFDMXfuXNTW1mLMmDF2l+bIyEjs2rULPj4+OHPmDDQaDVatWgUfHx8HJ3Ycl9mDV1ZWhqNHj+K5556r97OSkhLo9Xp4epqP840ePRpPP/00nn32Wadk07jAu/a6e7bGrDVVFstsXSnb2M/nrbf88zt//RBj1s5oQTr7NDQ790pNTbW5XmpqqlSRSEaUNB9P/vk7BIT2t1jWnPvjvffF74+cgGZURAvTqZc9//dymA97vLR4NQDz89fd34u2YsUKAMDChQuxf/9+u25z54KKO+fcTZgwATk5OYiJicH8+fPx1ltvWawv+u9psvOSdZfZg1dWVgYACAwMtFh+8+ZN5ObmWhyejYuLQ2hoqFPzqZ4D7xCi72xEyuOg+wzviyTQkCFD0KtXL5SXl2Px4sV23ebecjd27FhUVVXh+eefBwAkJSXBzU2Z+8KUmboZ/P39AQDFxcV45JFH6pYvWbIE5eXliImJERXN7jauZEYT8PJG4Jbhl2X3vvq/486egsZ+fq95c/6ArI/+0LKAdjh27JjNdVJTU21ejb18+XKpIpGMKGk+VmcDRRcsl0lxf+ytD3OJx7PmsjUjcpkPe7z89ocAzM9fd3/vbHe/wJ88eTIAYM2aNaitrbV524bK3Z1z7nJyclBUVITIyEjEx8dj165ddbdTyoy7TMELDQ1FdHQ0UlJS0K5dO3Tq1AlpaWnYunUrAAgteK5AqwE6tTVfECG1kHbSb7O57t2VT3Q3ucxHcNv6BU8KcrovKpFc5kOpYmNjAQCZmZk217VW7u7IyspCZGQkYmNjLQqeUrjMIVqtVovNmzdDr9cjOTkZzzzzDPz9/TF79mzodLq6CyzIcUI7Sr9NDYAHOki/3eaaOHGi6AgkY3KZj24BjtluqIzui0okl/lQKr1eDwA4fPiw1fXsKXcAcOjQIYvtKo3L7MEDgIiICGRnZ1ssmzp1KqKiouDt7S0olesYGCb9x4v1DAb8ZPRfFxkZiaKiItExSKbkMh8RAUB7H/N710nFxxOIDpFue65ILvOhVIsXL4a3tzeuXWv8I440Gg02btxos9wBQF5eHhYtWlRX9JTGpQpeQ/Lz8zFw4ECLZa+//jo+/vhjXLp0CQUFBZg3bx5yc3PRrVs3QSnVoYOv+QlAqo9HAoBhkdJti8hVaLXA0B5Aer5024zvDrjppNseUVMtXLjQ5jomkwlTpkzBq6++imeffdbq+9wVFBSgoKBAyohO5TKHaBtSVVWF4uLiem9wvHDhQpSVlaGmpgZXrlxBWVkZy51EHo8FvN2l2dagcMcc9iVyBYPCga7+0mzr/vuA4VHSbIvI0Y4ePYopU6Yo+k2M7eHSe/B8fHxgMBhsr0iS8WsFTHkIWLsbaOw6JHuu1gtuBzzWV9Jokhg6dKjoCCRjcpoPrRZ4Kg74607g31ae52zdH73dgd8N4t47KchpPkj5XHoPHonRKwT43WBA18zp69wemDkM8JJoT6CUPvjgA9ERSMbkNh/+vsDsXzX/PNbWnsCsEeY9eNRycpsPUjYWPBKibxdg/mjznjh7aTXASD3wXyMBHy/HZWuJ5ORk0RFIxuQ4H4F+wIu/BmIeaNrtegYDL/0aCGnvkFguSY7zQcrl0odoSaygtsBzD5svuvi6GDh1seH1vNyBB0PN5wwF+Dk3Y1Pl5OSIjkAyJtf5aO0JTB1kvo/tPQEcKgEMxvrraTVAr2BgUAQQHsAPrpCaXOeDlIkFj4TSac178/p2AW7cAs5fBS5XmZ9cvN2BTu2Ajr7m84WIyLFCO5q/Jg8ELlQC5ZVArQFw15lfXAXdB3jwWYNIEXhXJdlo5QGEBwLhooMQuTg3nflc1848/EqkWNwvQiQhvkkpWcP5IGs4HyQlFjwiCW3atEl0BJIxzgdZw/kgKbHgEUlowYIFoiOQjHE+yBrOR9OZTKYmfb20eDVeWry63vdN+VIKFjwiIiIilWHBIyIiIlIZFjwiCa1cuVJ0BJIxzgdZw/kgKbHgEUlIr9eLjkAyxvkgazgfJCUWPCIJJSQkiI5AMsb5IGs4HyQlFjwiIiIilWHBIyIiIlIZflQZkZ169Ohhc50FCxbYtR6pD+eDbLH1f8/5IClxDx6RhN58803REUjGOB9kDeeDpMSCR0RERKQyLHhEREREKsOCR0RERKQyLHhEREREKsOCR0RERKQyLHhEREREKsOCR0RERKQyLHguorS0FCNGjEBkZCT0ej1eeeUV0ZGIiMgFzZ07F8HBwXBzU9ZnLeTk5ECv1yMsLAzTp0+HwWAQHckqFjwX4ebmhrfffhtFRUU4ePAgvv76a2zZskV0LCIicjFPPPEE8vPzRcdoEqPRiOnTp2Pz5s04efIkrl+/js8++0x0LKtY8FzE/fffj9jYWACAh4cH+vbti5KSEsGpiIjI1QwePBiBgYGiYzRJXl4egoKCEBUVBQCYNm0a0tPTBaeyTln7R0kSV69exRdffIGdO3eKjkJERApgMpmw8Z/ZqLj8k8Xyv36c3uD3faK6IWFAH6fla0zx6VJsy/2u3vKGcru7ueHZiWPg5elRb/2ysjKEhITU/blz584oLS11QGLpcA+ei7l16xYSExMxd+5cfqg1ERHZRaPRoJ8+HOUXr6D84pW65fd+X37xCq5UXkdffYSImPWEPdAJJpPJrtwRXYMbLHeAueAqDQueCzEYDJgyZQr69OmD+fPni45DREQKEhEagh7dOttcb9jAPmjj08oJiWzTarV4bESczfX8fFsjfkDvRn8eEhJisceupKQEwcHBkmR0FBY8F5KUlARfX18sW7ZMdBQiIlKgR4YNhFarafTn97XxweD+vZyYyLZuXYKgj3jA6jpjhg6Ah3vjZ63FxsairKwMP/zwAwBgzZo1mDBhgpQxJceC5yL27t2LtWvXIj8/H3379kWfPn2wYsUKAMrc9UxERM7Xsf19eKivvtGfPzJsINxtvP3JjBkzEBwcDIPBgODgYMyePVvqmPVzDR0InbbhytM5qCN6R3azenudToePPvoIiYmJ6NatG3x8fDB16lRHRJWMxsRnd5e34cuv0P6+NhgV3190FCIikrkbN6ux9MONuFFdY7H8geBAzJjyGDSaxvfwibQ1+xvs/u5IveWzpo5H56COAhI5Fvfg3WPLli149NFH0bFjR3h6eqJLly6YMmUKCgoKREdziAsVl3G46BS0jbyyISIiulsrby+MHBJrsUwD4NERD8m23AHA8Lh+aN3Ky2JZX32YKssdwIJX5/bt23jqqacwfvx4FBQUYMKECZg7dy769u2L9PR0nD9/XnREh/hq3wF4eXpgUGxP0VGIiEghHuwTiY7t29b9uV+vCAQHdhCYyDYvTw+MGvLLkSp3Nx1Gxz8oMJFj8RDtfyQnJ2PVqlWYM2cOUlNTLT5CpaysDH5+fvD19XXI73757Q8dsl0iIiJSl8UvJdm1Ht/oGMCePXuwatUqjB49GitWrKi3i1nul0ITERER3Y178AA8/vjjyMjIwKFDh9C7d+Pvg6MmFyouY8W6DPxqUAx+NThGdBwiIlKgK5XX0canlc0rZ+Wm4vJPCPBva3tFBWPBA+Dr6wt/f3+cOXNGyO/nIVoiIiKyh72HaF3+IovKykpUVVXhgQceEB2FiIiISBIuvwfvp59+Qrt27RAVFYXCwkLRcZzi08934tS5C3hp5mR4e3mKjkNEREQSc/k9eG3btkVoaCiKioqQlZVV7+fHjx8XkMpxLlRcRmHxWQyO7cVyR0REpFLKOivSQf7yl79g0qRJGDNmDMaNG4du3brh4sWL2LdvH6KiovD555+LjiiZq5X/Rrv7fPm+d0RERCrm8odo79ixYwfeeecd5OXlobq6Gh07dsSDDz6IefPmYciQIaLjScpoNPKTK4iIiFSMBY+IiIhIZbgbh4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhlWPCIiIiIVIYFj4iIiEhl/h+NyOoClJBFvgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 818.72x204.68 with 1 Axes>"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# When merged, the whole circuit looks like\n",
"(bell_circuit + alice_11 + invert_circuit).draw(output=\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"# Now we simulate each outcome, to do so we create an auxiliary function that runs it\n",
"def simulate_circuit(prep, encoding, decoding):\n",
" \"\"\"Returns the counts of the circuit that is combination of the three circuits\"\"\"\n",
" circuit = prep + encoding + decoding\n",
" simulator = Aer.get_backend(\"qasm_simulator\")\n",
" job = execute(circuit, simulator, shots = 2**16)\n",
" result = job.result()\n",
" count = result.get_counts()\n",
" return count"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 504x360 with 1 Axes>"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# For 00\n",
"count_00 = simulate_circuit(bell_circuit, alice_00, invert_circuit)\n",
"visualization.plot_histogram(count_00)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 504x360 with 1 Axes>"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# For 01\n",
"count_01 = simulate_circuit(bell_circuit, alice_01, invert_circuit)\n",
"visualization.plot_histogram(count_01)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAc0AAAE6CAYAAAB00gm8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAZZElEQVR4nO3de7SddX3n8ffXxEhZCUKChpwcKIYwMpOIgJsp4OE2GhHooIILZLQxojCJlYiMncosReMUnEWFgXHKAKkVgkyHincbINUhhEI44SRtFHWS1AKacDgxJRovkED8zh97J253zuW3k3PZZL9fa+119vN7fs9vf59/zmc9t98TmYkkSRray8a6AEmSXioMTUmSChmakiQVMjQlSSpkaEqSVMjQlCSp0PixLmAsHXrooXnkkUeOdRmSpBayevXqLZn5qv7WtXVoHnnkkfT09Ix1GZKkFhIRTw20ztOzkiQVMjQlSSpkaEqSVMjQlCSpkKEpSVIhQ1OSpEKGpiRJhQxNSZIKGZqSJBUyNCVJKmRoSpJUyNCUJKmQoSlJUiFDU5KkQoamJEmFDE1JkgoZmpIkFTI0JUkqZGhKklTI0JQkqZChKUlSIUNTkqRChqa0H7rkkkt49atfzezZs/tdn5ksXLiQmTNncuyxx7JmzZrd6+644w6OPvpojj76aO64447d7atXr+Z1r3sdM2fOZOHChWTmiO+H1GoMTWk/NG/ePO67774B1997771s2LCBDRs2cNttt7FgwQIAnn32WRYtWkR3dzerVq1i0aJFbN26FYAFCxawePHi3dsNNr60vzI0pf3QaaedxuTJkwdc//Wvf525c+cSEZx00kn87Gc/o7e3l/vvv585c+YwefJkDjnkEObMmcN9991Hb28v27Zt46STTiIimDt3Ll/72tdGcY+k1mBoSm1o06ZNHH744buXOzs72bRp06DtnZ2de7RL7cbQlCSpkKEptaHp06fzk5/8ZPfyxo0bmT59+qDtGzdu3KNdajeGptSGzjvvPJYsWUJm8uijj/LKV76SadOmcdZZZ7Fs2TK2bt3K1q1bWbZsGWeddRbTpk3joIMO4tFHHyUzWbJkCW9729vGejekUTd+rAuQNPwuvvhili9fzpYtW+js7GTRokW88MILAMyfP59zzjmHpUuXMnPmTA488EC+8IUvADB58mQ+8YlPcOKJJwJw9dVX776h6Oabb2bevHk899xznH322Zx99tljs3PSGIp2ftaqUqlkT0/PWJchSWohEbE6Myv9rfP0rCRJhQxNSZIKGZqSJBUyNCVJKmRoSpJUyNCUJKmQoSlJUiFDU5KkQqMamhFxWkR8IyI2RURGxLyCbV4XEQ9GxHO17a6OiGjoc0FE/CAittf+vmPEdkKS1LZG+0hzIvA48GHguaE6R8RBwN8BfcCJte3+BLiyrs/JwN3AXcBxtb9fiog/GO7iJUntbVTnns3MpcBSgIi4vWCTdwMHAu/NzOeAxyPiGODKiLghq3MAXgE8kJnX1La5JiLOrLVfPNz7IElqX61+TfNk4KFaYO5yP9ABHFnXZ1nDdvcDp4x4dZKkttLqbzk5DNjY0NZXt+6J2t++fvoc1t+AEXEZcBlAR0cHy5cvB2DGjBlMmjSJtWvXAjBlyhRmzZrFihUrABg/fjxdXV2sWbOGbdu2AVCpVOjr6+O/ffOofdlHSdIw+PRFvaxbtw6ovjO2s7OT7u5uACZOnEilUmHlypVs374dgK6uLtavX8/mzZsBmD179u51Axmzt5xExC+BD2Xm7YP0WQZszMxL6tqOAJ4CTsnMlRGxA/hAZi6p6zMXWJyZrxishuF6y8mlN+7zEJKkfbT4iuEZ56X8lpNngKkNbVPr1g3W5xkkSRpGrR6aK4FTI+KAurY5wNPAk3V95jRsNwd4ZMSrkyS1ldF+TnNiRBwXEcfVfvuI2vIRtfWfiYjv1G3yv4FfA7dHxOyIOB/4GLDrzlmAm4B/FxEfi4hjIuIq4EzAk6aSpGE12keaFeAfap/fAxbVvn+6tn4asPuumsz8OdWjxg6gB/gL4Hrghro+jwDvAuYB3wXmAhdlZvfI7ookqd2M9nOay4EYZP28ftq+B5w2xLj3APfsY3mSJA2q1a9pSpLUMgxNSZIKGZqSJBUyNCVJKmRoSpJUyNCUJKmQoSlJUiFDU5KkQoamJEmFDE1JkgoZmpIkFTI0JUkqZGhKklTI0JQkqZChKUlSIUNTkqRChqYkSYUMTUmSChmakiQVMjQlSSpkaEqSVMjQlCSpkKEpSVIhQ1OSpEKGpiRJhQxNSZIKGZqSJBUyNCVJKmRoSpJUyNCUJKmQoSlJUiFDU5KkQoamJEmFDE1JkgoZmpIkFTI0JUkqZGhKklTI0JQkqZChKUlSIUNTkqRChqYkSYUMTUmSChmakiQVMjQlSSrUVGhGxIUR8Za65asjYmNE3B8R04a/PEmSWkezR5qf2vUlIk4A/gvwP4CXA9cPX1mSJLWeZkPz94F1te/vAL6WmdcBVwJvKhkgIj4YEU9ExPMRsToiTh2k7+0Rkf18flXX54wB+hzT5L5JkjSoZkPzeWBS7fubgG/Xvv+8rn1AEXERcBNwLXA88Ahwb0QcMcAmHwamNXz+GfibfvrOaui3YejdkSSp3Pgm+z8EXB8Rfw9UgHfW2v8V8JOC7a8Ebs/MxbXlyyPircAC4KrGzpn5c6qBDEBEvBGYAfxRP2NvzswtpTsiSVKzmj3S/BCwg2pYzs/Mp2vtZwP3D7ZhREwA3gAsa1i1DDil8PcvBb6fmY/0s64nInoj4jsRcWbheJIkFWvqSDMzNwL/vp/2Kwo2PxQYB/Q1tPcBbx5q44h4JXAhex6R9lI9Un0MmED1KPQ7EXF6Zj7UzziXAZcBdHR0sHz5cgBmzJjBpEmTWLt2LQBTpkxh1qxZrFixAoDx48fT1dXFmjVr2LZtGwCVSoW+vj7gqCF3XpI0snp7e1m3rnrbzfTp0+ns7KS7uxuAiRMnUqlUWLlyJdu3bwegq6uL9evXs3nzZgBmz569e91AIjObKioiDgD+kGpS3JqZP4uIo4CtmfnsINt1AJuA0zNzRV371cC7M/O1Q/zuH1O9Q7djsN+p9V0KvJiZ5w3Wr1KpZE9Pz2Bdilx64z4PIUnaR4tLDt8KRMTqzKz0t66pI82ImEn15p+JwMHAl4CfUT3SOxj4wCCbbwF2AlMb2qcCzxT8/KXAl4cKzJpu4F0F/SRJKtbsNc0bqV6DnAo8V9f+DWDQ64iZuQNYDcxpWDWH6l20A4qIfwu8Hlg8WL86x1E9bStJ0rBp9u7ZU4CTMnNnRNS3/xjoKNj+BuDOiFgFPAzMr213C0BELAHIzLkN210GbMjM5Y0DRsQVwJPA96le03wP8HbggtKdkiSpRLOhCdXZfxodQd2jIQPJzLsjYgrwcarPUj4OnJOZT9WN8zsiYhLVU62fHmDYCcCfA51Uj36/D5ybmUuHqkeSpGY0G5rLqD5r+f7ackbEQcAi4G9LBsjMm4GbB1h3Rj9tv6B6DXWg8a4Driv5bUmS9kWzoXkl8EBErAMOAO4GZlJ9bOTCYa5NkqSW0uxzmk9HxHHAxcAJVG8kug24KzOfG3RjSZJe4pq+plkLx7+qfSRJahtDhmZEnA98MzNfqH0fUGZ+ZdgqkySpxZQcad4DHAZsrn0fSFKdJk+SpP3SkKGZmS/r77skSe2mqRCMiNMiYo+gjYhxEXHa8JUlSVLrafbI8QFgcj/tB9fWSZK032o2NIPqtctGU4Bf7Xs5kiS1rqJHTiLiG7WvCXwxIupfODYOmM0Qk65LkvRSV/qc5r/U/gawld99w8kO4O8pfwOJJEkvSUWhmZnvA4iIJ4HPZqanYiVJbafZafQWjVQhkiS1upIZgb4LnJ6ZWyPie/R/IxAAmXnscBYnSVIrKTnS/DKw68afwWYEkiRpv1YyI9Ci/r5LktRunBZPkqRCJdc0B72OWc9rmpKk/VnpW04kSWp7TV3TlCSpnXlNU5KkQj6nKUlSIZ/TlCSpkM9pSpJUqKm5Z3eJiKOAf11b/GFm/mj4SpIkqTU1FZoRMQX4PHAe8JvfNse3gEsy818G3FiSpJe4Zu+e/UtgJnAqcEDtcxrwGnyfpiRpP9fs6dmzgDdl5sq6tocj4j8C3x6+siRJaj3NHmn+FOjvBdS/Bjw1K0narzUbmp8GboyI6bsaat+vr62TJGm/tTcTtr8GeDIiNtWWpwPPA6+mes1TkqT9khO2S5JUyAnbJUkq5ITtkiQVaio0I2JCRCyKiPUR8XxE7Kz/jFSRkiS1gmaPNP8r8F6qd8v+BvgT4C+oPm7yweEtTZKk1tJsaF4IzM/MW4GdwNczcyHwSWDOcBcnSVIraTY0pwI/qH3/JXBw7ft9wFuGqyhJklpRs6H5Y6Cj9v2fqE6rB3Ay8NxwFSVJUitqNjS/Cryp9v0mYFFEPAHcjhMbSJL2c01N2J6ZV9V9vyciNgKnAOsz81vDXZwkSa1kr15CvUtmPgo8Oky1SJLU0pqe3CAiToiIJRHRU/vcGREnjERxkiS1kmYnN3g38BgwDVha+0wFVkXEe4a/PEmSWkezp2evAT6RmdfWN0bEVcCfAV8crsIkSWo1zZ6efRXwN/20f4nqq8GGFBEfjIgnatPwrY6IUwfpe0ZEZD+fYxr6XRARP4iI7bW/72hqryRJKtBsaD4AnNFP+xnAg0NtHBEXUX1U5VrgeOAR4N6IOGKITWdRPSW867OhbsyTgbuBu4Djan+/FBF/MFQ9kiQ1o+Ql1OfXLd4LfCYiKvz2rtmTgPOBTxX83pXA7Zm5uLZ8eUS8FVgAXDXwZmzOzC0DrLsCeCAzr6ktXxMRZ9baLy6oSZKkInv7EurLap96nwNuHmiQiJgAvAH4bMOqZVSf9RxMT0S8guoUfn+WmQ/UrTu59tv17gc+NMSYkiQ1peQl1MP1zs1DgXFAX0N7H/DmAbbppXoU+hgwAfgj4DsRcXpmPlTrc9gAYx7W34ARsTvwOzo6WL58OQAzZsxg0qRJrF27FoApU6Ywa9YsVqxYAcD48ePp6upizZo1bNu2DYBKpUJfXx9w1JA7L0kaWb29vaxbtw6A6dOn09nZSXd3NwATJ06kUqmwcuVKtm/fDkBXVxfr169n8+bNAMyePXv3uoFEZo7gLtT9UEQHsAk4PTNX1LVfDbw7M19bOM5S4MXMPK+2vAP4QGYuqeszF1icma8YbKxKpZI9PT3N70yDS2/c5yEkSfto8RXDM05ErM7MSn/r9mZyg3MjYkVEbImIn0bEgxFxTsGmW6i+TmxqQ/tU4JkmSugGjq5bfmYYxpQkaUjNTm7wAaqTtv8I+FPgY8ATwFcj4pLBts3MHcBq9nzv5hyqd9GWOo7qadtdVg7DmJIkDanZyQ3+FLgyM/9nXdvnI2I11QD9qyG2vwG4MyJWAQ8D86m+auwWgIhYApCZc2vLVwBPAt+nek3zPcDbgQvqxrwJWBERHwO+BrwDOBPoanLfJEkaVLOheQTVF043upc974rdQ2beHRFTgI9Tfd7yceCczHyqbvx6E4A/Bzqpvq/z+8C5mbm0bsxHIuJdVGck+jTVo+CLMrO7mR2TJGkozYbmj6me+vynhva3AE/t2X1PmXkzAzyakplnNCxfB1xXMOY99P9ojCRJw6bZ0Pws8LnaW012XTN8I9VHQS4fzsIkSWo1zb6E+taI2Az8J6qzAAH8ELgwM78+3MVJktRKikMzIsZTPQ27IjO/OnIlSZLUmoofOcnMF4GvAJNGrhxJklpXs5MbrAVmjkQhkiS1umZD81PA9RHx9og4PCIm139GoD5JklpGs3fP/m3t71eA+klro7Y8bjiKkiSpFTUbmmeOSBWSJL0EFIVmRBxIdWaetwMvB74NLBzkxdCSJO13Sq9pLgLmUT09+9dUZwX6XyNUkyRJLan09Oz5wPsz8/8ARMRdwMMRMS4zd45YdZIktZDSI83DgYd2LWTmKuBFqm8okSSpLZSG5jhgR0PbizR/I5EkSS9ZpaEXwBcjYntd2wHA4oj49a6GzDxvOIuTJKmVlIbmHf20fXE4C5EkqdUVhWZmvm+kC5EkqdU1O42eJElty9CUJKmQoSlJUiFDU5KkQoamJEmFDE1JkgoZmpIkFTI0JUkqZGhKklTI0JQkqZChKUlSIUNTkqRChqYkSYUMTUmSChmakiQVMjQlSSpkaEqSVMjQlCSpkKEpSVIhQ1OSpEKGpiRJhQxNSZIKGZqSJBUyNCVJKmRoSpJUyNCUJKmQoSlJUiFDU5KkQoamJEmFDE1JkgqNemhGxAcj4omIeD4iVkfEqYP0PT8ilkXETyPiFxHRHRHnNfSZFxHZz+eAkd8bSVI7GdXQjIiLgJuAa4HjgUeAeyPiiAE2OR34v8C5tf5Lga/2E7S/BqbVfzLz+eHfA0lSOxs/yr93JXB7Zi6uLV8eEW8FFgBXNXbOzA83NC2KiHOBtwMP/W7XfGYkCpYkaZdRO9KMiAnAG4BlDauWAac0MdQkYGtD2+9FxFMRsTEivhURx+9DqZIk9Ws0jzQPBcYBfQ3tfcCbSwaIiD8GOoE765rXAZcAa6kG6oeBhyPi9Zm5oZ8xLgMuA+jo6GD58uUAzJgxg0mTJrF27VoApkyZwqxZs1ixYgUA48ePp6urizVr1rBt2zYAKpUKfX19wFEl5UuSRlBvby/r1q0DYPr06XR2dtLd3Q3AxIkTqVQqrFy5ku3btwPQ1dXF+vXr2bx5MwCzZ8/evW4gkZkjuAt1PxTRAWwCTs/MFXXtVwPvzszXDrH9BVTD8qLM/OYg/cYB/wg8kJkLBxuzUqlkT09PE3vRv0tv3OchJEn7aPEVwzNORKzOzEp/60bzRqAtwE5gakP7VGDQ65ER8U6qgTl3sMAEyMydQA9w9N6XKknSnkYtNDNzB7AamNOwag7Vu2j7FREXUg3MeZl5z1C/ExEBHAv07n21kiTtabTvnr0BuDMiVgEPA/OBDuAWgIhYApCZc2vL76IamB8FVkTEYbVxdmTms7U+nwQeBTYABwELqYbmglHaJ0lSmxjV0MzMuyNiCvBxqs9TPg6ck5lP1bo0Pq85n2qNN9Y+uzwInFH7fjBwG3AY8HPgH4DTMnPVSOyDJKl9jfaRJpl5M3DzAOvOGGx5gG0+AnxkOGqTJGkwzj0rSVIhQ1OSpEKGpiRJhQxNSZIKGZqSJBUyNCVJKmRoSpJUyNCUJKmQoSlJUiFDU5KkQoamJEmFDE1JkgoZmpIkFTI0JUkqZGhKklTI0JQkqZChKUlSIUNTkqRChqYkSYUMTUmSChmakiQVMjQlSSpkaEqSVMjQlCSpkKEpSVIhQ1OSpEKGpiRJhQxNSZIKGZqSJBUyNCVJKmRoSpJUyNCUJKmQoSlJUiFDU5KkQoamJEmFDE1JkgoZmpIkFTI0JUkqZGhKklTI0JQkqZChKUlSIUNTkqRChqYkSYUMTUmSChmakiQVGvXQjIgPRsQTEfF8RKyOiFOH6H96rd/zEfHPETF/X8eUJGlvjGpoRsRFwE3AtcDxwCPAvRFxxAD9XwMsrfU7HvgM8LmIuGBvx5QkaW+N9pHmlcDtmbk4M3+YmZcDvcCCAfrPB57OzMtr/RcDdwAf3YcxJUnaK6MWmhExAXgDsKxh1TLglAE2O7mf/vcDlYh4+V6OKUnSXhk/ir91KDAO6Gto7wPePMA2hwHf7qf/+Np40eyYEXEZcFlt8ZcRsa6keKkNHApsGesipL31lx8ZtqF+f6AVoxmaLSEzbwNuG+s6pFYTET2ZWRnrOqRWNpqhuQXYCUxtaJ8KPDPANs8M0P/F2nixF2NKkrRXRu2aZmbuAFYDcxpWzaF6x2t/Vg7QvyczX9jLMSVJ2iujfXr2BuDOiFgFPEz17tgO4BaAiFgCkJlza/1vAT4UETcCtwJvBOYBF5eOKamYly2kIYxqaGbm3RExBfg4MA14HDgnM5+qdTmiof8TEXEO8N+pPkLyNLAwM7/cxJiSCtSu90saRGTmWNcgSdJLgnPPSpJUyNCUJKmQoSlJUiFDU2pzERH1fyUNzBuBJP2OXeGZ/nOQ9tB20+hJqoqIlwFvA14FHAhsAh7MzM1jWpjUwjzSlNpQREwCPg+cCfwG2Agk8DzwIHBnZv6/iAiPOKXf8khTak8LgddSnQjksYg4BqhQnXXrLcDrIuL9mfnTsSxSajUeaUptKCIeAr6amTc0tI+jGpyfB36UmW8di/qkVuXds1KbiYjxVKebvCAiXlVrGxcRL8vMnZm5guoczp0R8fqxrFVqNYam1GYy80XgDqovef9oREytheVv6rqtB47El1JLv8PTs1Kbqd01+zLgfcC1VO9t+DJwN/Bj4FjgD4F/k5knjlWdUisyNKU2FhEHU33d3n8AjgN+QfUO2seAz2Rm99hVJ7UeQ1NqIxFxEPCL+sdIakeeBwATgdnArwxLqX+GptRGIuJWYFXt81RmbuunzyGZudVnNKU9GZpSm4iIi4G7gG3As8DfAfcD3wU2ZeZzETER+CLwicz83pgVK7UoQ1NqExGxGNgJXAecD7wXOApYBywFvkN1woObMnPCWNUptTJDU2oDtWcz/zNwUGZ+rK59FnAp8E6q1zUPBu7IzPePSaFSizM0pTYREYcAU2tzyk4AXmi4Iegi4K+BEzLzH8eqTqmVOfes1CYycyuwtfZ9B+y+czYycydwEPC8gSkNzNCU2ljDLECTgE+OVS3SS4GnZyUBEBEvBxqn05NUx9CUJKmQE7ZLklTI0JQkqZChKUlSIUNTkqRChqYkSYUMTUmSCv1/NPXoMPczUOEAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 504x360 with 1 Axes>"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# For 10\n",
"count_10 = simulate_circuit(bell_circuit, alice_10, invert_circuit)\n",
"visualization.plot_histogram(count_10)"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 504x360 with 1 Axes>"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# For 11\n",
"count_11 = simulate_circuit(bell_circuit, alice_11, invert_circuit)\n",
"visualization.plot_histogram(count_11)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'qiskit-terra': '0.11.0',\n",
" 'qiskit-aer': '0.3.4',\n",
" 'qiskit-ignis': '0.2.0',\n",
" 'qiskit-ibmq-provider': '0.4.4',\n",
" 'qiskit-aqua': '0.6.1',\n",
" 'qiskit': '0.14.0'}"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# The results match our predictions!\n",
"# For purposes of reproducibility, the Qiskit version is\n",
"qiskit.__qiskit_version__"
]
}
],
"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.7.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment