Мені було цікаво, чи є спосіб скласти програму з декількома квантовими схемами, не реєтинізуючи реєстр при для кожної схеми.
Зокрема, я хотів би запустити другий квантовий контур після запуску першого, як у цьому прикладі:
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'))
На жаль, те, що я отримую, є однаковим результатом для двох прогонів (тобто рахунку 11
для B1
і B2
замість, 11
і 00
для другого, як ніби B2
виконується у абсолютно новому стані, ініціалізованому 00
після B1
.