{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Deutsch Jozsa algorithm" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from qlasskit import qlassf, Qint\n", "\n", "\n", "@qlassf\n", "def f(a: Qint[4]) -> bool:\n", " return a > 7" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f.export(\"qiskit\").draw(\"mpl\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from qlasskit.algorithms import DeutschJozsa\n", "\n", "q_algo = DeutschJozsa(f)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAFvCAYAAAC/9krTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0UElEQVR4nO3df1RU550/8PcMKAM4Gn4ZEEQQRFBBrL9Ksk2i1a6sRWO0mm8x6mpMtq2VZFk5W9N2o7U1FNta9aRrm6SNfk8pmrYblbo2xjQhtlGU2PgDgVigIDPQiYiAAzLMfP/wqy1h0JlhZh7u87xf53hywtx756Of+Ty+vffOjM7hcDhAREREpFF60QUQERERDQbDDBEREWkawwwRERFpGsMMERERaRrDDBEREWkawwwRERFpGsMMERERaRrDDBEREWkawwwRERFpGsMMERERaRrDDBEREWkawwwRERFpGsMMERERaRrDDBEREWkawwwRERFpGsMMERERaRrDDBEREWkawwwRERFpGsMMERERaRrDDBEREWkawwwRERFpGsMMERERaRrDDBEREWkawwwRERFpGsMMERERaRrDDBEREWkawwwRERFpGsMMERERaRrDDBEREWkawwwRERFpGsMMERERaRrDDBEREWkawwwRERFpGsMMESmltrYWjz/+OKKioqDT6bBmzRrRJRHRIAWKLoCIyJ/WrFmDjz76CC+88AKio6ORlJQkuiQiGiSdw+FwiC6CiMgfuru7ERwcjA0bNmDXrl2iyyEiL+FlJiJSRnNzMxwOB8LDw0WXQkRexDMziujq6sJLL72E4uJiNDQ0YPjw4Rg7diwWLFiAoqIi0eX143A4gO5u0WW4JygIOp1OdBU0gDVr1uD111/v9/N33nkHjz32mP8LIr/jOugHgtZBhhlFrFu3Dq+99hpWrVqFhx56CDabDTU1NSgrK8PZs2dFl9ePo6sLtuWrRZfhlsADr0NnMIgugwbwpz/9CadOncLzzz+PJUuW4IknngAAzJ8/Hw8++KDg6sgfuA76nqh1kDcAK+K3v/0tsrOznf7LlEgFWVlZiImJwfPPP4+MjAysXLlSdEnkZ1wH5cV7ZhQxatQoXLx4ERcuXBBdChGREFwH5cUwo4idO3eitbUV6enpSEpKwtNPP40333wTdrtddGlERH7BdVBeDDOKWLx4Merq6rB//37MnTsXb7/9Nh5//HE89thjuHXrlujyiIh8juugvBhmFBIeHo6VK1fiZz/7Gf7yl7+goKAAZWVlePPNN0WXRkTkF1wH5cQwo4De3l5cv369z890Oh2mTZsGALh27ZqAqoiI/IfroNz4biYFtLe3IyYmBosWLcK0adMwevRo1NbW4ic/+QnCwsKQk5MjukQiIp/iOig3hhkFhISE4LnnnsPbb7+N48ePo6Oj4+5Qf+Mb38CYMWNEl0hE5FNcB+XGD82jIYkfFkVEquM66DreM0NERESaxjBDREREmsZ7ZjSuvLzcre0tFgt+85vf4IknnkBkZKRL+8ycOdOT0oj8gjNA7rwGPOk/wNfAUMczM4qxWCx45ZVXYLFYRJdCJARnQG3sv5yUCDMWiwUFBQVITk6GwWDA2LFjkZeXh87OTqxbtw46nQ579uwRXSYRERF5QPowc+7cOaSnp6OoqAhmsxmTJk1CT08Pdu3ahRUrVqCyshIAkJmZKbZQ8ol3LS0YfvgAfnjl8oDbDD98AI+fKvNjVURE/qPCOih1mLFYLMjJyYHZbEZ+fj5MJhMqKipgNptRWFiI0tJSlJeXQ6fTISMjQ3S5RERE5AGpw8zGjRvR2NiIDRs2YMeOHTAajXcfKygowNSpU2Gz2ZCQkICRI0cKrNR/jEYjFixY0OfPgkglnAG1sf9ykjbMVFZWoqSkBJGRkdi+fbvTbaZPnw4AmDp1ap+f19bWYtGiRTAajQgLC8OqVavwySef+Lxmf4iNjcXWrVsRGxsruhQiITgDamP/5STtW7OLi4tht9uRm5uLESNGON0mODgYQN8w097ejjlz5iA8PBzFxcWwWq0oKCjAF7/4RZw8eRJ6vbbzX3d3N1paWjB69GgEBQWJLsdvbvb2wtLdLboMGgJUnQG6TeX+y7wOShtmTpw4AQCYM2fOgNs0NjYC6BtmfvrTn+Lq1at47733EB8fDwCIi4vDQw89hEOHDuHxxx/3XdF+UFtbi1WrVmHfvn1ITU0VXY7fbK26iK1VF0WXQUOAqjNAt6ncf5nXQWnDTH19PQBg3LhxTh+32Ww4efIkgL5h5siRI/inf/qnu0EGALKysjB+/HgcPnzYozAzY8YMmM1mt/dzxbJly9zavqWlBQBw9OhRnD171qV9lixZ4nZdgxWs1+NSZpbXjvd0/HgsHTPW6WPZH7zrledISUmB1W73yrHIdbLOALnOndeAJ/0HuA66ajDrYHR0NM6cOePRvtKGmc7OTgCA1Wp1+nhJSQksFguMRiMSExPv/vzSpUv40pe+1G/7yZMn49KlSx7VYjabcfXqVY/2vZ87v09X3fnzsFqtLu/rq9rvJSQgAMj03vGSR4zA56Me9N4BnWhqasLN3l6fPgf1J+sMkOvceQ140n+A66CrRK2D0oaZ6OhotLa2oqKiAllZfZOtyWTCpk2bAAAZGRnQ6XR3H2ttbcUDDzzQ73jh4eGoqqryuBZfCQ0NdWv7O8MbHBzs8r4ibpQL1uC9SWPGjOGZGQFknQFynTuvAU/6D3AddNVg1sHB/F0pbZiZN28eKisrUVhYiPnz5yMlJQXA7e/weOqpp+5+lLU/PizP09NmrnD3e2kuX76M4uJiZGdnu3y9eOfOnR5UNjiOri7Ylq/2+/MORnV1NXQGg+gylCPrDJDr3HkNeNJ/gOugq0Stg9KGmYKCAvzyl79EQ0MDJk+ejNTUVHR1deHjjz9GdnY2EhIScOzYsX5vyw4LC8P169f7He/atWsIDw/3U/W+k5qaitOnT4sug0gYzoDa2H85ae8clovi4uJQVlaGhQsXwmAwoK6uDuHh4di7dy9KS0tRXV0NoP9nzKSlpTm9N+bSpUtIS0vzS+1ERETkOmnDDHA7mBw5cgTt7e1ob2/HqVOn8Mwzz6CzsxN1dXXQ6/WYMmVKn32++MUv4v3337/7tm0AOHXqFK5cuYKcnBx//xa8rr6+HmvXrr37bi8i1XAG1Mb+y0nay0z3cvHiRTgcDqSkpCAkJKTPY8888wx2796NxYsXY8uWLejq6kJBQQFmzZqFxYsXC6rYe6xWKy5cuDDgu7xk82jkaNzKWX7Pbe73OMlFtRmgvlTsvwrroNRnZgZy/vx5AP0vMQHAyJEjceLECcTExODJJ5/E008/jYceeghHjhzR/Kf/EhERyUjJMzP3CjMAkJSUhCNHjvizJCIiIvKQkqca7hdmiIiISDuUPDNz53ubVBQTE4MtW7YgJiZGdClEQnAG1Mb+y0nJMKOyUaNGITs7W3QZRMJwBtTG/stJyctMKmttbcXBgwfR2toquhQiITgDamP/5cQwo5jm5mYUFRWhublZdClEQnAG1Mb+y4lhhoiIiDSNYYaIiIg0jWGGiIiINI1hRjEhISGYPXt2v69xIFIFZ0Bt7L+c+NZsxcTHx2P37t2iyyAShjOgNvZfTjwzo5je3l50dHSgt7dXdClEQnAG1Mb+y4lhRjE1NTWYO3cuampqRJdCJARnQG3sv5wYZoiIiEjTeM8MDU1BQQg88LroKtwTFCS6AiKSCddBlzHM0JCk0+kAg0F0GUREwnAddB0vMxEREZGm8cyMYpKTk3Hs2DEYjUbRpRAJwRlQG/svJ4YZxQQGBiIsLEx0GUTCcAbUxv7LiZeZFNPY2Ij8/Hw0NjaKLoVICM6A2th/OTHMKKajowNlZWXo6OgQXQqREJwBtbH/cmKYISIiIk1jmCEiIiJNY5ghIiIiTWOYUUxAQABmz56NgIAA0aUQCcEZUBv7LyeGGcX09vbi1KlT/MZYUhZnQG3sv5wYZoiIiEjTGGaIiIhI0xhmiIiISNMYZhRjNBqxYMECfi8JKYszoDb2X046h8PhEF0Eea68vNznzzFz5kyfPweRpzgDxNcA8cyMYrq7u9HQ0IDu7m7RpRAJwRlQG/svJ4YZxdTW1mLp0qWora0VXQqREJwBtbH/cgoUXQCRMw6HA9Dav5yCgqDT6URXQUSS4DroOoYZGpq6u2Fbvlp0FW4JPPA6YDCILoOIZMF10GW8zERERESaxjBDREREmsbLTIpJTU3F6dOnRZdBJAxnQG3sv5x4ZoaIiIg0jWFGMfX19Vi7di3q6+tFl0IkBGdAbey/nBhmFGO1WnHhwgVYrVbRpRAJwRlQG/svJ4YZIiIi0jSGGSIiItI0hhkiIiLSNIYZxcTExGDLli2IiYkRXQqREJwBtbH/cuLnzChm1KhRyM7OFl0GkTCcAbWx/3LimRnFtLa24uDBg2htbRVdCpEQnAG1sf9yYphRTHNzM4qKitDc3Cy6FCIhOANqY//lpESYsVgsKCgoQHJyMgwGA8aOHYu8vDx0dnZi3bp10Ol02LNnj+gyiYiIyAPSh5lz584hPT0dRUVFMJvNmDRpEnp6erBr1y6sWLEClZWVAIDMzEyxhZJPvGtpwfDDB/DDK5cH3Gb44QN4/FSZH6siIvIfFdZBqcOMxWJBTk4OzGYz8vPzYTKZUFFRAbPZjMLCQpSWlqK8vBw6nQ4ZGRmiyyUiIiIPSB1mNm7ciMbGRmzYsAE7duyA0Wi8+1hBQQGmTp0Km82GhIQEjBw5UmCl/hMSEoLZs2cjJCREdClEQnAG1Mb+y0naMFNZWYmSkhJERkZi+/btTreZPn06AGDq1Kl3f3Yn/MyaNQtBQUHQ6XR+qddf4uPjsXv3bsTHx4suhUgIzoDa2H85Sfs5M8XFxbDb7cjNzcWIESOcbhMcHAygb5j5+OOP8etf/xozZ87E8OHDcfLkSb/U6y+9vb2wWq0IDg5GQECA6HL85mZvLyzd3aLLoCFA1Rmg21Tuv8zroLRh5sSJEwCAOXPmDLhNY2MjgL5h5pFHHoHJZAIAvPjii9KFmZqaGqxatQr79u1Damqq6HL8ZmvVRWytuii6DBoCVJ0Buk3l/su8DkobZurr6wEA48aNc/q4zWa7G1T+Mczo9d6/8jZjxgyYzWavHxcAli1b5tb2LS0tAICjR4/i7NmzLu2zZMkSt+sarGC9Hpcys7x2vKfjx2PpmLFOH8v+4F2vPEdKSgqsdrtXjkWuk3UGyHXuvAY86T/AddBVg1kHo6OjcebMGY/2lTbMdHZ2AgCsVqvTx0tKSmCxWGA0GpGYmOjTWsxmM65eveqTY9/5fbrqzp+H1Wp1eV9f1X4vIQEBQKb3jpc8YgQ+H/Wg9w7oRFNTE2729vr0Oag/WWeAXOfOa8CT/gNcB10lah2UNsxER0ejtbUVFRUVyMrqm2xNJhM2bdoEAMjIyPD5Tb7R0dE+O3ZoaKhb298Z3uDgYJf3jY2NdbuuwQr2wRkyXxszZgzPzAgg6wyQ69x5DXjSf4DroKsGsw4O5u9KacPMvHnzUFlZicLCQsyfPx8pKSkAgPLycjz11FOwWCwA/PNheZ6eNnNFeXm5W9tfvnwZxcXFyM7Odvl68c6dOz2obHAcXV2wLV/t9+cdjOrqaugMBtFlKEfWGSDXufMa8KT/ANdBV4laB7UX+1xUUFCAiIgINDQ0YPLkyUhPT8eECRMwa9YsjB8/HnPnzgXQ934ZFSQnJ+PYsWNITk4WXQqREJwBtbH/cpI2zMTFxaGsrAwLFy6EwWBAXV0dwsPDsXfvXpSWlqK6uhqAemEmMDAQYWFhCAyU9qQc0T1xBtTG/stJ2jADAGlpaThy5Aja29vR3t6OU6dO4ZlnnkFnZyfq6uqg1+sxZcoU0WX6VWNjI/Lz8+++LZ1INZwBtbH/clIyml68eBEOhwMpKSlOP9L6jTfeAABcunSpz/8nJCRgxowZ/ivUBzo6OlBWVob169eLLsUvHo0cjVs5y++5zf0eJ7moNgPUl4r9V2EdVDLMnD9/HsDAl5i+9KUvOf3/1atX4xe/+IVPayMiIiL3MMw44XA4/FkOERERDYLU98wM5H5hhoiIiLRDyTMzd763SUVRUVHIy8tDVFSU6FKIhOAMqI39l5OSYUZlERERyM3NFV0GkTCcAbWx/3JS8jKTym7cuIHjx4/jxo0bokshEoIzoDb2X04MM4ppamrC5s2b0dTUJLoUIiE4A2pj/+XEMENERESaxjBDREREmsYwQ0RERJrGMKOYoKAgTJw4EUFBQaJLIRKCM6A29l9OfGu2YhITE7F//37RZRAJwxlQG/svJ56ZISIiIk1jmFFMVVUVHn74YVRVVYkuhUgIzoDa2H85McwoxuFwoKenh1+mScriDKiN/ZcT75mhoSkoCIEHXhddhXt4QyEReRPXQZcxzNCQpNPpAINBdBlERMJwHXQdLzMRERGRpvHMjGISEhJQXFyM2NhY0aUQCcEZUBv7LyeGGcUYDAYkJSWJLoNIGM6A2th/OfEyk2JMJhO2bdsGk8kkuhQiITgDamP/5cQwo5i2tjYcOnQIbW1tokshEoIzoDb2X04MM0RERKRpDDNERESkaQwzREREpGkMM4rR6/WYNm0a9Hq2ntTEGVAb+y8ndlMxdrsdH374Iex2u+hSiITgDKiN/ZcTwwwRERFpGsMMERERaRrDDBEREWkaw4xijEYjFixYAKPRKLoUIiE4A2pj/+WkczgcDtFFkOfKy8t9/hwzZ870+XMQeYozQHwNEM/MKKa7uxsNDQ3o7u4WXQqREJwBtbH/cmKYUUxtbS2WLl2K2tpa0aUQCcEZUBv7LyeGGSIiItK0QNEFEDnjcDgArZ0GDgqCTqcTXQURSYLroOsYZmho6u6Gbflq0VW4JfDA64DBILoMIpIF10GX8TITERERaRrPzCgmNTUVp0+fFl0GkTCcAbWx/3LimRkiIiLSNIYZxdTX12Pt2rWor68XXQqREJwBtbH/cmKYUYzVasWFCxdgtVpFl0IkBGdAbey/nBhmiIiISNMYZoiIiEjTGGaIiIhI0xhmFBMTE4MtW7YgJiZGdClEQnAG1Mb+y4mfM6OYUaNGITs7W3QZRMJwBtTG/suJZ2YU09raioMHD6K1tVV0KURCcAbUxv7LiWFGMc3NzSgqKkJzc7PoUoiE4Ayojf2XE8MMERERaZoSYcZisaCgoADJyckwGAwYO3Ys8vLy0NnZiXXr1kGn02HPnj2iyyQfeNfSguGHD+CHVy4PuM3wwwfw+KkyP1ZFROQ/KqyD0t8AfO7cOWRnZ8NsNiM0NBSTJk1CU1MTdu3ahStXruDatWsAgMzMTLGFEhERkUekPjNjsViQk5MDs9mM/Px8mEwmVFRUwGw2o7CwEKWlpSgvL4dOp0NGRobocv0iJCQEs2fPRkhIiOhSiITgDKiN/ZeT1GdmNm7ciMbGRmzYsAE7duzo81hBQQF++ctf4s9//jMSExMxcuRIQVX6V3x8PHbv3i26DCJhOANqY//lJO2ZmcrKSpSUlCAyMhLbt293us306dMBAFOnTr37szfeeANLly7FuHHjEBISgtTUVLzwwgvo6OjwS92+1tvbi46ODvT29oouxa9u9vbC0t3t9BepRdUZoNtU7r/M66C0Z2aKi4tht9uRm5uLESNGON0mODgYQN8ws2PHDsTHx+N73/se4uLicO7cOWzZsgXvvvsu3nvvPej12s5/NTU1WLVqFfbt24fU1FTR5fjN1qqL2Fp1UXQZNASoOgN0m8r9l3kdlDbMnDhxAgAwZ86cAbdpbGwE0DfMHD58GFFRUXf//9FHH0VUVBRyc3Px/vvv45FHHvFRxeRLT8ePx9IxY50+lv3Bu36uhojI/2ReB6UNM/X19QCAcePGOX3cZrPh5MmTAPqGmX8MMnfMmDEDAHD16lWPapkxYwbMZrNH+97PsmXL3Nq+paUFAHD06FGcPXvWpX2WLFnidl2DFazX41JmlteOlzxiBD4f9aDXjudMSkoKrHa7T5+D+pN1Bsh17rwGPOk/wHXQVYNZB6Ojo3HmzBmP9pU2zHR2dgIArFar08dLSkpgsVhgNBqRmJh4z2O98847AIC0tDSPajGbzR4Hofu58/t01Z0/D6vV6vK+vqr9XkICAoBMvz/toDQ1NeGmgtfhRZN1Bsh17rwGPOk/wHXQVaLWQWnDTHR0NFpbW1FRUYGsrL7J1mQyYdOmTQCAjIwM6HS6AY9z9epVfOtb38KCBQs8/iya6Ohoj/ZzRWhoqFvb3xne4OBgl/eNjY11u67BCtbgvUljxozhmRkBZJ0Bcp07rwFP+g9wHXTVYNbBwfxdKW2YmTdvHiorK1FYWIj58+cjJSUFAFBeXo6nnnoKFosFwL0/LK+jowOLFy/G8OHD8dprr3lci6enzVxRXl7u1vY2mw1r1qyB0WhEYKBr7d+5c6cHlQ2Oo6sLtuWr/f68g1FdXQ2dwSC6DOXIOgPkOndeA570H+A66CpR66D2Yp+LCgoKEBERgYaGBkyePBnp6emYMGECZs2ahfHjx2Pu3LkA+t4v84+sVitycnJQW1uL3//+94iJifFn+T4TGBiIsLAwt4aYSCacAbWx/3KSNszExcWhrKwMCxcuhMFgQF1dHcLDw7F3716UlpaiuroagPMw09PTg2XLluHMmTM4evQoJk2a5O/yfaaxsRH5+fl338lFpBrOgNrYfzlJHU3T0tJw5MiRfj/v6OhAXV0d9Ho9pkyZ0uexO59N8/bbb+N3v/sdZs2a5a9y/aKjowNlZWVYv3696FL84tHI0biVs/ye29zvcZKLajNAfanYfxXWQanDzEAuXrwIh8OBlJSUft/P8bWvfQ0HDx7Ef/7nfyIkJAQffPDB3ceSkpKcvnWbiIiIxJH2MtO9nD9/HoDzS0xHjx4FALz00kvIysrq86u0tNSvdRIREdH9KXlm5l5hpq6uzs/VEBER0WDwzIxioqKikJeXx8tlpCzOgNrYfzkpeWbmzvc2qSgiIgK5ubmiyyAShjOgNvZfTkqemVHZjRs3cPz4cdy4cUN0KURCcAbUxv7LiWFGMU1NTdi8eTOamppEl0IkBGdAbey/nBhmiIiISNMYZoiIiEjTGGaIiIhI0xhmFBMUFISJEyciKChIdClEQnAG1Mb+y0nJt2arLDExEfv37xddBpEwnAG1sf9y4pkZIiIi0jSGGcVUVVXh4YcfRlVVlehSiITgDKiN/ZcTw4xiHA4Henp64HA4RJdCJARnQG3sv5wYZoiIiEjTeAMwDU1BQQg88LroKtzDd0cQkTdxHXQZwwwNSTqdDjAYRJdBRCQM10HXMcwoJiEhAcXFxYiNjRVdCpEQnAG1sf9yYphRjMFgQFJSkugyiIThDKiN/ZcTbwBWjMlkwrZt22AymUSXQiQEZ0Bt7L+cGGYU09bWhkOHDqGtrU10KURCcAbUxv7LiWGGiIiINI1hhoiIiDSNYYaIiIg0jWFGMeHh4Vi9ejXCw8NFl0IkBGdAbey/nBhmFKPX6zFs2DDo9Ww9qYkzoDb2X07spmIsFgteeeUVWCwW0aUQCcEZUBv7LyeGGSIiItI0hhkiIiLSNIYZIiIi0jSGGcUYjUYsWLAARqNRdClEQnAG1Mb+y0nncDgcoosgz5WXl/v8OWbOnOnz5yDyFGeA+BognplRTHd3NxoaGtDd3S26FCIhOANqY//lxDCjmNraWixduhS1tbWiSyESgjOgNvZfToGiCyByxuFwAFr7l1NQEHQ6negqiEgSXAddxzBDQ1N3N2zLV4uuwi2BB14HDAbRZRCRLLgOuoyXmYiIiEjTGGaIiIhI03iZSTGpqak4ffq06DKIhOEMqI39lxPPzBAREZGmMcwopr6+HmvXrkV9fb3oUoiE4Ayojf2XE8OMYqxWKy5cuACr1Sq6FCIhOANqY//lxDBDREREmsYwQ0RERJrGMENERESaxjCjmJiYGGzZsgUxMTGiSyESgjOgNvZfTvycGcWMGjUK2dnZossgEoYzoDb2X048M6OY1tZWHDx4EK2traJLIRKCM6A29l9ODDOKaW5uRlFREZqbm0WXQiQEZ0Bt7L+clAgzFosFBQUFSE5OhsFgwNixY5GXl4fOzk6sW7cOOp0Oe/bsEV0mEZHPOBwOfFR9DUfe/SsO/+Gv+LDSAofDIbosIq+Q/p6Zc+fOITs7G2azGaGhoZg0aRKampqwa9cuXLlyBdeuXQMAZGZmii2UfOJdSwvm/+kPeGlSBv49KdXpNsMPH8C/jI7B/8z+nJ+rI/K9Wz292HfoY/zkQCUqKj/p81j6hDB8dUUa1iyeAEOQ9H8dKEuFdVDqMzMWiwU5OTkwm83Iz8+HyWRCRUUFzGYzCgsLUVpaivLycuh0OmRkZIgul4jIq9rab2HBvx3D+i3v9wsyAHC+phVf2fZHfH79UVxr6xZQIZF3SB1mNm7ciMbGRmzYsAE7duyA0Wi8+1hBQQGmTp0Km82GhIQEjBw5UmCl/hMSEoLZs2cjJCREdClEQqgyA7d6evHE88fxTrnpvtv+8VwLcr7+e3R12/xQmViq9F810oaZyspKlJSUIDIyEtu3b3e6zfTp0wEAU6dOvfuzsrIyzJs3DzExMQgKCkJcXBxWrFiByspKv9Tta/Hx8di9ezfi4+NFl0IkhCozUPy7v+DE6fsHmTv+eK4FP/+fGh9WNDSo0n/VSHuRtLi4GHa7Hbm5uRgxYoTTbYKDgwH0DTOtra1IT0/Hs88+i9GjR6OxsRHbt29HVlYWLly4gLi4OL/U7yu9vb2wWq0IDg5GQECA6HL85mZvLyzdPI1O6szAyyXu/wPs5ZJK/NvyVOh0Oh9UNDSo0n9nZF4HpQ0zJ06cAADMmTNnwG0aGxsB9A0zixYtwqJFi/psN3PmTEycOBG//vWvkZeX54Nq/aempgarVq3Cvn37kJrq/EYwGW2tuoitVRdFl0FDgAozcLn2Ok5f+Jvb+134uBUVlZ9g+qRIH1Q1NKjQ/4HIvA5KG2bq6+sBAOPGjXP6uM1mw8mTJwH0DTPOREREAAACAz3745oxYwbMZrNH+97PsmXL3Nq+paUFAHD06FGcPXvWpX2WLFnidl2DFazX41JmlteO93T8eCwdM9bpY9kfvOuV50hJSYHVbvfKsch1ss7AYHQFjgdGrvZo3y8sfBLBPZe9XJFvufMa8KT/ANdBVw1mHYyOjsaZM2c82lfaMNPZ2QkAsFqtTh8vKSmBxWKB0WhEYmJiv8d7e3tht9tRX1+Pb3zjG4iOjsby5cs9qsVsNuPq1ase7Xs/d36frrrz52G1Wl3e11e130tIQACQ6b3jJY8Ygc9HPei9AzrR1NSEm729Pn0O6k/WGRiU0JGAh+9puPbJJ0C7tn6/7rwGPOk/wHXQVaLWQWnDTHR0NFpbW1FRUYGsrL7J1mQyYdOmTQCAjIwMp9eHH3300btnbpKTk3HixAlERUV5XIuvhIaGurX9neENDg52ed/Y2Fi36xqsYL327k0fM2YMz8wIIOsMDEaPfhhaAMDhAFy9/+X/bxsVFojhI7X1+3XnNeBJ/wGug64azDo4mL8rpQ0z8+bNQ2VlJQoLCzF//nykpKQAAMrLy/HUU0/BYrEAGPjD8l599VVcv34dtbW1KCoqwhe+8AWcPHnSozvgPT1t5ory8nK3tr98+TKKi4uRnZ3t8vXinTt3elDZ4Di6umBb7tlpclGqq6uhMxhEl6EcWWdgsLJWHsIHH7lx34xOh4yUcJw7eFpzNwC78xrwpP8A10FXiVoHtRf7XFRQUICIiAg0NDRg8uTJSE9Px4QJEzBr1iyMHz8ec+fOBTDw/TITJ07E7Nmz8eSTT+Ltt99Ge3s7vv/97/vzt+ATycnJOHbsGJKTk0WXQiSEKjPw1RVpHu2jtSDjLlX6rxppw0xcXBzKysqwcOFCGAwG1NXVITw8HHv37kVpaSmqq6sB3P/mXwB44IEHkJycjI8//tjXZftcYGAgwsLCPL6ZmUjrVJmBJxck4QsPuX5p5JHp0VizeIIPKxoaVOm/aqQNMwCQlpaGI0eOoL29He3t7Th16hSeeeYZdHZ2oq6uDnq9HlOmTLnvcVpaWlBVVYWkpCQ/VO1bjY2NyM/Pv/u2dCLVqDIDw4bp8cYP5mJ+1pj7bvvI9Gj8z4/nIWi4/J+7okr/VaNkNL148SIcDgdSUlL6faT1ypUrkZycjMzMTDzwwAOoqanBj370IwQGBuL5558XVLH3dHR0oKysDOvXrxddil88Gjkat3Lu/S60+z1OclFpBoyhw1G6559RfPQKXi6pxKnzfe+h+UxaBL725CTkLkxSIsgAavX/DhXWQSXDzPnz5wE4v8T02c9+Fvv27cOPf/xjdHV1YezYsZgzZw42b9484GfWEBENVcOG6bFq0QSsWjQBl6604pE1pfikrRujww0486vF0t8jQ2pgmPmUDRs2YMOGDf4uiYjI5yYlhcEQdPsMzLBAPYMMSUPqe2YGcq8wQ0RERNqi5JmZO9/bpKKoqCjk5eV5/AGARFrHGVAb+y8nJcOMyiIiIpCbmyu6DCJhOANqY//lpORlJpXduHEDx48fx40bN0SXQiQEZ0Bt7L+cGGYU09TUhM2bN6OpqUl0KURCcAbUxv7LiWGGiIiINI1hhoiIiDSNYYaIiIg0jWFGMUFBQZg4cSKCgoJEl0IkBGdAbey/nPjWbMUkJiZi//79ossgEoYzoDb2X048M0NERESaxjCjmKqqKjz88MOoqqoSXQqREJwBtbH/cmKYUYzD4UBPTw8cDofoUoiE4Ayojf2XE++ZoaEpKAiBB14XXYV7eEMhEXkT10GXMczQkKTT6QCDQXQZRETCcB10HS8zERERkabxzIxiEhISUFxcjNjYWNGlEAnBGVAb+y8nhhnFGAwGJCUliS6DSBjOgNrYfznxMpNiTCYTtm3bBpPJJLoUIiE4A2pj/+XEMKOYtrY2HDp0CG1tbaJLIRKCM6A29l9ODDNERESkaQwzREREpGkMM0RERKRpDDOK0ev1mDZtGvR6tp7UxBlQG/svJ3ZTMXa7HR9++CHsdrvoUoiE4Ayojf2XE8MMERERaRrDDBEREWkawwwRERFpGsOMYoxGIxYsWACj0Si6FCIhOANqY//lxO9mUkxsbCy2bt0qugwiYTgDamP/5cQzM4rp7u5GQ0MDuru7RZdCJARnQG3sv5wYZhRTW1uLpUuXora2VnQpREJwBtTG/suJl5loSHI4HLhptYkuwy0hwYHQ6XReOZbD4QC09i/HoCCv/f6JiNzBMEND0k2rDSM+u090GW7p+GAVQkOGeedg3d2wLV/tnWP5SeCB1wGDQXQZRKQgXmYiIiIiTWOYISIiIk3jZSbFpKam4vTp06LLIBKGM6A29l9OPDNDREREmsYwo5j6+nqsXbsW9fX1okshEoIzoDb2X068zKQYq9WKCxcuwGq1ii6FSAjVZqDjZg/OXf4EZy9ZcPHKdVxru/2W/9Yb3fjR/guYnhaBaWkRMIYOF1ypf6jWf1UwzBARScbhcODkh814uaQSb7xVhx6bvd82N7t68e9FpwAAAQE6LJk7Dl9dkYbHZsbw84JIcxhmiIgkcu7yJ1i/5X2cuWhxeZ/eXgfeeKsOb7xVh4yUcLzy4j9h5pQoH1ZJ5F28Z4aISAI9PXa8+HIFZn75TbeCzKd9VH0Nn115GN/4cTm6b/V6sUIi32GYUUxMTAy2bNmCmJgY0aUQCSHjDNy02rBo41vY8t8fwmZzDPp4drsDL736ERZ85RjaO295ocKhQ8b+E8OMckaNGoXs7GyMGjVKdClEQsg2A923erE47y3878lGrx/7D+UmZH/195r7nrR7ka3/dBvDjGJaW1tx8OBBtLa2ii6FSAjZZmDD9/6I4x80+ez4Jz9sxrr/KvPZ8f1Ntv7TbQwzimlubkZRURGam5tFl0IkhEwzcLSsAa/8ptqtfcqLF6HhrSdRXrzI5X1+9b9/wa/fqnW3vCFJpv7T3zHMEBFp0I2OW1i/5X2394uODEHcg6GIjgxxa7+vbPsjPrne5fbzEfmD9GHGYrGgoKAAycnJMBgMGDt2LPLy8tDZ2Yl169ZBp9Nhz549osskH/nuxulwfLQO//r4BKePv/Pqv6DrzBpMTg7zc2X+8a6lBcMPH8APr1wecJvhhw/g8VPyXEZQxWu/rcbVlpt+e76/tXbhvw8M/DoiEknqMHPu3Dmkp6ejqKgIZrMZkyZNQk9PD3bt2oUVK1agsrISAJCZmSm2UPKZF1/+EOdrruGH/zEbsQ/2/Zfocysn47GZMfivlytw8WNePyftsNsdePlApd+fd+8bl2Fz8gF8RKJJG2YsFgtycnJgNpuRn58Pk8mEiooKmM1mFBYWorS0FOXl5dDpdMjIyBBdrt+EhIRg9uzZCAlx7xSzVvXY7Fj9zfcQGjwMr774ubs/T0kYhe9+fQY++KgFRb84L7BC8jcZZuAP5SbU1N/w+/M2mDvxu7IGvz+vN8nQf+pP2jCzceNGNDY2YsOGDdixYweMRuPdxwoKCjB16lTYbDYkJCRg5MiRAiv1r/j4eOzevRvx8fGiS/GbDys/wfZX/4x/fjgO65dOhF6vw77vPgKdDlj9zfdgtw/+czlIO2SYgXfKTcKe+w9nxD23N8jQf+pPyjBTWVmJkpISREZGYvv27U63mT59OgBg6tSpAx4nOzsbOp0OL774oi/KFKK3txcdHR3o7VXrkz2/89MPce7yJ9iRPwu7v5GF2emj8cLus6iuaxNdml/c7O2Fpbvb6S/VyDADZy95/gm/g3/uT4Q9tzfI0H/qT8owU1xcDLvdjtzcXIwYMcLpNsHBwQAGDjMHDhzAuXPnfFWiMDU1NZg7dy5qampEl+JXNpsDq7/5HgxBAfjqijSUVZix8/9eEF2W32ytuogxv3/T6S/VyDADFZXiAsWHlz+Bw6Hds5ky9J/6k/KLJk+cOAEAmDNnzoDbNDbe/rRMZ2Hmxo0beO6557Bjxw6sXLly0PXMmDEDZrN50MdxZtmyZW5t39LSAgA4evQozp4969I+S5YscbuuwbJjGBD+Ta8es63jFrpv9WL4sAD8rqwB3l6PJ6SkQI8erxwrWK/HpcwsrxwLAJ6OH4+lY8Y6fSz7g3e98hwpKSmw2v1/c6isMzAQB4DmsP8CdM7/LVpevOieb7uOjgy++9+Gt54ccDuz5SZm/p9D/X7e3tmDuLEJ0GHonNlw5zXgSf+BofUakFV0dDTOnDnj0b5Shpn6+noAwLhx45w+brPZcPLkSQDOw8wLL7yAlJQU5ObmeiXMmM1mXL16ddDHcaazs9Ot7a1W693/urqvr2q/J91wINy7h/z51s9h+LAAXLrSim8+k4kDx2rxl8Z2rx3f1NQEOLzzPTYhAQFAplcOBQBIHjECn4960HsHdKKpqQk3BZy6l3YGBqQDwgc+qX7nc2TuJzBA79J2zjSZmgH70LlE6c5rwJP+A0PtNUCfJmWYufMCvfOi/bSSkhJYLBYYjUYkJib2eezMmTP42c9+5lZiv5/o6GivHevTQkPdW4zu/NkEBwe7vG9sbKzbdQ2WHcPgzdsMv/7lSZgzaww27zqDN9+pR0XJ43ht6+fw2Nrfee05YsaM8eqZGa0ZM2aMkDMzss7AvVx12ACd8+XbbLn3Z89ERwYjMEAPW68dZovzNfJ+xxkTMxo6DJ23aLvzGvCk/8DQew3IaDB/V0oZZqKjo9Ha2oqKigpkZfU9VW8ymbBp0yYAQEZGBnQ63d3Hent78eyzz2LDhg2YPHmy1+rx9LSZK8rLy93a/vLlyyguLkZ2djZSU1Nd2mfnzp0eVDY4nTd7MOKz+7xyrOT4kdieNwOnz/8Nha99BLvdgRd/UoHteTPx9S9Pwu5fXvLK89RUVyM0ZJhXjuXo6oJt+WqvHMtfqquroTMY/P68ss7AvSQvPIArDc7PKjq7NPSPGt56EnEPhsJssWLs/F+5/dzRkcG4+tFf3d7Pl9x5DXjSf2DovQaoL+39888F8+bNAwAUFhaiuvrv31tSXl6OOXPmwGK5/U6AT39Y3p49e9Dc3CzVu5c+LTk5GceOHUNycrLoUvxCpwN+8Z1HEKDXYfU33737Nuzv//w8yi/8DdvzZmB8nPE+RyGZyDAD0ydFKvnc3iBD/6k/KcNMQUEBIiIi0NDQgMmTJyM9PR0TJkzArFmzMH78eMydOxdA3/tlLBYLvvWtb+Hb3/42bDYbrl+/juvXrwMAurq6cP36ddgFnEL3tsDAQISFhSEwUMqTcv3kr07Hw9MexLdfrsDl2r+/Ddtud2DNt95DYIAer2393D2OQLKRYQampwkMMwKf2xtk6D/1J2WYiYuLQ1lZGRYuXAiDwYC6ujqEh4dj7969KC0tvXu25h/DTGNjI9rb2/Hss88iLCzs7i/g9hmesLAw/PWvQ+vUqicaGxuRn59/991cMktNHIXvfO0z+NOfW/CD1/u/DfvSlet48ScVeHRGDL7+5UkCKiQRZJiBLz7q/J1psj+3N8jQf+pP2mialpaGI0eO9Pt5R0cH6urqoNfrMWXKlLs/T05OxjvvvNNv+zlz5mD16tVYs2aNT2/k9ZeOjg6UlZVh/fr1okvxucu1bQie+fo9t3np1Y/w0qsf+aki/3s0cjRu5Sy/5zb3e1w2MszApKQwPDYzBn/w8ycBz5wSiZlTovz6nN4mQ/+pP2nDzEAuXrwIh8OBlJSUPt/NMWLECDz22GNO90lISBjwMSIiEb66Is3vYeYry9P8+nxErpLyMtO9nD9/+0sF7/U1BkREQ90Tnx+Hh6f59rOD/tFn0iKwciFvmqWhSbkzM+6GGS1/bDcRySsgQI/XtnwOU7/0W3R1+/bDCocF6vHz7zyCYcOU+/cvaYRyr0zVz8xERUUhLy8PUVHavu5N5CmZZiAlYRR+kD/LrX3MlptobO6874fr/aNtG6YjI8XLH8ktiEz9p79T7szMne9tUlVERARyc3NFl0EkjGwz8NUnJ8FksWLbT8+5tP39PlTv055/ajI2/Wu6B5UNTbL1n25T7syM6m7cuIHjx4/jxo0bokshEkLGGdj6tc/gu1+f7vXjfvOZTPzgP2b3+aR0rZOx/8Qwo5ympiZs3rwZTU1NokshEkLGGdDpdNi8PhN/eO1fvPKJ1mOjQ/H7vQvwnQ3TpQoygJz9J4YZIiJpPDojBh+9sQQF/5qOUcbhbu9vDB2G51ZOxoXfPIH5WfxiRdIO5e6ZISKSWWjIMBQ+PwvffnYafvW/f8Ev3qzB2UoLrF3O3/FkCArAtNQIrMpJRu7CJBhD3Q9BRKIxzBARSSg0ZBjWPTER656YCJvNjsu113Hh41Z0Wm2w2x0IDR6GKRPCkJb4AN9yTZrHMKOYoKAgTJw4EUFBQaJLIRJCxRkIDNRjyoRwTJkgx9urB0PF/quAYUYxiYmJ2L9/v+gyiIThDKiN/ZcTzy0SERGRpjHMKKaqqgoPP/wwqqqqRJdCJARnQG3sv5wYZhTjcDjQ09PD75wiZXEG1Mb+y4n3zNCQFBIciI4PVokuwy0hwV4cp6AgBB543XvH8wfeUElEgjDM0JCk0+kQGjJMdBnC6HQ6wGAQXQYRkSbwMhMRERFpGs/MKCYhIQHFxcWIjeVHlZOaOANqY//lxDCjGIPBgKSkJNFlEAnDGVAb+y8nXmZSjMlkwrZt22AymUSXQiQEZ0Bt7L+cGGYU09bWhkOHDqGtrU10KURCcAbUxv7LiWGGiIiINI1hhoiIiDSNYYaIiIg0jWFGMeHh4Vi9ejXCw8NFl0IkBGdAbey/nHQOfkEFERERaRjPzBAREZGmMcwQERGRpjHMEBERkaYxzBAREZGmMcwQERGRpjHMEBERkaYxzBAREZGmMcwQERGRpjHMEBERkaYxzBAREZGmMcwQERGRpjHMEBERkaYxzBAREZGmMcwQERGRpjHMEBERkab9Pxi7uv/DptLMAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc = q_algo.export(\"qiskit\")\n", "qc.draw(\"mpl\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoUAAAH5CAYAAAD3IUTzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5+UlEQVR4nO3deVTVdeL/8de9bAKyCKhIIOKSmmi4ZmiCG5o2VpNpVqbOZKWjjuNM9WsmM1t0bBnrqzW5hWU2mZbalAalouWGS7iVCikCKiYugKhs9/7+8Hvv1yuLiMDl4vNxjme678/73vu+9kfP+awGs9lsFgAAAG5pRnsvAAAAAPZHFAIAAIAoBAAAAFEIAAAAEYUAAAAQUQgAAAARhQAAAJDkbO8F3GpMJpNOnDghLy8vGQwGey8HAADUcWazWbm5uQoKCpLRWPb+QKKwhp04cUIhISH2XgYAALjFpKenKzg4uMztRGEN8/LyknTlX4y3t7edVwMAAOq6nJwchYSEWBukLERhDbMcMvb29iYKAQBAjbneaWtcaAIAAACiEAAAAEQhANSoTZs26Xe/+52CgoJkMBi0atUqm+1ms1kvvfSSmjRpInd3d/Xr10/JycnW7ampqfrjH/+osLAwubu7q0WLFpo2bZoKCgpK/b6UlBR5eXnJ19e3Gn8VgLqAKASAGpSXl6c777xT7733Xqnb33jjDf3P//yPPvjgA23fvl2enp4aMGCALl++LEk6ePCgTCaT5s2bpwMHDmj27Nn64IMP9Pe//73EZxUWFmrEiBG65557qvU3AagbDGaz2WzvRdxKcnJy5OPjo+zsbC40AW5xBoNBK1eu1AMPPCDpyl7CoKAg/fWvf9Xf/vY3SVJ2drYaN26sxYsX65FHHin1c9588039+9//1pEjR2zGn3/+eZ04cUJ9+/bV5MmTdf78+er8OQBqqYq2B3sKAaCWOHr0qDIzM9WvXz/rmI+Pj+666y5t3bq1zPdlZ2fLz8/PZmz9+vVavnx5mXskAeBaRCEA1BKZmZmSpMaNG9uMN27c2LrtWikpKZozZ46efvpp69iZM2c0evRoLV68mCMSACqMKAQAB3X8+HENHDhQDz/8sMaOHWsdHzt2rB599FH16tXLjqsD4GiIQgCoJQIDAyVJp06dshk/deqUdZvFiRMn1Lt3b0VGRmr+/Pk229avX6+33npLzs7OcnZ21h//+EdlZ2fL2dlZH374YfX+CAAOiyeaAEAtERYWpsDAQK1bt04RERGSrpwgvn37do0bN8467/jx4+rdu7c6d+6s2NjYEg+437p1q4qLi62vV69erVmzZmnLli267bbbauS3AHA8RCEA1KALFy4oJSXF+vro0aNKSkqSn5+fmjZtqsmTJ+u1115Tq1atFBYWpqlTpyooKMh6hfLx48cVHR2t0NBQvfXWWzp9+rT1syx7E9u2bWvznTt37pTRaFR4eHj1/0AADosoBIAatHPnTvXu3dv6esqUKZKkUaNGafHixXruueeUl5enp556SufPn1fPnj317bffql69epKk7777TikpKUpJSVFwcLDNZ3OHMQA3g/sU1jDuUwgAAGoS9ykEAABAhRGFAAAAIAoBAABAFAIAAEBEIQAAAEQUAgAAQEQhAAAARBQCAABARCEAAABEFAIAAEBEIQAAAEQUAgAAQEQhAAAARBQCAABARCEAAABEFAIAAEBEIQAAAEQUAgAAQEQhAAAAJDnbewGoHmPfsfcKAABARSyYbO8VXMGeQgAAABCFAAAAqKVR+Mknn+jpp59Wly5d5ObmJoPBoMWLF5c5PycnR1OmTFFoaKjc3NzUrFkzPfvss7pw4UKp800mk+bMmaP27dvL3d1dDRs21IgRI3TkyJEyvyMuLk5RUVHy8vKSt7e3evfurXXr1t3sTwUAAKgVamUUvvjii5o/f76OHTumJk2alDs3Ly9PUVFRmj17ttq0aaO//OUvat26td566y316dNHly9fLvGep59+WpMmTZLZbNakSZM0cOBAffnll+ratauSk5NLzP/kk080cOBA/fLLLxo9erRGjRqlAwcOqH///lqxYkWV/W4AAAB7qZVRuHDhQqWmpur06dN65plnyp37xhtvKCkpSc8//7zi4uL0z3/+U3FxcXr++ee1Y8cOzZ4922b+hg0btHDhQvXq1Uu7d+/WrFmztGTJEq1atUpnz57VhAkTbOafO3dOEydOVEBAgHbv3q05c+Zozpw52r17t/z9/TVu3Djl5uZW+d8BAABATaqVUdivXz+FhoZed57ZbNbChQtVv359TZ061Wbb1KlTVb9+fS1cuNBmfMGCBZKkV199Va6urtbxe++9V9HR0YqPj1daWpp1fPny5Tp//rwmTpyo4OBg63hwcLAm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rdShQwc1atRIX375pY4dO6aIiAitXr1aISEhdvwFAG5V3KcQAKqQyWSSJH3wwQfy8/NT//79rdvOnj0rZ2dnmc1mvffee4qNjdXbb7+tX375RWPGjFFSUpK+/fZbey0dwC2OKASAKmS51czSpUsVExNjvR+hJB05ckTJyckaPny4evbsKWdnZxUUFKhevXoaN26cPDw8tHfvXm5YDcAuiEIAqCKWmNu2bZtOnTqlZs2a2dx8OjExURkZGRo3bpykK3sVLReUWC4ycXFxsbllDQDUFC5vA4AqYom5RYsWSZL+/e9/6+eff9aAAQN055136rvvvlPTpk111113WQPS8p7Dhw8rLy9PMTEx9lk8gFseUQgAVezZZ59Vs2bN9MUXX+irr77SV199JX9/f+Xl5enee++VdCUGLUF4/vx5bdiwQfXr19fAgQPtuXQAtzCuPgaAalJUVKTExER9/vnnWrlypdLT0yVJHTp0UHR0tGJiYjRw4EAdOnRI9957r/r27WvdywgANY0oBIAakJubq40bN2rp0qVas2aNcnNz5erqqm7duqlBgwb673//q8TERHXp0sXeSwVwiyIKAaCGZWZm6ptvvtGnn36qH374QUVFRWrcuLFOnjxp76UBuIURhQBgRwcPHtSSJUvUsmVLjRkzxt7LAXALIwoBAADAfQoBAABAFAIAAEBEIQAAAEQUAgAAQEQhAAAARBQCAABARCEAAABEFAIAAEBEIQAAAEQUAgAAQNL/BxiXs8lKQi0SAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from qiskit import QuantumCircuit, transpile\n", "from qiskit.visualization import plot_histogram\n", "from qiskit_aer import AerSimulator\n", "\n", "qc.measure_all()\n", "simulator = AerSimulator()\n", "circ = transpile(qc, simulator)\n", "result = simulator.run(circ).result()\n", "counts = result.get_counts(circ)\n", "\n", "counts_readable = q_algo.decode_counts(counts)\n", "plot_histogram(counts_readable)" ] } ], "metadata": { "kernelspec": { "display_name": "qlasskit_310-env", "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.10.13" } }, "nbformat": 4, "nbformat_minor": 2 }