Skip to content

Instantly share code, notes, and snippets.

@primaryobjects
Created March 16, 2025 21:08
Show Gist options
  • Save primaryobjects/2709a6492eed8e0ac268f292639db324 to your computer and use it in GitHub Desktop.
Save primaryobjects/2709a6492eed8e0ac268f292639db324 to your computer and use it in GitHub Desktop.
Quantum computing hello world in Python qiskit
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"#!pip install qiskit\n",
"#!pip install qiskit-aer\n",
"from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister, transpile\n",
"from qiskit_aer import Aer\n",
"from qiskit.visualization import plot_histogram"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
"\n",
"numbers = []\n",
"results = {}\n",
"\n",
"for i in range(100):\n",
" num = random.randint(0, 1)\n",
"\n",
" numbers.append(num)\n",
" \n",
" # Count occurrences of each value for plotting a histogram of the random values.\n",
" results[num] = results[num] + 1 if num in results else 1"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1]\n"
]
},
{
"data": {
"image/png": "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EEAAAMA4BBAAADBO0AFUWFio0tLSS84pKytTYWFhsHcBAAAQFkEHUHZ2ttatW3fJOa+99pqys7ODvQsAAICwCDqAvF7vZed4PB7ZbLZg7wIAACAswnoO0MGDB9WtW7dw3gUAAECrxbRm8kMPPeT3/fvvv6+jR482med2u63zf3Jzc69ogQAAAKHWqgD66jk/NptNJSUlKikpaXauzWbTN77xDb3wwgtXsj4AAICQa1UAHTlyRNLF839SU1P12GOP6dFHH20yz+FwqEePHurSpUtoVgkAABBCrQqgAQMGWP9eu3atMjMz/cYAAADag1YF0FdNmTIllOsAAABoM0EHkM+ePXtUXFys06dPy+12N7ncZrNp/vz5V3o3AAAAIRN0AFVVVem73/2udu7cecnPBCKAAABAtAk6gGbPnq3//d//1ahRozRlyhT169dPMTFXfEAJAAAg7IIulo0bN+qWW27Rtm3b+LRnAADQrgT9SdB1dXUaOXIk8QMAANqdoAMoIyOj2U+BBgAAiHZBB9CCBQv0xz/+Ubt37w7legAAAMIu6HOAysvLlZeXp29961uaOHGihg4dqsTExGbnTp48ucW3++KLL+rFF1+0ji5df/31euqpp6y/KXb+/Hn97Gc/04YNG1RfX6+cnBz913/9l/r27WvdRmlpqWbOnKnt27era9eumjJlilasWMFJ2gAAQNIVBNCDDz4om80mr9erdevWad26dU3OB/J6vbLZbK0KoH79+mnlypW65ppr5PV69fvf/1533323/vrXv+r666/XT3/6U33wwQd6++231a1bNz3yyCP63ve+p507d0q6+IdY8/Ly5HK5tGvXLh0/flyTJ0+W0+nU8uXLg91cAADQgQQdQGvXrg3lOix33nmn3/fLli3Tiy++qN27d6tfv3565ZVXtH79eo0ePdpax3XXXafdu3frtttuU0FBgT7//HNt3bpVffv2VUZGhpYsWaI5c+Zo4cKFio2NDcu6AQBA+xHVfwrD7Xbr7bff1tmzZ5WVlaW9e/eqoaFBY8eOteakpaWpf//+Kioq0m233aaioiLdeOONfm+J5eTkaObMmfrss8+UmZnZ7H3V19ervr7e+r6mpkaS1NDQoIaGBkmS3W6Xw+GQ2+2Wx+Ox5vrGGxsb/T4U0uFwyG63NxkHwsX3WA302PON++b5+N4ebmxsbNG4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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(numbers)\n",
"plot_histogram(results)"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 269.064x200.667 with 1 Axes>"
]
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Setup a quantum circuit (1 bit random number 0-1).\n",
"qc = QuantumCircuit(1, 1)\n",
"\n",
"# Select the simulator.\n",
"simulator = Aer.get_backend('aer_simulator')\n",
"\n",
"# Place the qubit into superposition (50% chance 0 or 1).\n",
"qc.h(0)\n",
"\n",
"# Measure the qubit.\n",
"qc.measure(0, 0)\n",
"\n",
"qc.draw(output='mpl')"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'0': 533, '1': 491}\n",
"{1: 51, 0: 49}\n"
]
}
],
"source": [
"numbers = []\n",
"results = {}\n",
"\n",
"compiled_circuit = transpile(qc, simulator)\n",
"\n",
"for i in range(100):\n",
" # Execute the circuit.\n",
" job = simulator.run(compiled_circuit)\n",
" result = job.result()\n",
" counts = result.get_counts()\n",
"\n",
" # Find the most frequent hit count.\n",
" key = max(counts, key=counts.get)\n",
"\n",
" # Since the quantum computer returns a binary string (one bit for each qubit), we need to convert it to an integer.\n",
" num = int(key, 2)\n",
"\n",
" numbers.append(num)\n",
" \n",
" # Count occurrences of each value for plotting a histogram of the random values.\n",
" results[num] = results[num] + 1 if num in results else 1\n",
"\n",
"print(counts)\n",
"print(results)"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0]\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(numbers)\n",
"plot_histogram(results)"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [],
"source": [
"# Select the simulator.\n",
"simulator = Aer.get_backend('aer_simulator')\n",
"\n",
"def create_circuit():\n",
" # Setup a quantum circuit (1 bit random number 0-1).\n",
" qc = QuantumCircuit(1, 1)\n",
"\n",
" # Place the qubit into superposition (50% chance 0 or 1).\n",
" qc.h(0)\n",
"\n",
" # Measure the qubit.\n",
" qc.measure(0, 0)\n",
"\n",
" return qc\n",
"\n",
"def get_random(qc):\n",
" # Execute the circuit.\n",
" compiled_circuit = transpile(qc, simulator)\n",
" job = simulator.run(compiled_circuit, shots=100)\n",
" result = job.result()\n",
" counts = result.get_counts()\n",
"\n",
" # Find the most frequent hit count.\n",
" key = max(counts, key=counts.get)\n",
"\n",
" return int(key)"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello World :)\n"
]
}
],
"source": [
"def say_hello():\n",
" qc = create_circuit()\n",
" rand = get_random(qc)\n",
"\n",
" if rand == 0:\n",
" print('Hello World :(')\n",
" else:\n",
" print('Hello World :)')\n",
"\n",
"say_hello()"
]
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from IPython.display import Image\n",
"\n",
"def meow_or_ruff():\n",
" qc = create_circuit()\n",
" rand = int(get_random(qc))\n",
"\n",
" if rand == 0:\n",
" file_name = 'cat.png'\n",
" else:\n",
" file_name = 'dog.png'\n",
"\n",
" display(Image(file_name))\n",
"\n",
"meow_or_ruff()"
]
}
],
"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.12.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment