Skip to content

Instantly share code, notes, and snippets.

@AstroEngineeer
Last active July 30, 2024 12:35
Show Gist options
  • Save AstroEngineeer/cf6f1be697969e5e849b66b7ee894e4e to your computer and use it in GitHub Desktop.
Save AstroEngineeer/cf6f1be697969e5e849b66b7ee894e4e to your computer and use it in GitHub Desktop.
Quantum Circuit - 4 bit adder
# %%
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit, Aer, execute
# %%
simulator = Aer.backends('statevector_simulator')[0]
# %%
def Full_Adder(circuit, a, b, c, d):
circuit.ccx(a, b, d)
circuit.cx(a, b)
circuit.ccx(b, c, d)
circuit.cx(b, c)
circuit.cx(a, b)
circuit.barrier()
# %%
A = QuantumRegister(4, name='a')
B = QuantumRegister(4, name='b')
S = QuantumRegister(4, name='s')
FC = QuantumRegister(1, name='fc')
C = ClassicalRegister(5, name='c')
FB_Adder = QuantumCircuit(A, B, S, FC, C)
# FB_Adder.x(0)
# FB_Ad0der.x(1)
# FB_Adder.x(2)
# FB_Adder.x(3)
# FB_Adder.x(4)
# FB_Adder.x(5)
# FB_Adder.x(6)
FB_Adder.x(7)
FB_Adder.barrier()
# C
# A B S C
Full_Adder(FB_Adder, 3, 7, 8, 9)
Full_Adder(FB_Adder, 2, 6, 9, 10)
Full_Adder(FB_Adder, 1, 5, 10, 11)
Full_Adder(FB_Adder, 0, 4, 11, 12)
FB_Adder.measure([8, 9, 10, 11, 12], [0, 1, 2, 3, 4])
# FB_Adder.to_gate()
FB_Adder.draw(output='mpl')
# %%
job = execute(FB_Adder, simulator)
result = job.result()
result.get_counts(FB_Adder)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment