Алгоритм Дойча

This commit is contained in:
2025-09-20 13:25:04 +03:00
parent 326a871d1e
commit f614abe349

25
task2/main.py Normal file
View File

@@ -0,0 +1,25 @@
import cirq
q0, q1 = cirq.LineQubit.range(2)
oracles = {
"0": [],
"1": [cirq.X(q1)],
"x": [cirq.CNOT(q0, q1)],
"notx": [cirq.CNOT(q0, q1), cirq.X(q1)],
}
def deutsch_algorithm(oracle):
yield cirq.X(q1)
yield cirq.H(q0), cirq.H(q1)
yield oracle
yield cirq.H(q0)
yield cirq.measure(q0)
simulator = cirq.Simulator()
for key, oracle in oracles.items():
result = simulator.run(cirq.Circuit(deutsch_algorithm(oracle)), repetitions=10)
print("oracle: {:<4} results: {}".format(key, result))