第 1部分 量子计算导论
第 1章 进化,革命,还是炒作? 3
1.1 期望管理 4
1.1.1 硬件 4
1.1.2 软件 5
1.1.3 算法 8
1.1.4 为什么现在就开始量子计算? 9
1.2 量子计算的颠覆性部分:贴近自然 10
1.2.1 经典计算机的进化 10
1.2.2 量子计算机的进化 11
1.2.3 量子物理 11
1.3 混合计算 11
1.4 为量子计算机抽象软件 13
1.5 从量子到计算还是从计算到量子 15
本章小结 16
第 2章 “Hello, world”量子计算版 17
2.1 Strange简介 17
2.2 用Strange运行第 一个示例程序 18
2.3 分析HelloStrange的代码 20
2.3.1 构建过程 21
2.3.2 代码 23
2.3.3 Java API及其实现 25
2.4 获取并安装Strange代码 26
2.4.1 下载代码 26
2.4.2 初识代码库 26
2.5 后续步骤 27
本章小结 27
第3章 量子位与量子逻辑门:量子计算的基本单元 29
3.1 经典位与量子位 30
3.2 量子位的符号表示 31
3.2.1 一个量子位 31
3.2.2 多个量子位 32
3.3 逻辑门:操作和观测量子位 35
3.4 第 1个量子逻辑门:泡利X门 36
3.5 在Strange中操作量子位 37
3.5.1 QuantumExecutionEnvironment接口 38
3.5.2 Program类 39
3.5.3 Step和逻辑门 39
3.5.4 结果 40
3.6 量子电路的可视化 40
本章小结 42
第2部分 基本概念及其在编程中的应用
第4章 叠加态 47
4.1 什么是叠加态? 48
4.2 用概率向量表示量子系统的状态 51
4.3 矩阵门操作简介 55
4.3.1 泡利X门的矩阵表示 56
4.3.2 对叠加态的量子位运用泡利X门 57
4.3.3 适用于所有逻辑门的矩阵 59
4.4 阿达玛门:产生叠加态的门 60
4.5 运用阿达玛门的Java代码 61
本章小结 64
第5章 纠缠 65
5.1 预测正反面 65
5.2 独立概率:经典方式 66
5.3 独立概率:量子方式 70
5.4 纠缠的物理概念 72
5.5 表征量子纠缠的逻辑门 76
5.5.1 转换为概率向量 76
5.5.2 受控非门(CNOT门) 76
5.6 创建贝尔态:相关概率 80
5.7 《玛丽有个小量子位》 82
本章小结 84
第6章 量子网络初探 85
6.1 量子网络的拓扑结构 87
6.2 量子网络的障碍 89
6.2.1 Java中的经典网络 89
6.2.2 量子不可克隆定理 93
6.2.3 传输量子位的物理限制 95
6.3 泡利Z门与观测 96
6.3.1 泡利Z门 96
6.3.2 观测 98
6.4 量子远程传态 98
6.4.1 量子远程传态的目标 98
6.4.2 第 1步:Alice和Bob之间的纠缠 99
6.4.3 第 2步:Alice的操作 100
6.4.4 第3步:Bob的操作 101
6.4.5 运行应用程序 102
6.4.6 量子与经典通信 105
6.5 量子中继器 105
本章小结 109
第3部分 量子算法与代码
第7章 对“Hello, world”的解释 113
7.1 从硬件到高级语言 114
7.2 不同层次的抽象 115
7.3 量子计算模拟器的其他语言 116
7.3.1 方式 116
7.3.2 其他语言资源 117
7.4 Strange:高/低级方法 117
7.4.1 顶级API 118
7.4.2 低级API 118
7.4.3 何时使用何种接口 120
7.5 StrangeFX:一种开发工具 120
7.5.1 电路的可视化 120
7.5.2 调试Strange代码 122
7.6 使用Strange创建个人电路 125
7.6.1 量子算术:舒尔算法小引 126
7.6.2 将两个量子位相加 126
7.6.3 包含进位位的量子算术 128
7.6.4 后续步骤 131
7.7 模拟器、云服务和真正的硬件 131
本章小结 133
第8章 利用量子计算的安全通信 135
8.1 初始启动问题 135
8.1.1 利用网络传输位的问题 136
8.1.2 利用一次性密钥确保安全 137
8.1.3 共享密钥 139
8.2 量子密钥分配 139
8.3 朴素方法 140
8.4 利用叠加态 144
8.4.1 应用两个阿达玛门 144
8.4.2 发送叠加态量子位 145
8.5 BB84 149
8.5.1 迷惑Eve 149
8.5.2 Bob也迷惑了 151
8.5.3 Alice和Bob进行通信 152
8.6 Java中的量子密钥分配 152
8.6.1 代码 153
8.6.2 运行应用程序 155
本章小结 157
第9章 多伊奇-约萨算法 159
9.1 当解答不是问题时 159
9.2 函数的性质 161
9.3 可逆量子逻辑门 164
9.3.1 实验证据 165
9.3.2 数学证明 166
9.4 定义谕示 167
9.5 从函数到谕示 170
9.5.1 常数函数 171
9.5.2 平衡函数 172
9.6 多伊奇算法 173
9.7 多伊奇-约萨算法 178
9.8 结论 180
本章小结 181
第 10章 格罗弗搜索算法 183
10.1 还需要一个新的搜索架构吗? 183
10.1.1 传统搜索架构 184
10.1.2 什么是格罗弗搜索算法? 185
10.2 经典搜索问题 185
10.2.1 通用的准备工作 187
10.2.2 搜索列表 188
10.2.3 利用函数搜索 190
10.3 量子搜索:利用格罗弗搜索算法 192
10.4 概率与幅值 194
10.4.1 概率 194
10.4.2 幅值 195
10.5 格罗弗搜索背后的算法 197
10.5.1 运行示例代码 197
10.5.2 叠加态 199
10.5.3 量子谕示 200
10.5.4 格罗弗扩散算子:提高概率 204
10.6 结论 205
本章小结 206
第 11章 舒尔算法 207
11.1 一个小示例 208
11.2 营销炒作 208
11.3 经典分解和量子分解 209
11.4 一个跨领域问题 210
11.5 问题描述 211
11.6 舒尔算法背后的基本原理 213
11.6.1 周期函数 213
11.6.2 解决一个不同的问题 214
11.6.3 求周期的经典方法 217
11.6.4 后处理步骤 218
11.7 基于量子的实现 221
11.8 利用量子逻辑门创建周期函数 223
11.8.1 流程与电路 223
11.8.2 步骤 225
11.9 求周期 226
11.10 实现中的挑战 226
本章小结 227
附录A Strange入门 229
A.1 环境要求 229
A.2 获取和安装示例代码 230
A.3 HelloStrange程序 230
附录B 线性代数 235
B.1 矩阵与向量的乘法 235
B.2 矩阵乘法 236
B.3 张量积 237