Учи Кванты! → Курс → Кубит и суперпозиция

Квантовое программирование: общие принципы

Квантовое программирование похоже на обычное только внешне: программа — текст, команды идут по порядку, есть кнопка «Выполнить». Но законы под капотом другие: ответ приходит статистикой, в середину программы нельзя подсмотреть, состояние кубита нельзя скопировать.

Измерьте

Перед вами настоящий кубит, его считает браузер. Нажмите «Измерить» несколько раз.

Ответ гуляет: то ноль, то единица. Программа при этом одна и та же, и это не сбой, а закон: результат одного запуска квантовой программы случаен.

Теперь нажмите «Запустить 100 раз». Сто запусков, собранных в одно задание, называют прогоном, а ответ квантовой программы это вся картина сразу: какие исходы выпадают и как часто. Хорошая квантовая программа устроена так, что нужный ответ выпадает почти всегда. Как этого добиться, покажет пятая станция.

Подсмотрите

Обычный программист живёт с отладчиком: остановил программу где угодно, посмотрел переменные, пошёл дальше. Попробуйте так же с кубитом.

Сначала «Запустить 100 раз»: картина знакомая, примерно поровну. Теперь нажмите «Заглянуть в середину» и снова запустите сто раз.

Все сто запусков дают то, что вы подглядели. Измерение это не подглядывание, оно меняет то, что измеряет: заглянули в середину вычисления и сломали состояние, которое программа готовила. Поэтому квантовая программа работает вслепую до самого конца, и только в конце одно измерение и ответ.

Скопируйте

Самая базовая операция любого языка это присваивание: b = a, и у вас две копии значения. Нажмите «Скопировать кубит».

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

Зато нажмите «Обменять»: состояния двух кубитов меняются местами, и это разрешено. Перенести состояние, разрушив оригинал, тоже можно. Получить две копии нельзя. Дальше в курсе из этого вырастет и защита квантовой связи, и исправление ошибок.

Открутите назад

Если нет присваиваний, из чего состоит квантовая программа? Из гейтов, элементарных операций над кубитом. Каждый гейт что-то поворачивает в его состоянии. Нажмите «Повернуть».

Единица стала выпадать примерно в трети запусков. Теперь «Открутить назад».

Снова сто нулей из ста. Любой гейт обратим: применили обратный, и состояние вернулось целиком. В обычной программе после x = 5 уже не узнать, что лежало в x раньше. Квантовая программа до самого измерения ничего не стирает и не теряет, и этим мы будем пользоваться постоянно.

Уберите случайность

На первой станции один поворот дал случайность 50 на 50. Нажмите «Повернуть дважды».

Сто нулей из ста: второй такой же поворот случайность убрал. Теперь «Вставить минус между».

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

Что вы только что сделали

За пять нажатий вы прошли по главным отличиям квантовой программы от обычной. Таблица собирает их вместе: не для заучивания, а чтобы было куда вернуться.

Каждая строка развернётся в отдельные уроки, где всё снова можно будет потрогать руками. Переходите к следующему уроку, там мы знакомимся с кубитом по-настоящему: что это такое и почему его рисуют сферой.

Дальше урок продолжается интерактивом — откройте его на сайте.

Состояние

Измерение

Нажмите «Выполнить» — появится гистограмма исходов.

Сфера Блоха