Je me demandais s'il y avait un moyen de composer un programme avec plusieurs circuits quantiques sans avoir réinitialisé le registre à pour chaque circuit.
Plus précisément, je voudrais exécuter un deuxième circuit quantique après avoir exécuté le premier, comme dans cet exemple:
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'))
Malheureusement, ce que j'obtiens est le même résultat pour les deux exécutions (c'est-à-dire un décompte de 11
pour B1
et B2
au lieu de 11
et 00
pour la seconde, comme s'il B2
était exécuté sur un état complètement nouveau initialisé 00
après B1
.