Skip to content

Instantly share code, notes, and snippets.

@gyu-don
Created March 3, 2020 05:15
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 gyu-don/bd36533d71163a7f155cd4b99c08bb5b to your computer and use it in GitHub Desktop.
Save gyu-don/bd36533d71163a7f155cd4b99c08bb5b to your computer and use it in GitHub Desktop.
爆弾検査問題をもっとやってみた
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from blueqat import Circuit, BlueqatGlobalSetting"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from blueqat.backends.numpy_backend import NumPyBackend\n",
"from blueqat.gate import Measurement\n",
"\n",
"class BombCheckGate(Measurement):\n",
" lowername = 'bombcheck'\n",
"\n",
"def gate_bombcheck(self, gate, ctx):\n",
" ctx = self.gate_measure(gate, ctx)\n",
" ctx.save_cache=True\n",
" if ctx.cregs[next(gate.target_iter(ctx.n_qubits))] == 1:\n",
" raise ValueError('爆発したよ')\n",
" return ctx\n",
"\n",
"NumPyBackend.gate_bombcheck = gate_bombcheck\n",
"BlueqatGlobalSetting.register_gate('bombcheck', BombCheckGate, allow_overwrite=True)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"セーフ\n"
]
}
],
"source": [
"try:\n",
" Circuit().bombcheck[0].run()\n",
"except ValueError:\n",
" print('爆発')\n",
"else:\n",
" print('セーフ')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"爆発\n"
]
}
],
"source": [
"try:\n",
" Circuit().x[0].bombcheck[0].run()\n",
"except ValueError:\n",
" print('爆発')\n",
"else:\n",
" print('セーフ')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def examine(c, bomb):\n",
" if bomb:\n",
" c.cx[0, 1]\n",
" return c.bombcheck[1]\n",
"\n",
"BlueqatGlobalSetting.register_macro('examine', examine, allow_overwrite=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"from math import pi\n",
"from collections import Counter\n",
"\n",
"def experimental(bomb, trial, n):\n",
" \"\"\"実験を行う\n",
" \n",
" bomb: 爆弾を置くか置かないか\n",
" trial: 実験回数\n",
" n: 各実験ごとに何度か測定を行うが、その測定回数\n",
" \"\"\"\n",
" delta = pi / n\n",
" result = Counter()\n",
" for i in range(trial):\n",
" c = Circuit()\n",
" for j in range(n):\n",
" c.ry(delta)[0].examine(bomb)\n",
" try:\n",
" result += c.x[0].m[0].run(shots=1)\n",
" except ValueError:\n",
" result['爆発'] += 1\n",
" return result"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({'00': 100})"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 爆弾なしの場合 (Desired result: 00)\n",
"experimental(False, 100, 50)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({'10': 90, '爆発': 10})"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 爆弾ありの場合 (Desired result: 10)\n",
"experimental(True, 100, 50)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({'10': 97, '爆発': 3})"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"experimental(True, 100, 50)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({'10': 70, '爆発': 30})"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"experimental(True, 100, 10)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({'10': 90, '爆発': 10})"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"experimental(True, 100, 20)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f903f3ea940>]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"x = list(range(1, 101))\n",
"y = [experimental(True, 100, t)['10'] for t in x]\n",
"\n",
"plt.plot(x, y)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({'爆発': 37, '10': 63})"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"experimental(True, 100, 5)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f903d104df0>]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"x = np.arange(1, 101)\n",
"y = 1 - np.sin(np.pi * 0.5 / x) ** 2 * x\n",
"plt.plot(x, y)"
]
},
{
"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.8.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment