Mi chiedevo se esiste un modo per comporre un programma con più circuiti quantistici senza reinizializzare il registro a per ciascun circuito.
In particolare, vorrei eseguire un secondo circuito quantico dopo aver eseguito il primo, come in questo esempio:
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'))
Sfortunatamente, quello che ottengo è lo stesso risultato per le due esecuzioni (ovvero il conteggio di 11per B1e B2invece di 11e 00per il secondo, come se B2fosse eseguito su uno stato completamente nuovo inizializzato su 00dopo B1.