我想知道是否有一种方法可以组成一个具有多个量子电路的程序,而不必为每个电路将寄存器重新初始化为。
具体来说,我想在运行第一个量子电路之后再运行第二个量子电路,如下例所示:
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
after之后初始化的全新状态下运行一样B1
。
1
因此,当您想要一个由多个部分组成的长电路,并且希望能够看到每个部分之后的输出时,我能理解吗?
—
詹姆斯·伍顿
是。想象一下,我有一个给我电路的代码库,我希望能够将它们组成一个谜题:)
—
asdf
(该措施只是为了向您表明这不是预期的行为)
—
asdf