Tôi đã tự hỏi nếu có một cách để soạn một chương trình với nhiều mạch lượng tử mà không có thanh ghi được khởi tạo lại ở cho mỗi mạch.
Cụ thể, tôi muốn chạy một mạch lượng tử thứ hai sau khi chạy mạch thứ nhất, như trong ví dụ này:
qp = QuantumProgram()
qr = qp.create_quantum_register('qr',2)
cr = qp.create_classical_register('cr',2)
qc1 = qp.create_circuit('B1',[qr],[cr])
qc1.x(qr)
qc1.measure(qr[0], cr[0])
qc1.measure(qr[1], cr[1])
qc2 = qp.create_circuit('B2', [qr], [cr])
qc2.x(qr)
qc2.measure(qr[0], cr[0])
qc2.measure(qr[1], cr[1])
#qp.add_circuit('B1', qc1)
#qp.add_circuit('B2', qc2)
pprint(qp.get_qasms())
result = qp.execute()
print(result.get_counts('B1'))
print(result.get_counts('B2'))
Thật không may, những gì tôi nhận được là kết quả tương tự cho hai lần chạy (tức là số đếm 11
cho B1
và B2
thay vì 11
và 00
cho lần thứ hai, như thể B2
được chạy trên trạng thái hoàn toàn mới được khởi tạo 00
sau đó B1
.