QTEA26 — Salı Oturum 2/3
2026-03-10
| Nesne | Ne tutar? | Neden gerekli? |
|---|---|---|
QuantumRegister |
Kubitler | Üzerinde kapılar çalışıyor |
ClassicalRegister |
Klasik bitler | Ölçüm sonuçları buraya yazılıyor |
QuantumCircuit |
Devrenin tamamı | Kapıları ve ölçümleri bir arada tanımlıyor |
x → NOT operatörünün Qiskit adı (x-gate)measure(q[0], c[0]) → kubiti ölç, sonucu klasik bite yaz─, klasik bitler çift çizgi ═AerSimulator — yerel klasik simülatör, gerçek donanım gerektirmiyorshots — devrenin kaç kez çalıştırılacağıcounts — {'sonuç': frekans} sözlüğü'1' her seferinde → {'1': 1024}plot_histogram: counts sözlüğünden otomatik bar grafiği'1'{'0': 62, '1': 962}
{'1': 1024} — gerçekte 62 hata (~%6 hata oranı)q2 = QuantumRegister(4, "qreg")
c2 = ClassicalRegister(4, "creg")
qc2 = QuantumCircuit(q2, c2)
qc2.x(q2[0]); qc2.x(q2[0]) # 2 kez → 0
qc2.x(q2[3]) # 1 kez → 1
qc2.x(q2[2]); qc2.x(q2[2]); qc2.x(q2[2]) # 3 kez → 1
qc2.x(q2[1]); qc2.x(q2[1]); qc2.x(q2[1]); qc2.x(q2[1]) # 4 kez → 0
qc2.barrier()
qc2.measure(q2, c2)barrier() — görsel ayırıcı; hesaplamayı etkilemezqc2.measure(q2, c2) — tüm kubitleri tek satırda ölçQiskit dört kubiti şu sıraya göre birleştiriyor:
\[qreg[3],\ qreg[2],\ qreg[1],\ qreg[0]\]
qreg[3] — en anlamlı bit (MSB)qreg[0] — en az anlamlı bit (LSB)Çoklu kubit devresi sonucu:
\[\underbrace{1}_{qreg[3]}\ \underbrace{1}_{qreg[2]}\ \underbrace{0}_{qreg[1]}\ \underbrace{0}_{qreg[0]} \rightarrow \texttt{'1100'}\]
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit_aer import AerSimulator
from random import randrange
q = QuantumRegister(8)
c = ClassicalRegister(8)
qc = QuantumCircuit(q, c)
for i in range(8):
if randrange(2) == 0: # Python ile yazı-tura: 0 = tura
qc.x(q[i])
qc.barrier()
qc.measure(q, c)
display(qc.draw(output='mpl', reverse_bits=True))
job = AerSimulator().run(qc, shots=128)
counts = job.result().get_counts(qc)
print(counts)randrange(2): Python yazı-turası — 0 veya 1shots=128 → aynı deterministik devreyi 128 kez tekrarlarQuantumRegister + ClassicalRegister → QuantumCircuitAerSimulator().run(qc, shots=N) → counts sözlüğüqreg[N-1] ... qreg[0] (MSB → LSB)