In [ ]:
from qiskit import QuantumCircuit, Aer
from qiskit.visualization import plot_histogram
from helpers import style

# definicja obwodu jednokubitowego
qc = QuantumCircuit(1)
# bramka Hadamarda na 0 kubicie (stan |+>)
qc.h(0)
# pomiar wszystkich kubitów
qc.measure_all()
# polecenie rysujące schemat obwodu kwantowego
qc.draw('mpl', style = style)

W praktyce, ponieważ kod jest uruchamiany na symulatorze komputera kwantowego rzeczywisty rozkład może różnić się od teoretycznego. Ważnym parametrem jest w tym przypadku liczba uruchomień obwodu - parametr 'shots'. Zwiększanie go powoduje zwiększenie dokładności wyników, ale wydłuża obliczenia, zwłaszcza dla bardziej skomplikowanych obwodów.

In [ ]:
#wybór symulatora z biblioteki Aer
backend = Aer.get_backend('statevector_simulator')
#zdefiniowanie zadania i liczby uruchomień obwodu
job = backend.run(qc, shots=1024)
#wyciągnięcie wybiku i wyrysowanie histogramu
result = job.result()
counts = result.get_counts()
plot_histogram(counts)

Dla porównania ten sam obwód uruchomiony dla większej liczby próbek. W tym przypadku rozkład powinien być bardziej zbliżony do 50/50.

In [ ]:
backend = Aer.get_backend('statevector_simulator')
job = backend.run(qc, shots=8096)
result = job.result()
counts = result.get_counts()
plot_histogram(counts)