Last active
November 29, 2019 05:18
-
-
Save Miura-KR/a76ba0f088da6fb3d703589986e672d8 to your computer and use it in GitHub Desktop.
Qiskitrootgate
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# ルートゲート\n", | |
"`power(exponent)` メソッドを使ってルートゲートを作る.\n", | |
"\n", | |
"https://qiskit.org/documentation/locale/ja/api/qiskit.circuit.Gate.html?highlight=power#qiskit.circuit.Gate.power\n", | |
"\n", | |
"$\\sqrt{NOT}$ ゲート は `XGate().power(.5)` " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"#initialization\n", | |
"import matplotlib.pyplot as plt\n", | |
"%matplotlib inline\n", | |
"import numpy as np\n", | |
"\n", | |
"# importing Qiskit\n", | |
"from qiskit import IBMQ, Aer\n", | |
"from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister, execute\n", | |
"from qiskit.extensions.standard.x import XGate" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"NOT ゲート" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAJEAAABOCAYAAAAgsPTZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAADdklEQVR4nO3dz0vTcRzH8df3uy1neUjZQfAmiofhBL31A/FQGZQX28qDB4Vc5iWQoks/yNpirehQf4BQSjkWXdyhCJd2sSEo1mEHCxG8eFAQpuX3++0QGVLhV9+Oz/ebrwfs8t3h+2Y8ee+7H/DVLMuyQCSgqx6A3I8RkRgjIjFGRGKMiMQYEYkxIhJjRCTGiEiMEZEYIyIxRkRijIjEGBGJMSISY0QkxohIjBGRGCMiMUZEYoyIxBgRiTEiEmNEJMaISIwRkRgjIjFGRGJe1QO4wYE3GSXn/XbitJLz7hQ3EYkxIhJjRCTGiEiMEZEYIyIxRkRijIjEHBORaZpIJpOora2F3+9HQ0MDstks6urq0NPTo3o826xCAd/DF2COT/w+tr6OjSv92LhzD5ZpKpyuOBwTUXd3NwYGBhCNRpHJZBCJRNDR0YG5uTk0NTWpHs82rbQU+rl2GM+HYVkWLMOAcTcO+HzwXL8GTXfMS75nHPGzx9DQEAYHBzE2Nobm5mYAQEtLC6amppBOp10VEQDobWdhptKwJj7AnMzBWlqCN5mAdsCnerSicERE8Xgcra2tmwH9UlNTA5/Ph/r6ekWT7Y5W6ocebofx4BFQfhjexw+hHTqoeqyiUb5bFxYWMDs7i3A4/Mdz8/PzCAaDKCkpUTDZHlhbg+d8BFp5uepJisoREQFAZWXlluOFQgHZbLbob2Wapm372Cnz7TuYL15CO3USxqvX2O2dL+zMVsyHXcojCgQCAIB8Pr/leCKRwOLiIhobG1WMtWvm5EcYT57Cc+sGPJcvAcvLsN6Pqx6rqJRfE1VXVyMUCiEWi6GiogJVVVVIpVIYHR0FgKJvIjtbwu7/icxPn2HE7sNztR966Od1nB5uh/FsGNrxYzv+ZOaWe/co30S6rmNkZATBYBC9vb3o6upCIBBAX18fvF4vQqGQ6hFtsb58hXHzNjzRi9CPHtk8rredAVZW/uttpDn1VlWdnZ2Ynp7GzMyM6lH4z8ZtKN9E/5LL5Vz3/dB+5ciIVldXkc/nXXdRvV8pv7D+m7KyMhiGoXoMssmRm4jchRGRGCMiMUZEYoyIxBgRiTEiEnPszx7kHtxEJMaISIwRkRgjIjFGRGKMiMQYEYkxIhJjRCTGiEiMEZEYIyIxRkRijIjEGBGJMSISY0QkxohIjBGR2A+XvdTSMkFvqAAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 173.376x84.28 with 1 Axes>" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"circ = QuantumCircuit(1)\n", | |
"circ.append(XGate(), [0])\n", | |
"circ.draw(output=\"mpl\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$|1\\rangle$ が得られる" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"[0.+0.j 1.+0.j]\n" | |
] | |
} | |
], | |
"source": [ | |
"backend = Aer.get_backend('statevector_simulator')\n", | |
"res = execute(circ, backend).result()\n", | |
"outputstate = res.get_statevector(circ)\n", | |
"print(outputstate)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"NOT² ゲート" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAL4AAABOCAYAAACe5qyEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAEP0lEQVR4nO3aQWibZRzH8V/sYpMu6bIm1mxVCVmygKUpthXES6wwLQ68uBYLK5WizWkwQdmhIkqhtaW3HQadBwvSTShFZaYgonlBxJVYaKkHwwhaOuPK1C5Lm5buTTwMq6XJkoIvzxv/vw/k8rTl+fP225f3fftaCoVCAUTCPKR6ACIVGD6JxPBJJIZPIjF8Eonhk0gMn0Ri+CQSwyeRGD6JxPBJJIZPIjF8Eonhk0gMn0Ri+CQSwyeRGD6JxPBJJIZPIjF8Eonhk0gMn0Ri+CQSwyeRGD6JxPBJpEOqB6gGP30N3F1TPUV1cDYCoedVT1Eew6/A3TVgfVX1FPRf4qUOicTwSSSGTyIxfBKJ4ZNIDJ9EYvgkEsMnkUwTfj6fx8TEBILBIGw2G1pbW6FpGkKhEAYHB1WPV5Se1zF57W2cee8RvPyOE+9PvYI7G7cN2+/siA9f/fBxxetUmmnCHxgYwPDwMKLRKObm5tDT04Pe3l6kUim0t7erHq+oq998gO9+/AwXz13HlaH7/9odu9KneCqqhCleWZiensbU1BTi8TgikQgAoLOzEwsLC5idnTVt+LHvJ3H21Ls45vYDAN44PY7+sQB+++NneBt8aoejBzLFGX90dBRdXV270f8tEAjAarWipaVF0WSlbeTuYG19BcGmf/4oj3tOoM5Wj1R6SeFkVAnl4a+urmJ5eRnd3d37vraysoLm5mbU1tYqmOzBNrYzAIDD9iN71h02Fza3MipGogMwRfgA4PV696zncjlommb4ZY7FYin70bT4vp+rq3UCuH/m/7fs1jrqbPWGzFpTY8W9/M6+9Xv6Dg7VWA3Z86A0LV7RMTXqUynl4Xs8HgBAMpncsz4+Po50Oo22tjYVY5XlsLvQ6HoCN24u7K6lf09hcysD/7GwIXt6j/rw6+0be9Zy21n8mb21e59BlVF+c+v3+xEOhzEyMoKGhgY0NTVhZmYGsVgMAAw/4xcKhbLfk7ha/H38l54ZxCfxMbQGOlFf58bl2AV0nHzRsBvbFzpew6XPz+PpUBee9D2Lza0MJq+9Bd+jzQgcf8qQPQ8qEnkOhUvlj6lqlkIlv3mDJZNJRKNRzM/Pw+12o7+/H06nE0NDQ8hkMrDb7UrnKxW+ntfx4RcX8GXiI+zo22gLnsKbZyZx5LDHsFli1y/j028v4tb6L7A/7EDYH8Hrp8fQ6HrcsD0PwvUY0PGq6inKM0X4xfT19WFxcRFLS+qfkJQKn/arlvCVX+OXkkgkTPv8nqqfKcPPZrNIJpOmvbGl6qf85rYYh8MBXddVj0H/Y6Y84xMZjeGTSAyfRGL4JBLDJ5EYPonE8EkkUz7HNxtno+oJqke1HCvTvqtDZCRe6pBIDJ9EYvgkEsMnkRg+icTwSSSGTyIxfBKJ4ZNIDJ9EYvgkEsMnkRg+icTwSSSGTyIxfBKJ4ZNIDJ9E+gvChgmDod/NwAAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 233.576x84.28 with 1 Axes>" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"circ = QuantumCircuit(1)\n", | |
"circ.append(XGate().power(2), [0])\n", | |
"circ.draw(output=\"mpl\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$|0\\rangle$ が得られる" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"[1.+0.j 0.+0.j]\n" | |
] | |
} | |
], | |
"source": [ | |
"res = execute(circ, backend).result()\n", | |
"outputstate = res.get_statevector(circ)\n", | |
"print(outputstate)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$\\sqrt{NOT}$ゲート" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAL4AAABOCAYAAACe5qyEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAEP0lEQVR4nO3aQWibZRzH8V/sYpMu6bIm1mxVCVmygKUpthXES6wwLQ68uBYLK5WizWkwQdmhIkqhtaW3HQadBwvSTShFZaYgonlBxJVYaKkHwwhaOuPK1C5Lm5buTTwMq6XJkoIvzxv/vw/k8rTl+fP225f3fftaCoVCAUTCPKR6ACIVGD6JxPBJJIZPIjF8Eonhk0gMn0Ri+CQSwyeRGD6JxPBJJIZPIjF8Eonhk0gMn0Ri+CQSwyeRGD6JxPBJJIZPIjF8Eonhk0gMn0Ri+CQSwyeRGD6JxPBJpEOqB6gGP30N3F1TPUV1cDYCoedVT1Eew6/A3TVgfVX1FPRf4qUOicTwSSSGTyIxfBKJ4ZNIDJ9EYvgkEsMnkUwTfj6fx8TEBILBIGw2G1pbW6FpGkKhEAYHB1WPV5Se1zF57W2cee8RvPyOE+9PvYI7G7cN2+/siA9f/fBxxetUmmnCHxgYwPDwMKLRKObm5tDT04Pe3l6kUim0t7erHq+oq998gO9+/AwXz13HlaH7/9odu9KneCqqhCleWZiensbU1BTi8TgikQgAoLOzEwsLC5idnTVt+LHvJ3H21Ls45vYDAN44PY7+sQB+++NneBt8aoejBzLFGX90dBRdXV270f8tEAjAarWipaVF0WSlbeTuYG19BcGmf/4oj3tOoM5Wj1R6SeFkVAnl4a+urmJ5eRnd3d37vraysoLm5mbU1tYqmOzBNrYzAIDD9iN71h02Fza3MipGogMwRfgA4PV696zncjlommb4ZY7FYin70bT4vp+rq3UCuH/m/7fs1jrqbPWGzFpTY8W9/M6+9Xv6Dg7VWA3Z86A0LV7RMTXqUynl4Xs8HgBAMpncsz4+Po50Oo22tjYVY5XlsLvQ6HoCN24u7K6lf09hcysD/7GwIXt6j/rw6+0be9Zy21n8mb21e59BlVF+c+v3+xEOhzEyMoKGhgY0NTVhZmYGsVgMAAw/4xcKhbLfk7ha/H38l54ZxCfxMbQGOlFf58bl2AV0nHzRsBvbFzpew6XPz+PpUBee9D2Lza0MJq+9Bd+jzQgcf8qQPQ8qEnkOhUvlj6lqlkIlv3mDJZNJRKNRzM/Pw+12o7+/H06nE0NDQ8hkMrDb7UrnKxW+ntfx4RcX8GXiI+zo22gLnsKbZyZx5LDHsFli1y/j028v4tb6L7A/7EDYH8Hrp8fQ6HrcsD0PwvUY0PGq6inKM0X4xfT19WFxcRFLS+qfkJQKn/arlvCVX+OXkkgkTPv8nqqfKcPPZrNIJpOmvbGl6qf85rYYh8MBXddVj0H/Y6Y84xMZjeGTSAyfRGL4JBLDJ5EYPonE8EkkUz7HNxtno+oJqke1HCvTvqtDZCRe6pBIDJ9EYvgkEsMnkRg+icTwSSSGTyIxfBKJ4ZNIDJ9EYvgkEsMnkRg+icTwSSSGTyIxfBKJ4ZNIDJ9E+gvChgmDod/NwAAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 233.576x84.28 with 1 Axes>" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"circ = QuantumCircuit(1)\n", | |
"circ.append(XGate().power(.5), [0])\n", | |
"circ.draw(output=\"mpl\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"[0.5+0.5j 0.5-0.5j]\n" | |
] | |
} | |
], | |
"source": [ | |
"res = execute(circ, backend).result()\n", | |
"outputstate = res.get_statevector(circ)\n", | |
"print(outputstate)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$\\sqrt{NOT}$ゲート 二回目" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAARkAAABOCAYAAAAU7GLsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAEoElEQVR4nO3cb0jcBRzH8Y8680/nsjRzK0JM84F4khr07GaxkoKelDJrYggpYtGjaGBEIWiKT2LQAwNBCbcQjMHQJ1keQTQwQWcPkmEl1jVZ0+n5D3deD0aW6Nq529ff7673C+7JT378vnyF993vvDMhHA6HBQBGEp0eAEB8IzIATBEZAKaIDABTRAaAKSIDwBSRAWCKyAAwRWQAmCIyAEwRGQCmiAwAU0QGgCkiA8AUkQFgisgAMEVkAJgiMgBMERkApogMAFNEBoApIgPAFJEBYIrIADBFZACYIjIATBEZAKaOOD1ALPjpa2llwekpYkNGjlT07N2fz64jF+2uDwuRicDKgrQ07/QU/w/sOv5wuwTAFJEBYIrIADBFZACYIjIATBEZAKaIDABTRAaAKddEZnt7W93d3SosLFRqaqpKS0vl9/tVVFSkxsZGp8fbV2g7pJ6L7+rVDx/Wy+9n6KO+V3Rj9ZrZ9U635+mrHz6P+Hg8YdexyzWRaWhoUFtbm5qamjQyMqKamhrV1tZqdnZW5eXlTo+3r/PffKzvfrygs29f0rnWWx9T7TxX5/BU8Yldxy5XfK1gYGBAfX19Ghsbk8/nkyRVVlZqYmJCQ0NDro3M8Pc9On3yAx3LypckvflSl+o7C/TH9V+U+1Ces8PFGXYdu1zxSqajo0NVVVU7gflbQUGBkpOTVVJS4tBkt7e6fkMLS3MqfPSfAB7PfkLpqUc1G5hycLL4w65jm+ORmZ+f1/T0tKqrq/f8bG5uTsXFxUpJSXFgsv+2urksSbo/7YFdxz2pmVrbWHZipLjFrmObKyIjSbm5ubuOr6+vy+/3m98qJSQk3PHh94/tOS89JUPSrWfZfwtuLCk99ajJrElJybq5vbXn+M3Qlo4kJZtc86D8/rGIdsquoxftrqN9RMrxyGRnZ0uSZmZmdh3v6upSIBBQWVmZE2PdkSctUzmZj+vKbxM7xwJ/zmptY1n5x7wm18x9ME+/X7uy69j6ZlCLwas771XEI3Yd2xyPTH5+vrxer9rb29Xf36/R0VE1Nzert7dXksxfyYTD4Ts+fL4T+5774jON+mKsU4HrP2t1Y1mfDb+niidfMHsj8vmKNzR8qUeXZ79VaDuklbVFfXrhHeU9UqyC40+ZXPOgfL4TEe2UXUcv2l1H+4iU439dSkxM1ODgoJqamtTc3KysrCzV19erpaVFra2t8nptnqnuhVOVZxRcW9RbnzytrdCmygpP6sxrdp+heK7sdW1urensly26uvSr0u7zyJvvU1vDRSUlOf6rNMWuY1dC+CBJOkR1dXWanJzU1JTzfz0YP89/a4tU5mNSxam7P59dRy7aXR8Wx2+Xbmd8fNy1n48BEDlXRiYYDGpmZsa1b/oCiJwrby49Ho9CoZDTYwC4B1z5SgZA/CAyAEwRGQCmiAwAU0QGgCkiA8AUkQFgypWfk3GbjBynJ4gd0e6KXUcuVnbl2u8uAYgP3C4BMEVkAJgiMgBMERkApogMAFNEBoApIgPAFJEBYIrIADBFZACYIjIATBEZAKaIDABTRAaAKSIDwBSRAWCKyAAwRWQAmPoLANQ2YKZZIQwAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<Figure size 353.976x84.28 with 1 Axes>" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"circ.append(XGate().power(.5), [0])\n", | |
"circ.draw(output=\"mpl\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$|1\\rangle$ が得られる" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"[0.+0.j 1.+0.j]\n" | |
] | |
} | |
], | |
"source": [ | |
"res = execute(circ, backend).result()\n", | |
"outputstate = res.get_statevector(circ)\n", | |
"print(outputstate)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'qiskit-terra': '0.10.0',\n", | |
" 'qiskit-aer': '0.3.2',\n", | |
" 'qiskit-ignis': '0.2.0',\n", | |
" 'qiskit-ibmq-provider': '0.3.3',\n", | |
" 'qiskit-aqua': '0.6.1',\n", | |
" 'qiskit': '0.13.0'}" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import qiskit\n", | |
"qiskit.__qiskit_version__" | |
] | |
} | |
], | |
"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.4" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment