Пример #1
0
    def build_circuit(self, qubit_ops):
        program = Program()
        self.qubits = [program.alloc() for _ in range(len(qubit_ops))]

        program_readout_reg = program.declare("ro",
                                              memory_type="BIT",
                                              memory_size=len(self.qubits))

        for qb, gatestr in zip(self.qubits, qubit_ops):
            if gatestr == "I":
                pass
            elif gatestr == "X":
                program.gate("X", qubits=[qb], params=[])
            elif gatestr == "H":
                program.gate("H", qubits=[qb], params=[])
            elif gatestr == "K":  # our one char CX label
                program.gate(
                    "CNOT",
                    qubits=[self.qubits[self.qubits.index(qb) - 1], qb],
                    params=[])

        program.measure_all(*zip(self.qubits, program_readout_reg))
        program = address_qubits(program)
        program.wrap_in_numshots_loop(shots=10)

        self.program = program