from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit from qiskit import Aer, execute from qiskit.tools.visualization import plot_histogram # Quantum XOR - really just CNOT # input qubits: a, b # output qubits: b def qxor(circ, a, b) : circ.cx(a, b) # Create registers and circuit a = QuantumRegister(2, 'a') # input qc = QuantumCircuit(a) # Build a circuit that initializes the input bits to a full superposition # Calls the XOR function and then measures the output register qc.h(a) qc.barrier() qxor(qc, a[0], a[1]) qc.barrier() m = ClassicalRegister(1, 'output') qc.add_register(m) qc.measure(a[1], m) # Simulate and show results backend = Aer.get_backend('qasm_simulator') job = execute(qc, backend, shots=4096) # shots default = 1024 result = job.result() print(result.get_counts()) qc.draw(output='mpl') plot_histogram(result.get_counts())