Skip to content

Instantly share code, notes, and snippets.

@Miura-KR
Last active September 9, 2019 02:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Miura-KR/119c923d8786887dbd9320356005101a to your computer and use it in GitHub Desktop.
Save Miura-KR/119c923d8786887dbd9320356005101a to your computer and use it in GitHub Desktop.
Qiskit_getting_started
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2qubits のもつれ状態の生成\n",
"\n",
"$\\frac{1}{\\sqrt{2}} (|00\\rangle + |11\\rangle)$ の生成"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ワークフロー\n",
"\n",
"Build:量子回路の設計\n",
"\n",
"Execute:バックエンドを選び実行\n",
"\n",
"Analyze:結果の統計計算,可視化\n",
"\n",
"## 各ステップの説明\n",
"\n",
"パッケージのインポート\n",
"\n",
"変数の初期化\n",
"\n",
"ゲートの追加\n",
"\n",
"回路の可視化\n",
"\n",
"シミュレーション\n",
"\n",
"結果の可視化"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"from qiskit import(\n",
" QuantumCircuit,\n",
" execute,\n",
" Aer)\n",
"from qiskit.visualization import plot_histogram"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Total count for 00 and 11 are: {'11': 503, '00': 497}\n"
]
},
{
"data": {
"image/png": "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/m/YsQOf/Sg3WwECvWHKHY1PDL64ByamK9yf0OqxAAgLCwPg4MGDVx3nSMkBHD9+nLKyMgIDA/H19XVKZmnM5d8ZMWHCBHbu3MmuXbsalo0cOZJu3boxZ84cli5dyuzZs9m/f3+jt/m0Jld4Z8T5CvjiMKzYVv91fHcYFAERoXAN+51v2KU7uT09PfHx8aGiouKK58tddOedd7Jy5UpycnKaPU8uODiYiooKzp07Z7fcxV+KTuUym65N2bp1K8nJyXbLFi5cyPjx4+nQoQORkZFkZWVZWnKuwscLbu/zQ9E9MtjaPABVVVV8/33zB0HWrFnD4MGD2bVrV7MnA588ebKl4omDXLroysrK2LdvH0888YTd8tDQUNasWWNRKmmrtm3bZnUEaYJLF52fn1+bOhFYRK6PyxyMEBHXpaITEeOp6ETEeCo6ETGeik5EjKeiExHjufTpJW1Ja//vBld2re9QeGbumwDMeXqS3XX58dCMTkSMp6ITEeOp6ETEeCo6ETGeik5EjKeiExHjqehExHgqOhExnopORIynohMR46noRMR4KjoRMZ6KTkSMp6ITEeOp6ETEePo8OhED2Gw2Sx73Wj+7zyqa0YmI8VR0ImI8FZ38qHx//ofrhSehqsa6LGIO7aMTyxWdhE374esiOFP+w/KXc8DNBjd3gJ/0gqRboL2ndTml7VLRiWXKymH5FthR0PSY2rr6mV3hSVi1Ax5Igv63gEX73qWNUtGJJY6UwN83QFmF4/e5UAXLPoPdR2H8IPBwd1o8MYz20UmrKyiFheuureQutaMA3toINbUtm0uuLjAw0OoI100zOmlV5VXw1r+gorrpMRf/h+30d5se8/VRWLcbRvRr2XyuIDExkbvvvpvExER69OiBu7s7paWlbN++nby8PFauXEllZaXdfYYPH87y5csZP348q1atsij59VPRSav6aDucOt/8OEes/gpiu0KXtjvRaFV33303zz//PP3797/i7bfffjtPPvkkJ06cYMGCBcyZM4eKigqGDx/ORx99hLe3N3fddVebLDqX23Stra1l/vz5REZG0r59e+Li4sjNzaV3795MmqT/ru5MZy7A5wdbbn01tbB+d8utz1S+vr68/fbbfPzxx/Tv35/S0lJef/11xo0bR2JiInFxcaSmpvKHP/yBHTt20LlzZ/70pz+xfft2pkyZ0lBy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\n",
"text/plain": [
"<Figure size 397.32x204.68 with 1 Axes>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Use Aer's qasm_simulator\n",
"simulator = Aer.get_backend('qasm_simulator')\n",
"\n",
"# Create a Quantum Circuit acting on the q register\n",
"# 2 qubits と 2 bits の回路.全bitを 0 に初期化.\n",
"circuit = QuantumCircuit(2, 2)\n",
"\n",
"# Add a H gate on qubit 0\n",
"# qubit 0 が重ね合わせ状態になる\n",
"circuit.h(0)\n",
"\n",
"# Add a CX (CNOT) gate on control qubit 0 and target qubit 1\n",
"circuit.cx(0, 1)\n",
"\n",
"# Map the quantum measurement to the classical bits\n",
"# 観測して古典的にビットを読み込む\n",
"circuit.measure([0,1], [0,1])\n",
"\n",
"# 以上が回路 circuit の設計\n",
"# 以下が circuit を simulator を使ってシミュレーション実行\n",
"\n",
"# Execute the circuit on the qasm simulator\n",
"job = execute(circuit, simulator, shots=1000)\n",
"\n",
"# Grab results from the job\n",
"result = job.result()\n",
"\n",
"# Returns counts\n",
"counts = result.get_counts(circuit)\n",
"print(\"\\nTotal count for 00 and 11 are:\",counts)\n",
"\n",
"# Draw the circuit\n",
"circuit.draw(output='mpl')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 504x360 with 1 Axes>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Plot a histogram\n",
"plot_histogram(counts)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Step-by-Step に説明\n",
"2 qubits と 2 bits の回路.全bitを 0 に初期化."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 156.52x204.68 with 1 Axes>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit = QuantumCircuit(2, 2)\n",
"circuit.draw(output='mpl')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"アダマール変換.$|0\\rangle , |1\\rangle$ が重ね合わされる.\n",
"\n",
"$H |0\\rangle = (|0\\rangle + |1\\rangle ) / \\sqrt{2}$\n",
"\n",
"$H |1\\rangle = (|0\\rangle - |1\\rangle ) / \\sqrt{2}$\n",
"\n",
"$H = \\frac{1}{\\sqrt{2}} \\begin{pmatrix} 1 & 1 \\\\ 1 & -1 \\end{pmatrix}$\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 216.72x204.68 with 1 Axes>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit.h(0)\n",
"circuit.draw(output='mpl')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"制御NOTゲート.2qubitsゲートの一つ. $|x\\rangle |y\\rangle \\xrightarrow{CNOT} |x\\rangle |x \\oplus y\\rangle$ ,$\\oplus$ はXOR.繰り上げ切り捨て足し算,またはmod 2 足し算とも言える.\n",
"\n",
"q0 と q1 をもつれ状態にする.テンソル積分解できない状態.\n",
"\n",
"$\\frac{|0\\rangle + |1\\rangle }{ \\sqrt{2}} |0\\rangle \n",
"\\xrightarrow{CNOT} \\frac{1}{\\sqrt{2}} (|0\\rangle |0 \\oplus 0\\rangle + |1\\rangle |0 \\oplus 1\\rangle ) \n",
"= \\frac{1}{\\sqrt{2}} (|0\\rangle |0\\rangle + |1\\rangle |1\\rangle )\n",
"= \\frac{1}{\\sqrt{2}} (|00\\rangle + |11\\rangle ) $\n",
"\n",
"出力は$|00\\rangle, |11\\rangle$ の重ね合わせ."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 276.92x204.68 with 1 Axes>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit.cx(0, 1)\n",
"circuit.draw(output='mpl')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"量子ビットを観測して古典的にbitsを読み込む."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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/m/YsQOf/Sg3WwECvWHKHY1PDL64ByamK9yf0OqxAAgLCwPg4MGDVx3nSMkBHD9+nLKyMgIDA/H19XVKZmnM5d8ZMWHCBHbu3MmuXbsalo0cOZJu3boxZ84cli5dyuzZs9m/f3+jt/m0Jld4Z8T5CvjiMKzYVv91fHcYFAERoXAN+51v2KU7uT09PfHx8aGiouKK58tddOedd7Jy5UpycnKaPU8uODiYiooKzp07Z7fcxV+KTuUym65N2bp1K8nJyXbLFi5cyPjx4+nQoQORkZFkZWVZWnKuwscLbu/zQ9E9MtjaPABVVVV8/33zB0HWrFnD4MGD2bVrV7MnA588ebKl4omDXLroysrK2LdvH0888YTd8tDQUNasWWNRKmmrtm3bZnUEaYJLF52fn1+bOhFYRK6PyxyMEBHXpaITEeOp6ETEeCo6ETGeik5EjKeiExHjufTpJW1Ja//vBld2re9QeGbumwDMeXqS3XX58dCMTkSMp6ITEeOp6ETEeCo6ETGeik5EjKeiExHjqehExHgqOhExnopORIynohMR46noRMR4KjoRMZ6KTkSMp6ITEeOp6ETEePo8OhED2Gw2Sx73Wj+7zyqa0YmI8VR0ImI8FZ38qHx//ofrhSehqsa6LGIO7aMTyxWdhE374esiOFP+w/KXc8DNBjd3gJ/0gqRboL2ndTml7VLRiWXKymH5FthR0PSY2rr6mV3hSVi1Ax5Igv63gEX73qWNUtGJJY6UwN83QFmF4/e5UAXLPoPdR2H8IPBwd1o8MYz20UmrKyiFheuureQutaMA3toINbUtm0uuLjAw0OoI100zOmlV5VXw1r+gorrpMRf/h+30d5se8/VRWLcbRvRr2XyuIDExkbvvvpvExER69OiBu7s7paWlbN++nby8PFauXEllZaXdfYYPH87y5csZP348q1atsij59VPRSav6aDucOt/8OEes/gpiu0KXtjvRaFV33303zz//PP3797/i7bfffjtPPvkkJ06cYMGCBcyZM4eKigqGDx/ORx99hLe3N3fddVebLDqX23Stra1l/vz5REZG0r59e+Li4sjNzaV3795MmqT/ru5MZy7A5wdbbn01tbB+d8utz1S+vr68/fbbfPzxx/Tv35/S0lJef/11xo0bR2JiInFxcaSmpvKHP/yBHTt20LlzZ/70pz+xfft2pkyZ0lBy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\n",
"text/plain": [
"<Figure size 397.32x204.68 with 1 Axes>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit.measure([0,1], [0,1])\n",
"circuit.draw(output='mpl')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 回路の表示形式は 4種類\n",
"latex の描画には pylatexenc と pillow というパッケージがいる.\n",
"\n",
"latex_source の出力が変でそのままではtexでコンパイルできない."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<pre style=\"word-wrap: normal;white-space: pre;background: #fff0;line-height: 1.1;font-family: &quot;Courier New&quot;,Courier,monospace\"> ┌───┐ ┌─┐ \n",
"q_0: |0>┤ H ├──■──┤M├───\n",
" └───┘┌─┴─┐└╥┘┌─┐\n",
"q_1: |0>─────┤ X ├─╫─┤M├\n",
" └───┘ ║ └╥┘\n",
" c_0: 0 ═══════════╩══╬═\n",
" ║ \n",
" c_1: 0 ══════════════╩═\n",
" </pre>"
],
"text/plain": [
"<qiskit.visualization.text.TextDrawing at 0x2327fc2c630>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit.draw(output='text')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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/m/YsQOf/Sg3WwECvWHKHY1PDL64ByamK9yf0OqxAAgLCwPg4MGDVx3nSMkBHD9+nLKyMgIDA/H19XVKZmnM5d8ZMWHCBHbu3MmuXbsalo0cOZJu3boxZ84cli5dyuzZs9m/f3+jt/m0Jld4Z8T5CvjiMKzYVv91fHcYFAERoXAN+51v2KU7uT09PfHx8aGiouKK58tddOedd7Jy5UpycnKaPU8uODiYiooKzp07Z7fcxV+KTuUym65N2bp1K8nJyXbLFi5cyPjx4+nQoQORkZFkZWVZWnKuwscLbu/zQ9E9MtjaPABVVVV8/33zB0HWrFnD4MGD2bVrV7MnA588ebKl4omDXLroysrK2LdvH0888YTd8tDQUNasWWNRKmmrtm3bZnUEaYJLF52fn1+bOhFYRK6PyxyMEBHXpaITEeOp6ETEeCo6ETGeik5EjKeiExHjufTpJW1Ja//vBld2re9QeGbumwDMeXqS3XX58dCMTkSMp6ITEeOp6ETEeCo6ETGeik5EjKeiExHjqehExHgqOhExnopORIynohMR46noRMR4KjoRMZ6KTkSMp6ITEeOp6ETEePo8OhED2Gw2Sx73Wj+7zyqa0YmI8VR0ImI8FZ38qHx//ofrhSehqsa6LGIO7aMTyxWdhE374esiOFP+w/KXc8DNBjd3gJ/0gqRboL2ndTml7VLRiWXKymH5FthR0PSY2rr6mV3hSVi1Ax5Igv63gEX73qWNUtGJJY6UwN83QFmF4/e5UAXLPoPdR2H8IPBwd1o8MYz20UmrKyiFheuureQutaMA3toINbUtm0uuLjAw0OoI100zOmlV5VXw1r+gorrpMRf/h+30d5se8/VRWLcbRvRr2XyuIDExkbvvvpvExER69OiBu7s7paWlbN++nby8PFauXEllZaXdfYYPH87y5csZP348q1atsij59VPRSav6aDucOt/8OEes/gpiu0KXtjvRaFV33303zz//PP3797/i7bfffjtPPvkkJ06cYMGCBcyZM4eKigqGDx/ORx99hLe3N3fddVebLDqX23Stra1l/vz5REZG0r59e+Li4sjNzaV3795MmqT/ru5MZy7A5wdbbn01tbB+d8utz1S+vr68/fbbfPzxx/Tv35/S0lJef/11xo0bR2JiInFxcaSmpvKHP/yBHTt20LlzZ/70pz+xfft2pkyZ0lBy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\n",
"text/plain": [
"<Figure size 397.32x204.68 with 1 Axes>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit.draw(output='mpl')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<PIL.Image.Image image mode=RGB size=520x182 at 0x23213027160>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit.draw(output='latex')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'% \\\\documentclass[preview]{standalone}\\n% If the image is too large to fit on this documentclass use\\n\\\\documentclass[draft]{beamer}\\n% img_width = 4, img_depth = 6\\n\\\\usepackage[size=custom,height=10,width=15,scale=0.7]{beamerposter}\\n% instead and customize the height and width (in cm) to fit.\\n% Large images may run out of memory quickly.\\n% To fix this use the LuaLaTeX compiler, which dynamically\\n% allocates memory.\\n\\\\usepackage[braket, qm]{qcircuit}\\n\\\\usepackage{amsmath}\\n\\\\pdfmapfile{+sansmathaccent.map}\\n% \\\\usepackage[landscape]{geometry}\\n% Comment out the above line if using the beamer documentclass.\\n\\\\begin{document}\\n\\\\begin{equation*}\\n \\\\Qcircuit @C=1.0em @R=0.0em @!R {\\n\\t \\t\\\\lstick{ q_0 : \\\\ket{0} } & \\\\gate{H} & \\\\ctrl{1} & \\\\meter & \\\\qw & \\\\qw & \\\\qw\\\\\\\\\\n\\t \\t\\\\lstick{ q_1 : \\\\ket{0} } & \\\\qw & \\\\targ & \\\\qw & \\\\meter & \\\\qw & \\\\qw\\\\\\\\\\n\\t \\t\\\\lstick{c_{0}: 0} & \\\\cw & \\\\cw & \\\\cw \\\\cwx[-2] & \\\\cw & \\\\cw & \\\\cw\\\\\\\\\\n\\t \\t\\\\lstick{c_{1}: 0} & \\\\cw & \\\\cw & \\\\cw & \\\\cw \\\\cwx[-2] & \\\\cw & \\\\cw\\\\\\\\\\n\\t }\\n\\\\end{equation*}\\n\\n\\\\end{document}'"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit.draw(output='latex_source')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 回路のシミュレーション\n",
"\n",
"Aer というシミュレーター.さらに細かく回路シミュレーター,状態ベクトルシミュレーター,ユニタリー回路シミュレーターと選べる.\n",
"\n",
"回路シミュレーターには qasm_simulator を使う.\n",
"\n",
"回路が起動される回数を shots で指定.回路起動→観測を shots 回繰り返す."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Total count for 00 and 11 are: {'11': 985, '00': 1015}\n"
]
}
],
"source": [
"simulator = Aer.get_backend('qasm_simulator')\n",
"job = execute(circuit, simulator, shots=2000)\n",
"result = job.result()\n",
"counts = result.get_counts(circuit)\n",
"print(\"\\nTotal count for 00 and 11 are:\",counts)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 結果の可視化"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAc0AAAE8CAYAAACii+qhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3df5yWdZ3v8ddHfgkuIEOEMyoQQsSvcJRMTBA1ytptj7+O5tpqW+ZJS1fdctdTe8xz0t2l7OR2bE3bzR+V61qmW5tHH4qbqZWF4yQyTRAKBxhxRAQCZHD8nD/uGxqGmeEaGGaG4fV8PO7H3Pf3+l7XfC7ncfP2+vH9XpGZSJKk3TuopwuQJGl/YWhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkHdHpoRcWlEvBARr0fEwoiYvZv+AyPif5bX2RoRKyLi8lZ9zoqIxeXliyPijH27F5KkA1H/7vxlEXEucBNwKfBE+eeDETElM1e0s9rdwJHAxcASYDQwuMU2ZwH3ANcC9wFnAvdGxHsy8xcd1TNy5MgcM2bM3u2UJKlPefbZZ1/JzFFtLYvunBEoIn4B/DozP9GibQnwvcy8po3+7wPuBY7KzFfa2eY9QEVmzmvR9gjQmJnndVRPdXV1LliwYM92RpLUJ1VUVCzMzJltLeu207MRMRA4Fni41aKHgRPaWe104JfAVRGxMiKWRMQ/RsQftegzq41tPtTBNiVJ2iPdeXr2LUA/YE2r9jXAe9tZZzxwIrAVOAs4FPgaUAWcXe5zWDvbPGzvS5Yk6Q+69ZpmWevzwdFG23YHlZf9WWauB4iITwMPRcTozNweloW3GREXU7o+SmVlJc888wwAVVVVDBkyhKVLlwIwfPhwxo8fT01NDQD9+vVjxowZ1NfXs2nTJgAmT57Mq6++ypo1pTKOOOIIBg4cyLJlywAYMWIEY8aMoba2FoABAwYwffp06urq2LJlCwBTpkyhsbGRxsZGAMaOHUtE8OKLLwIwcuRIKisrWbRoEQCDBg1i6tSpPP/882zduhWAadOm0dDQwNq1awEYN24cmcny5csBGDVqFKNGjWLx4sUADB48mMmTJ/Pcc8+xbds2AGbMmMGKFStYt24dAOPHj6epqYmVK1cCMHr0aCoqKqirqwPgkEMOYdKkSdTW1tLc3AxAdXU1y5YtY/369QBMmDCBzZs3s3r1arb/9x42bBj19fUADB06lIkTJ1JTU0NmEhFUV1ezZMkSNm7cCMCkSZPYsGEDDQ0N/p38O/l38u/ULX+njnTbNc3y6dnNwHmZeW+L9puBaZl5Uhvr3AG8JzMntGg7ElgBHJeZv4yIFcDXMvNLLfp8Fvh0Zo7tqCavaUqSWusV1zQzswlYCMxrtWge8FQ7qz0JVLW6hvn28s/l5Z8/6+Q2JUnaI909TvMrwEcj4qKImBwRN1G6PnkLQETcGRF3tuj/XWAt8K2ImBoR76E0ZOV7mflyuc9NwCkRcU1EvCMirgFOBr7aXTslSTowdOs1zcy8JyJGAp8HKoFFwAczc/tR45hW/X8fEe+ldPPPL4F1wP3A37To81REfBj4InAd8Dvg3N2N0ZQkqbO6dZxmb+M1TUlSa73imqYkSfs7Q1OSpIIMTUmSCjI0JUkqyNCUJKkgQ1OSpIIMTUmSCjI0JUkqyNCUJKkgQ1OSpIIMTUmSCjI0JUkqyNCUJKkgQ1OSpIIMzQPcI488wnHHHcexxx7LV7+663O7v/vd7zJx4kTmzJnDnDlzuPPOPzwj/O6772bmzJnMnDmTu+++G4CNGzfu6DtnzhwmTJjANddc0237I0n7Urc+hFq9S3NzM1dffTX33XcfVVVVnHrqqZx22mm84x3v2KnfGWecwfz583dqW7duHfPnz2fBggVEBCeffDIf+MAHOPTQQ3n88cd39Dv55JP50Ic+1C37I0n7mkeaB7CFCxfytre9jXHjxjFw4EDOPPNMHnzwwULrLliwgLlz5zJixAgOPfRQ5s6dy6OPPrpTn9/97nc0NjYya9asfVG+JHU7Q/MA1tDQwOGHH77jc1VVFQ0NDbv0++EPf8iJJ57IhRdeyMqVKwFYvXr1LuuuXr16p/W+//3vc8YZZxAR+2gPJKl7GZoHsMzcpa11wJ122mk8++yzPPHEE8ydO5dPfepThde97777OOuss7qwYknqWYbmAayqqopVq1bt+Lx69WoOO+ywnfpUVFQwaNAgAC644AKeffZZAA4//PBd1q2srNzxedGiRTQ3N3P00Ufvy12QpG5laB7AjjnmGJYtW8by5ctpamrivvvu47TTTtupz0svvbTj/YMPPsjb3/52AE455RQee+wxXnvtNV577TUee+wxTjnllB19v//973PmmWd2z45IUjcxNA9g/fv3Z/78+Zx99tkcf/zxnH766UyePJkbbrhhxw1Bt956K7NmzWL27Nnceuut3HzzzQCMGDGCz3zmM5x66qmceuqpfPazn2XEiBE7tn3//fd7albqYrsbIrbdAw88QEVFBTU1NQA0NTXxqU99ive85z3Mnj2bJ554AoDNmzdz7rnn8u53v5tZs2Zx3XXXdct+7M+irWtTB4rq6upcsGBBT5chSbvV3NzMu971rp2GiN122227DBHbuHEjH/7wh2lqamL+/PlUV1fzzW9+k5qaGm6++WYaGxs555xzePTRR3n99ddZuHAhs2fPpqmpidNPP50rr7ySefPm9dBe9g4VFRULM3NmW8s80pSk/UDRIWI33HADl19+OQcffPCOtvr6ek466SQARo0axfDhw6mpqWHIkCHMnj0bgIEDB/LOd75zl7vgtTNDU5L2A0WGiP36179m1apVvP/979+pferUqfz4xz/mjTfeYPny5Tz77LM73cgHsH79eh566KEd4aq2OSOQJO0HdjfM68033+Rzn/vcjvsOWvrIRz7Cb3/7W0455RSOPPJIjjvuOPr3/8M//2+88QYXXXQRF198MePGjdsn9fcVhqYk7Qd2N0Ts97//PXV1dTumrXz55Zc5//zz+c53vkN1dTU33HDDjr7vf//7GT9+/I7PV1xxBUcddRSXXHJJN+zJ/s3Ts5K0H9jdELFhw4axdOlSamtrqa2tZebMmTsCc/PmzWzatAmAxx57jP79+++4gej6669nw4YNO4Wq2ueRpiTtB1oOEWtubub888/fMUSsurqaD3zgA+2u+8orr3D22WcTEVRVVXHLLbcAsGrVKm688UYmTpzI3LlzAbjooou44IILumOX9ksOOXHIiSSpBYecSJLUBQxNSZIKMjQlSSrI0JQkqSBDU5Kkghxy0gWuvmPE7jtpvzP/wnU9XYKkXsYjTUmSCjI0JUkqyNCUJKkgQ1OSpIIMTUmSCjI0JUkqyCEnkg44DhPrm7pjmJhHmpIkFWRoSpJUkKEpSVJBhqYkSQUZmpIkFWRoSpJUkKEpSVJBhqYkSQUZmpIkFWRoSpJUkKEpSVJBhqYkSQUZmpIkFdTtoRkRl0bECxHxekQsjIjZBdc7MSLeiIhFrdo/GhHZxuvgfbMHkqQDVbeGZkScC9wE3ABUA08BD0bEmN2sNwK4E3i0nS6bgcqWr8x8vavqliQJuv9I8yrg9sy8LTPrMvMyoAG4ZDfr/TNwB/CzdpZnZr7U8tWFNUuSBHRjaEbEQOBY4OFWix4GTuhgvUuBw4AvdrD5wRGxPCJWRsSPIqJ6rwuWJKmV/t34u94C9APWtGpfA7y3rRUiYjpwLXB8ZjZHRFvd6oGPAbXAUOAvgScjYkZmLmljmxcDFwNUVlbyzDPPAFBVVcWQIUNYunQpAMOHD2f8+PHU1NQA0K9fP2bMmEF9fT2bNm0CYPLkybz66quAT4Hvi+rq6tiyZQsAU6ZMobGxkcbGRgDGjh1LRPDiiy8CMHLkSCorK1m0qHTJfdCgQUydOpXnn3+erVu3AjBt2jQaGhpYu3YtAOPGjSMzWb58OQCjRo1i1KhRLF68GIDBgwczefJknnvuObZt2wbAjBkzWLFiBevWlZ5QP378eJqamli5ciUAo0ePpqKigrq6OgAOOeQQJk2aRG1tLc3NzQBUV1ezbNky1q9fD8CECRPYvHkzq1evBkrfi2HDhlFfXw/A0KFDmThxIjU1NWQmEUF1dTVLlixh48aNAEyaNIkNGzbQ0NAA7N33ac2a0j8RRxxxBAMHDmTZsmUAjBgxgjFjxlBbWwvAgAEDmD59+h79ndQ3rV27tku+Tx2JzNyHu9DiF0VUAauAOZn50xbt1wLnZeY7WvUfBDwD/H1m3lVu+wJwdmZO6+D39AOeBR7LzMs7qqm6ujoXLFiwh3v0B1ffYWj2RfMvXNfTJWgf8TvbN3XVd7aiomJhZs5sa1l3Hmm+AjRTOtXa0lvZ9egTSjf0TAG+FRHfKrcdBEREvAF8MDNbn+qlfET6K2Bil1UuSRLdeE0zM5uAhcC8VovmUbqLtrVVwHTg6BavW4Cl5fdtrUOUzuG+k9INRpIkdZnuPNIE+ApwV0Q8DTwJfBKoohSGRMSdAJl5QWZuA1qPyXwZ2JqZi1q0XQv8HFgCDAMupxSau7sjV5KkTunW0MzMeyJiJPB5SqdfF1E6zbq83KXD8ZrtOBS4ldJp3/VADaXrpk93QcmSJO3Q3UeaZObXga+3s2zubtb9AvCFVm1XAld2TXWSJLXPuWclSSrI0JQkqSBDU5KkggxNSZIKMjQlSSrI0JQkqSBDU5KkggxNSZIKMjQlSSrI0JQkqSBDU5KkggxNSZIKMjQlSSrI0JQkqSBDU5KkggxNSZIKMjQlSSrI0JQkqSBDU5KkgjoVmhFxTkS8r8Xn/xERKyPioYio7PryJEnqPTp7pPmF7W8i4hjgvwP/CAwAbuy6siRJ6n36d7L/WKC+/P4M4P7MnB8RDwMPdWllkiT1Mp090nwdGFp+fyrwSPn9+hbtkiT1SZ090vwpcGNEPAHMBM4ut78d+H9dWZgkSb1NZ480Pw00UQrLT2bm6nL7B/D0rCSpj+vUkWZmrgQ+1Eb7FV1WkSRJvVSnx2lGxMERcXZE/HVEHFpuOyoiKrq+PEmSeo9OHWlGxARKN//8EXAocC/wGnBJ+fNFXV2gJEm9RWePNL8KPAyMBra0aP934OSuKkqSpN6os3fPngAcn5nNEdGyfQVQ1WVVSZLUC+3J3LMD2mgbQ2mspiRJfVZnQ/Nh4KoWnzMihgHXAf/RZVVJktQLdfb07FXAYxFRDxwM3ANMANYA53RxbZIk9SqdHae5OiKOBs4DjqF0pHor8J3M3NLhypIk7ec6e6RJORz/pfySJOmAsdvQjIgzgR9m5rby+3Zl5n1dVpkkSb1MkSPN7wGHAS+X37cngX5dUZQkSb3RbkMzMw9q670kSQeaToVgRMyJiF2CNiL6RcScritLkqTep7NHjo8BbU3Mfmh5mSRJfVZnQzMoXbtsbSSwae/LkSSp9yo05CQi/r38NoFvR8TWFov7AdOAp7q4NkmSepWi4zTXln8GsI6dn3DSBDwB3NaFdUmS1OsUCs3M/AuAiHgR+HJmeipWknTA6ew0etftq0IkSertiswI9GvgpMxcFxHP0faNQABk5ju7sjhJknqTIkea3we23/jT0YxAkiT1aUVmBLqurfeSJB1onBZPkqSCilzT7PA6Zkte05Qk9WVFn3IiSdIBr1PXNCVJOpB5TVOSpIIcpylJUkGO05QkqSDHaUqSVNAeXdOMiKMi4k/Kr6M6ue6lEfFCRLweEQsjYnYHfU+KiKciYm1EbImI30TEZ9rod1ZELI6IreWfZ+zJfkmS1JFOhWZEjIyI+4ElwP3l128j4oGIGFlg/XOBm4AbgGpKz+B8MCLGtLPK74F/BOYAU4AvAtdFxKUttjkLuAf4DnB0+ee9EfHuzuybJEm709kjzW8CE4DZwMHl1xzgbRR7nuZVwO2ZeVtm1mXmZUADcElbnTNzYWb+a2Y+n5kvZOa3gYfKv3+7K4DHMvP68javB/6z3C5JUpfpbGi+H/hEZj6ZmW+UX08C/628rF0RMRA4Fni41aKHgROK/PKIqC73/UmL5lltbPOhotuUJKmoTj1PE2gE2noA9WZg7W7WfQvQD1jTqn0N8N6OVoyIlcAoSvVel5m3tFh8WDvbPKydbV0MXAxQWVnJM888A0BVVRVDhgxh6dKlAAwfPpzx48dTU1MDQL9+/ZgxYwb19fVs2lT6TzB58mReffVVYERH5Ws/VVdXx5YtWwCYMmUKjY2NNDY2AjB27FgighdffBGAkSNHUllZyaJFiwAYNGgQU6dO5fnnn2fr1tLN59OmTaOhoYG1a0tflXHjxpGZLF++HIBRo0YxatQoFi9eDMDgwYOZPHkyzz33HNu2bQNgxowZrFixgnXr1gEwfvx4mpqaWLlyJQCjR4+moqKCuro6AA455BAmTZpEbW0tzc3NAFRXV7Ns2TLWr18PwIQJE9i8eTOrV68GSt+LYcOGUV9fD8DQoUOZOHEiNTU1ZCYRQXV1NUuWLGHjxo0ATJo0iQ0bNtDQ0ADs3fdpzZrS1/mII45g4MCBLFu2DIARI0YwZswYamtrARgwYADTp0/fo7+T+qa1a9d2yfepI5FZaFrZUueIjwPnA3+emavKbYcDdwD/mpnf7GDdKmAVMCczf9qi/VrgvMx8Rwfrvg34I+B44B+Av8zMu8rLmoCPb/9cbrsQ+EZmHtzR/lRXV+eCBQt2s9e7d/UdhmZfNP/CdT1dgvYRv7N9U1d9ZysqKhZm5sy2lu3JhO1vA16MiFXlz4cDrwNvpXTNsz2vAM3segT4VnY9UtxJZr5QfvtcRIwGvgBsD8mX9mSbkiR1VrdN2J6ZTRGxEJgH3Nti0TxKEygUdRAwqMXnn5W38aVW23xqD0uVJKlN3T1h+1eAuyLiaeBJ4JNAFXALQETcWf6dF5Q/Xwa8ANSX158DfAb4eott3gQ8HhHXAD8AzgBOBk7swrolSer0jUB7JTPvKY/n/DxQCSwCPpiZy8tdWo/X7EfpGuY44A3gd8DfUA7Z8jafiogPUx7DWe5zbmb+Yh/uiiTpANSp0CwPG/kccB6lgBvQcnlm9tvdNjLz6+x8pNhy2dxWn78KfLXANr+H8+JKkvaxzo7T/F/AhcCNwJvAZ4GbKQ03ubSD9SRJ2u91NjTPAT6Zmd+gdCfsA5l5OXAtpZtvJEnqszobmqOBxeX3vwcOLb//v8D7uqooSZJ6o86G5gpKd7sCLOUPU+fNArZ0VVGSJPVGnQ3NHwCnlt/fROmJIy8At9PxxAaSJO33OnX3bGZe0+L998pzwp4A/DYzf9TVxUmS1Jvs1TjNzPw58PMuqkWSpF6ts6dniYhjIuLOiPhV+XVXRByzL4qTJKk36VRoRsT5wC8pzebz4/JrNPB0RHyk68uTJKn36Ozp2euBv83MG1o2lud9/SLw7a4qTJKk3qazp2dHAf/WRvu9lB7HJUlSn9XZ0HwMmNtG+1zgJ3tbjCRJvVmRh1Cf2eLjg8DfRcRM/nDX7PHAmZQeDC1JUp+1pw+hvrj8aulrtPP0EkmS+oIiD6Hu9LAUSZL6IgNRkqSC9mRygz+OiMcj4pWIaIyIn0TEB/dFcZIk9SadndzgIkqTtv8O+Gvgb4AXgB9ExMe6vjxJknqPzk5u8NfAVZn5f1q0/XNELKQUoP/SZZVJktTLdPb07BhKD5xu7UFg7N6XI0lS77UnD6Ge10b7+4Dle1+OJEm9V2dPz34Z+Fr5qSZPAQmcCPw5cFkX1yZJUq/S2YdQfyMiXgb+itIsQAB1wDmZ+UBXFydJUm9SODQjoj+l07CPZ+YP9l1JkiT1ToWvaWbmG8B9wNB9V44kSb1XZ28EqgUm7ItCJEnq7Tobml8AboyI0yPiyIioaPnaB/VJktRrdPbu2f8o/7yP0p2z20X5c7+uKEqSpN6os6F58j6pQpKk/UCh0IyIIcCXgNOBAcAjwOWZ+co+rE2SpF6l6DXN64CPUjo9ezelWYH+aR/VJElSr1T09OyZwMcz818BIuI7wJMR0S8zm/dZdZIk9SJFjzSPBH66/UNmPg28AVTti6IkSeqNioZmP6CpVdsbdP5GIkmS9ltFQy+Ab0fE1hZtBwO3RcTm7Q2Z+addWZwkSb1J0dC8o422b3dlIZIk9XaFQjMz/2JfFyJJUm/X2Wn0JEk6YBmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklRQt4dmRFwaES9ExOsRsTAiZnfQtzIivhsRv4mI5oi4vY0+H42IbON18D7dEUnSAadbQzMizgVuAm4AqoGngAcjYkw7qwwCXgH+HvhFB5veDFS2fGXm611VtyRJ0P1HmlcBt2fmbZlZl5mXAQ3AJW11zswXM/PyzLwdeLWD7WZmvtTy1fWlS5IOdN0WmhExEDgWeLjVooeBE/Zy84MjYnlErIyIH0VE9V5uT5KkXfTvxt/1FqAfsKZV+xrgvXux3XrgY0AtMBT4S+DJiJiRmUtad46Ii4GLASorK3nmmWcAqKqqYsiQISxduhSA4cOHM378eGpqagDo168fM2bMoL6+nk2bNgEwefJkXn31VWDEXpSv3qquro4tW7YAMGXKFBobG2lsbARg7NixRAQvvvgiACNHjqSyspJFixYBMGjQIKZOncrzzz/P1q1bAZg2bRoNDQ2sXbsWgHHjxpGZLF++HIBRo0YxatQoFi9eDMDgwYOZPHkyzz33HNu2bQNgxowZrFixgnXr1gEwfvx4mpqaWLlyJQCjR4+moqKCuro6AA455BAmTZpEbW0tzc3NAFRXV7Ns2TLWr18PwIQJE9i8eTOrV68GSt+LYcOGUV9fD8DQoUOZOHEiNTU1ZCYRQXV1NUuWLGHjxo0ATJo0iQ0bNtDQ0ADs3fdpzZrSPxFHHHEEAwcOZNmyZQCMGDGCMWPGUFtbC8CAAQOYPn36Hv2d1DetXbu2S75PHYnM3Ie70OIXRVQBq4A5mfnTFu3XAudl5jt2s/6PgFcy86O76dcPeBZ4LDMv76hvdXV1LliwoOAetO/qOwzNvmj+het6ugTtI35n+6au+s5WVFQszMyZbS3rzmuarwDNwGGt2t/Krkefeywzm4FfARO7apuSJEE3hmZmNgELgXmtFs2jdBdtl4iIAN5J6QYjSZK6THde0wT4CnBXRDwNPAl8EqgCbgGIiDsBMvOC7StExNHlt8OAN8ufmzJzcXn5tcDPgSXlPpdTCs0278iVJGlPdWtoZuY9ETES+Dyl8ZSLgA9m5vJyl7bGa9a0+vwhYDkwrvz5UOBWSqd915f7z8nMp7u2eknSga67jzTJzK8DX29n2dw22mI327sSuLJLipMkqQPOPStJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBRmakiQVZGhKklRQt4dmRFwaES9ExOsRsTAiZu+m/0nlfq9HxLKI+OTeblOSpD3RraEZEecCNwE3ANXAU8CDETGmnf5vA35c7lcN/B3wtYg4a0+3KUnSnuruI82rgNsz87bMrMvMy4AG4JJ2+n8SWJ2Zl5X73wbcAXxmL7YpSdIe6bbQjIiBwLHAw60WPQyc0M5qs9ro/xAwMyIG7OE2JUnaI/278Xe9BegHrGnVvgZ4bzvrHAY80kb//uXtRWe3GREXAxeXP/6+oqKivkjx2uEtwCs9XUR3+OaVPV2B1CX8znbe2PYWdGdobpetPkcbbbvrv709OujT5jYz81bg1t2XqbZExK8yc2ZP1yGpGL+zXas7Q/MVoJnS0WNLb2XXI8XtXmqn/xvAWkrh2NltSpK0R7rtmmZmNgELgXmtFs2jdMdrW37GrqdZ5wG/ysxte7hNSZL2SHefnv0KcFdEPA08Senu2CrgFoCIuBMgMy8o978F+HREfBX4BvAe4KPAeUW3qS7nqW1p/+J3tgtFZkeXE/fBL4y4FLgaqAQWAVdm5uPlZf8JkJlzW/Q/CfjfwFRgNfAPmXlL0W1KktRVuj00JUnaXzn3rCRJBRmakiQVZGhKklSQoSlJUkE9MSOQ9jMRcQQwgdJkEm8C9Zn5Us9WJUndz7tn1aGIuAT4GDAD2AQsBVZSmnjigcysj4iDMvPNHixTkrqFp2fVrogYSek5pQ9QGgM7i9Kj2d4ELqT0bNMpmflmRET7W5LUHcpPf3p7RAzq6Vr6Ko801a6IuAz4SGa+u41lJ1J6KPjhwHGZeUA8RUHqzSLiCuB64N+A+4BfAo2Z2dyizzBKs6s9kpnbeqTQ/ZhHmupIEzA0IqYBRMSg8jNMycwngPOB14H39VyJklo4F3ia0j0I91O6jPKliDgxIoaX+/wZcK2BuWcMTXXke5ROxV4REUMzc2tmNkXEQQCZuQJ4DTiiJ4uUBBExCtgG3JaZsyk9E/KfgT8BHgcWRMRfA1cAv+ixQvdznp5Vm1pco/wvwE1ABaVTPl8HaigF5Rzgn4DpmfliD5QpqSwiKoEPA4sz86FWy6qBi8rLRwBHZuaq7q9y/2doqkMRcSgwBjgBOIPStRAoPev0IODOzPxCz1QnqaWIGAxkZr7e8ua8LP9DHxHXAx/MzOqeqnF/5zhN7SIi3gr8OfBXlB4evoXSadifAl8GBgBHAQ8BS3qoTEmtZOaW7WGZrY6IImIIcBbwrZ6ora/wSFO7iIjbKT2K7YfAq5ROzU4H3imccysAAAHFSURBVA68DHw+M70mIvUS5TtiN7YOylZ9DqZ0o9DdmdnUbcX1MYamdlL+v9SNlE7hPN6ibQxwPPBxYDxwTmY+02OFStohIr5B6a7Zp4HlmbmhjT6HZuZr3V5cH+Pds2ptCvACpeEmQOk0T2Yuz8x7gA9ROlX7X3uoPkktRMR5wCeAGylNRPKliDgjIo4qX+Pcfq3zju3Dx7TnPNLUTspfrh8BQ4ALgN+1niKvPOnBxzPz6B4oUVILEXEb0AzMB86kNFvXUUA98GPgUWAScFNmDuypOvsKjzS1k8zcAnwOGAzcCVwQEUdGxCGw42aCk4BFPVelJICI6E/pzNBrmbksM7+cmdOBdwE/oRSg/wZ8Dbir5yrtOzzSVJvKp3H+FvhTShO1/wxoBN4LNAAXZeZzPVehJICIGAGMzszflGfs2tbyhqCIOBe4GzgmM5/tqTr7CkNTHSoPP/lj4HRKU+YtAu7NzN/0aGGS2lWetSsyszkiPkHp1OyQnq6rLzA0VZiPAJP2PxFxFdAvM7/U07X0BYamJPVhETEAaPZ/eLuGoSlJUkHePStJUkGGpiRJBRmakiQVZGhKklSQoSlJUkGGpiRJBf1/e3f0cf9RWr8AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 504x360 with 1 Axes>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot_histogram(counts)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 練習"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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04mUoKamZmJioq+v37t3by0tLZFIVFpa2tDQUFlZWVpaSr5ezsnJ2bJly8SJEydPnixF848S/WGIw2Awut9LhV4sFovav3kaz8JkMtXV1YFcYC0wMLDdWeHOnj1LFIiOjm77KTGGYN++fbKblq4D7U45Sr4xO3HiRLtH7dy5kygQHx8vrubq6upevXpt3ryZynARddzc3KZNm9ZpsbZTjopjZ2e3dOlSKkLriBRTjjY3N1+9enXZsmV6enoAoK2tPX369G3btiUnJz979qypqUncgU1NTVeuXFFTU5swYcLUqVOJ8QZ9+/b95z//efXqVYFAIHkMOOUokgW1oqIi4rt44MCB7aYpMj+12+1NAZETfxGdxdvKy8sjNsimrLaio6Pr6+uXLFlCdXSIGgMHDqTwsVsoFJaUlChay/z79+9/+umnf/3rX4WFhcbGxosXL/bx8Rk7dmyr1llx1NXVDx8+rKenl5ycrKurKxAI/vOf/8TGxsbFxUVERAwdOnTdunVLliyRbsIIhLqPSU43QPZXboVIP4aGhhwOR25hdYednR2bzQaA+/fvt1sgOzsbAPT19S0tLcVVwuPxnJycxM2bgGg3fvz4Z8+eUTU3+Z07d6qrqydOnEhJbd337t27oKCgwYMHf/nll8OHD//tt99KSkr27ds3fvx4CXMPtBlnqqamNmnSpEOHDpWWll66dMnKymrNmjWDBw/etm0bLrGIaME0NDQkttqdAK2kpOTu3bugJANOCZqamsRwEGJS/Vafkj/R7Nmzxb3ifPz48d27d5cuXSrrUJHUZs2apaamRjRbdl9CQkKfPn2cnZ0pqa07RCLRv//9b2tr6507d86cOfPRo0cJCQnTp0/varuFSPw4UxaL5erqevHixYcPH3p4ePzwww/W1tYxMTEikYi6nwOhzjHJJ4CLFy+Sk3US6urq/P39iV46SpR+AMDPzw8AGhoaWq33AwDbtm0j/pv5+/uLO5zH4+no6HzyyScyDRJ1R9++fSdPnnzkyJEOBm9J6N27dydOnPD09BQ3TllucnJynJycFi5caGtr+/Dhw8jIyP/5n/+RripJ1jO1s7OLjIzMyMiwsLCYN2+es7MzrnSF5Inp4OBANJaIRCI3N7eLFy82NjZWVVWdP39+7NixV65cIcrJKP34+vqampqampoSg16p4uHh4ebmBgChoaER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\n",
"text/plain": [
"<PIL.Image.Image image mode=RGB size=554x182 at 0x2321302E9E8>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit = QuantumCircuit(2, 2)\n",
"circuit.h(0)\n",
"circuit.cx(0, 1)\n",
"circuit.h(0)\n",
"circuit.measure([0,1], [0,1])\n",
"circuit.draw(output='latex')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 予想\n",
"\n",
"$|00 \\rangle \\xrightarrow{H \\otimes I} \\frac{1}{\\sqrt{2}}(|00\\rangle + |10\\rangle)\n",
"\\xrightarrow{CNOT} \\frac{1}{\\sqrt{2}}(|00\\rangle + |11\\rangle)\n",
"\\xrightarrow{H \\otimes I} \\frac{1}{\\sqrt{2}}(\\frac{1}{\\sqrt{2}}(|00\\rangle + |10\\rangle) + \\frac{1}{\\sqrt{2}}(|01\\rangle - |11\\rangle))$\n",
"\n",
"$ = \\frac{1}{2}(|00\\rangle + |01\\rangle + |10\\rangle - |11\\rangle )$\n",
"\n",
"4状態が等確率で得られる."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Total count for 00, 01, 10 and 11 are: {'01': 526, '11': 456, '10': 529, '00': 489}\n"
]
}
],
"source": [
"simulator = Aer.get_backend('qasm_simulator')\n",
"job = execute(circuit, simulator, shots=2000)\n",
"result = job.result()\n",
"counts = result.get_counts(circuit)\n",
"print(\"\\nTotal count for 00, 01, 10 and 11 are:\",counts)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 504x360 with 1 Axes>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot_histogram(counts)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## EPR状態の生成\n",
"\n",
"$\\frac{1}{\\sqrt{2}} (|01\\rangle + |10\\rangle)$"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<PIL.Image.Image image mode=RGB size=554x182 at 0x232130B45C0>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit = QuantumCircuit(2, 2)\n",
"circuit.x(1)\n",
"circuit.h(0)\n",
"circuit.cx(0, 1)\n",
"circuit.measure([0,1], [0,1])\n",
"circuit.draw(output='latex')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$|01\\rangle \\xrightarrow{H \\otimes I} \\frac{1}{\\sqrt{2}} (|01\\rangle + |11\\rangle) \n",
"\\xrightarrow{CNOT} \\frac{1}{\\sqrt{2}} (|01\\rangle + |10\\rangle) $"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Total count for 00, 01, 10 and 11 are: {'01': 973, '10': 1027}\n"
]
}
],
"source": [
"simulator = Aer.get_backend('qasm_simulator')\n",
"job = execute(circuit, simulator, shots=2000)\n",
"result = job.result()\n",
"counts = result.get_counts(circuit)\n",
"print(\"\\nTotal count for 00, 01, 10 and 11 are:\",counts)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## statevecter_simulator を使う\n",
"\n",
"output='latex' だと barrier を使うと エラーになる.text と mpl だと可能."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 397.32x144.48 with 1 Axes>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circ = QuantumCircuit(2)\n",
"circ.x(1)\n",
"circ.barrier(0,1)\n",
"circ.h(0)\n",
"circ.cx(0, 1)\n",
"circ.draw(output='mpl')"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0. +0.j 0.707+0.j 0.707+0.j 0. +0.j]\n"
]
}
],
"source": [
"# Run the quantum circuit on a statevector simulator backend\n",
"backend = Aer.get_backend('statevector_simulator')\n",
"job = execute(circ, backend)\n",
"result = job.result()\n",
"outputstate = result.get_statevector(circ, decimals=3)\n",
"print(outputstate)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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9cmLvAoKCtizZw8+Pj7ySUpWVhaTJk067hMOnU5HZWUlXl5exMbGKj5+bDDYT1PsokOj0dDXb+SLXBulla3DNo86lPj6+XP/7TlMTRjeC35FRQULFixgxowZPProo4reWi44ZRAGhoMQ2uLUwn6IYd+nkZ+fz4EDB36TqObjc3ydgJIk0dzczL59+4iJiXHYOOxw8euxVq1WS1MnbNzcSFtLvaPLOyYqlRNnnHE6D83POamY1mNhj11ft24dTz31FBdccMGYeh8IRi3CwHAkkiTx0EMPUVFRwUcffQQcvLl99dVXeeedd4iIiOC2227j/vvvH+B+b968me3bt5OamurgVyAYCiRJorOzk4KCAll47Nu3jwkTJsiGRlZWFoGBAxc6GY1GGhsb6erqIiEh4ZSIxPxhxwHWvFNIn17n6FKOicpJzXlnJrHwhsRh3YdhsVhYvXo1n3zyCS+//DKnnXbasD3XkTh0ll4gOARhYDgAoS0EcLCz5teJakajkZSUFLlLIzk5+Tc7Inp6eqipqcHHx4fY2NhRGfU6GExmG8+8uZMt//1RUaOoR8I/MJwH776Q6WnBw/o8+/btY8GCBcTExPDUU0+NuMYUukJwFA6rLcb2J5WCUKlUNDU10dLSIn/N09OTefPm4e7uzhtvvCG76U8++SQdHR14enpSUFBAUlKSAysXDCUqlYrg4GAuuugiLrroIuCg611fX09eXh4//PADzz77LBqNhsTERLKzszGZTLz99tu89dZb5OTkjHlHvEdj5rH1xZRX1ju6lOMiKCiIh+6cRvwkn2F9nj179nD33Xczc+ZMfvnllxGP9tVqtXz66af85z//obq6mptuuom//OUvY/79KBAoGaEtBABqtZqkpCSSkpKYO3cucPDgY+fOneTm5rJ27VpKS0vx8PAgMzOTlJQUfvzxR3Q6Ha+99topkUbzy84DrHx5C71dLcf+ZgejcnLm9zN/x323ZeDqMnyHIofGrj/33HOcd955I3pNF7pCcKKIDowRwL7he82aNWzYsIE33niDlJQU+d97e3t59NFH+f777/npp5/kuUOxGfzUxWw28+2333L//ffT19eHv78/VquV9PR0uUU0ISFhWBd5OYIPt+5jw793Dms06lDhpHbmkvNTuf3qycP6d2o2m1m1ahWbN29m7dq1ZGVlDdtzHY358+fz6aef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\n",
"text/plain": [
"<Figure size 1080x360 with 2 Axes>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from qiskit.visualization import plot_state_city\n",
"plot_state_city(outputstate)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment