Skip to content

Instantly share code, notes, and snippets.

@yutakahashi114
Created November 23, 2019 13:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yutakahashi114/2984877ce85775919205c3441d7dca95 to your computer and use it in GitHub Desktop.
Save yutakahashi114/2984877ce85775919205c3441d7dca95 to your computer and use it in GitHub Desktop.
import cirq
class Network:
def send(self, encode_function):
qubits = [cirq.LineQubit(i) for i in range(3)]
circuit = cirq.Circuit(
encode_function(qubits[0]),
cirq.H(qubits[1]),
cirq.CNOT(qubits[1], qubits[2]),
cirq.CNOT(qubits[0], qubits[1]),
cirq.H(qubits[0])
)
return circuit, qubits
def reflect_measure_results(self, circuit, qubits):
# 測定結果が1ならボブのqubitにXゲートを追加
circuit.append([
cirq.CX(qubits[1], qubits[2]),
])
# 測定結果が1ならボブのqubitにZゲートを追加
circuit.append([
cirq.CZ(qubits[0], qubits[2]),
])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment