{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "9fb07d3a-5975-4222-95bc-44bdf9d16e9f",
   "metadata": {},
   "outputs": [],
   "source": [
    "from qiskit import QuantumCircuit, QuantumRegister, transpile\n",
    "from qiskit_ibm_runtime import QiskitRuntimeService\n",
    "service = QiskitRuntimeService.save_account(channel=\"ibm_quantum\", token=\"HIER IHR TOKEN EINSETZEN\", set_as_default=True, overwrite=True)\n",
    "\n",
    "from qiskit.providers.basic_provider import BasicSimulator\n",
    "backend = BasicSimulator()\n",
    "\n",
    "from qiskit.visualization import plot_histogram\n",
    "import random"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "4024bad1-00b6-4590-8e73-d98bbe45805f",
   "metadata": {},
   "outputs": [],
   "source": [
    "def oracle(qubits,secret):\n",
    "    # Bits so setzen, dass beim gesuchten Element 'secret' als Binärzahl qubits[2]qubits[1]qubits[0] nachher 111 rauskommt\n",
    "    if (secret==0 or secret==2 or secret==4 or secret==6):   \n",
    "        qubits.x(0)  # NOT auf qubits[0]\n",
    "    if (secret==0 or secret==1 or secret==4 or secret==5):   \n",
    "        qubits.x(1)  # NOT auf qubits[1]\n",
    "    if (secret==0 or secret==1 or secret==2 or secret==3):   \n",
    "        qubits.x(2)  # NOT auf qubits[2]\n",
    "    # nun ein von qubit[0], qubit[1] und qubit[2] kontrolliertes CNOT auf's Hilfqubit qubit[3]\n",
    "    controls = list(range(3))\n",
    "    qubits.mcx(controls,3)\n",
    "    # x-Qubits entsprechend oben zurücksetzen.\n",
    "    if (secret==0 or secret==2 or secret==4 or secret==6):   \n",
    "        qubits.x(0)\n",
    "    if (secret==0 or secret==1 or secret==4 or secret==5):   \n",
    "        qubits.x(1)\n",
    "    if (secret==0 or secret==1 or secret==2 or secret==3):   \n",
    "        qubits.x(2)\n",
    "    return qubits"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "2be6a348-657a-42ac-9bd9-64c65c36f306",
   "metadata": {},
   "outputs": [],
   "source": [
    "def grover_iteration(circuit,secret):\n",
    "    # Aufruf des Quanten-Orakels\n",
    "    oracle(circuit,secret)\n",
    "    circuit.barrier()  # nur für die Schaltkreis-Darstellung\n",
    "    # H-Gatter für alle x-Qubits\n",
    "    for i in range(3):\n",
    "        circuit.h(i)\n",
    "    circuit.barrier()  # nur für die Schaltkreis-Darstellung\n",
    "    # Beginn der Realisierung von D mit Schaltkreis von Übungsblatt 7, Aufgabe 3b);\n",
    "    # auf die Multiplikation mit (-1) wird verzichtet, da das alle Amplituden betrifft und \n",
    "    # daher insgesamt für den weiteren Verlauf und die abschließenden Messungen irrelevant ist.\n",
    "    for i in range(3):\n",
    "        circuit.x(i)   # P_x-Gatter für die drei Qubits\n",
    "    circuit.barrier()  # nur für die Schaltkreis-Darstellung\n",
    "    circuit.h(2)       # H-Gatter unten\n",
    "    circuit.ccx(0,1,2) # Toffoli-Gatter\n",
    "    circuit.h(2)       # H-Gatter unten\n",
    "    circuit.barrier()  # nur für die Schaltkreis-Darstellung\n",
    "    for i in range(3):\n",
    "        circuit.x(i)   # P_x-Gatter für die drei Qubits\n",
    "    # Ende der Realisierung von -D\n",
    "    circuit.barrier()  # nur für die Schaltkreis-Darstellung\n",
    "    # H-Gatter für alle x-Qubits\n",
    "    for i in range(3):\n",
    "        circuit.h(i)\n",
    "    circuit.barrier()  # nur für die Schaltkreis-Darstellung\n",
    "    return circuit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "d17615bc-d969-46bf-9eba-8b36082895af",
   "metadata": {},
   "outputs": [],
   "source": [
    "secret=random.randint(0,7) # Auswahl des gesuchten Elements"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1b13d50a-12a0-4ed9-ba77-9bd727028f48",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 3 x-Qubits, ein y-Qubit und ein Hilfqubit für's Orakel; Standard-Initialisierung mit 0\n",
    "circuit = QuantumCircuit(4,3) \n",
    "circuit.x(3)       # unterstes Qubit auf 1 setzen\n",
    "circuit.barrier()  # nur für die Schaltkreis-Darstellung\n",
    "# H-Gatter für alle Qubits\n",
    "for i in range(4):\n",
    "    circuit.h(i)    \n",
    "circuit.barrier()    # nur für die Schaltkreis-Darstellung\n",
    "# Grover-Iteration(en)\n",
    "grover_iteration(circuit,secret)\n",
    "#grover_iteration(circuit,secret)\n",
    "#grover_iteration(circuit,secret)\n",
    "#grover_iteration(circuit,secret)\n",
    "#grover_iteration(circuit,secret)\n",
    "# Messungen\n",
    "for i in range(3):\n",
    "    circuit.measure(i, i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "84bdf329-ccd0-4616-ba4c-5d34ed8001fa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Tp20atUqValSRZJ0++23q2fPnhoxYoRWrlxZyiMEAAAoXZYxxni6iLOdPn1a9evXV61atbRr1y55execQ40xatCggVJSUnTkyBH5+/u7tqWlpalOnToKCQnRnj17XO233367PvzwQ61du1adOnVyu72oqCjFxcXp119/VcOGDQtVb0pKigIDA5WcnKwaNWoUcbQoqqEvevb+3xzl2fsHAKCw2aPc7ZMXExOjP//8U/369VN2drY++eQTTZ8+XW+88YZ2797t1jcxMVGHDh1SZGSkW8CTJH9/f0VGRmrv3r1u+/DFxcW5tp2rW7dukqS1a9eWwsgAAADKTrn7unbLli2SJC8vL1122WX65ZdfXNscDodGjx6tmTNnSsoJeZIK3IcuPDxcK1euVGJiokJDQ5WWlqbDhw+rVatWeb4CPvt2cm8XAACgoip3Ie/o0aOSpBdeeEFt27bVpk2bdMkll2jbtm164IEHNGvWLDVt2lQPPvigkpOTJUmBgYH53lbuEmZuv6L2z096errS09NdP6ekpEiSMjMzlZmZKSknjHp5eSk7O1tOp9PVN7c9KytLZ39L7uXlJYfDUWB77u3myv0K++x9E8/X7uPjI6fTqezsbFebZVny9vYusL2g2j0/Jh95Gn8nxsSYGBNjYkyeHlNhlLuQlzuYKlWqaOnSpapXr54k6brrrtPHH3+syy+/XLNmzdKDDz7okfqeffZZPf3003naY2JiVK1aNUlSw4YNdcUVV+iHH37QgQMHXH1atGihiIgIbdq0SceOHXO1t2nTRmFhYVq3bp1OnTrlau/QoYNCQkIUExPj9geNioqSn5+fli9f7lZDz549dfr0aa1Zs8bV5u3trV69eun48eNav369q7169erq2rWrkpKSlJCQ4GoPDg5Wx44dlZiYqF27drnay8+Y+srT+DsxJsbEmBgTY/LkmHK/9byQcnfgxWOPPaaZM2fquuuu07p16/JsDw8P1+7du/Xnn38qPj5eN910k0aMGKE5c+bk6fvwww/rlVde0VdffaWuXbsqLS1NAQEBatWqlbZv356n/+LFizVgwABNmjRJzzzzTL715beSFxoaquPHj7tWAivrp4qyGNNDr3p2Je/NUazkMSbGxJgYE2Py7JhOnDihoKCgCx54Ue5W8lq0aCFJqlmzZr7bc9tPnz59wX3ozt1nz9/fX3Xr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Y2JMjIkxMSZPjmnLli0qDMucHWOLKTMzUz///LPrihcRERHy8Sneisv69et17bXX6qmnnnJbBbz77rv1zjvvaP369brmmmskSR988IHuuOMOTZw4Uf/+97/z3NbEiRM1bdo0ffLJJ+rfv78OHTqk+vXrKzIyUt98802e/qtWrVJ0dLRGjhypl156Kd/68lvJCw0N1fHjx10hsbJ+qiiLMT30qmdX8t4cxUoeY2JMjIkxMSbPjunEiRMKCgpScnKyK3vkp8greVOnTlVaWpqefvppV5Dz8fFR69atXX0yMjI0ceJEVa9eXePHjy/0bWdlZWnIkCG67LLLCvV7uStyBa285X6VmtuvqP3z4+vrK19f3zztPj4+eYKtl5dXviuRuQ+MwrYXFJiL0u5wOORw5N0Fs6D2gmovT2PyFP5OjIkxMSaJMRVUY1HbGVPJjSnP/RWq1/+3evVqPfnkkwoKCjrvm26VKlUUFBSkiRMnFuk8eampqUpMTFRCQoKqVKniOgGyZVl65513JOUsp1qWpaVLl15wH7pz99nz9/dX3bp1tW/fPrckXVB/AACAiqpIK3nvvvuuatWqVahzyQ0fPlzPPvusFixYoKioqELdvq+vr+677758t61bt06JiYnq06ePgoOD1ahRI4WHh6tevXqKj49XWlqa2xG2aWlpio+PV+PGjRUaGupq79y5sz766CPFx8erU6dObvexcuVKScrTDgAAUNEUKeR9++23uuGGG/L9uvJcvr6+uuGGGxQfH1/o2/fz88tzXrtcd999txITEzVhwgTXPnmSdP/99+uZZ57RlClTNH36dFf7lClTlJqaqieeeMLtdh544AF99NFHmjRpklatWuU6V96KFSsUFxen6OhohYWFFbpmAACA8qhIIe/QoUNq0qRJofs3btxYn376aZGLKorHH39cn376qWbMmKFt27apbdu22rp1q2JiYtSuXTuNGjXKrX9UVJTuv/9+zZ8/X23btlWvXr10+PBhLVy4ULVr19acOXNKtV4AAICyUKR98vI76uR8MjMz893BsCT5+/tr7dq1GjVqlH766SfNmjVLP//8s8aOHauvvvpKfn5+eX5n7ty5rqNnX3rpJS1fvlz9+/fXpk2b1Lx581KtFwAAoCwU6RQqzZs3V9OmTbVixYpC9e/Ro4f27t3rdu4Xu0lJSVFgYOAFD2NG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8WIPVgyUrgs9J/bs2aP+/fsrODhYNWrU0MCBA/X77797sOLiIeQBsLXU1FTdcccdevPNN1WrVi1Xe6tWrbR48WL17t1bTZs2VdeuXTV16lR9/vnnysrK8mDFJa9BgwaaPn26tmzZou+++05du3ZV3759tXPnTknS4MGDtWvXLn322Wfavn27br75Zg0cOFDbtm3zcOVA6TjfcyItLU3R0dGyLEuxsbGKj49XRkaGevfuLafT6enSi4SQB8DWhg8frl69eumGG264YN/k5GTVqFFD3t7eZVBZ2endu7d69uyp8PBwNW/eXFOnTlVAQIA2bNggSfr222/18MMPq3379mrSpIn+9a9/qWbNmtqyZYuHKy85F1q5yWWMUY8ePWRZlpYuXVr2haJMnO85ER8fr/379+vtt99W69at1bp1a73zzjv67rvvFBsb6+nSi4SQB9jQ+d7QKtO+aB999JG2bt2qZ5999oJ9jx8/rilTpuiBBx4og8o8Jzs7Wx999JHS0tLUoUMHSVLHjh21cOFCnThxQk6nUx999JHOnDmjLl26eLbYEnSh1cxcL774oizL8lCV8IRznxPp6emyLEu+vr6uPlWrVpXD4dA333zjwUqLzl4fVwFI+r83tPDwcBlj9M4776hv377atm2bjDGufdFatmypX3/9Vf/85z916NAh/e9///N06SUmKSlJjzzyiFatWqWqVauet29KSop69eqlli1b6qmnniqbAsvY9u3b1aFDB505c0YBAQFasmSJWrZsKUlatGiRbrvtNgUFBcnb21vVqlXTkiVL1KxZMw9XXXJ69+7t9vPUqVP1+uuva8OGDbr00kslSQkJCZo1a5a+++471a1b1xNlogwV9JwIDg6Wv7+/xo0bp2nTpskYo/Hjxys7O1uHDx/2dNlFwkoeYEPn+yqisuyLtmXLFh09elRt27aVt7e3vL29tXbtWr388svy9vZWdna2JOnUqVPq3r27qlevriVLlsjHx8fDlZeOFi1aKCEhQRs3btSDDz6oIUOG6Mcff5QkTZo0SSdPntTq1av13XffacyYMRo4cKC2b9/u4apLR36rmX/99Zduv/12vfrqq6pTp46HKyw9zz77rNq1a6fq1asrJCRE/fr1065du9z6VJYDcQp6TgQHB+vjjz/W559/roCAAAUGBurkyZNq27atHI6KFZtYyQNs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XElJSdqzZ4/WrVunlStXKjExUZdffrmmTZumHj16yOl0yuGw1zf4SUlJCg0Ndf3sdDpljJGXl5cHqyp7Y8eO1UsvvaSwsDCFh4fLx8dHJ0+e1Pbt25WSkqLQ0FDddNNNuvfee3XllVd6utxSs2fPHjVt2tT1s9PplNPplLe3twerKnuHDx/WxIkTtWrVKh08eFDVq1dX48aNdckll+jqq6/Wtddeq9atW9vi2p0FyV2dqqyPgbPt2rVLEyZM0PLly5WRkSFfX1/VqlVLjRo1UocOHdS9e3d17NhR/v7+ni4VRUTIs6EpU6boxRdf1KJFi3T99dcrKyvL7QUsJSVFO3fu1KJFi/TSSy/p4osv1ooVK9SmTRvPFV0K9u/fryZNmig6OlqDBg3STTfd5PbVZHZ2tizLksPhcL3gZ2RkqEqVKh6suuTt27dPLVu2VO/evfXqq68qODhYp06d0smTJ3X48GGtW7dOS5Ys0ebNm1W/fn09/fTTGjx4sO2+otmzZ4/Cw8MVERGhe++9V3feeafq1Knj2p6dnS1J8vLyco09LS1NqampCgoKsk0IOHLkiPr376+NGzeqe/fuCggIkMPh0K+//qoffvhBp0+fVsuWLTVw4EANHTpUdevW9XTJpSIlJUUnT55Uw4YNXW1nPwYqi0OHDql79+7auXOn7rrrLl100UXy9vbWzp079fXXXyslJUU1a9ZU//79NWzYMLVv397TJZe4P//8Uz/88IOuueYa+32wMbCdwYMHm7p165ojR44YY4xxOp1u/z3bRx99ZAIDA80111xTpjWWhWnTphnLslz/LrroIjNkyBDzxRdfmMzMTLe+6enpxhhj3njjDXP99debXbt2eaLkUjF16lRTu3Zt89VXXxljjMnKynLbnpmZafbu3WtefPFFExwcbCzLMl9++aUnSi1VM2bMcHs8WJZlunTpYt5//32TkZHh1vfsx0P79u3N1q1bPVFyqXjyySdNYGCgefHFF11tf/75p0lKSjLr1q0z//rXv0zLli2Nw+EwHTp0MN98840xJv/Xj4pszJgxxrIsc91115n//Oc/Ji0tzW17Zmamyc7Odms7fPiw+f333201F//6179MrVq1zPz5811t6enpJiMjwxw4cMDMnTvXREZGGofDYVq2bGmWLVtmjLHX4+HRRx81lmWZtm3bmilTppgdO3YU2Dd33L/88otJSEjI89pR3hDybGjmzJnGsizz8ccfu9rOfbE6+wl6zz33mIsuusj8/PPPZVZjWbjppptM9erVzfz5882QIUNMtWrVXG/uzZo1M48++qjZtGmT2+/cfPPNxrIsk5qa6qGqS95DDz1katasaZKSkowx539xjomJMXXr1jUtWrQwZ86cKasSy8Qtt9xi/Pz8zAcffGCefPJJ07JlS9fjwcfHx/zjH/9wBeFcdnw8tGzZ0tx0003m6NGjxpi8j4czZ86Y77//3hWCIiIizO+//+6JUktV69at84T+/v37my+++MKtX+78pKSkmDvuuMN069Ytz4fEiuzyyy833bt3d/2N83t9OHbsmJkzZ46pXbu2qV69uvnxxx/LusxS1aZNG+NwOEzt2rVdj4WoqCgzd+5c89tvv+Xpn5qaagYNGmSuueYaQh7K3rp160xAQICJiIgwmzdvdtvmdDpdgS/3v9OmTTP+/v55Ak9FdvToUdO+fXtTv359V9vp06fNf//7X3P99de7vbC3a9fOvPzyy2bRokWmbt26pnfv3h6svOS99dZbxrIs8+qrr7pewLOysgoMexMmTDABAQG2Wr06duyY6dixo6lTp46rLT093axYscLcd999pm7duq7HQ3BwsBk/frx5//33bfd4OHLkiLnkkkvMjTfeeMG+mZmZ5uWXXzaWZZlx48aVQXVlZ8+ePSY4ONh07tzZrFu3zjz44IOmYcOGrsdArVq1zEMPPeT2HNi2bZupVauW6dy5s+cKL2HHjx83V111VaG+ycnMzDQfffSRsSzLDBs2rAyqKxv79u0z9erVM9dcc41JSEgwU6ZMMZ06dTJVq1Y1lmWZ6tWrm4EDB5olS5aYP/74wxhjzKZNm0zt2rVNVFSUh6u/MEKezeS+cb/55pvGy8vLWJZlHnjgAbN69WqTkpKSp/9ff/1lBg0aZIKCgsq61FJ14MABc91115levXoZY/7v67dchw4dMjNnznT7NJ/7pD73k3xFt337dlO/fn1Tu3Zt8/nnn7ttczqdrq9vc0P/Cy+8YKpWrWq+/fbbMq+1tBw5csR0797d3HjjjSYzMzPPp+9jx46Zd9991/Tp08f4+/u7fQiwy+Mh9wPegAEDTI0aNczGjRtd7ed+hX+21q1bm65du5pTp06VVamlLiYmxliWZcaOHetqO3nypFm4cKG59dZbTWBgoOvv37RpUzN9+nQzbtw4Y1mW6+vKii73vWLo0KHGsizz+eefuz78nW+lMjIy0rRr184VeCq62NhY43A4zMiRI11tp06dMitXrjSjR482l112meuxUL9+fTNq1CgzbNiwCvNYIOTZVGpqqnn99ddNSEiIsSzLhISEmL59+5pp06aZ1atXmxMnTpiNGzeaYcOGmSpVqri92NlBRkaGiY2NNd9++60rvOS+mZ371fWuXbvM8OHDjWVZpnbt2p4ot9TkvpCvWLHCNGjQwFiWZbp162YWLVpkTpw4kad/amqqGThwoO1CvzHGJCYmmh07duR5PJy7onngwAHzzDPPmGrVqplatWp5otRSNW/ePNe+aOfue5Sdne02J8nJyaZnz56mVatWnii11Hz77bcmNDTUzJs3zxhj8oSaX3/91cyZM8d06dLFLfDb8fGwfPlyY1mWad68uVm5cqXbtqysLLfHw8mTJ02/fv1M8+bNPVFqqUhISDDh4eHm5ZdfNsbk3Wf58OHD5sMPPzRDhgwxjRs3rnCPBUKezZz7hpWammpefPFF06FDB+Pt7e16gDocDlOlShVjWZa555578t3vwA7ODXS5cj+t5j6hN23aZKpVq2YeeOCBsiyvzGRmZpr//e9/bp9KL7/8cjN8+HCzePFi89NPP5lPPvnE3HbbbcbLy8uMHz/e0yWXqdzAl/t4WL9+va0fD9OnTzcOh8NYlmWGDBliVq5caU6fPu3anvs6snr1alO/fn0zdOhQT5VaKjIyMszOnTtdB6cZU/CK5i+//GLuvPNOY1mWGT58eFmWWWb++9//mosvvti1L9rChQvd9kPNfTx88cUXpl69erZ7PKSkpOT50Jvfe8fBgwfNiBEjjGVZ5qGHHiqr8v4WTqFSSRw/fly//PKLNmzYoK+//lrZ2dlq3ry5LrnkEt13332eLq/E5Z7s1hgjp9N5wVMiPPzww3r11Ve1efNmW58nTpKWLl2q+fPna+XKla5TRliWJWOMfHx8NHz4cI0bN65SnwR1xIgReu2112z3eDD//9QwJ0+e1H/+8x/NmDFDx44dk5eXl6688kpFRkYqKipKgYGB2rx5s1555RWdOnVKsbGxat26tafLLzPnvm4888wzeuqpp2z3eMiVnp6uxYsX64UXXtDWrVslSSEhIercubNuvPFG+fr6aseOHXrrrbfk6+urmJgYXXrppR6uumyc+1iYPHmypkyZUmEeC4Q8Gzl69Ki2b9+uX375RampqWrfvr0iIiJ00UUX5Qk56enpbucDMjY7J1pRpKSkaNiwYVqzZo2OHDni6XJKRX5h98iRI1qzZo3i4+Pl4+OjevXqKSIiQr179/ZgpZ6Xlpam4cOHa/ny5Tp69KinyylR5z7Pz5w5o3feeUfvvvuu1q9fn6d/y5YtNWHCBN1xxx1lWWapyz3xe+6HwfzkztUvv/yi3r17KysrS3v27CnjSsuWMUaff/655s2bp5iYGGVlZblt79Chg/71r3+pR48eHqrQs/bu3at+/frp1KlT2rdvn6fLKRRCnk2sWLFC//73v/O8UNeuXVvXX3+9brvtNvXu3Vs+Pj6ubXa8woVUcNg9+4S25764p6en6+jRo25Xx6joivL3PXc+7BT6i/s4T0lJUY0aNUqhovLpwIEDWr16tXbs2KE6deooJCRE1157rZo1a+bp0jxq165d6tevn3r37q3nnnvO0+WUCpOz65bb8yQ5OVlxcXHau3ev6tWrp4CAALVr104hISEerNSz9u3bp2HDhqlz586aOHGip8spFEKeDSQlJalLly5KS0vT3XffraioKO3du1fbtm3T999/rx9++EHp6elq2bKlnnjiCQ0YMEBVqlSx1Rt5rvOF3RtuuMEVdu1y9YLCKijonH1N33OvjGJHhQl8WVlZsizLdlc9+PLLL7Vjxw4lJCTo4osv1lVXXaVmzZopNDRUQUFBbh8A7ezseQgJCVG7du3UrFkzhYWFKSgoyO2KJ2ez2/OjoFXMs68EZHfnW8ktjd/ziDLc/w+lZOLEiaZWrVpm8eLFebYlJSWZhQsXmjvuuMO1w/2MGTM8UGXpO3DggGnSpIm5+OKLzbhx48yXX35pXnvtNTN06FDTvn171ylSWrVqZf773/+6TqtS0MEZFdWRI0fMmDFjzJdffmn+/PNPt21Op9NWZ6o/H+Yhx59//mkef/xxY1mW28FXlmWZoKAg06dPH7NgwYI8p8Sw2/wUdh7Ofayc7/QyFVF+J8bP7zXw7PYLnValoinsHJzr3FNxVQSEPBu4+uqrTZcuXcyxY8eMMcbtqNGzxcbGmiuuuML4+vqat956q6zLLHWE3RxPPvmksSzLNG7c2PTq1cs8//zzZtOmTXmuYJF7ugxjjFmzZo1ZsWKFJ8otNcxDjueee85Uq1bN9O/f36xZs8bs2rXLfPTRR+bpp582N910k+tSdm3btjVLlizxdLmlhnnI8dprr5mBAweaZcuW5Tn3YXZ2tu0+9OanMs0BIa+CO3XqlLnhhhtMRESE69qLZz9Az/2EsnXrVlOrVi3Tp08f13a7IOzmaNOmjalSpYq55pprXKfJadSokbnjjjvM/PnzzU8//eTWPy0tzfTp08c4HA6302hUdMxDjrCwMNOrVy9z/PjxPNsOHjxoli1bZh544AHX6tabb77pgSpLH/OQo1GjRq6Tv1999dVm0qRJZv369XneC3JX7tLS0szs2bNNbGysJ8otFZVpDgh5NpB7Jvb8AsvZD9rcsNe3b1/TvHlzs3///jKrsbQRdnMcOHDANGrUyFx55ZUmIyPDrF+/3kyaNMlcfvnlxrIs4+XlZS677DIzYsQIs2jRIpOcnGw2bdpk6tSpY6vLdzEPOX766ScTEBBgnnjiCVdbfisV6enp5osvvjBNmjQxtWvXttXVToxhHnLt2LHDWJZlrrrqKnPjjTe6vtUICAgw3bp1My+99FKeDz9ff/21sSzLREZGeqjqklXZ5oCQZwO//fab6/JcDz/8sNmyZUuelYjcTyTJycnm1ltvNQ0bNvREqaWKsGvMxo0bTe3atc2QIUOMMcZ1hY/ff//drFixwvzzn/80YWFhxrIsU61aNdOpUyfXtXzPveRZRcY85Pjxxx9NgwYNzG233WaMyXkdOPfDz9nPjaVLl9pyVwbmIceHH35oLMsyL7zwgjEm52o/M2bMMG3atHGFnbp165pBgwaZd99915w4ccLMmjWrwlzCqzAq2xwQ8mxiyZIlrkuuXHXVVWbKlClmzZo1Zv/+/W6B7/333zfBwcG2usB0LsJuzqW7br75ZvPf//433+0ZGRlm//795r333jMDBw40tWvXrlCX6Cks5uH/XH311aZ69epm+fLlebblBpvcwPPHH3+Yxo0bmwEDBpRpjWWBeTBm7ty5xrKsfOdg06ZNZvTo0SY0NNQVdpo3b27q1KljAgMDy77YUlLZ5oCQV4Gd+xXjH3/8YR599FHTsGFD1/Vqu3btau68807zwAMPmLvuusv4+vqaiIgI8/PPP3uo6tJF2M25vmR++x2dLffN7I033qhQl+gpiso+D7mvDxs3bjT169c3lmWZUaNGmY0bN+b58JN7MMq3335r6tWr53ax9oqOecjhdDrN+vXrzejRo83u3bvd2s92+vRps2zZMjNkyBATGBhoLMsyI0aMKOtyS0VlnANCXgWX++BMSkpyvWFt377dPPvss6Zbt26uwGdZlqldu7bp2rVrnouSV3SE3Rz57VeY+zVlQR577DFjWZbZsmVLaZZWppgHd1lZWebtt982devWNZZlmUsvvdSMHj3afPzxx2bnzp2uefntt9/MoEGDjLe3N/Ng43k4depUgacCOfe5M3z4cGNZltm2bVsZVFZ2KtMccDLkCiorK0vx8fH6z3/+o19++UWWZalatWpq166dBg4cqCuuuELGGCUlJen06dPau3evIiIiFBoaKm9vb9udCDl3PL/99pvq1asnh8OhHTt2aNmyZYqLi9NPP/2kpKQkSVKtWrXUpk0bvfzyy7a7/mLuPBw5ckQhISFuJzQ9+8THkvTbb7+pV69eOnTokI4dO+apkksF85DXsWPH9Morr2jRokX65ZdfVK1aNdWvX18BAQGqXbu2fv75Zx07dkz33HOPXnvtNU+XW2qYh/PLfe7s2bNHt912m5KTk5WYmOjpssqUneaAkFdBzZw5U1OmTNGpU6fUrFkzeXl5adeuXa7tLVu21EMPPaQBAwbY+jI0hN0c586Dw+GQn5+fLr/8ct1yyy3q2LFjnt85fvy43nvvPdWrV0+33XabB6ouecxDXuas6xafPn1aiYmJ2rx5s+Lj47Vx40b9/PPPCg4OVmhoqO6//37deeed8vf393TZJY55KJply5apT58+euyxxzRjxgxPl+MRtpgDD6we4m/au3ev8ff3N9ddd53Zu3ev+e2330xmZqZJSkoyr732momKinJ9Rdu1a1ezefNmT5dcap5//nlTo0YNY1mWCQ8PNxEREW5nsr/00kvNq6++an7//XdPl1qqLjQPl1xyiXnhhRfM4cOH3X4vPT3dVif+ZB4KJzs726SlpZnMzExz/Phx2+3CUViVcR4Ke7qoI0eOmLfffjvPlVDsoDLNASGvApo0aZIJCQkxq1evdrWd+6D94YcfzODBg03VqlVNixYtzHfffVfWZZY6wm6OoszD9ddfb8v9jIxhHnL99ddf5ueffzZ//fVXnm3Z2dlurxXnvm7YKegyDznONw8XYpdLulXmOSDkVUA333yzadKkifn111+NMf93WhCn05nnAfniiy8ay7LM3XffXeZ1ljbCbo6/Mw92OQm0McxDrmeffdZcddVVZtq0aSY2NtYcPHgwz+vCueeFO3r0qK2uTWoM85CrMPNwLrvNQ2WeA0JeBTRlyhRjWZbZuXNngX3OfuG65ZZbTMOGDc2ePXvKorwyQ9jNwTzkYB5y5J4mxNvb2wQFBZnevXubOXPmmE2bNuV7SpnU1FTz6KOPmnvuucdWK1jMQ46/Mw8VfRUrV2WeA0JeBfTNN98Yy7JMmzZtzFdffZXvoeBnv7E98cQTplq1aub7778v61JLFWE3B/OQg3nIOXt/QECA6dixo3nllVdM3759TUhIiLEsy4SFhZkhQ4aY9957z+zYscP8+eefxhhjNmzYYAIDA03fvn09WntJYh5yMA/MASGvAsrKyjJjx4517Uj+yiuvmCNHjuTb98SJE2bw4MEmODi4jKssfYTdHMxDDubBmM8//9x4e3ubp556yhhjzP79+83KlSvNU089ZTp16mQCAgKMt7e3ueyyy8yoUaPMl19+6TpHYEW8ZFNBmIcczANzQMirwN544w3TtGlTY1mWqV+/vhkxYoT54osvzA8//GB27txpDh48aMaPH2+qVq1qxowZ4+lySxxhNwfzkIN5MObjjz82lmWZhQsXurVnZGSYxMRE87///c888sgj5vLLLzdVqlQx/v7+plq1ara7nBvzkIN5YA4IeRWY0+k0v/zyi3nsscfcrrV38cUXmwYNGhgvLy9jWZa5/fbbTVJSkqfLLTWVPezmYh5yVOZ5cDqd5scffzR79+51/Xyu1NRUs3XrVvPhhx+a6Oho17We7YR5yME8MAeEPJtITU01sbGxZtSoUWbgwIGmS5cupk+fPub999/Pc31GuyHs5mAecjAP+cvvze3hhx82lmWZrVu3eqAiz2AecjAPlWMOuOKFDWVmZsrHx8fTZXhEWlqaNm3apM8++0yHDh3S0aNHVaNGDQ0cOFC33HKLqlat6ukSywTzkIN5yMvpdMrhcGj//v3q27ev/vzzTx04cMDTZZU55iEH82DvOfD2dAEoeZU14EmSv7+/oqKiFBUVVanDLvOQg3nIK/c6vgcPHlRmZqYeeughD1fkGcxDDubB3nPASh4AVELGGP3222+qXbt2pb5GK/OQg3mw5xwQ8gAAAGzI4ekCAAAAUPIIeQAAADZEyAMAALAhQh4AAIANEfIAAABsiJAHAABgQ4Q8AAAAGyLkAQAA2BAhDwAAwIb+H/YL4ujC0SYpAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 700x500 with 1 Axes>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "circ = transpile(circuit, backend)   # Transformation auf Hardware-nahen Schaltkreis\n",
    "erg = backend.run(circ, shots=1024).result()\n",
    "plot_histogram(erg.get_counts(circuit))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "0fd9cf30-51cb-4db5-90f3-599c4fe1448d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\n"
     ]
    }
   ],
   "source": [
    "print(secret)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "b6015988-37b0-4a34-8789-4c5bb5f2b30a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 2043.33x451.5 with 1 Axes>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "circuit.draw('mpl')  # Ausgabe des Schaltkreis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "65981017-1240-4ff0-89be-add013507687",
   "metadata": {},
   "outputs": [],
   "source": [
    "circ.draw('mpl')  # Ausgabe des Hardware-nahen Schaltkreis (Toffoli-Gatter wird aufgelöst entspr. Übblatt 6, Aufg. 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7d7f7570-d4aa-4369-8be9-5359be74372f",
   "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.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
