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 11cho B1và B2thay vì 11và 00cho 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 00sau đó B1.