量子计算机编程 | PDF下载|ePub下载
类别: 计算机
作者:[美] Gayle Laakmann McDowell
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
内容简介 · · · · · ·
– 提供配套在线实验室,花样玩转量子比特
– 没有“烧脑”的量子理论,程序员可轻松上手
– 全彩印刷,清晰呈现量子比特的变化过程
– 独创直观的圆形表示法,让学习曲线更平缓
量子计算机将开启一场全新的计算革命,而你现在就可以参与并推动这场革命!运用本书中的知识,你将成为探索量子计算应用的先驱,在连物理学家可能都闻所未闻的领域应用和拓展量子计算技术。
正如学习编程不需要精通晶体管背后的物理学,学习量子计算机编程也不需要精通量子力学。本书以程序员为中心,避开了艰深的数学公式,用直观的圆形表示法阐释了量子计算程序的概念、原理和应用场景。同时,本书提供了在线实验室,你可以一边运行JavaScript代码,一边观察和思考对应的可视化效果。
QPU编程:探索量子计算机编程的核心概念,包括如何描绘和操作量子比特,以及如何实现量子隐形传态。
QPU原语:学习算法原语,包括振幅放大、量子傅里叶变换和量子相位估计。
QPU应用:研究如何将QPU原语用于构建应用程序,示例包括量子搜索、量子超采样、舒尔分解和量子机器学习。
作者简介 · · · · · ·
埃里克·R. 约翰斯顿(Eric R. Johnston)毕业于美国加州大学伯克利分校,他创造了量子计算模拟器QCEngine,目前在硅谷担任高级量子工程师。
尼古拉斯·哈里根(Nicholas Harrigan)是英国伦敦帝国理工学院博士,他在量子力学方面的研究工作勉强使他相信,当他不看月亮时,月亮仍在那里。
梅塞德丝·希梅诺–塞戈维亚(Mercedes Gimeno-Segovia)从英国伦敦帝国理工学院取得博士学位后,加入了PsiQuantum公司,致力于设计通用量子计算机。
目录 · · · · · ·
译者序 xi
前言 xiii
第1章 入门 1
1.1 所需背景 1
1.2 何谓QPU 2
1.3 动手实践 3
1.4 原生QPU指令 6
1.4.1 模拟器的上限 7
1.4.2 硬件的上限 7
1.5 QPU与GPU的共同点 8
第2章 单个量子比特 11
2.1 物理量子比特概览 12
2.2 圆形表示法 15
2.2.1 圆的大小 15
2.2.2 圆的旋转 16
2.3 第一批QPU指令 17
2.3.1 QPU指令:NOT 17
2.3.2 QPU指令:HAD 18
2.3.3 QPU 指令:READ和WRITE 19
2.3.4 实践:完全随机的比特 20
2.3.5 QPU 指令:PHASE(θ) 23
2.3.6 QPU 指令:ROTX(θ) 和ROTY(θ) 23
2.4 复制:缺失的指令 24
2.5 组合QPU 指令 24
2.6 实践:量子监听检测 27
2.7 小结 30
第3章 多个量子比特 31
3.1 多量子比特寄存器的圆形表示法 31
3.2 绘制多量子比特寄存器 34
3.3 多量子比特寄存器中的单量子比特运算 34
3.4 可视化更多数量的量子比特 37
3.5 QPU 指令:CNOT 38
3.6 实践:利用贝尔对实现共享随机性 41
3.7 QPU 指令:CPHASE(θ) 和CZ 42
3.8 QPU 指令:CCNOT 45
3.9 QPU 指令:SWAP 和CSWAP 46
3.10 构造任意的条件运算 50
3.11 实践:远程控制随机 53
3.12 小结 55
第4章 量子隐形传态 56
4.1 动手尝试 56
4.2 程序步骤 61
4.2.1 步骤1:创建纠缠对 61
4.2.2 步骤2:准备有效载荷 62
4.2.3 步骤3.1:将有效载荷链接到纠缠对 62
4.2.4 步骤3.2:将有效载荷置于叠加态 63
4.2.5 步骤3.3:读取Alice 的两个量子比特 64
4.2.6 步骤4:接收和转换 64
4.2.7 步骤5:验证结果 65
4.3 解释结果 66
4.4 如何利用隐形传态 67
4.5 著名的隐形传态事故带来的乐趣 67
第5章 量子算术与逻辑 71
5.1 奇怪的不同 71
5.2 QPU 中的算术运算 73
5.3 两个量子整数相加 76
5.4 负整数 77
5.5 实践:更复杂的数学运算 78
5.6 更多量子运算 79
5.6.1 量子条件执行 79
5.6.2 相位编码结果 80
5.7 可逆性和临时量子比特 82
5.8 反计算 84
5.9 QPU 中的逻辑运算 86
5.10 小结 88
第6章 振幅放大 89
6.1 实践:在相位和强度之间相互转换 89
6.2 振幅放大迭代 92
6.3 更多迭代? 93
6.4 多个标记值 95
6.5 使用振幅放大 100
6.5.1 作为和估计的AA 与QFT 100
6.5.2 用AA 加速传统算法 100
6.6 QPU 内部 101
6.7 小结 103
第7章 量子傅里叶变换 104
7.1 隐藏模式 104
7.2 QFT、DFT 和FFT 106
7.3 QPU 寄存器中的频率 106
7.4 DFT 110
7.4.1 实数DFT 输入与复数DFT 输入 111
7.4.2 DFT 一切 113
7.5 使用QFT 117
7.6 QPU 内部 122
7.6.1 直观理解 124
7.6.2 逐步运算 124
7.7 小结 128
第8章 量子相位估计 129
8.1 了解QPU 运算 129
8.2 本征相位揭示有用信息 130
8.3 相位估计的作用 131
8.4 如何使用相位估计 132
8.4.1 输入 132
8.4.2 输出 134
8.5 使用细节 135
8.5.1 选择输出寄存器的大小 135
8.5.2 复杂度 136
8.5.3 条件运算 136
8.6 实践中的相位估计 136
8.7 QPU 内部 137
8.7.1 直观理解 138
8.7.2 逐步运算 139
8.8 小结 141
第9章 真实的数据 145
9.1 非整型数据 146
9.2 QRAM 147
9.3 向量的编码 150
9.3.1 振幅编码的局限性 153
9.3.2 振幅编码和圆形表示法 154
9.4 矩阵的编码 155
9.4.1 QPU运算如何表示矩阵 155
9.4.2 量子模拟 156
第10章 量子搜索 160
10.1 相位逻辑 161
10.1.1 构建基本的相位逻辑运算 163
10.1.2 构建复杂的相位逻辑语句 163
10.2 解决逻辑谜题 166
10.3 求解布尔可满足性问题的一般方法 170
10.3.1 实践:一个可满足的3-SAT问题 170
10.3.2 实践:一个不可满足的3-SAT 问题 173
10.4 加速传统算法 175
第11章 量子超采样 177
11.1 QPU 能为计算机图形学做什么 177
11.2 传统超采样 178
11.3 实践:计算相位编码图像 179
11.3.1 QPU 像素着色器 180
11.3.2 使用PHASE 画图 181
11.3.3 绘制曲线 184
11.4 采样相位编码图像 185
11.5 更有趣的图像 187
11.6 超采样 188
11.7 量子超采样与蒙特卡罗采样 190
11.8 增加颜色 195
11.9 小结 196
第12章 舒尔分解算法 197
12.1 实践:在QPU上应用舒尔分解算法 198
12.2 算法说明 199
12.2.1 我们需要QPU吗 200
12.2.2 量子方法 201
12.3 逐步操作:分解数字15 203
12.3.1 步骤1:初始化QPU寄存器 204
12.3.2 步骤2:扩展为量子叠加态 205
12.3.3 步骤3:条件乘2 207
12.3.4 步骤4:条件乘4 209
12.3.5 步骤5:QFT 211
12.3.6 步骤6:读取量子结果 213
12.3.7 步骤7:数字逻辑 214
12.3.8 步骤8:检查结果 216
12.4 使用细节 216
12.4.1 求模 216
12.4.2 时间与空间 217
12.4.3 除了2 以外的互质 217
第13章 量子机器学习 218
13.1 求解线性方程组 219
13.1.1 线性方程组的描述与求解 219
13.1.2 用QPU 解线性方程组 220
13.2 量子主成分分析 228
13.2.1 传统主成分分析 228
13.2.2 用QPU 进行主成分分析 230
13.3 量子支持向量机 233
13.3.1 传统支持向量机 233
13.3.2 用QPU实现支持向量机 236
13.4 其他机器学习应用 238
第14章 保持领先:文献指引 243
14.1 从圆形表示法到复向量 243
14.2 与术语有关的一些细节和注意事项 245
14.3 测量基 246
14.4 门的分解与编译 247
14.5 隐形传态门 248
14.6 QPU 名人堂 248
14.7 竞赛:量子计算机与传统计算机 249
14.8 基于oracle 的算法研究 249
14.8.1 Deutsch-Jozsa 算法 250
14.8.2 Bernstein-Vazirani算法 250
14.8.3 Simon算法 250
14.9 量子编程语言 251
14.10 量子模拟的前景 252
14.11 纠错与NISQ设备 252
14.12 进一步学习 252
14.12.1 出版物 253
14.12.2 课程讲义 253
14.12.3 在线资源 253
关于作者 254
关于封面 254
· · · · · ·
前言 xiii
第1章 入门 1
1.1 所需背景 1
1.2 何谓QPU 2
1.3 动手实践 3
1.4 原生QPU指令 6
1.4.1 模拟器的上限 7
1.4.2 硬件的上限 7
1.5 QPU与GPU的共同点 8
第2章 单个量子比特 11
2.1 物理量子比特概览 12
2.2 圆形表示法 15
2.2.1 圆的大小 15
2.2.2 圆的旋转 16
2.3 第一批QPU指令 17
2.3.1 QPU指令:NOT 17
2.3.2 QPU指令:HAD 18
2.3.3 QPU 指令:READ和WRITE 19
2.3.4 实践:完全随机的比特 20
2.3.5 QPU 指令:PHASE(θ) 23
2.3.6 QPU 指令:ROTX(θ) 和ROTY(θ) 23
2.4 复制:缺失的指令 24
2.5 组合QPU 指令 24
2.6 实践:量子监听检测 27
2.7 小结 30
第3章 多个量子比特 31
3.1 多量子比特寄存器的圆形表示法 31
3.2 绘制多量子比特寄存器 34
3.3 多量子比特寄存器中的单量子比特运算 34
3.4 可视化更多数量的量子比特 37
3.5 QPU 指令:CNOT 38
3.6 实践:利用贝尔对实现共享随机性 41
3.7 QPU 指令:CPHASE(θ) 和CZ 42
3.8 QPU 指令:CCNOT 45
3.9 QPU 指令:SWAP 和CSWAP 46
3.10 构造任意的条件运算 50
3.11 实践:远程控制随机 53
3.12 小结 55
第4章 量子隐形传态 56
4.1 动手尝试 56
4.2 程序步骤 61
4.2.1 步骤1:创建纠缠对 61
4.2.2 步骤2:准备有效载荷 62
4.2.3 步骤3.1:将有效载荷链接到纠缠对 62
4.2.4 步骤3.2:将有效载荷置于叠加态 63
4.2.5 步骤3.3:读取Alice 的两个量子比特 64
4.2.6 步骤4:接收和转换 64
4.2.7 步骤5:验证结果 65
4.3 解释结果 66
4.4 如何利用隐形传态 67
4.5 著名的隐形传态事故带来的乐趣 67
第5章 量子算术与逻辑 71
5.1 奇怪的不同 71
5.2 QPU 中的算术运算 73
5.3 两个量子整数相加 76
5.4 负整数 77
5.5 实践:更复杂的数学运算 78
5.6 更多量子运算 79
5.6.1 量子条件执行 79
5.6.2 相位编码结果 80
5.7 可逆性和临时量子比特 82
5.8 反计算 84
5.9 QPU 中的逻辑运算 86
5.10 小结 88
第6章 振幅放大 89
6.1 实践:在相位和强度之间相互转换 89
6.2 振幅放大迭代 92
6.3 更多迭代? 93
6.4 多个标记值 95
6.5 使用振幅放大 100
6.5.1 作为和估计的AA 与QFT 100
6.5.2 用AA 加速传统算法 100
6.6 QPU 内部 101
6.7 小结 103
第7章 量子傅里叶变换 104
7.1 隐藏模式 104
7.2 QFT、DFT 和FFT 106
7.3 QPU 寄存器中的频率 106
7.4 DFT 110
7.4.1 实数DFT 输入与复数DFT 输入 111
7.4.2 DFT 一切 113
7.5 使用QFT 117
7.6 QPU 内部 122
7.6.1 直观理解 124
7.6.2 逐步运算 124
7.7 小结 128
第8章 量子相位估计 129
8.1 了解QPU 运算 129
8.2 本征相位揭示有用信息 130
8.3 相位估计的作用 131
8.4 如何使用相位估计 132
8.4.1 输入 132
8.4.2 输出 134
8.5 使用细节 135
8.5.1 选择输出寄存器的大小 135
8.5.2 复杂度 136
8.5.3 条件运算 136
8.6 实践中的相位估计 136
8.7 QPU 内部 137
8.7.1 直观理解 138
8.7.2 逐步运算 139
8.8 小结 141
第9章 真实的数据 145
9.1 非整型数据 146
9.2 QRAM 147
9.3 向量的编码 150
9.3.1 振幅编码的局限性 153
9.3.2 振幅编码和圆形表示法 154
9.4 矩阵的编码 155
9.4.1 QPU运算如何表示矩阵 155
9.4.2 量子模拟 156
第10章 量子搜索 160
10.1 相位逻辑 161
10.1.1 构建基本的相位逻辑运算 163
10.1.2 构建复杂的相位逻辑语句 163
10.2 解决逻辑谜题 166
10.3 求解布尔可满足性问题的一般方法 170
10.3.1 实践:一个可满足的3-SAT问题 170
10.3.2 实践:一个不可满足的3-SAT 问题 173
10.4 加速传统算法 175
第11章 量子超采样 177
11.1 QPU 能为计算机图形学做什么 177
11.2 传统超采样 178
11.3 实践:计算相位编码图像 179
11.3.1 QPU 像素着色器 180
11.3.2 使用PHASE 画图 181
11.3.3 绘制曲线 184
11.4 采样相位编码图像 185
11.5 更有趣的图像 187
11.6 超采样 188
11.7 量子超采样与蒙特卡罗采样 190
11.8 增加颜色 195
11.9 小结 196
第12章 舒尔分解算法 197
12.1 实践:在QPU上应用舒尔分解算法 198
12.2 算法说明 199
12.2.1 我们需要QPU吗 200
12.2.2 量子方法 201
12.3 逐步操作:分解数字15 203
12.3.1 步骤1:初始化QPU寄存器 204
12.3.2 步骤2:扩展为量子叠加态 205
12.3.3 步骤3:条件乘2 207
12.3.4 步骤4:条件乘4 209
12.3.5 步骤5:QFT 211
12.3.6 步骤6:读取量子结果 213
12.3.7 步骤7:数字逻辑 214
12.3.8 步骤8:检查结果 216
12.4 使用细节 216
12.4.1 求模 216
12.4.2 时间与空间 217
12.4.3 除了2 以外的互质 217
第13章 量子机器学习 218
13.1 求解线性方程组 219
13.1.1 线性方程组的描述与求解 219
13.1.2 用QPU 解线性方程组 220
13.2 量子主成分分析 228
13.2.1 传统主成分分析 228
13.2.2 用QPU 进行主成分分析 230
13.3 量子支持向量机 233
13.3.1 传统支持向量机 233
13.3.2 用QPU实现支持向量机 236
13.4 其他机器学习应用 238
第14章 保持领先:文献指引 243
14.1 从圆形表示法到复向量 243
14.2 与术语有关的一些细节和注意事项 245
14.3 测量基 246
14.4 门的分解与编译 247
14.5 隐形传态门 248
14.6 QPU 名人堂 248
14.7 竞赛:量子计算机与传统计算机 249
14.8 基于oracle 的算法研究 249
14.8.1 Deutsch-Jozsa 算法 250
14.8.2 Bernstein-Vazirani算法 250
14.8.3 Simon算法 250
14.9 量子编程语言 251
14.10 量子模拟的前景 252
14.11 纠错与NISQ设备 252
14.12 进一步学习 252
14.12.1 出版物 253
14.12.2 课程讲义 253
14.12.3 在线资源 253
关于作者 254
关于封面 254
· · · · · ·
发表回复
要发表评论,您必须先登录。