《量子計算Python與Q#編程實戰》是2024年人民郵電出版社出版的圖書。
基本介紹
- 中文名:量子計算Python與Q#編程實戰
- 作者:薩拉·凱澤(Sarah Kaiser)、卡桑德拉·格拉內德
- 譯者:王海鵬
- 出版時間:2024年5月1日
- 出版社:人民郵電出版社
- ISBN:9787115590688
內容簡介,圖書目錄,
內容簡介
本書指導讀者使用Python和Q#語言學習量子計算,揭開量子計算的神秘面紗。本書儘量避免複雜的數學概念,試圖直接通過量子編程來幫助讀者建立對量子計算機的理解。讀者可以通過使用Python創建自己的量子模擬器來學習量子計算的基礎知識,然後使用QDK和Q#來編寫和運行與經典計算不同的算法。
通過閱讀本書,讀者將能夠把量子編程技術套用於量子密鑰分發等應用程式中,並處理真實的示例,如進行化學模擬和搜尋未排序的資料庫等。
圖書目錄
第 一部分 量子入門
第 1章 量子計算簡介 3
1.1 為什麼量子計算很重要? 4
1.2 什麼是量子計算機? 5
1.3 如何使用量子計算機? 7
1.3.1 量子計算機能做什麼? 9
1.3.2 量子計算機不能做什麼? 10
1.4 什麼是程式? 11
什麼是量子程式? 12
小結 14
第 2章 量子位:構建塊 15
2.1 為什麼需要隨機數? 16
2.2 什麼是經典位? 19
2.2.1 我們能用經典位做什麼? 21
2.2.2 抽象是我們的朋友 23
2.3 量子位:狀態和操作 25
2.3.1 量子位的狀態 25
2.3.2 操作的遊戲 27
2.3.3 測量量子位 31
2.3.4 一般化測量:基獨立 35
2.3.5 用代碼模擬量子位 37
2.4 編程一個工作的QRNG 42
小結 47
第3章 用量子密鑰分發來分享秘密 48
3.1 在愛情和加密中一切都很公平 48
3.1.1 量子NOT操作 51
3.1.2 藉助量子位共享經典位 55
3.2 雙組基的故事 56
3.3 量子密鑰分發:BB84 59
3.4 使用密鑰傳送秘密訊息 64
小結 67
第4章 非本地遊戲:使用多量子位 68
4.1 非本地遊戲 68
4.1.1 什麼是非本地遊戲? 69
4.1.2 測試量子物理學:CHSH遊戲 69
4.1.3 經典策略 72
4.2 處理多量子位狀態 73
4.2.1 暫存器 74
4.2.2 為什麼很難模擬量子計算機? 76
4.2.3 用於狀態製備的張量積 77
4.2.4 張量積對暫存器的量子位操作 78
小結 81
第5章 非本地遊戲:實現多量子位模擬器 82
5.1 QuTiP中的量子對象 82
5.1.1 升級仿真器 87
5.1.2 測量起來:如何測量多量子位? 91
5.2 CHSH:量子策略 94
小結 98
第6章 隱形傳態和糾纏:量子數據的移動 99
6.1 移動量子數據 99
6.1.1 換出模擬器 102
6.1.2 還有哪些雙量子位門? 106
6.2 所有的單(量子位)旋轉 108
6.3 隱形傳態 116
小結 119
第 一部分:結語 119
第二部分 在Q# 中對量子算法進行編程
第7章 改變勝率:關於Q#的介紹123
7.1 量子開發工具包介紹 124
7.2 Q#中的函式和操作 127
7.3 將操作作為參數傳遞 133
7.4 在Q#中玩莫甘娜的遊戲 138
小結 140
第8章 什麼是量子算法 141
8.1 經典算法和量子算法 141
8.2 多伊奇-約薩算法:對搜尋的適度改進 144
8.3 oracle:在量子算法中表示經典函式 149
8.3.1 梅林的變換 150
8.3.2 推廣我們的結果 153
8.4 在Q#中模擬多伊奇-約薩算法 157
8.5 對量子算法技術的思考 161
8.5.1 鞋子和襪子:套用和撤銷量子操作 161
8.5.2 用阿達馬指令來翻轉控制和目標 164
8.6 相位反衝:我們成功的關鍵 166
小結 170
第9章 量子感測:不僅僅是相位 172
9.1 相位估計:利用量子位的有用屬性進行測量 172
9.2 用戶定義的類型 177
9.3 從Python中運行Q# 184
9.4 特徵態和局部相位 189
9.5 受控套用:將全局相位變成局部相位 193
9.6 實現蘭斯洛特的相位估計遊戲的最佳策略 199
小結 201
第二部分:結語 201
第三部分 套用量子計算
第 10章 用量子計算機解決化學問題 205
10.1 量子計算的實際化學套用 205
10.2 通往量子力學的多條路徑 207
10.3 用哈密頓算符描述量子系統如何隨時間演化 210
10.4 用泡利操作圍繞任意軸旋轉 214
10.5 在系統中做出想要的變化 221
10.6 經歷(非常小的)變化 222
10.7 整合在一起 225
小結 230
第 11章 用量子計算機搜尋 232
11.1 搜尋非結構化數據 232
11.2 關於狀態的反射 238
11.2.1 關於全一狀態的反射 239
11.2.2 關於任意狀態的反射 240
11.3 實現格羅弗算法 246
11.4 資源估算 252
小結 257
第 12章 用量子計算機進行算術運算 258
12.1 將量子計算納入安全因素 258
12.2 將模算術與因數分解聯繫起來 262
12.3 經典代數和因數分解 267
12.4 量子算術 270
12.4.1 用量子位相加 271
12.4.2 處於疊加態的量子位相乘 272
12.4.3 舒爾算法中的取模乘法 275
12.5 整合在一起 278
小結 282
臨別贈言 283
附錄A 安裝所需軟體 285
A.1 線上運行示例 285
A.1.1 使用Binder 285
A.1.2 使用GitHub Codespaces 286
A.2 使用Anaconda進行本地安裝 286
A.2.1 安裝Anaconda 286
A.2.2 用Anaconda安裝軟體包 286
A.3 安裝QDK 288
A.3.1 安裝.NET Core SDK 289
A.3.2 安裝項目模板 289
A.3.3 安裝Visual Studio Code擴展程式 290
A.3.4 為Jupyter Notebook安裝IQ# 290
附錄B 術語和快速參考 291
B.1 術語 291
B.2 狄拉克符號 293
B.3 量子操作 294
B.4 Q#語言 296
B.4.1 類型 296
B.4.2 Q#的聲明和語句 297
B.4.3 Q#表達式和操作符 300
B.4.4 Q#標準庫 301
B.4.5 IQ#魔法命令 303
附錄C 線性代數 304
C.1 走近向量 304
C.2 親自體驗矩陣 306
附錄D 通過實例探索多伊奇-約薩算法 316
D.1 使用我們的技能,嘗試做點什麼 316
D.2 步驟1:為多伊奇-約薩製備輸入狀態 317
D.3 步驟2:套用oracle 318
D.3.1 例1:“id”oracle 320
D.3.2 例2:“not”oracle 321
D.3.3 例3:“zero”oracle 322
D.4 步驟3和4:撤銷對目標量子位的製備,並測量 323