{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example 3: Two-qubit equality circuit\n", "Create a circuit that checks whether two qubits are equal in the computational basis. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit\n", "from qiskit import Aer, execute\n", "from qiskit.tools.visualization import plot_histogram" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Create a 2-qubit input register and a 1-qubit output register\n", "# Create a 1-bit classical register for the measurement`\n", "# Create a circuit (qc) including those registers\n", "\n", "qin = QuantumRegister(2) # input\n", "qout = QuantumRegister(1) # output\n", "c = ClassicalRegister(1)\n", "qc = QuantumCircuit(qin,qout,c)\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Define a python function that takes a circuit, an input register, and an output register\n", "# The function adds gates to the circuit to implement the equals circuit\n", "\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Build a circuit that initializes the input bits to |0> or |1> (using an X gate)\n", "# Calls the equal2 function and then measures the output\n", "\n", "\n", "qc.measure(qout,c)\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc.draw(output='mpl')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'0': 512}\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Simulate and show results\n", "backend = Aer.get_backend('qasm_simulator')\n", "job = execute(qc, backend, shots=512) # shots default = 1024\n", "result = job.result()\n", "print(result.get_counts())\n", "plot_histogram(result.get_counts())" ] }, { "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.9" } }, "nbformat": 4, "nbformat_minor": 2 }