Learn Quantum Computing
with Python and Q#
A HANDS-ON APPROACH
AND
SARAH KAISER
CHRIS GRANADE
Изучаем квантовые
вычисления на Python и Q#
П РА К Т И Ч Е С К И Й П ОД ХОД
И
С А РА К А Й З Е Р
К Р И СТ О Ф Е Р Г РА Н А Д
Москва, 2021
УДК 519.588
ББК 22.314
К15
К15
Кайзер С., Гранад К.
Изучаем квантовые вычисления на Python и Q# / пер. с анг. А. В. Логунова. –
М.: ДМК Пресс, 2021. – 430 с.: ил.
ISBN 978-5-97060-935-4
Технологический прорыв, связанный с распространением квантовых компьютеров,
уже не за горами. В этой книге технологии будущего обсуждаются с практической
стороны: комплект инструментов от компании Microsoft и язык Q# предоставляют
вам возможность поупражняться в квантовых вычислениях.
В части I вы создадите симулятор квантового устройства на языке Python, в части II
научитесь применять новые навыки написания квантовых приложений с помощью
языка Q# и Комплекта инструментов для квантовой разработки, а в части III – имплементировать алгоритм, который умножает целые числа экспоненциально быстрее,
чем самый лучший из известных стандартных алгоритмов.
Издание предназначено для разработчиков программного обеспечения. Предварительного опыта работы с квантовыми вычислениями, а также знания математики
или физики на продвинутом уровне не требуется.
Мы посвящаем эту книгу
следующему поколению квантовых разработчиков,
которые работают над тем, чтобы сделать эту сферу
более безопасной и инклюзивной
Оглавление
Часть I
1
2
3
4
5
6
Приступаем к работе с квантом.............................................................25
Введение в квантовые вычисления........................................................26
Кубиты: строительные блоки.................................................................42
Обмен секретами с помощью квантового распределения ключей.....83
Нелокальные игры: работа с несколькими кубитами........................ 107
Нелокальные игры: имплементирование многокубитового
симулятора............................................................................................. 125
Телепортация и запутанность: перемещение квантовых данных
с места на место..................................................................................... 146
Часть II
7
8
9
Программирование квантовых алгоритмов на Q#............................. 172
Перевес в другую пользу: введение в язык программирования Q#.... 173
Что такое квантовый алгоритм............................................................ 195
Квантовая телеметрия: это не просто фаза......................................... 232
Часть III
10
11
12
Прикладные квантовые вычисления................................................... 269
Решение химических задач с помощью квантовых компьютеров.... 270
Поиск с помощью квантовых компьютеров........................................ 304
Арифметика с помощью квантовых компьютеров............................. 337
Содержание
Вводное слово. ..........................................................................................12
Предисловие..............................................................................................14
Признательности......................................................................................16
О книге........................................................................................................18
Об авторах..................................................................................................23
Об иллюстрации на обложке. ................................................................24
Часть I
1
ПРИСТУПАЕМ К РАБОТЕ С КВАНТОМ . ..........25
Введение в квантовые вычисления.........................................26
1.1
1.2
1.3
Почему квантовые вычисления имеют значение?.................27
Что такое квантовый компьютер?. ............................................29
Как мы будем использовать квантовые компьютеры?.........32
Что квантовые компьютеры могут делать?........................34
Чего квантовые компьютеры не могут делать?...................36
1.4 Что такое программа?...................................................................38
1.4.1 Что такое квантовая программа?........................................40
Резюме........................................................................................................40
Зачем нужны случайные числа?.................................................43
Что такое классические биты?....................................................47
2.2.1
2.2.2
Что можно делать с классическими битами?.......................49
Абстракции – наши друзья.....................................................52
Кубиты: состояния и операции...................................................54
2.3.1 Состояние кубита..................................................................54
2.3.2 Игра в операции......................................................................57
2.3.3 Измерение кубитов.................................................................61
Последние комментарии
23 часов 36 минут назад
1 день 9 часов назад
1 день 22 часов назад
2 дней 5 часов назад
2 дней 6 часов назад
2 дней 7 часов назад