Учи Кванты! → Курс → Кубит и суперпозиция
Квантовое программирование: общие принципы
Квантовое программирование похоже на обычное только внешне: программа — текст, команды идут по порядку, есть кнопка «Выполнить». Но законы под капотом другие: ответ приходит статистикой, в середину программы нельзя подсмотреть, состояние кубита нельзя скопировать.
Измерьте
Перед вами настоящий кубит, его считает браузер. Нажмите «Измерить» несколько раз.
Ответ гуляет: то ноль, то единица. Программа при этом одна и та же, и это не сбой, а закон: результат одного запуска квантовой программы случаен.
Теперь нажмите «Запустить 100 раз». Сто запусков, собранных в одно задание, называют прогоном, а ответ квантовой программы это вся картина сразу: какие исходы выпадают и как часто. Хорошая квантовая программа устроена так, что нужный ответ выпадает почти всегда. Как этого добиться, покажет пятая станция.
Подсмотрите
Обычный программист живёт с отладчиком: остановил программу где угодно, посмотрел переменные, пошёл дальше. Попробуйте так же с кубитом.
Сначала «Запустить 100 раз»: картина знакомая, примерно поровну. Теперь нажмите «Заглянуть в середину» и снова запустите сто раз.
Все сто запусков дают то, что вы подглядели. Измерение это не подглядывание, оно меняет то, что измеряет: заглянули в середину вычисления и сломали состояние, которое программа готовила. Поэтому квантовая программа работает вслепую до самого конца, и только в конце одно измерение и ответ.
Скопируйте
Самая базовая операция любого языка это присваивание: b = a, и у вас две копии значения. Нажмите «Скопировать кубит».
Такой команды нет, и написать её нельзя: состояние кубита невозможно скопировать ни быстро, ни медленно, ни хитрой последовательностью команд. Это доказанный закон природы, его называют запретом клонирования.
Зато нажмите «Обменять»: состояния двух кубитов меняются местами, и это разрешено. Перенести состояние, разрушив оригинал, тоже можно. Получить две копии нельзя. Дальше в курсе из этого вырастет и защита квантовой связи, и исправление ошибок.
Открутите назад
Если нет присваиваний, из чего состоит квантовая программа? Из гейтов, элементарных операций над кубитом. Каждый гейт что-то поворачивает в его состоянии. Нажмите «Повернуть».
Единица стала выпадать примерно в трети запусков. Теперь «Открутить назад».
Снова сто нулей из ста. Любой гейт обратим: применили обратный, и состояние вернулось целиком. В обычной программе после x = 5 уже не узнать, что лежало в x раньше. Квантовая программа до самого измерения ничего не стирает и не теряет, и этим мы будем пользоваться постоянно.
Уберите случайность
На первой станции один поворот дал случайность 50 на 50. Нажмите «Повернуть дважды».
Сто нулей из ста: второй такой же поворот случайность убрал. Теперь «Вставить минус между».
Те же два поворота, между ними только знак минус, и теперь сто единиц из ста. Варианты ответа умеют гасить и усиливать друг друга, это называется интерференцией, и ею можно управлять. Весь курс, по сути, об одном: как поворотами заставить нужный ответ выпадать почти всегда, а ненужные погасить. Инструментов для этого три: суперпозиция, интерференция и запутанность.
Что вы только что сделали
За пять нажатий вы прошли по главным отличиям квантовой программы от обычной. Таблица собирает их вместе: не для заучивания, а чтобы было куда вернуться.
Каждая строка развернётся в отдельные уроки, где всё снова можно будет потрогать руками. Переходите к следующему уроку, там мы знакомимся с кубитом по-настоящему: что это такое и почему его рисуют сферой.
Дальше урок продолжается интерактивом — откройте его на сайте.