{ "cells": [ { "cell_type": "markdown", "id": "c9cba238-94ae-4e05-94ff-17f5d5a7a45b", "metadata": {}, "source": [ "# Grover's Example" ] }, { "cell_type": "code", "execution_count": 1, "id": "fd1a79ee-2455-4bdd-ad86-fa00ddd60327", "metadata": {}, "outputs": [], "source": [ "# This example is from:\n", "# https://quantum.cloud.ibm.com/docs/en/tutorials/grovers-algorithm\n", "\n", "# Modified for use with Quantum Rings SDK" ] }, { "cell_type": "code", "execution_count": 2, "id": "4821da69-f459-4e32-a8b3-6a79f99bd13a", "metadata": {}, "outputs": [], "source": [ "# Built-in modules\n", "import os\n", "import math\n", "\n", "# Imports from Qiskit\n", "from qiskit import QuantumCircuit\n", "from qiskit.circuit.library import grover_operator, MCMTGate, ZGate\n", "from qiskit.visualization import plot_distribution\n", "\n", "# Imports from Qiskit Runtime\n", "#from qiskit_ibm_runtime import QiskitRuntimeService\n", "#from qiskit_ibm_runtime import SamplerV2 as Sampler\n", "\n", "from quantumrings.toolkit.qiskit import QrRuntimeService\n", "from quantumrings.toolkit.qiskit import QrBackendV2\n", "from quantumrings.toolkit.qiskit import QrSamplerV2 as Sampler\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "17b8fc5d-242a-474c-bf12-a197e65db1bb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'scarlet_quantum_rings'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To run on hardware, select the backend with the fewest number of jobs in the queue\n", "#service = QiskitRuntimeService(channel=\"ibm_quantum\")\n", "#backend = service.least_busy(operational=True, simulator=False)\n", "#backend.name\n", "\n", "my_token = os.environ[\"QR_TOKEN\"]\n", "my_account = os.environ[\"QR_ACCOUNT\"]\n", "my_backend = \"scarlet_quantum_rings\"\n", "\n", "qr_services = QrRuntimeService(name = my_account, token = my_token)\n", "qr_backend = qr_services.backend(name = my_backend, num_qubits=5)\n", "qr_backend.name" ] }, { "cell_type": "code", "execution_count": 4, "id": "9535695f-2771-443c-8b4b-bc52e7b54c3b", "metadata": {}, "outputs": [], "source": [ "def grover_oracle(marked_states):\n", " \"\"\"Build a Grover oracle for multiple marked states\n", "\n", " Here we assume all input marked states have the same number of bits\n", "\n", " Parameters:\n", " marked_states (str or list): Marked states of oracle\n", "\n", " Returns:\n", " QuantumCircuit: Quantum circuit representing Grover oracle\n", " \"\"\"\n", " if not isinstance(marked_states, list):\n", " marked_states = [marked_states]\n", " # Compute the number of qubits in circuit\n", " num_qubits = len(marked_states[0])\n", "\n", " qc = QuantumCircuit(num_qubits)\n", " # Mark each target state in the input list\n", " for target in marked_states:\n", " # Flip target bit-string to match Qiskit bit-ordering\n", " rev_target = target[::-1]\n", " # Find the indices of all the '0' elements in bit-string\n", " zero_inds = [ind for ind in range(num_qubits) if rev_target.startswith(\"0\", ind)]\n", " # Add a multi-controlled Z-gate with pre- and post-applied X-gates (open-controls)\n", " # where the target bit-string has a '0' entry\n", " qc.x(zero_inds)\n", " qc.compose(MCMTGate(ZGate(), num_qubits - 1, 1), inplace=True)\n", " qc.x(zero_inds)\n", " return qc" ] }, { "cell_type": "code", "execution_count": 5, "id": "858ed3bd-4bb4-435d-b0a9-d57226fdfbec", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "marked_states = [\"011\", \"100\"]\n", "\n", "oracle = grover_oracle(marked_states)\n", "oracle.draw(output=\"mpl\", style=\"iqp\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "ac0ba948-4ead-4dd3-ad52-890ac735af54", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grover_op = grover_operator(oracle)\n", "grover_op.decompose().draw(output=\"mpl\", style=\"iqp\")" ] }, { "cell_type": "code", "execution_count": 7, "id": "427d257b-bdc7-4481-a123-b14febc6bed8", "metadata": {}, "outputs": [], "source": [ "optimal_num_iterations = math.floor(\n", " math.pi / (4 * math.asin(math.sqrt(len(marked_states) / 2**grover_op.num_qubits)))\n", ")" ] }, { "cell_type": "code", "execution_count": 8, "id": "4698d640-82b3-4a72-9797-a8f8672e0af5", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc = QuantumCircuit(grover_op.num_qubits)\n", "# Create even superposition of all basis states\n", "qc.h(range(grover_op.num_qubits))\n", "# Apply Grover operator the optimal number of times\n", "qc.compose(grover_op.power(optimal_num_iterations), inplace=True)\n", "# Measure all qubits\n", "qc.measure_all()\n", "qc.draw(output=\"mpl\", style=\"iqp\")" ] }, { "cell_type": "code", "execution_count": 9, "id": "cbed4ccf-08f3-4c18-9e15-957ae5fa36c5", "metadata": {}, "outputs": [ { "data": { "image/png": "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KiZPnVGmILY8QWSai6406QaSu+++u1z9BAAAAICKEsTVcGUN4gByNcTt7X9+PKbP+nruttI0a9I4zjllSDRq2CCqo1ffeCf++vRLG93m+CO/E717do3qaMGiJXHDH/4SS5Yt3+A2PbpsGycPOWSD4RoAAAAA5CtDU1KpVhcVxQfTZmZVDgDfpHbt2vH9w/aP+huZK+x7hw2otiFc0m+XnlnQtCG77tit2oZwSbMmjeLog/fd4Pr0ux88aIAQDgAAAICCJIijUk16b2r84cEn486HRgrjgDJp2bxZHH7AXqWu27vPzrF9pw5RnaWAacigAdFoi/XDxjQn3lEH9o/qrtcOXWK3nbYvdV0K6VJYBwAAAACFqMYEcelCZ/Hd9Gmus3333TeaNWsWrVq1iiFDhsSUKVNKtn3iiSey+XO22mqrbJujjjoqPvjggw0ee/ny5XHjjTfG3nvvne2T5lDr0aNHnH/++TFv3rxS93n11Vfjl7/8ZfTt2zebt6hBgwbRvn37+P73vx+vvbbh+ZKefPLJOPTQQ2PrrbeOevXqRcuWLaNnz57ZfG1jx46Nqq6GGzV2Qva8Y4dtVC8AZdZ3lx1ih67brbWsdYutYtCAflETNG3SKI45+NvrLf/eoftl88PVBClwTMHjmlI4l0I6AAAAAChUNWaOuOJQ6JZbbokzzzwz2rVrF9tss0289957sXTp0iwE++c//xn33XdfnHvuudG2bdssICten56/9dZb0bp167WO+8knn8SgQYOyfdMQa9tuu20W3r3//vtZQLfddtvFc889F126rH0hsVu3bln416JFi+y96tevHx9//HHMnz8/6tatGw888EAMHjx4rX1uu+22+OlPf5o9TwFcx44ds77NmDEjm9/ttNNOi//7v/+rsjni3np3Svx5+LPRsEH9+OXpP6gxF4+ByrFwcZor7OFYvHRZ1K5dK8448bvRoe3an7nV3UMjnosJk76+8aN/n53jiIF7R00yZfrs+P0DT2TPUyh37infy75TAAAAAKBQ1ZiKuGLDhg2Le+65J2bNmhUTJkyImTNnZlVp6XWqKrvwwguz9bNnz87Wp5CrT58+MXfu3Lj++uvXOlbKMI899tgshDvssMOyYG3atGlZYJcq4dLxUrh24oknrtePSy65JKuyS8HbpEmTsvf69NNP49FHH80q6v7f//t/WTBW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", "text/plain": [ "
" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", "\n", "target = qr_backend.target\n", "pm = generate_preset_pass_manager(target=target, optimization_level=3)\n", "\n", "circuit_isa = pm.run(qc)\n", "circuit_isa.draw(output=\"mpl\", idle_wires=False, style=\"iqp\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "78c951f2-ffc3-495b-b9ec-1b3509cd65e2", "metadata": {}, "outputs": [], "source": [ "# To run on local simulator:\n", "# 1. Use the SatetvectorSampler from qiskit.primitives instead\n", "sampler = Sampler(backend=qr_backend)\n", "sampler.options.default_shots = 10_000\n", "result = sampler.run([circuit_isa]).result()\n", "dist = result[0].data.meas.get_counts()" ] }, { "cell_type": "code", "execution_count": 11, "id": "9e66a61b-2fba-4753-840d-3a01305d479f", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAHqCAYAAAD4TK2HAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAANXFJREFUeJzt3QmcVWX9P/Avqzu4oCDIImkgKe4giGsIKplbbpm4olaWaKi5gaglqblUmmmppSmo5Y4rSu5a4p67Eig7KqAo+//1PP1m/jM4QwPMMHOY9/v1uq/Lee655z5n7Jw+97nP0mDRokWLAgAACqZhbVcAAACWhSALAEAhCbIAABSSIAsAQCEJsgAAFJIgCwBAIQmyAAAUkiALAEAhNa7tChTFwoULY8KECbHWWmtFgwYNars6AAArpbRW16xZs6J169bRsOGS21wF2SpKIbZt27a1XQ0AgHph/PjxsdFGGy1xH0G2ilJLbMkftVmzZrVdHQCAldLMmTNz42FJ9loSQbaKSroTpBAryAIA1KyqdOU02AsAgEISZAEAKCRBFgCAQhJkKbyrrroqOnToEKuuump07949XnjhhUr3vfHGG3Ofm7KP9L6y/v73v0efPn1ivfXWy6+//PLLXzvOtddeG7vuumvuL532+eyzz2rk3ACAygmyFNqIESPi1FNPjSFDhsSYMWNiyy23jL59+8aUKVMqfU8KnxMnTix9/Oc//yn3+hdffBG9evWKX/3qV5UeY/bs2bHnnnvGWWedVa3nAwBUnVkLKLTLLrssBgwYEEcffXTevuaaa+L++++P66+/Pn7+859X+J7UgtqqVatKj3nEEUfk57Fjx1a6z8CBA/Pz6NGjl/MMAIBlpUWWwpo7d268+OKL0bt379KytAJI2n722Wcrfd/nn38e7du3z3PU7bvvvvHGG2+soBoDANVJkKWwpk2bFgsWLIiWLVuWK0/bkyZNqvA9nTp1yq21d999d9x888156eGePXvGRx99tIJqDQBUF10LqFd69OiRHyVSiN1ss83iD3/4Q1xwwQW1WjcAYOlokaWwWrRoEY0aNYrJkyeXK0/bS+oDW1aTJk1i6623jvfee6+GagkA1BRBlsJq2rRpbLvttjFq1KjSstRVIG2XbXVdktQ14bXXXosNN9ywBmsKANQEXQsotDT11pFHHhnbbbdddOvWLa644oo8fVbJLAb9+/ePNm3axEUXXZS3zz///Nhhhx1ik002yXO/XnLJJXn6reOOO670mJ988kmMGzcuJkyYkLfffvvt/JxaeUtaelMf3PQoaclNYXittdaKdu3axbrrrrvC/w4AUB8JshTaIYccElOnTo3BgwfnYLnVVlvFgw8+WDoALAXSNJNBiU8//TRP15X2XWeddXKL7jPPPBNdunQp3eeee+4pDcLJoYcemp/TXLXnnXde6TRfQ4cOLd1n5513zs833HBDHHXUUSvgzAGABosWLVpU25UogpkzZ0bz5s1jxowZeUJ9AABqN3PpIwsAQCEJsgAAFJIgCwBAIQmyAAAUkiALAEAhCbIAABSSIAsAQCEJsgDACnfVVVdFhw4dYtVVV43u3bvHCy+8UKX3DR8+PBo0aBD77bdfufLPP/88TjrppNhoo41itdVWywvdpMVrynr//fdj//33j/XXXz/PT3rwwQfH5MmTq/W8WLEEWQBghRoxYkReYjytmDhmzJjYcssto2/fvjFlypQlvm/s2LExaNCg2Gmnnb72WjpeWtnx5ptvjjfffDMGDhyYg21arTFJy5f36dMnh+DHHnssnn766Zg7d27ss88+sXDhwho7V2qWlb2qyMpeAFA9Ugvs9ttvH7/73e/ydgqSbdu2jZ/85Cfx85//vML3LFiwIC8Hfswxx8STTz4Zn332Wdx1112lr2+++eZ52fJzzz23tCwtQ77XXnvFhRdeGA8//HD+d1qqvOT/x9P/p6flytNrvXv3rvHzpmqs7AUA1EmpFfTFF18sFxwbNmyYt5999tlK33f++efHBhtsEMcee2yFr/fs2TO3vn788ceR2ugef/zxeOedd3IrbDJnzpzcGrvKKquUvid1a0if/dRTT1XrObLiCLIAwAozbdq03LrasmXLcuVpe9KkSRW+JwXNP/3pT3HddddVetzf/va3uV9s6iPbtGnT2HPPPXM/3NSKm+ywww6xxhprxBlnnBGzZ8/OXQ1SN4VUl4kTJ1bzWbKiCLIAQJ01a9asOOKII3KIbdGixRKD7HPPPZdbZVOL769//ev48Y9/HI8++mh+PQ3wuv322+Pee++NNddcM/90nbonbLPNNrlVlmJqXNsVAADqjxRGGzVq9LXZAtJ2q1atvrZ/mmkgDfJKg7JKlAzOaty4cbz99tvRunXrOOuss+LO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UCtBNq3gVbKq19JI75k/f/5Svw8AAKolyPbv33+ZgiwAANT69FsAAFBXGOwFAEAhCbIAABSSJWoBACgkS9QCAFBIlqgFAKCQLFELAEAhGewFAED9DLJ33nln7LvvvnkZ2ubNm+fn/fbbL+66667qqSEAACxP14LFpWVnv//978ff/va3WLRoUTRu3DjWW2+9mDRpUtxzzz1x7733xoEHHhi33HJLfg0AAOpEi+xFF10Ud9xxR+y0007x5JNPxldffRUTJ07Mz0888UT06tUrh9xhw4ZVa4UBAGC5guwNN9wQnTt3jkcffTR23HHHaNjwv4dKzynEpvJvfvObcf311/tLAwBQd4Jsan3dZ599Ku020KRJk/x62g8AAOpMkG3btm18/vnnS9zniy++yIO/AACgzgTZ4447Lm677bZKW1w//vjjGDFiRN4PAACqW5WnExg3bly57YMPPjiefvrp2HrrrWPgwIG5X2xaunby5Ml58NeVV16Zyw466KBqrzQAAFQ5yHbo0CEaNGjwtfI09dbZZ59dYXmahuu+++7LU3UBAECtBNn+/ftXGGQBAKBOB9kbb7yxZmsCAAArcolaAACoDYIsAAArd9eCisyaNSt+97vf5VW8JkyYEHPmzPnaPqlf7fvvv788HwMAANUXZKdOnRo9e/bMIbVZs2Yxc+bMaN68ecydOze+/PLLvE/r1q3zCl8AAFBnuhacd955OcT+5S9/iU8//TSXnXLKKXk1r+effz66deuWp+x64403qrO+AACwfEF25MiR8e1vfzt+8IMffG1aru233z4eeOCBGDt2bAwdOnRZPwIAAKo/yKaladOqXiUaNWpU2qUgWWeddWKvvfbKy9gCAECdCbKpP+y8efPKBdePPvqo3D6p72xashYAAOpMkO3YsWPuOlAitc4+8sgjMX369LydWmfvvffeaNeuXfXUFAAAqiPI9unTJ0aNGhWzZ8/O2yeccEJMmTIlttxyyzjooINi8803z4PBjjrqqGX9CAAAqP4ge+KJJ8Z1111XGmQPOOCAuOSSS/KsBX/7299i0qRJceqpp8Zpp522rB8BAADVP4/shhtuGIcccki5sp/97GcxcODAmDZtWmywwQZfm80AAADqxMpeFUmzF7Rs2bK6DwsAANXTtaDsNFyXX3559O/fP/bdd9/8nLZT+fK46qqr8oIKq666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gFe7du2W9WMAAKB6g2zHjh1Lp9v66U9/Wul+aZ/58+cv68cAAED1Btn+/fubXgsAgOIF2bTYAQAAFG6wFwAAFHZlr2TOnDkxcuTIvLLXjBkzonnz5nllr7333jtWWWWV6qklAABUZ5C955574vjjj4+pU6fmQV8lUt/ZDTbYIK699trYZ599lucjAACgeoPsqFGj8hRcjRo1ynPK7rTTTnn6rcmTJ8cTTzwRN998cxxwwAHx0EMPxe67776sHwMAANUbZIcMGRKrrbZaPPPMM7H55pt/bUaDNCXXjjvumPcTZAEAqDODvVKf2EMOOeRrIbZE165d4+CDD44xY8YsT/0AAKB6g+zqq68e66+//hL3Sf1k034AAFBngmzv3r3j0UcfXeI+6fU99thjWT8CAACqP8heeumlMWXKlNwfdvz48eVeS9tHHHFETJs2Le8HAAB1ZrBXCqrrrLNO/PWvf43hw4dHu3btSmctGDduXCxYsCD3k/3BD35Q7n1paq404wEAANRKkB09enTpv+fPnx8ffPBBfpT1yiuvfO19KcgCAECtBdmFCxcu94cDAMAK7yMLAAArRZBN/WLTil4AAFCoIHvDDTfEbrvtVl2HAwCAJdK1AACAQhJkAQAoJEEWAID6HWSbN2+eF0UAAIBCBdmBAwfGhx9+WF2HAwCAJdK1AACAlXtlr5I5Yrt16xarrrrqUs0Zu/POOy9b7QAAYHmD7K677hoNGjSIN998M775zW+WblfFggULqvoxAABQvUF28ODBObi2aNGi3DYAANTpIHveeectcRsAAFYkg70AAKhfQXbWrFnxwQcfxLx588qVjxgxIg4//PA49thjY8yYMdVRRwAAWPauBYs7/fTT4+abb47JkydHkyZNctnvf//7OOmkk2LRokV5e/jw4fHiiy9G586dl/VjAACgeltk//GPf0Tv3r1j9dVXLy0bNmxYtGnTJk/Nddttt+VAe8kllyzrRwAAQPW3yE6cODH23HPP0u00Ldf48ePj4osvjl69euWyO+64Y6nmmwUAgBpvkZ0zZ040bdq0XAttmo6rT58+pWUdO3aMjz/+eFk/AgAAqj/IbrTRRvHqq6+Wbt93332x7rrrRteuXUvLpk+fHmuuueayfgQAAFR/14K99torrrrqqhg0aFBesvbBBx+M/v37l9vnnXfeiXbt2i3rRwAAQPUH2TPPPDPuvffeuOyyy/L2hhtuGOeff37p61OmTImnn346z2IAAAB1Jsi2atUq3njjjRg1alTe3nnnnaNZs2alr0+bNi3PWNC3b9/qqSkAAFRHkE1WW221+M53vlPha126dMkPAACoCZaoBQCg/rXILliwIC988Oijj8aECRPylFyLS1NylXQ/AACAWg+yX3zxRZ4z9rnnnssreKXAWrI0bVKynZ4BAKDOdC248MIL49lnn42hQ4fmgV0ptJ533nl5xa8RI0bkxRAOOuigCltpAQCg1oLs3//+99hhhx3inHPOyQshlGjZsmUOsI8//njucpBmLgAAgDoTZMeNG5eDbOmBGjYs1/qaVv7q169f/PnPf17+WgIAQHUF2TXWWCOH1xLNmzfP3QoWn2s2BV4AAKgzQbZ9+/blQurmm28ejz32WGmrbOozm2YrSCt+AQBAnQmy3/72t3M/2Pnz5+ftI488MgfbHj16xGmnnRa9evWKl19+OQ488MDqrC8AACzf9FsDBgyI9dZbL6ZOnZpbXY855ph46aWX4uqrr84BNkkhNs1kAAAAdSbIbrrppnHGGWeUK/vtb38bgwcPjg8++CB3PUh9ZAEAoM6t7FWR9ddfPz8AAKBO9pEFAIBCtsimlbuqIi1R+/777y/rxwAAQPUG2YULF+aQurgZM2bEZ599lv+dBoE1bdp0WT8CAACqP8iOHTt2ia+deuqpMXny5HjkkUeW9SMAAGDF9pHt0KFDjBgxIj799NM4++yza+IjAACo52pssFeTJk1ijz32iNtuu62mPgIAgHqsRmctmD17dnzyySc1+REAANRTNRZkn3zyybj11lujU6dONfURAADUY8s82Gv33XevsHz+/Pnx8ccflw4GSyt9AQBAnQmyo0ePrrA8Tcm1zjrrRJ8+ffLMBamfLAAA1Kl5ZAEAoHBBtsSUKVNyV4IUbNu0aROtWrWqnpoBAEB1D/aaM2dOXHzxxbHpppvm1bu222676NatWw6yLVq0iFNOOWWJCyYAAMAKD7Ljx4+P7bffPs4888x4//33c5BNITY90r/TdFtXXnllDrePPvpo6fsmTpxoTlkAAGonyM6bNy/23nvveP311+Owww6LN998Mz766KN49tln8yP9O5UdfvjhOdDut99+uWU2Bd5evXrFW2+9VX01BwCgXluqPrJ/+MMf4o03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ElzTBZBmL/jhD39Y4TFXWWWV/Chr7bXXrrbzpO5JN0I3Q4Bice9eOf2vltg6G2ST1BJ65JFHxnbbbRfdunXLMw588cUXeRaDpH///tGmTZv8839y8sknxy677BK//vWvo1+/fjF8+PD417/+Fddee21+PbWgppB74YUXxqabbpqD7bnnnpuTfklYBgCgWOpkkD3kkENi6tSpeQGDNBgrtaI++OCDpYO1xo0blzsGl+jZs2fccssteXqts846K4fVNK3W5ptvXrrP6aefnsPw8ccfH5999ln06tUrHzMtoAAAQPE0WFSVIWGwEkuzU6TW/dQvevHuJADUTe7dJIIsAACFVOcWRAAAgKoQZAEAKCRBFgCAQhJkAQAoJEEWAIBCEmQBgEJLK4BSPwmy8H8WLFjgZghQQGUXSaJ+MY8s9d7zzz8f3bt3L1c2f/78fGN0cwSouyZMmBC33nprvo+nVT2/9a1vxWabbZb/veaaa0aKOGmZelZegiz12ttvv51veq1bt44999wzBgwYUC7Upstj3rx58dBDD0W3bt1Kl0kGoHaNHTs2Dj744Pjkk09i6623jtdeey2mTJkSG220Uey9994xaNCgaNGiRW1XkxqmuYl67fbbb48uXbrEsccem0Nt3759o1OnTjF48OB8k0zf5NNNct999425c+fWdnUB+D/Dhg2LDTbYIEaPHp3v5W+99VaMGTMmDjjggLj++uuja9eu8fDDD9d2NalhWmSp1370ox9F48aN49xzz83rdr/yyivx2GOP5Zvff/7zn3wjXH311ePjjz+ON954o7arC8D/2XHHHePAAw+MU089Nf9ylhoe0v08SeMdUqBNZXfeeacuBisxLbLU68Fd3/nOd6Jz586x/vrr55+j+vXrF+eff37+dn/ttdfGJptsEo8++mj87Gc/q+3qAlBG7969c//Y1AjRpEmTHGJToP3yyy/z+Iaf/vSn8frrr8c///lPIXYlpkUW/k/6Br/44K777rsvvvvd78bnn3+eW2YBqBv+9a9/xT777JMbIYYMGZIbJsp655138q9qqXuY+/fKS5Cl3kr/00+PJc1MMHTo0HjmmWfyYC8A6pb33nsvzjjjjBxq11tvvdzdIA30SmMeUmtt27Zt44477qjtalKDBFnqrYpaYBeXBhGkbgdpShcA6p4vvvgiRo0alcc3pG4EafaCFGrTIN4f/OAH0aFDh9quIjVIkKXeq0rLLAB1x8iRI+PTTz/NYx1Sq2uaHnGNNdaI2bNnR6NGjWLWrFmm3qonBFnqnXTz22abbfJo16OPPrpca2tqpU2DAtLjzTffjA033DDWXnvtWq0vAP+VAuqJJ54YjzzySF64Jt2jU4BNLbB9+vSJgw46KPeZreqvbhSf/8LUOzfddFOeWivdCLfYYos8j+wll1wSkydPzje9FGI/+uij+P73v58HCQBQN/zmN7/JXQf+9re/5fvziBEjcheCFGRvvPHGPBXXjBkz8r5CbP2gRZZ657jjjss/PZ199tk5sA4fPjzuuuuuPFfsTjvtlL/tp1B71lln5b5XANQNvXr1yq2uJ598crny1PqapkpMqzOmX9zS3LHUD76uUK+k+QZTV4LU+b9du3bRs2fPuPzyy/M63ekbfqtWreInP/lJnHLKKXkkLAB1Q5ojNt2/U0idPn16LkvdC1I/2dT6mroWXHXVVXkmgzR/LPWDFlnqZZhNN8HWrVt/rQ9VulGmb/VpYYTx48dHmzZtarWuAPx/zz33XBxxxBFx6KGHxsCBA3OXgrLSr2xpkZs0/Zb7d/2gRZZ6Z5VVVsn9YFOYXbwPVVodJs1HmFps3QQB6o7U7rbtttvGaaedFr///e/zyosnnHBCnibxww8/zC21abnxFGTdv+sPLbLUG9OmTcsDAy699NI8N2yzZs1yq2xauSu1wK622mq5hfaPf/xjLl98lRgA6obPPvssD+665ZZb4uWXX47mzZvHqquumvvHnnnmmbHDDjvUdhVZQQRZ6o1jjjkmXnnlldhrr71irbXWyi2yaYqt1IVg0003zaNde/ToUdvVBGAxX375ZW5sKCvFl1SelhBPMxmsueaa0b1791qrI7VDkKVeSP8zTze5NIn2LrvsUlr2/vvvx5NPPhnXXXddnrLltttus4oXQB3zs5/9LC8/m7oWpEG5qYtYRXOEr7POOvnenrqPUT/oI0u98O9//zs6duyYJ84ukW50qY9VWhQhLW/YuHHjuP3222u1ngCUl7oPpNll0gCv3XbbLXcdePzxx/M0iWmAbjJz5sx8L08ts0Js/aJFlnoh/fyU+rymqVpSv6o0mGvxm91ll12Wb5hpsBcAdWfu76ZNm8agQYPi1ltvzeMY0qI2W2+9dZ5Ttm/fvrmf7PHHH18abKk/tMhSL6S+VRdeeGH+1p6mbkmBdeLEiTnglkzJlaZ16dSpU21XFYD/kxof0q9paanw9JwWskkzFKTgut1228WwYcNi5513zrMXpHs79Y8WWeqV9LPTBRdcEPfee2/uM5tWiUn9rR566KFo0aJF/qbftWvX2q4mAGVmKEjdCFJDw9y5c/M0iWV/UfvrX/+aQ+xLL70UW265Za3WlRVPkKVemjJlStx33315adrUWrv55pvH9773vdhss81qu2oA/A9pqsQUX9Jy42mwblqydvbs2bVdLWqBIEu9t/jqXgAURxrfkJapTQslUP8IsgBAYaUBXqllVoNE/STIAgBQSL6+AABQSIIsAACFJMgCAFBIgiwAAIUkyAIAUEiCLAAAhSTIAgBQSIIsAACFJMgCABBF9P8A4wX+C1dD70MAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot_distribution(dist)" ] }, { "cell_type": "code", "execution_count": null, "id": "cdd32e59-2c26-4678-800f-3b7c2c95fc52", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.9" } }, "nbformat": 4, "nbformat_minor": 5 }