Квантовое программирование: переход от 0 к 1 с использованием Cirq

Все мы знаем, что обычные компьютеры используют биты 0 и 1 для хранения данных и задач обработки, поэтому, например, если у меня есть четыре бита в строке, я могу представить группу чисел.

Давайте начнем!

Итак, что такое компьютеры Quantum?

Понимание компьютеров Quantum довольно сложное и запутанное. Так что я собираюсь разобрать это простым способом, чтобы понять это.

Все мы знаем, что обычные компьютеры используют биты 0 и 1 для хранения данных и задач обработки, поэтому, например, если у меня есть четыре бита в строке, я могу представить группу чисел.

Квантовые биты, известные как кубиты, имеют либо 0, либо 1, но могут быть 0 и 1 одновременно.

Я знаю! Я знаю! это звучит очень странно и сбивает с толку, потому что это не совсем понятно, например, давайте представим, что бит похож на монету, он может быть как головой, так и хвостом, как 0 или 1.

это могут быть только головы или хвосты, верно?

Что это сейчас?

пока он в воздухе Это голова или хвост?

это головы или хвосты теперь странным образом, это головы и хвосты в одно и то же время, что даже не имеет смысла, прежде чем оно упадет в мою ладонь, когда я вижу монету, так что тогда я могу видеть, на что это похоже, и это теория за квантовым битом, поэтому он должен быть 0 и 1 в один и тот же момент.

В простых словах кубиты — это биты с двумя состояниями, и каждое состояние имеет некоторую вероятность, как в случае монет

Ты правильно думаешь!

Как это изменит мир?

Что ж, теперь начинается самое интересное. Предположим, у нас есть 4 бита, у нас 16 возможностей (значит, у нас 16 номеров).

скажем, я пытаюсь взломать пароль пароль, который я пытаюсь взломать — это одно из чисел, которое мы можем получить с помощью этих битов.

Обычный компьютер будет принимать по одному номеру за раз и помещать его в обычный компьютер один за другим, пока мы не получим правильный ответ

Что делать, если мы используем квантовый компьютер, поэтому вместо того, чтобы вводить эти четыре обычных бита, Мы вставляем четыре квантовых бита, Теперь запомните, что каждый бит — это и 0, и 1, что означает, что все эти квантовые биты — это все числа одновременно

Итак, когда я помещаю квантовые биты в свою машину, чтобы найти правильный пароль, то, что слышно на другом конце машины, говорит, что я и прав, и неправ, потому что мы давали и правильные, и неправильные ответы одновременно.

Мы все еще хотим знать, какой пароль правильный? верно?

Ну, есть техника под названием растущий оператор, это реальная вещь, где вы можете смести все неправильные ответы, и то, что вы остались позади, является правильным ответом

В этом вся прелесть квантовых вычислений.

Я слышал, что некоторые люди говорят, что понадобится возраст вселенной, чтобы попытаться взломать эти коды

Вот насколько они безопасны, но с квантовым компьютером вы можете попробовать их все одновременно, используя оператор Grower, чтобы смести все неправильные ответы, и то, что у вас осталось, является правильным ответом.

Таким образом, вместо того, чтобы тратить миллионы лет на обычный компьютер, вы можете сделать это за несколько секунд с квантовыми компьютерами.

Вы взволнованы, чтобы написать свою первую квантовую программу

Давайте начнем

# install latest version
!pip install cirq
import cirq
import numpy as np
from cirq import Circuit
from cirq.devices import GridQubit
# creating circuit with 5 qubit
length = 5

qubits = (cirq.GridQubit(i, j) for i in range(length) for j in range(length))
print(qubits)

Применение операции Адамара на каждом кубите

circuit = cirq.Circuit()
H1 = cirq.H(qubits(0))
H2 = cirq.H(qubits(1))
H3 = cirq.H(qubits(2))
H4 = cirq.H(qubits(3))
H5 = cirq.H(qubits(4))

Примените операцию CNOT к (0, 1), (1,2), (2,3), (3,4), поменяйте местами (0,4), вращая X с помощью pi / 2

C1 = cirq.CNOT(qubits(0),qubits(1))
C2 = cirq.CNOT(qubits(1),qubits(2))
C3 = cirq.CNOT(qubits(2),qubits(3))
C4 = cirq.CNOT(qubits(3),qubits(4))

#swap
S1 = cirq.SWAP(qubits(0),qubits(4))

#Rotation
X1 = cirq.X(qubits(0))
X2 = cirq.X(qubits(1))
X3 = cirq.X(qubits(2))
X4 = cirq.X(qubits(3))
X5 = cirq.X(qubits(4))

Создание момента и печать схемы

moment1 = cirq.Moment((H1))
moment2 = cirq.Moment((H2))
moment3 = cirq.Moment((H3))
moment4 = cirq.Moment((H4))
moment5 = cirq.Moment((H5))
moment6 = cirq.Moment((C1))
moment7 = cirq.Moment((C2))
moment8 = cirq.Moment((C3))
moment9 = cirq.Moment((S1))
moment10 = cirq.Moment((X1))
moment11 = cirq.Moment((X2))
moment12 = cirq.Moment((X3))
moment13 = cirq.Moment((X4))
moment14 = cirq.Moment((X5))

#circuit
circuit = cirq.Circuit((moment1, moment2, moment3, moment4, moment5 ,moment6 ,moment7, moment8, moment9, moment10, moment11, moment12, moment13, moment14))
print(circuit)

Это квантовая схема, которую вы получаете, я рекомендую вам попробовать поиграть с ней.

Я надеюсь, что это помогло вам, спасибо за чтение!



Источник: Квантовое программирование: переход от 0 к 1 с использованием Cirq


Похожие материалы по теме: Квантовое программирование: переход от 0 к 1 с использованием Cirq

Leave a comment