quantum-showcase/chapter1/Quantum gates.ipynb

110 lines
9.2 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "60d947d2-c3f7-4d75-95e1-cf811094e9df",
"metadata": {},
"outputs": [],
"source": [
"SpinQit определяет 22 логических квантовых вентиля \n",
"(I, H, X, Y, Z, Rx, Ry, Rz, P, T, Td, S, Sd, CX/CNOT, CY, CZ, U, CP, SWAP, CCX, Ph, CSWAP)\n",
"и два специальных вентиля (MEASURE и BARRIER). \n",
"В частности, P — это вентили сдвига фазы, а Ph — это глобальные фазовые вентили."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "fbc7e45a-67df-4e4e-a8b3-a0df24f32b0d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'10': 512, '11': 512}\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 337x248 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from spinqit import get_basic_simulator, get_compiler, Circuit, BasicSimulatorConfig\n",
"from spinqit import H, CX, Rx, view\n",
"from math import pi\n",
"\n",
"# Write the program\n",
"circ = Circuit()\n",
"q = circ.allocateQubits(2)\n",
"circ << (Rx, q[0], pi)\n",
"circ << (H, q[1])\n",
"circ << (CX, (q[0], q[1]))\n",
"\n",
"# Choose the compiler and backend\n",
"comp = get_compiler(\"native\")\n",
"engine = get_basic_simulator()\n",
"\n",
"# Compile\n",
"optimization_level = 0\n",
"exe = comp.compile(circ, optimization_level)\n",
"\n",
"#Draw\n",
"view.draw (exe)\n",
"\n",
"# Run\n",
"config = BasicSimulatorConfig()\n",
"config.configure_shots(1024)\n",
"result = engine.execute(exe, config)\n",
"\n",
"print(result.counts)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e2b9ac37-48c9-4140-a2c7-0716ef2f00e8",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "2ff31459-0f9d-4e62-ab0c-fa47bd3170da",
"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.9.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}