You are on page 1of 134

臺北市高中職量子電腦教材

臺北市高中職

量子電腦教材 資訊篇
資訊篇

一本專為高中職生設計的量子科技入門手冊
臺北市高中職

量子電腦教材
資訊篇
市長序
臺北市為全臺首善之都,擁有豐富的人文資源及完善的科技建設,

因應市府各類巨量資料,為快速彙整資訊、精確分析數據及預測未來

趨勢,我們擬定數據資產,輔助施政策略,以科技整合跨局處資源,

提供市民便捷、智慧化的生活環境,打造友善、永續、創新、共融的

智慧城市。

在教育方面,我們深耕 K–12 程式教育、運算思維、人工智慧 AI

教育、元宇宙等科技教育計畫,豐富學生資訊及新興科技課程內容,

並規劃成立 STEAM 及新科技發展辦公室,帶領學生掌握新興科技發

展趨勢!

針對量子電腦,我們將從高等教育向下扎根,分階段推動高中職、

國中小量子教育課程,鼓勵學生從科技體驗開始,逐步認識量子物理

及量子計算等量子電腦基礎原理,整合學科知識,進行跨領域學習,

啟發學生投入量子科技之興趣,以因應未來世界變遷趨勢,成為新興

科技產業人才。

本市與鴻海教育基金會共編《高中職量子電腦教材》,感謝專業

編輯群教師撰寫及專家學者的指導,使本教材順利出版,提供師生使

用!在面對全球網路及資訊科技快速變遷的時代,我們將持續精進智

慧及資訊科技教育政策,透過產官學研合作,強化教學品質,極力彰

顯教育價值與趨勢的掌握,以利孕育優質的未來人才,確保全球競爭

優勢。

臺北市長 謹誌

中華民國 112 年 6 月
局長序 臺北市政府教育局為培養學生資訊、科技教育素養,推動生活科

技、程式教育、人工智慧 AI 、機器人操作應用、虛實整合科技(擴增

實境 AR/ 虛擬實境 VR/ 混合實境 MR )各式課程,並率全國之先發布

K-12 資訊課程綱要,發表高國中小人工智慧 AI 教材,更向下延伸,


實施幼兒園運算思維教學,且規劃成立 STEAM 及新科技發展辦公室,

鼓勵所屬各級學校將資訊科技元素,融入各學習領域,提升北市學子

面對未來的競爭力。

量子電腦科技作為下一代計算機革命產物,其巨量資料運算能力,

將徹底改變現有各種演算法與數據分析應用技術,加速實現順暢交通、

數位金融、 AI 醫療、能源管理及治安分析等未來世界願景,儼然為全

球產業重點項目,此一技術和概念,應扎根於教育系統中,讓學生及

早瞭解未來世界趨勢。

臺北市高中職量子電腦教材,是全國第一本專為高中職撰寫,彙

整高中物理、數學及資訊等量子相關學科知識,提煉 108 課綱高中階

段必修內容,以螺旋式課程概念進行編輯,完成這本跨學科及年級的

教材範本。期待協助高中物理、數學及資訊教師以跨域合作方式,建

立學生量子電腦科技應用基礎知能,也為未來有意投入量子相關領域

學生,提早建立量子科技知識地圖。

本教材研發,衷心感謝鴻海教育基金會汪用和執行長全力協助,

亦感謝臺灣大學張慶瑞教授、傅昭銘教授,中原大學張元翔教授、黃

琮暐助理教授的悉心專業指導,也感謝永春高中 3A 教學基地中心召集

本市優良教師撰寫教材,使「臺北市高中職量子電腦教材」順利出版。

並期盼在各高中職推廣應用,讓北市師生成為未來科技世代的主人,

展現臺北市科技教育的能量!

臺北市政府教育局局長 謹誌

中華民國 112 年 6 月
執行長序 若要選出當今最夯且勢將對人類生活帶來重大影響的十大關鍵新

科技,「量子科技」應會名列其中,尤其有句話「得量子者得天下」

更充分說明了「量子科技」的重要性。但是,如此至關重要的科技,

我們有沒有培養了足夠多的人才來支持量子科技研究、發展呢?

當世界各國紛紛從高中就開始教授量子知識,甚至 Meta 創辦人

馬克.祖格柏的孩子才一個月大,就已經在聽爸爸為他唸「寶寶的量

子力學」時,我們認識到,讓臺灣的高中生能夠普遍開始學習量子絕

對是必要的,因此,鴻海教育基金會從 2020 年開始辦理高中生暑期

量子營。但畢竟一個營隊能容納的名額有限,所以我們也與縣市教育

局合作開辦高中職量子師培營,以求老師自己就可以在校內開課,希

望讓學生不分地域、無論貧富,都可以很方便地在校內就能學習到這

個重要的新興知識,而臺北市就是第一個與我們合作的單位。

要在校內開課,除了老師要有專業知識外,也需要有教科書,因

此,有了這本教科書的發想與誕生。這本書能夠成形出版要感謝許多

人,包括上課老師們竭盡心力地將師培營所學轉化成高中生可接受的

文字,包括所有在此過程中大力支持協助的專家學者與北市教育局夥

伴們。

「有您真好」是鴻海教育基金會想對貢獻心力於這本書的朋友們

說的,也期盼高中生們有一天會說「有這本教科書真好」,甚至希望

台灣的科技界有一天會說「台灣從高中開始就有量子教育真好」!

當然還有最重要的,就是,有您看這本書,真好!

鴻海教育基金會執行長 謹誌

中華民國 112 年 6 月
目錄

第1章 量子電腦的發展史
1-1 什麼是量子電腦 2
1-2 量子電腦的起源 2
1-3 量子電腦的研究歷史 4
1-4 量子電腦的展望 7

第2章 量子電腦的原理與架構
2-1 一般電腦與硬體 10
2-2 量子電腦的硬體 12
2-3 量子電腦的技術挑戰 19

第3章 量子位元(qubit)
3-1 古典位元 24
3-2 量子位元 26
3-3 狄拉克表示法 ( Dirac notation ) 28
3-4 量子位元的狀態表現 32

第4章 量子閘(quantum gate)


4-1 H 閘 ( 阿達馬閘 , Hadamard gate ) 36
4-2 X 閘 ( Pauli-X gate ) 40
4-3 Z 閘 ( Pauli-Z gate ) 43
4-4 Y 閘 ( Pauli-Y gate ) 46
4-5 P 閘 ( phase shift gates ) 48
4-6 Rx 閘 ( Rotate-X gate ) 51
4-7 Ry 閘 ( Rotate-Y gate ) 52
4-8 Rz 閘 ( Rotate-Z gate ) 53
4-9 CNOT 閘 ( controlled NOT gate ) 54
4-10 CCNOT 閘 ( controlled controlled NOT gate ) 59
第5章 量子電路(quantum circuit)
5-1 量子電路的基本架構 64
5-2 量子程式設計 68
5-3 單量子位元電路設計 74
5-4 疊加態的運算 83
5-5 疊加態量子電路 86
5-6 糾纏態 ( entanglement ) 量子電路 92

第6章 量子的算術與邏輯運算
6-1 古典邏輯閘介紹 98
6-2 使用量子閘模擬古典邏輯閘 99
6-3 半加器 104
6-4 全加器 105
6-5 二選一多工器 106
6-6 N = N + 1 運算 108
6-7 組合邏輯 111
6-8 一位元比較器 115
6-9 A+=B 電路 118
6-10 記憶體 121

contents
01
chapter

量子電腦的發展史
先備知識
在學習量子電腦前,讓我們先認識電腦科學之父艾倫 ・ 圖靈(Alan Turing),
他是第一個提出機器模擬人類各種計算與邏輯思維過程之抽象概念的科學家,即
為「 圖 靈 機 理 論 」 及「 圖 靈 測 試 」 的 概 念( 史 稱 圖 靈 機(Turing machine) 或
圖 靈電腦)。並於 1945 到 1949 年間,確立了現今電子電腦的邏輯基礎, 即 為
EDVAC(electronic discrete variable automatic computer), 採 用 二 進 制
進行運算。

學習目標
自 1900 年馬克斯·普朗克(Max Planck)提出「黑體輻射定律」開始,在物
理學家們 20 年間的努力下,量子力學的基本原理逐步建立,應用也擴散至其他科
學與技術領域,促使電晶體、積體電路與雷射等科技的發明,以及半導體與光電產
業的蓬勃發展,此現象在物理史被稱為「第一次量子電腦革命」。
1980 年代,科學家將資訊理論與量子力學原理結合的構想,讓人類迎來「第
二次量子電腦革命」時代。在本篇教材,我們將帶領學生認識什麼是量子電腦?量
子電腦跟現行一般電腦有何差別?量子電腦是怎麼樣誕生的?它的研究發展歷史過
程為何?量子電腦的應用與未來展望為何?
資訊篇

1-1 什麼是量子電腦

現在常用的一般電腦架構的設計以 1945 年美國籍猶太人數學家馮.諾


依曼(Von Neumann)提出的架構為主流,也確立了電腦二進位運算機制。

當使用一般電腦處理量子問題時,一般電腦面臨資料過於龐大時,處理
時間便會巨大到無法估算。而量子電腦則是應用量子力學理論,實現高速數
學和邏輯運算、儲存及處理量子資訊的物理裝置。一般電腦的運算靠控制積
體電路 0 與 1 執行,而量子電腦的運算則靠控制原子、分子的量子態執行。
當某個裝置處理和計算的是量子資訊,執行的是量子演算法時,它即可被稱
為量子電腦。

1-2 量子電腦的起源

美籍以色列物理學家史蒂芬.威斯納(Stephen J. Wiesner)在 1969 年


提出「基於量子力學的計算裝置」。

量子電腦的概念源於可逆電腦的研究,其研究目的是為了解決電腦中的
耗電問題。研究發現,計算機耗電來自計算過程中不可逆的操作,當我們在
邏輯閘單一面向上進行操作,我們將只知道它的輸出值,不可能知道原先的
輸入值,因此,一般電腦數位邏輯操作是不可逆的。於是科學家們開始思考,
是否所有計算過程都必須用不可逆操作才能完成呢?有沒有一種方法可實現
計算機可逆操作,還不影響機器的運算能力?

由 此, 科 學 家 想 到 在 量 子 力 學 中, 有 名 為 向 量 的 么 正 轉 換(unitary
transformation,又名酉轉換)的特性,並可進一步運用到量子電腦中。么正
矩陣(unitary matrix,又名酉矩陣)是基本的物理概念:如果有一個 n 階方
陣,它的列向量組成一組標準正交基底,那麼這個矩陣就是么正矩陣,由么
正矩陣所表示的轉換則稱為么正轉換。

2
Chapter 01 量子電腦的發展史

在 一 般 電 腦 中, 基 本 資 訊 單 位 為 位
疊加態
元(bit),運算物件是各種位元序列。 Q
當一個量子位元處於疊
在量子電腦中,基本資訊單位是量子位
加態時,它同時處於多個狀
元(qubit),運算物件是量子位元序列。 態的疊加中,換言之,一個
兩者不同處在於,量子位元序列不但可 量子位元不單純只能處於 0

處於各種正交態的疊加態,而且還可以 或 1 的兩個狀態中的其中一
個,它還可以處於 0 和 1 這
處於糾纏態上。這些特殊的量子態,提
兩個狀態的疊加中,因此,
供了量子平行計算的可能,大幅減少電 它使得量子計算能夠在同一
腦處理巨量資料所需時間。 時間內進行多個運算。

1994 年,美籍計算機科學家格申斐 糾纏態


爾 德(Neil Adam Gershenfeld) 及 物 理 糾纏態是一種高度相關

學 家 莊(Isaac L. Chuang) 研 究 出 一 臺 的量子狀態,可以描述出兩


個或多個量子位元之間的聯
最基本的量子電腦,能夠進行簡單的運
繫關係,即使它們相隔遙遠
算。這臺量子電腦使用丙氨酸產生核磁 距離,他們之間的相互作用
共振,進而產生量子態以進行量子運算, 都會瞬間發生。因此,讓多

可以完成 1+1 的運算;若使用液態三氯 個量子位元同時進行計算,


大幅提高計算效率。
甲烷作為核磁共振用溶劑,還能解決其
他問題,例如:1. 提高運算的精度:液態三氯甲烷中的氫原子比丙氨酸中的
氫原子更容易產生強烈的訊號,以提供更好的資訊來源,進而改善運算精度;
2. 縮短計算時間:液態三氯甲烷的分子較小,核磁共振產生量子態的時間較
短,因此可以縮短量子運算的時間。

量子電腦是一種遵循量子力學規律,進行高速數學和邏輯運算、儲存及
處理量子資訊的物理裝置,它的基本定律包含不確定原理、對應原理和波耳
理論等。早期的量子電腦(約 1980 年代前),是將量子力學轉化為程式語
言的嘗試,其實仍是語言描述的一般電腦,其元件並沒有用到運用量子力學
的物理特性,如量子態的疊加性或糾纏態等。事實上,量子電腦對每一個疊
加分量實現的轉換,都相當於一種傳統計算,不但能在同時間完成大量傳統
電腦計算,同時也按一定的機率振幅進行疊加,列出所有的運算結果,這是
3
量子電腦的重要特性之一。
資訊篇

1-3 量子電腦的研究歷史

1982 年理查.費曼(Richard Feynman)提出量子計算 量子電腦的概


念,一開始是根據物理現象模擬而來的。他發現,當科學家嘗試模擬量子現
象時,因為龐大的希爾伯特空間(Hilbert space,即多維抽象空間)使資料
量也變得龐大,因此計算模擬結果所需的運算時間也將相當可觀,甚至是不
切實際的天文數字。理查.費曼當時就想到,如果能將量子物理應用於電腦
架構以模擬量子現象,將使所需運算時間大幅度減少,量子電腦概念的雛型
由此誕生。但是量子電腦或推而廣之的量子資訊科學,在 20 世紀 80 年代多
處於理論推導等紙上談兵的狀態。

1994 年,美國籍計算機學家彼得.秀爾(Peter W. Shor)提出量子質因


數分解演算法,同時也提出了量子電腦對破解銀行及網路等處理的 RSA 加
密演算法的威脅性,因而使得量子電腦變成了熱門的話題。除了理論之外,
也有不少學者著力於利用各種量子系統實現量子電腦。

接著,秀爾再提出大數因數分解的量子演算法,吸引了許多研究者的目
光,以大數因數分解的難度,確保了 RSA 公鑰密碼體系的安全。此時,大
家才意識到量子電腦的超強運算能力,特別是破解編碼的能力,也讓更多學
者加入這方面的研究。

2007 年 2 月,加拿大 D-Wave 公司宣布成功研製擁有十六個量子位元的


超導量子電腦,但其作用僅限於解決一些最佳化問題,與科學界期待的能執
行各種量子演算法的量子電腦,仍有相當大的區別。

2009 年 11 月 15 日,世上第一臺可程式化的通用量子電腦正式在美國誕
生。同年,英國布里斯托爾大學(University of Bristol)的科學家研製出以
量子光學為基礎的量子電腦晶片,可執行秀爾提出的量子演算法。

4
Chapter 01 量子電腦的發展史

2011 年 4 月,一個來自澳洲和日本的科學研究團隊成員在量子通訊方面
取得突破,實現了量子資訊的完整傳輸。同年 9 月,科學家證明量子電腦可
用馮.諾依曼(現代計算機之父)的架構加以實現。

2017 年 5 月,IBM 公司發布十七個量子位元的處理器,並宣布正在研


發五十個量子位元的原型機,加速了量子計算的商業化。同年 10 月,Intel
公 司 發 布 了 四 十 九 個 量 子 位 元 的 測 試 晶 片, 其 運 算 能 力 等 於 5,000 顆 8 代
Intel i7。

2017 年,Google 公司宣布開放原始碼量子計算軟體 OpenFermion。同


年,加拿大量子計算公司 D-Wave 發布全球第一款商用型量子電腦 D-Wave
2000Q。

5
資訊篇

2016 年歐盟發布的量子宣言摘要

0~5年 5 ~ 10 年 >10 年

• 量子中繼器核心技 • 遠距離量子網路 • 有加密和竊聽檢測


術 • 量子信用卡 功能的量子中繼器
量子通訊

• 點對點安全量子通 • 融合量子與傳統一
訊 般通訊

• 材料中的電子運動 • 新型材料的研發與 • 支援藥物設計的量


量子模擬

模擬器 設計 子力學和化學反應
• 量子模擬器與網路 • 量子磁性與電性多 機制之模擬器
新演算法 方面的模擬器
0∼5年
0∼5年
0∼5年

• 小型的量子感測器 • 更 大 量 的 應 用( 如 • 量子感測器微縮到
量子感測器

(健康監測等) 汽車等)量子感測 用戶應用端


• 高頻交易中更為精 器
準的量子鐘 • 量子導航手持設備

• 糾錯或拓樸保護的 • 用 大 於 100 量 子 位 • 通用量子電腦超過


邏輯量子位元操作 元且有特定用途的 一般電腦計算能力
量子電腦

• 量子電腦新演算法 量子電腦處理化學

• 有意義的小型量子 和材料科學的難題

處理器 • 量子積體電路和低
溫的傳統控制硬體

資料來源: 〈歐盟量子科技推動簡介〉原文網址:https://portal.stpi.narl.org.tw/index/
article/10505
6
Chapter 01 量子電腦的發展史

1-4 量子電腦的展望

量子電腦是實現量子計算的機器,以處於量子狀態的原子作為中央處理
器和記憶體,應用的是可以同時處於量子疊加態、糾纏態等多種狀態的量子
位元。

迄今為止,世界各地許多實驗室正在以極大的熱情追尋研究更強大的量
子電腦。

科學家們對實現量子計算已提出許多構想,但在實務上對微觀量子態的
進行操縱確實太困難了。目前已經提出的方案主要為利用原子和光腔相互作
用、冷阱束縛離子、電子或核自旋共振、量子點操縱、超導量子干涉等。由
於不同方案各有優缺點,因此,還很難說哪一種方案更有前景,或更適合實
現量子電腦商業化及普及化。

依人類現行的科技水準,尚只能製造單一量子邏輯閘,遠未達到實現計
算所需要的邏輯閘網路。科學家也只能同時控制約 10 量子位元,但量子電
腦至少需要數十量子位元才能解決現實世界中的問題,適合量子電腦的新技
術、新材料,仍待科學家們未來持續努力。

實現量子計算的另一個困難點是可整合性的問題,其核心不單是幾個量
子位元的組裝,尚有能否同步操控這些量子位元的問題。此外,量子位元系
統要有相當長的同步時間,基本的閘操作精度要能夠達到容錯量子計算的設
定值之內,只有實現這些最關鍵的技術,才能實現真正意義上的多位元量子
電腦。

研究量子電腦的目的不是用它來取代現有的電腦,而是運用量子電腦的
特性,處理現行一般電腦難以解決的問題。量子電腦的發展,或多或少讓人
們在原子層面對物質狀態進行模擬成為可能,進一步可以重塑新材料技術。
量子電腦也可以透過無窮的計算能力,破解現有的任何加密演算法,重新定
義網路安全,量子電腦也能夠透過對巨量資料的有效處理,來增強人工智慧
等新興科技的水準。

7
資訊篇

課後測驗
( ) 1. 以下何者非量子電腦與一般電腦的差異?
(A) 基本運算單位為 Qubit
(B) 能夠表示既是 0 又是 1 的多重狀態
(C) 可以做任意的么正轉換
(D) 使用一般的「真空管材料」製作

( ) 2. 發明量子電腦的目的主要為何?
(A) 取代一般電腦
(B) 解決部分一般電腦無法解決的問題
(C) 運用超強的計算能力
(D) 實現人類的夢想

( ) 3. 第二次量子革命包括下列何者?
(A) 量子通訊 (B) 量子模擬 (C) 量子感測器 (D) 以上皆是

( ) 4. 首先揭開「第二次量子革命」的為下列何者?
(A) 美國 (B) 中國 (C) 歐盟 (D) 日本

( ) 5. 當今全世界有在進行量子電腦研發的企業不包括下列何者?
(A) Google (B) D-Wave (C) Apple (D) IBM

( ) 6. 下列何者為量子電腦可運用的領域?
(A) 藥物開發 (B) 密碼破解 (C) 人工智慧 (D) 以上皆是

( ) 7. 下列何者是量子電腦的優勢?
(A) 擁有超強的運算能力
(B) 可以同時解決多個問題
(C) 加密方式難以破解
(D) 以上皆是

( ) 8. 要實現量子計算的困難點不包括下列何者?
(A) 可整合性的問題
(B) 將幾個量子位元組裝到一起
(C) 能同步地操控這些量子位元
(D) 基本的閘操作的精度要能夠達到容錯量子計算的設定值之內

8
02
chapter

量子電腦的原理
與架構
先備知識
量子電腦有別於通用型電腦運用「真空管材料」及「CMOS 材料」進行製作,並
以「通電」與「斷電」兩種狀態,來表示基礎運算單元「位元」(bit)0 與 1;科學
家運用「控制能量」相關技術操控特殊物理材料,實現量子電腦量子位元「量子疊加
態 」(quantum superposition)、「 量 子 糾 纏 態 」(quantum entanglement)
等多重狀態(既是 0 又是 1 的 qubit),讓 qubit 保有類似 0 與 1 的 物 質 波 狀 態,
以利進行類似但超越現行一般電腦的 0 與 1 運算。這種利用物質波狀態當作電腦運
算原理的計算機,具有現行電腦沒有的先天優勢,就是當量子電腦處理週期性或龐
大的數據運算時,運算量會呈指數性運算成長速度,同時有賴疊加態與糾纏態的物
理特性,也讓量子電腦可以單獨作業,獨立完成平行運算。

學習目標
帶領學生認識量子電腦與一般電腦的不同。量子電腦的基本單位稱為量子位元,
或稱作 Q 位元(qubit)。典型的量子硬體技術包括:超導體、量子點、囚禁離子、
拓樸量子位元、鑽石空缺等。經過科學家們的努力,量子電腦已有初步理論基礎,
但在實務上,量子電腦仍有許多軟硬體技術問題需要克服。
資訊篇

2-1 一般電腦與硬體

歷史上最早的電腦於 1946 年誕生,該機器能夠重新編寫電腦程式,也


能解決許多計算問題。1946 年第一代電腦硬體基本構成元件真空管(vacuum
tube),是一種在電路中控制電子流動的電子元件,由於電極被封裝在真空
的容器內,故而得名。真空管的主要用途為放大器、電子開關等,其放大器
屬於類比放大器(analog amplifier),目前在一些高級音響中仍可以看到這
樣的類比放大器。然而,就電腦硬體而言,採用真空管有許多缺點,包括:
成本高、體積大、不耐用與效能低等,後來因此被半導體(semiconductor)
所取代。

一般電腦硬體的基本元件被稱為電晶體(transistors)。電晶體的發明,
取代真空管在電路中的角色與功能,成為一般電腦的主要元件。在一般電腦
中,電晶體其實是扮演「電子開關」的角色,並以電路符號表示關(off)
或開(on)兩種狀態。換言之,電晶體可以用來表示 0 或 1 的數位資料,也
可以代表假(false)或真(true)的邏輯狀態。它的基本的單位稱作為位元
(bit)。

積體電路(integrated circuit, IC),或稱為微晶片(microchip)、晶片


(chip),在電子學中是一種將電路微型化的方式。積體電路的主要優勢在
於可以容納大量的電晶體,因此,不僅可以將電路微型化,也可降低成本並
提高效能。積體電路中的電晶體,是一種可以廣泛應用於類比電路與數位電
路的場效電晶體(field-effect transistor, FET),必須仰賴電場以控制導電
通道的形狀,進而控制其導電性。場效電晶體的電路符號,也可用於扮演「電
子開關」的角色,可以用來表示關(off)或開(on)兩種狀態,因此,也可
以用來表示 0 或 1 的數位邏輯。

隨著計算機應用領域日益擴展,如何將大量的電晶體整合進單一的矽晶
片,成為半導體技術的發展重點,市面上也因此產生不同規模的積體電路。

10
Chapter 02 量子電腦的原理與架構

根據摩爾定律,積體電路可以容納的電晶體數量,每隔兩年將會增長為
兩倍。然而,隨著積體電路微型化的發展,當電晶體的尺寸小於 25 奈米以
下,傳統的平面場效應管的尺寸已經無法再縮小了。

現階段的鰭式場效應電晶體(fin field-effect transistor,簡稱 FinFET),就


是為了彌補這樣的缺點,主要思想是將場效應管立體化。由於 FinFET 的通
道呈現非常薄的鰭狀(fin),因而得名。當電晶體的尺寸達到奈米等級,例
如 FinFET 的鰭狀通道,可以容納的原子個數已經變得相當少,在逼近電晶
體的極限(至 2023 年技術已突破奈米),每顆電晶體將會降到接近原子大
小,導致電晶體的物理現象逐漸進入量子力學的物理範疇,製造技術難度及
成本也隨之提高,對以矽為材料的半導體產業,將會面臨挑戰相當嚴峻的生
產與品管問題。

Drain

Gate

Source Fin

▲圖 2-1 鰭式場效電晶體(FinFET)示意圖

11
資訊篇

2-2 量子電腦的硬體

現行一般電腦的規格指標是記憶體容量,以及 CPU 的核心數、時脈頻


率(clock rate)等,量子電腦也有其性能指標。其使用的規格指標包括:

• 量子位元數
• 量子位元的相干時間(量子產生糾纏態等狀態所需時間,在這種狀態下才
能進行量子運算,可視為「量子位元的壽命」)
• 量子操作所需的時間
• 量子操作、測量操作時的錯誤率
• 量子位元的結合數

其中最容易理解的應該是量子位元數。當量子位元數越多,就越可能進
行大規模計算。然而,如果只有量子位元數多,尚不能稱該量子電腦為高性
能。量子位元具有量子性的時間,亦即「相干時間」,必須足以支持電腦進
行量子操作。同時,操作量子位元時的錯誤率必須非常低。不同材料製作(實
現)的量子電腦性能的比較重點,即是瞭解這些「相干時間」等性能指標。

量 子 電 腦 的 基 本 單 位 稱 為 量 子 位 元(quantum bit), 或 稱 作 Q 位 元
(qubit)。近年來,全世界有許多電腦軟硬體公司,相繼投入研究人力與資
源,期望尋找可以實現量子位元的材料與硬體技術。

典型的量子硬體技術包括:
1. 超導體(supuerconductor);
2. 量子點(quantum dot);
3. 冷阱束縛離子(trapped ion);
4. 拓樸量子位元(topological quantum bit);
5. 鑽石空缺(diamond vacancy);
6. 光子量子位元(photons as qubits)。

12
Chapter 02 量子電腦的原理與架構

以下將分別介紹這些量子硬體技術:

一、超導體(supuerconductor)
INSULATOR NIOBIUM COIL
當某種金屬冷卻至極低溫時,會成
為電阻為 0 的超導態。超導態是只能以
CURRENT
量子力學解釋的現象,以該狀態的金屬
製作的電子電腦稱為超導電路。
JOSEPHSON
JUNCTIONS
超導體技術是目前量子電腦中最 NIOBIUM
WASHER

常 見 的 技 術, 國際大廠 IBM、Google、 ▲圖 2-2 超導量子干涉儀

Intel、Microsoft 等公司皆有所研究。日
常生活中,超導體也常被用作磁浮列車
鐵軌的材料。超導體金屬在極低溫(接
近絕對 0 度,或攝氏零下 273 度)且沒
有通電的狀態下,電流可以通過超導迴
路無限期存在(不會損耗且能流通),
若在超導體上外加磁場,超導體則會排
除磁場,使磁力線完全不能通過,磁浮
列車就是運用這個原理在磁場引導下
▲圖 2-3 IBM 超導體量子晶片
「浮空」前進。

現今的半導體技術足以實現量子位
元雛型,計算速度也相當快。然而,超導
體的量子狀態極其容易崩潰(collapse),
同時必須隨時保持在極低溫下,才能穩
定工作。若使用超導體技術來開發量子
電腦,冷卻系統就成為量子電腦普及化
首先必須克服的技術問題。
▲ 圖 2-4 陽 明 交 通 大 學 物
理 研 究 所 的「 超 導 量 子 干
涉儀」

13
資訊篇

二、量子點(quantum dot)
使用半導體材料(如矽和砷化鎵)來實現量子點技術,可以將激子束縛
在三個空間方向上,並將其應用在現代計算機領域。這種半導體奈米結構技
術已經非常成熟,可以很好地與電晶體製造技術相結合,特別是在矽的微細
加工和集成化技術方面。所謂「量子點」,是藉由在固體中將一個電子與外
部隔離,排除其他電子影響的機制。和超導體電腦一樣,將隔離的電子冷卻
至極低溫,即可實現穩定的量子位元。使用半導體來製作量子點,是利用電
子的「自旋」性質作為量子位元,讓兩種半導體(GaAs 砷化鎵與 Al-GaAs
砷化鋁鎵)的邊界貼合,電子便能在這個邊界面上自由移動。接著,在其上
附加電極做出電磁場的壁面(電位),可將電子四面八方都封閉住,藉以操
作電子點。

量子點的量子狀態相對穩定,加上現今成熟的半導體技術,也足以支持
IBM、Intel 等科技大廠運用此類技術製造量子位元。然而,量子點技術也有
它的侷限性,目前量子點技術只能做到兩個量子位元的量子糾纏,且必須保
持在極低的溫度下,才能穩定工作。

▲圖 2-5 量子點

14
Chapter 02 量子電腦的原理與架構

三、囚禁離子(trapped ion)
所有的物質都是由原子組成的。原子由帶正電荷的原子核與帶負電荷的
電子所組成,正負電荷相同時稱為「中性原子」,相異時稱為「離子」。囚
禁離子是指以無線電頻率陷阱捕獲離子,並使用雷射控制離子集體行動來進
行量子計算。這項技術是在空間中成列囚禁離子,並個別以雷射光照射來進
行量子操作,透過整個離子列產生的集體振動現象,可使各個離子與其他所
有離子交互作用,目前以 IonQ 公司的技術最具代表性。囚禁離子的穩定性
很不錯,且量子閘的穩定性極高,每次產生機率運算結果也具信賴度。但是,
囚禁離子的運算速度慢,而且須搭配大型雷射系統方能操作,於量子電腦開
發上亦有所不便。

▲圖 2-6 MIT 林肯實驗室的囚禁離子量子電腦

15
資訊篇

四、拓樸量子位元(topological quantum bit)


拓樸量子位元是基於拓樸物理學的量子位元技術,這項技術使用的粒子
稱為任意子(anyon),可用於模擬量子位元運作方式。它的優點是穩定性
高,同時可以大幅降低錯誤率,但若要使拓樸量子位元模型穩定運作,需要
在比外太空更冷的溫度下才能發揮價值,現行技術難以實現此類量子位元模
型,目前以美國的 Microsoft 公司的技術最具代表性。

A t B
b
= d a

C D
1 2 3 4

▲圖 2-7 拓樸線量子計算

五、鑽石空缺(diamond vacancy)
鑽石空缺是利用氮原子中電子與電洞所形成的能
階作為量子位元。鑽石(碳的結晶)就是將碳原子
整齊地排列,變得非常堅硬(穩定)的晶體結構,
如果 將 本 來 屬 於 碳 的 位 置 替 換 為 氮 原 子, 其 鄰
接位置會出現既非碳也非氮的空位,
這個空位就稱為「氮空位中
心 」(nitrogen-vacancy
center,簡稱 NV 中心)。
如此一來,即使在室溫下也
能使電子自旋或核自旋來實現
▲圖 2-8 鑽石空缺示意圖(部分碳原
穩定的量子位元。 子被氮(N)取代晶格空缺(V))
16
Chapter 02 量子電腦的原理與架構

理論上,鑽石氮空位中心能在室溫下長時間維持穩定的量子態,可應用
於量子通訊的量子記憶體和量子中繼器(quantum repeater)。然而,正因
鑽石具有極度穩定堅硬的架構,因此在生成電洞的操作上也非常困難,同時
也不易藉電子自旋或核自旋達成糾纏態。目前該技術以 Quantum Diamond
Technologies Inc. 公司最具代表性。

六、光子量子位元(photons as qubits)
「 光 」 本 身 也 能 扮 演 量 子 位 元 的 角 色。 在 室 溫 下, 藉 由 組 合 矽 光 子 學
(silicon photonics)的光波導(optical waveguide)晶片製造技術及光纖等
光通訊技術,即可實現量子電腦。

在量子力學裡,光既是波,也是粒子,而光的微粒子可稱為「光子」。
中國大陸 2020 年推出的「九章量子電腦」即是以光作為量子位元的電腦,
使用光子作為量子位元,從單位子源釋放出的光子,能將光的振動方向(偏
光)作為量子位元使用,藉由輸入光源的電子電路進行量子操作,以此實現
量子計算,但要實現高效率單光子源光源釋放並不容易。

▲圖 2-9 中國大陸的「九章量子電腦」

17
資訊篇

▲圖 2-10 九章量子計算原型機光路系統原理圖

• 主流量子電腦硬體開發技術、量子位元形式及優缺點一覽表如下:

現有公司 Qubit 型式 優點 缺點

IonQ 穩定,邏輯閘信 運 算 速 度 慢, 且 須
囚禁離子量子計算機
NIST 賴度高 搭配大型雷射系統

IBM
Google 實現快速,目前 量子位元容易崩潰,
超導體量子計算機
D-wave 效果明顯 環境必須保持低溫
Intel

Quantum
鑽石中氮原子空缺
Diamond 可在室溫下操作 不易達到糾纏態
中心量子計算機
Technology

Alibaba 光子量子計算機 可在室溫下操作 操作相對不易

穩定性高,具有 必 須 保 持 低 溫, 不
Coldquanta 冷原子量子計算機
很高的擴展性 易達到糾纏態

拓樸量子位元量子 穩定性高,可大 理論實現最為困難,


Microsoft
計算機 幅降低錯誤率 實作相對不易

資料來源:黃琮暐(2021)。量子電腦教師培訓課程。

18
Chapter 02 量子電腦的原理與架構

2-3 量子電腦的技術挑戰

雖然科學家們陸續提出各項量子電腦的理論,但在量子電腦開發上,仍
有許多技術問題尚待克服。

一、低溫與封閉環境
為了使量子狀態保持穩定,量子電腦須處於極低溫(絕對 0 度或攝氏零
下 273 度)環境,才不會導致量子狀態崩潰。然而,冷卻系統的體積相當龐
大,嚴重影響量子電腦的微型化與普及化。此外,量子電腦還須處於完全封
閉的環境,任何微小的物理干擾,都可能破壞量子疊加態,導致量子計算結
果產生錯誤。

二、雜訊與錯誤更正
與 一 般 電 腦 不 同, 量 子 電 腦 的 計 算 過 程 與 量 子 力 學 的 隨 機 特 性 息 息 相
關。為使量子電腦能適當運作,開發者們必須針對量子隨機特性可能衍生的
錯誤進行更正。這些錯誤主要源自安排不當的量子邏輯閘元件,或肇因於
量子位元受到周遭環境雜訊干擾,導致量子位元在很短的時間內失去相干
性(coherence)。開發具有容錯(fault-tolerant)能力的量子電腦,是量子
電腦領域中相當重要的研究議題。因此,在量子計算領域中,量子錯誤更正
(quantum error correction, QEC)成為一項重要的技術,目的為避免量子位
元因去相干性(decoherence)或量子雜訊(quantum noise)而發生資訊遺
失或計算錯誤的狀況。

三、量子演算法
雖然近年來出現許多具有代表性的量子演算法,例如 Grover 演算法、
Shor 演算法等,然而與量子運算的複雜性相比,目前研究成果仍相當有限,
亟需更多量子電腦科學家加入研發的行列,開發具有實用價值的量子演算
法,進而運用量子電腦解決量子現象等領域的複雜問題。
19
資訊篇

也許總有一天,量子電腦發展歷程也會如現今一般電腦相似,從大型電
腦、工作站逐漸朝微型化與普及化發展,迎向人手一臺搭載量子運算功能平
板電腦、智慧手機的時代。只是以當今技術,開發量子電腦仍有許多技術挑
戰,需要各國投入大量人力物力和科技研發資源來克服。

20
Chapter 02 量子電腦的原理與架構

課後測驗

( ) 1. 量子電腦所要面對的挑戰有哪些?
(A) 低溫與封閉環境 (B) 雜訊與錯誤更正
(C) 量子演算法 (D) 以上皆是。

( ) 2. 製作量子電腦的技術不包含下列何者?
(A) 超導迴路 (B) 鑽石空缺 (C) 離子井 (D) 真空管。

( ) 3. 下列何者非囚禁離子量子電腦的描述?
(A) 穩定性佳 (B) 量子閘的信賴度高 (C) 運算速度慢 (D) 以上皆非。

( ) 4. 下列何者為發展拓樸量子電腦技術缺點的正確敘述?
(A) 使用的粒子稱為任意子 (B) 穩定性高
(C) 可以大幅降低錯誤率 (D) 僅有理論,不容易實現。

( ) 5. 下列對於採用鑽石空缺實現的量子電腦的敘述何者正確?
(A) 氮原子空缺中心不易操作 (B) 它的量子狀態非常穩定
(C) 可以在室溫下操作 (D) 以上皆是。

( ) 6. 常見的量子電腦製作材料有哪些?
(A) 超導體電路材料 (B) 化學特殊材料(砷化鎵晶體等)
(C) 人造鑽石 (D) 以上皆是。

( ) 7. 近年來,世界各國有許多大公司爭相投入量子電腦的研發,下列哪一家公司
不在其中?
(A) IonQ (B) IBM (C) Facebook (D) Google。

( ) 8. 大多數製作量子電腦的技術都需要在超低溫下運行,下列何者不包括在內?
(A) 光量子電腦 (B) 超導體量子電腦
(C) 鑽石空缺量子電腦 (D) 離子井量子電腦。

( ) 9. 量子電腦的性能指標有哪些?
(A) 量子位元數 (B) 量子位元的相干時間
(C) 量子操作所需的時間 (D) 以上皆是。

( ) 10. 下列哪些公司是以超導電腦開發量子電腦的主要企業?
(A) Google (B) IBM (C) Intel (D) 以上皆是。

21
資訊篇

22
03
chapter

量子位元(qubit)

先備知識
量子位元(qubit)是量子電腦的基本計算單位,就像薛丁格的貓處於既生又
死的神奇狀態一般,量子位元因具備量子疊加態的特性,故可同時以 0 與 1 的狀
態存在。

學習目標
將帶領學生認識量子電腦與傳統電腦不同,整合數學篇所學概念,從現行一般
電腦古典邏輯及電路設計概念,學習量子電路設計原理。
資訊篇

3-1 古典位元

古典位元與量子位元在計算機科學應用的表現不同,但基礎觀念是相通
的,在認識量子位元前,我們可以先從古典位元開始探討。為了區隔兩者,
本教材將當今大眾普遍所用,以二進位制(0/1,ture/false)邏輯為根基處理
資訊的電腦稱為一般電腦,資訊最小單位稱之為古典位元,簡稱位元(bit)。

傳統電腦 量子電腦
以位元(bit)的形式處理資料 以量子位元(qubit)的形式處理資料

10% 的 1 + 90% 的 0
1 量子位元 35% 的 1 + 65% 的 0
位元狀態 疊加態 80.3% 的 1 + 19.7% 的 0
只有兩種
0
無限多種 22.6% 的 1 + 77.4% 的 0

▲圖 3-1 量子位元與古典位元的比較(簡鈺璇,108)

古典位元只能同時存在 0 或 1 狀態,運用單一位元 bit 可以表達開關、


真假、有無等二元訊息,多個位元則可以表格豐富的數字、文字或各種電腦
控制指令。

24
Chapter 03 量子位元(qubit)

無正負號 有正負號
1 0 0 0 1 1 1 1 159 -15

0 0 1 0 1 0 1 1 27 +27
( a ) 可用 1 與 0 表達開與關 ( b ) 用多位元表達數字

'1' 0×31 49 0 0 1 1 0 0 0 1

'2' 0×32 50 0 0 1 1 0 0 1 0

'A' 0×41 65 0 1 0 0 0 0 0 1

'B' 0×42 66 0 1 0 0 0 0 1 0
( c ) 用多位元表達文字、數字

▲圖 3-2 使用古典位元表達各種資料

單一位元可以表達兩個數字 0、1,而兩個位元可以四個數字 00、10、


10 及 11,若有 n 個位元可以表達 2 n 個數字。越多的位元表達的資料越豐富,
在一般電腦上用 8 個位元當作一個位元組(byte),一個位元組可以表達 0
∼ 255 或 –128 ∼ 127 的整數,在美國國家標準碼 ASCII,用一個位元組中
8 位元的其中 7 個位元來表達英文的字母、數字及符號,另外還藏了一些像
是換列、回歸等看不見的控制碼。當使用的位元越多,可以定義的資料就越
多,現行全世界的文字符號都必須用 2 位元組以上的位元數來定義,例如中
文就須使用 2 個位元組,即 16 個位元以上的定義碼。

25
資訊篇

3-2 量子位元

量子位元與古典位元只存在於兩極 +z
|0 >
的狀態不同,它是存在於一個球面的自
由空間,以球心為原點拉一條半徑長度 θ 量子狀態

的直線到球面,直線可以繞著球心指向
+y
球 面 的 任 何 位 置, 意 為 指 向 球 面 任 意 φ
位 置 的 指 向 狀 態, 稱 之 為 量 子 狀 態,
+x
這 個 表 示 法 稱 之 為 布 洛 赫 球 面(Bloch
|1 >
sphere),如圖 3-3 所示。
▲圖 3-3 布洛赫球面

量子位元習慣採用狄拉克符號來表達量子位元狀態,|ψ〉(讀作 ketpsai)
為量子狀態符號,是量子位元主要操控 ϕ 及 θ 來表達其量子狀態。在球面上
北極為 |0〉 與南極為 |1〉(讀作 ket0 與 ket1),代表在量子位元中 100% 指向
0 或 1 的狀態。|ψ〉 則為任意指向的量子位元表現在 |0〉 與 |1〉 的向量總和。

φ 角度則是 |ψ〉 在 X-Y 平面上繞著 Z 軸的旋轉角,用以控制量子位元的


相位,φ 旋轉角以 +X 軸為 0 度、+Y 為 90 度、–X 軸為 180 度、–Y 為 270 度。

θ 為量子位元的狀態 |ψ〉 與 Z 軸的夾角,θ 角有調控 |ψ〉 的疊加態出現在


|0〉 與 |1〉 機率的作用,機率的大小使得 0 與 1 的具有強度的概念稱之為機率
強度(probability amplitude)。

|0 > |0 >
| ψ>
量子狀態 |ψ〉 接近 量子狀態 |ψ〉 接近
|0〉 測量後成為 |0〉 |1〉 測量後成為 |0〉
的機率大於 |1〉 的 的機率小於 |1〉 的
機率 | ψ> 機率
|1 > |1 >

▲圖 3-4 量子狀態在測量後成為 |0〉 與 |1〉 的機率

26
Chapter 03 量子位元(qubit)

練習一下 1

( ) 1. 布洛赫球面的 +z 代表量子狀態為何?

2 2
(A) |0〉 (B) |1〉 (C) | 0〉 (D) | 1〉
2 2
( ) 2. 布洛赫球面的 –z 代表量子狀態為何?

2 2
(A) |0〉 (B) |1〉 (C) | 0〉 (D) | 1〉
2 2
( ) 3. 在布洛赫球面上調整量子狀態的 θ 其意義在於?
(A) 出現在 +x 或 –x 的機率
(B) 出現在 +y 或 –y 的機率
(C) 出現在 +z 或 –z 的機率

( ) 4. 在布洛赫球面上調整量子狀態的 ψ 角度意義在於調整量子狀態何者?
(A) 環繞 x 軸的角度 (B) 環繞 y 軸的角度 (C) 環繞 z 軸的角度

27
資訊篇

3-3 狄拉克表示法(Dirac notation)

上圖使用布洛赫球面可以用立體的球體來描述量子的狀態,能讓初學者
較容易理解量子位元基礎運算原理,但如果遇到複雜運算問題,則需使用數
學的模型來解決。量子計算比較常被使用的是狄拉克表示法,公式如下:

|ψ〉 = α|0 〉 + β|1 〉

狄克拉表示法是用 |0〉 代表 0 的狀態,|1〉 代表 1 的狀態,α 代表量子狀


態在 |0〉 的分量,β 代表量子狀態在 |1〉 的分量。

上一節所提到的布洛赫球面 θ 主要是用來 +z

控 制 量 子 狀 態 |0〉 與 |1〉 的 出 現 機 率。 機 率 與 |0 >

量子狀態偏向 Z 軸的程度有關,如右圖中的量 量子狀態


θ
子狀態比較偏向 |0〉,也就是 |0〉 出現機率高於
+y
|1〉,並得以數學公式推算機率,接下來為讓初 φ
學者更好講解,我們先將布洛赫球轉到 Z-X 的
+x
平面,藉以推導出 P |0〉 及 P |1〉,再由機率推導出
|1 >
與 |0〉 與 |1〉 的向量 α 及 β,推導過程如下: ▲圖 3-5 布洛赫球面

z 量子狀態 |ψ〉 與 z 軸夾角為 θ,量子狀態用一


|0 >
個半徑長度為 1 的箭頭代表,|ψ〉 在 z 軸的投影長
θ
cosθ 度 為 cosθ, 量 子 狀 態 在 z 軸 上 的 投 影 到 |0〉 的 距
2 x
離為 1-cosθ,到 |1〉 的長度為 1+cosθ。

則 |0〉 與 |1〉 的出現機率 P |1〉 與 P |0〉 分別為:


|1 >
1 − cos θ 1 + cos θ
▲圖 3-6 P|0〉 = , P|1〉 =
2 2

1 − cos θ θ
令 α = P|0〉 = = cos
2 2

1 + cos θ θ
β = P|1〉 = = sin
28 2 2
Chapter 03 量子位元(qubit)

將 α、β 定義為在 |0〉 與 |1〉 的向量,表示的方式如下圖,則可以得到

|ψ〉 = α|0 〉 + β|1 〉 |0 >

θ θ α2 + β2 =1
所以 |ψ 〉 = cos | 0〉 + sin | 1〉
2 2 β
θ
α
2 |1 >
註: 上述的公式只有考慮到 x-z 平面,但以
立體球面來說還要考慮到 x-y 平面相位
角 ϕ。

▲圖 3-7
|α| 2 + |β| 2 = 1

|α| 2 為 |0〉 的出現機率

|β| 2 為 |1〉 的出現機率

舉例來說,若量子位元狀態為 |ψ〉 = 0.8|0〉 + 0.6|1〉。

|0〉 的機率為 |α| 2 = |0.8| 2 = 0.64

|1〉 的機率為 |β| 2 = |0.6| 2 = 0.36

|1 > |1 >
100% |0 > 0%
64% z 36%
| ψ> =0.8 | 0 > +0.6 | 1 >
50% 50%
x

0 |1 > 100%
▲圖 3-8 量子位元在疊加態時的 |0〉 與 |1〉 機率

29
資訊篇

上述的例子是將整個量子狀態 |ψ〉 侷限在 +z

x-z 的平面上,然而以一個完整的量子狀態應 |0 >

該是一整個布洛赫球面的架構,所以還有一個 量子狀態
θ
x-y 的 平 面,|ψ〉 與 z 軸 的 夾 角 為 θ,|ψ 〉 投 影
+y
在 x-y 平面上的投影與 x 軸的夾角為 ϕ,一個 φ
完整的量子狀態,應該考慮到 ϕ 的存在,所以
+x
完整的量子狀態公式如下:
|1 >
▲圖 3-9
θ θ
|ψ 〉 = cos | 0〉 + eiϕ sin | 1〉
2 2

z z z z
|0 > |0 > |0 > |0 >

狀態 y y y y

x x x x

|1 > |1 > |1 > |1 >

1 1
|ψ〉 |0〉 |1〉 (| 0〉 − | 1〉 ) (| 0〉 + | 1〉 )
2 2
z z z z
|0 > |0 > |0 > |0 >

狀態 y y y y

x x x x

|1 > |1 > |1 > |1 >

1 1
|ψ〉 (| 0〉 − i | 1〉 ) (| 0〉 + i | 1〉 ) α |0〉 + β |1〉 α |0〉 + β |1〉
2 2

▲圖 3-10 布洛赫球面與 |ψ〉 狀態圖

30
Chapter 03 量子位元(qubit)

練習一下 2

3 1
1. 有一個量子狀態 |ψ〉 = α|0 〉 + β|1 〉,若 α = 、 β = ,則在這個量子狀態
2 2
中 |0〉 及 |1〉 的出現機率分別為多少?與 z 軸的夾角為何?
2. 若有一個量子狀態跟 z 軸的夾角為 45 度,則它的 α 與 β 各為多少?而 |0〉
及 |1〉 的出現機率各為何?

31
資訊篇

3-4 量子位元的狀態表現

量子位元有數位資料、信號強度及相位三種狀態表現,相較於單一古典
位元同一時間只能表現 0 或 1 的狀態,單一量子位元能傳達的訊息更為豐富,
也因此可推導出數位及類比的運算。

一、數位資料
1 一個量子位元同時具有 |0〉 與 |1〉 二種狀態。

2 兩個量子位元,每個量子位元各有 |0〉 與 |1〉 的狀態,因此,整體來看,

以二進位表示則會同時具備 |00〉、|01〉、|10〉 與 |11〉 四種,也就是 2 2 種狀


態,並可用 10 進位簡寫為 |0〉、|1〉、|2〉 與 |3〉。

3 三個量子位元,則有 |0〉、|1〉、|2〉、|3〉、|4〉、|5〉、|6〉、|7〉 八種狀態,也

就是有 2 3 種狀態。

4 N 個量子位元,則有 |0〉、|1〉、|2〉...2 N —1〉,共有 2 N 種狀態。

練習一下 3

1. 若有三十個量子位元,則在數位資料上可以表達最大的資料量為何?

2. 如果想用數個量子位元表示大小寫英文字母及阿拉伯數字符號,則至少
要多少量子位元?

二、機率強度(信號強度)
量子位元的每筆數位資料都有各自的產生機率,而個別的數位資料產生
機率總和為 1。數位資料的產生機率可能大小不一,可視為信號的「振幅」
或「強度」,也可以稱之為「機率振幅」或「機率強度」。

32
Chapter 03 量子位元(qubit)

1 一個量子位元,可用量子狀態 |ψ〉 = α|0 〉 + β|1 〉 來表示,可以 α 是 |0〉 上

的向量,β 為 |1〉 的向量,兩個向量的平方和為 1。也就是 |α| 2+|β| 2=1,也


因此 |α| 2、|β| 2 是 |0〉、|1〉 的機率或機率強度。

2 兩 個 量 子 位 元, 由 |ψ〉 = α|0〉 + β|1〉 + γ|2〉 + δ|3〉, 可 以 分 別 在 |0〉、

|1〉、|2〉、|3〉 上 得 到 |α| 2、|β| 2、|γ| 2、|δ| 2 的 機 率 強 度, 且 機 率 強 度


|α| 2+|β| 2+|γ| 2+|δ| 2=1。

n −1
3 N 個 量 子 位 元, |ψ 〉 = a0 | 0〉 + a1 | 1〉 + a2 | 2〉 +  + an −1 | 2 − 1〉 = ∑ ai | 2 − 1〉 。
N i

i =0

以下的舉例採用三個量子位元將疊加態控制成如下圖狀態。

V(t)
a0 2 a1 2 a22 a32
0.25

a4 2 a5 2 a6 2 a72
t
|0 > |1 > |2 > |3 > |4 > |5 > |6 > |7 >
▲圖 3-11 某個三量子位元的所有狀態

練習一下 4

( ) 1. 量子位元的機率強度主要為調整布洛赫球面的哪個參數調整?
(A) φ (B) β (C) |0〉 (D) |1 〉

( ) 2. 機率強度的震幅總和為何?
(A) 0 (B) 1 (C) 100 (D) 1000

( ) 3. 有三個量子位元,每個位元的機率強度都相同,機率強度為多少?
(A) 0.125 (B) 0.25 (C) 0.5 (D) 0.75

33
資訊篇

三、相位
由布洛赫球面,在 X-Y 平面上繞行 Z 軸的旋轉角 φ,可以調控量子位元
的相位變化。下圖由正北極俯視觀察,以正 X 軸為 0 度,正 Y 軸為 90 度,
負 X 軸為 180 度,負 Y 軸為 270 度。

z z z z
|0 > |0 > |0 > |0 >

原圖 y y y y

x x x x

|1 > |1 > |1 > |1 >

+y +y +y +y
俯視圖

+x +x +x +x
0˚ 90˚ 180˚ 270˚

▲圖 3-12 控制旋轉角 φ 可以改變量子位元的相位

34
Chapter 04 量子閘 (quantum gate)

04
chapter

量子閘
(quantum gate)
先備知識
藉由布洛赫球面輔助學習,已知量子位元是透過操控 φ 及 θ 來操作量子狀態,
利用不同量子元件的這兩個角度來達成運算目的。

學習目標
認識量子閘的符號及量子位元參數設定,透過真值表來理解其運算後的結果。
所有量子閘都有屬於自己的轉換矩陣來簡化運算的模型。本章將透過布洛赫球面瞭
解各種量子閘操作後量子狀態 φ 及 θ 如何改變,藉此瞭解各種量子閘的作用。

35
資訊篇

4-1 H 閘(阿達馬閘,Hadamard gate)

H 閘為典型疊加態量子閘,全名為阿達馬閘(Hadamard gate),H 閘可
以控制量子位元處於 0 與 1 出現機率各為 50%的狀態。H 閘在預設輸入為
|0〉 及 |1〉 的狀態下可控制其量子狀態指向 +X 或 –X 軸的方向。其量子閘的
符號、真值表及轉換矩陣如圖 4-1 所示。

+z
|0>
紅色區域是 θ = 90˚ 的量子狀態範圍
依 | ψ 〉 = α |0〉 + β |1〉
+y
1
分量:α = β = (| 0〉 − | 1〉 )
2
+x 1
機率:|α| 2 = | β| 2 =
|1> 2
▲圖 4-1 在布洛赫球面狀態圖

輸入 輸出
1
|0〉 (| 0〉 + | 1〉 ) 1 1
H 2 H = 
1 − 1
1
|1〉 (| 0〉 − | 1〉 )
2

( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣

▲圖 4-2 H閘的真值表及轉換矩陣

H 閘的符號如圖 4-2(a),若以圖 4-2(b) 的真值表來看,輸入的狀態分別為


1 1
|0〉 或 |1〉 時,其輸出的狀態分別為 (| 0〉 + | 1〉 ) 或 (| 0〉 − | 1〉 ) 的量子狀態,也
2 2

1 1 2
就是 α 及 β 都是 ,由機率來看 0 與 1 的機率強度各為 ( ) = 0.5。
2 2

36
Chapter 04 量子閘 (quantum gate)

問題與討論

如果想用一個單位量子閘得到一個 0 與 1 出現機率各為一半,則應該用
哪個量子閘來調控?

1
量子狀態如圖 4-3 所示的長條圖表示法。0 與 1 各為一個 高度的長條
2

棒,代表狀態向量(statevector),兩條長條棒的顏色代表具正負向相反相
位差(或稱之為相移)。以下的例子藍色代表 0 與 1 的相移 0 度,所以係數
1 1 2
為+ ,其機率強度為 ( ) = 0.5;|1〉 是正紅色則代表相移 180 度 (π),
2 2

1
其係數為 − 。瞭解圖表資料與運算結果的關係,就可由長條圖高度瞭解狀
2

態向量的強度,顏色瞭解相位的變化,藉此驗證量子運算的結果是否正確。

0.8
|0>
0.6
Amplitude

1
(| 0〉 + | 1〉 )
0.4

0.2 2
0
0 1
Computational basis states |1>

0.8

|0>
0.6
Amplitude

0.4
1
0.2
(| 0〉 − | 1〉 )
2
0
0 1
Computational basis states
|1>

▲圖 4-3 H 閘的量子狀態圖表與運算式及布洛赫圖的關係

37
資訊篇

|0〉 或 |1〉 的量子狀態,經過 H 閘調控後輸出的量子狀態變化說明如下:


1
1 當量子狀態輸入為 |0〉 輸出的量子狀態為 (| 0〉 + | 1〉 ) ,此時指向 +X 軸。
2
1 0.8

0.8
0.6
0.6
Amplitude

Amplitude
0.4
0.4
0.2
0.2

0 0
0 1 0 1
Computational basis states Computational basis states

1
▲圖 4-4 量子狀態為 (| 0〉 + | 1〉 ) 時指向 +X 軸
2

1
2 當量子狀態輸入為 |1〉 輸出的量子狀態為 (| 0〉 − | 1〉 ) ,此時指向 –X 軸。
2
1
0.8
0.8
0.6
0.6
Amplitude

Amplitude
0.4
0.4

0.2 0.2

0 0
0 1 0 1
Computational basis states Computational basis states

1
▲圖 4-5 量子狀態為 (| 0〉 − | 1〉 ) 時指向 –X 軸
2

由上述輸入或所得輸出的量子狀態,乍看之下像輸入量子狀態經過 H 閘
調控,會將量子狀態順 Y 軸逆時針轉 90 度。然而事實上,如果試著將量子
狀 態 指 向 +X 及 –X,H 閘 將 調 控 量 子 狀 態 逆 時 針 轉 90 度, 則 結 果 應 該 是
+X 轉向 –Z,–X 應該轉向 +Z,將推論經過驗證如下。

1
• 輸入狀態 (| 0〉 + | 1〉 ) ,輸出為 |0〉,此時結果不是逆時針旋轉。
2
0.8 1

0.8
0.6
Amplitude

0.6
Amplitude

0.4
0.4
0.2
0.2

0 0
0 1 0 1
Computational basis states Computational basis states

1
▲圖 4-6 輸入狀態為 (| 0〉 + | 1〉 ) 經 H 閘還原 |0〉
2

38
Chapter 04 量子閘 (quantum gate)

由結果來看,H 閘的調控動作與調控角度完全無關,也不能用逆時針、
順時針轉 90 度來解釋,要更瞭解 H 閘轉換的狀態,必須從轉換矩陣來理解。
0.8 0.8

0.6 0.6
Amplitude

Amplitude
0.4 0.4

0.2 0.2

0 0
0 1 0 1
Computational basis states Computational basis states

▲圖 4-7 H 閘轉換的狀態

由上述的比較實例,可以發現兩個 H 閘串連將會還原回原來的量子狀
態。這就是量子閘的可逆性,同理,連續使用同一個量子閘,就能把原來的
輸入狀態還原。

練習一下 1

( ) 1. 經 H 閘的調控後,量子狀態是?
(A) 0 (B) 1 (C) 0 或 1 其中之一 (D) 0 與 1 同時存在

( ) 2. 當H閘的輸入為 |0〉 時,則輸出指向哪一軸?


(A) +X (B) –X (A) +Z (B) –Z

( ) 3. 當H閘的輸入為 |1〉 時,則輸出指向那一軸?


(A) +X (B) –X (A) +Z (B) –Z

1
( ) 4. 當H閘的輸入為 (| 0〉 + | 1〉 ) 時,輸出指向哪一軸?
2
(A) +X (B) –X (A) +Z (B) –Z

1
( ) 5. 當H閘的輸入為 (| 0〉 − | 1〉 ) 時,輸出指向哪一軸?
2
(A) +X (B) –X (A) +Z (B) –Z

( ) 6. H 閘的量子狀態可以讓 |0〉 與 |1〉 的出現機率為?


(A) 0.25,0.75 (B) 0.45,0.55 (C) 0.5,0.5 (D) 0.707,0.707。

( ) 7. H 閘的量子狀態, |0〉 及 |1〉 的分量各為?


(A) 1,0 (B) 0,1 (C) 0.5,0.5 (D) 0.707,0.707。
39
資訊篇

4-2 X 閘(Pauli-X gate)

X 閘又稱為 NOT 閘,可以控制目前的量子狀態繞著 X 軸旋轉 180 度,


符號、真值表及轉換矩陣如圖 4-8 所示。

輸入 輸出
X
|0〉 |1〉 0 1 
或 X = 
|1〉 |0〉 1 0 
α | 0〉 + β | 1〉 β | 0〉 + α | 1〉
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-8 X 閘的電路圖、真值表及轉換矩陣

X 閘經操控基本狀態如古典位元 0 → 1 或 1 → 0,而其他量子狀態意義
上是 |0〉 及 |1〉 係數的互換,以下針對各種狀態進行說明。

1 原狀態指向 +Z 軸,也就是 100% 指向 |0〉,經過 X 閘後狀態完全指向 –Z

軸,也就是 100% 指向 |1〉。


1 1
+z
0.8 |0> |0> 0.8
Amplitude

Amplitude

0.6 0.6

0.4 +y |0> X |1> 0.4

0.2 +x 0.2

0
0 1 |1> |1> 0
0 1
Computational basis states Computational basis states

▲圖 4-9 經過 X 閘後指向 +Z 軸狀態

2 原狀態指向 –Z 軸,也就是 100% 指向 |1〉,經過 X 閘後狀態完全指向 +Z

軸,也就是 100% 指向 |0〉。


1 1

0.8 |0> |0> 0.8


Amplitude

Amplitude

0.6 0.6

0.4 |1> X |0> 0.4

0.2 0.2

0
0 1
|1> |1> 0
0 1
Computational basis states Computational basis states

▲圖 4-10 原狀態指向 –Z 軸經過 X 閘後指向 +Z 軸狀態

40
Chapter 04 量子閘 (quantum gate)

如果量子狀態指向 +X 軸,依照 X 閘調控量子狀態繞著 X 軸旋轉 180 度,


結果將會如何?

1 由於量子狀態正指向 +X 軸,所以經過轉向後量子狀態不會改變。
0.8 0.8
+z
0.6 |0> |0> 0.6
Amplitude

Amplitude
0.4
1 1 0.4
+y — ( |0 + |1 ) X — ( |0 + |1 )
�2 > > �2 > >
0.2
+x 0.2

|1> |1>
0 0
0 1 0 1
Computational basis states Computational basis states

▲圖 4-11 量子狀態不改變

2 量子狀態指向 +X 及 +Z 軸之間,量子狀態經 X 閘後與原狀態以 X 為軸

上下鏡射。

0.8
|0> |0> 0.8

0.6 0.6
Amplitude

Amplitude
0.4
α |0> + β |1> X β |0> + α|1> 0.4

0.2 0.2

0
0 1 |1> |1> 0
0 1
Computational basis states Computational basis states

▲圖 4-12 原狀態以 X 為軸上下鏡射

3 由於量子狀態正指向 +Y 軸,經 X 閘後量子狀態指向 -Y,輸入 1 的相位

是紫色代表 90 度,棕色代表相位 270 度,經 X 軸後,0 與 1 的狀態互換,


也就是相差 180 度。
1
0.8
0.8
0.6
Amplitude

0.6
Amplitude

0.4 0.707( i ) 0.707( i ) 0.4

0.2 0.2

0 0
0 1 0 1
Computational basis states Computational basis states

▲圖 4-13 量子狀態正指向 +Y 軸,經 X 閘後量子狀態指向 –Y,0 與 1 的狀態互換

41
資訊篇

練習一下 2

( ) 1. X 閘的操控是將量子狀態以 X 為軸轉幾度?
(A) 90 (B) 135 (C) 180 (D) 225

( ) 2. X 閘的輸入為 1 時,輸出狀態為?
(A) 0 (B) 1 (C) 0 或 1 (D) 0 與 1 同時存在

( ) 3. 若原量子狀態為 |1〉,經 X 閘後量子狀態為?


1 1
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 )
2 2
( ) 4. 當 X 閘的輸入為 0.6 |0〉 + 0.8 |1〉,則輸出為?
(A) |0〉 (B) |1〉 (C) 0.6 |0〉 + 0.8 |1〉 (D) 0.8 |0〉 + 0.6 |1〉

1
( ) 5. 當 X 閘的輸入為 (| 0〉 + | 1〉 ) ,則輸出為?
2
1 1
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 )
2 2

1
( ) 6. 經 X 閘操控後輸出為 (| 0〉 + i | 1) ,則原輸入量子狀態指向哪一軸?
2
(A) +X (B) –X (C) +Y (D) –Y

42
Chapter 04 量子閘 (quantum gate)

4-3 Z閘(Pauli-Z gate)


+z
Z 閘的作用主要是控制量子狀態繞著 Z 軸
|0>
旋 轉 180 度, 是 以 Z 為 軸 的 反 相 閘, 以 Z 為
軸的旋轉角是量子狀態的相位角,所以 Z 閘 –x
180˚ +y
主 要 是 做 相 位 翻 轉 的 功 能。Z 閘 的 符 號、 真
值表及轉換矩陣如圖 4-14 所示。
+x

|1>

輸入 輸出
1 0 
Z |0〉 |0〉 Z = 
0 −1
|1〉 –|1〉
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣

▲圖 4-14 Z 閘的電路圖、真值表及轉換矩陣

以下說明將針對不同的量子狀態送入 Z 閘,經調控後輸出的量子狀態。

1 輸入量子狀態為 |0〉 時,因量子狀態朝向 +Z 軸,所以經 Z 閘調控後,狀

態不變。
1 1

0.8 0.8
Amplitude

Amplitude

0.6 0.6

0.4 0.4

0.2 0.2

0 0
0 1 0 1
Computational basis states Computational basis states

▲圖 4-15 量子狀態為 |0〉 時,量子狀態朝向 +Z 軸

43
資訊篇

2 輸入量子狀態為 |1〉 時,因量子狀態朝向 –Z 軸,所以經 Z 閘調控後,量

子狀態不變,但因為相位在 180 度,輸出以 –|1〉 表示。由布洛赫球面來看,


輸入與輸出都是一樣的,然實際上在相位上 Z 閘還是會給量子狀態的相
位翻轉 180 度,所以輸出為 –|1〉,–1 代表相位差 180 度。
1 1

0.8 0.8
Amplitude

Amplitude
0.6 0.6

0.4 0.4

0.2 0.2

0 0
0 1 0 1
Computational basis states Computational basis states

▲圖 4-16 相位翻轉 180 度狀態圖

3 起始狀態指向 +X 軸,當設定 Z,則經 Z 閘之後子狀態轉向 –X 軸。


0.8 0.8

0.6 0.6
Amplitude

Amplitude
0.4 0.4

0.2 0.2

0 0
0 1 0 1
Computational basis states Computational basis states

▲圖 4-17 經 Z 閘相位翻轉狀態圖

4 起始狀態指向 +y 軸,當設定 Z,則量子狀態會轉向 –y 軸。


0.8 0.8

0.6 0.6
Amplitude

Amplitude

0.4 0.4

0.2 0.2

0 0
0 1 0 1
Computational basis states Computational basis states

▲圖 4-18 設定 Z 時量子狀態

44
Chapter 04 量子閘 (quantum gate)

練習一下 3

( ) 1. 若量子狀態指向 +X,經 Z 閘的量子狀態指向?


(A) +X (B) –X (A) +Y (B) –Y

( ) 2. Z 閘是調控量子狀態的?
(A) 機率強度 (B) 數位資料 (A) 相位 (B) 速度

( ) 3. 下列那個量子狀態輸入 Z 閘後,輸出的量子狀態完全不會改變?
1 1
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 )
2 2

( ) 4. 0.6 |0〉 + 0.8 |1〉 經 Z 閘操控輸出為?


(A) |0〉 (B) |1〉 (C) 0.6 |0〉 + 0.8 |1〉 (D) 0.6 |0〉 – 0.8 |1〉

1
( ) 5. 經 Z 閘操控後輸出為 (| 0〉 + i | 1〉 ) ,則量子狀態會變為?
2
1 1
(A) (| 0〉 + | 1〉 ) (B) (| 0〉 − | 1〉 )
2 2
1 1
(C) (| 0〉 + i | 1〉 ) (D) (| 0〉 − i | 1〉 )
2 2

45
資訊篇

4-4 Y 閘(Pauli-Y gate)


+z
Y 閘是控制量子狀態繞著 Y 軸旋轉 180 度
|0>
的 量 子 閘。 右 圖 經 Y 閘 翻 轉 結 果 與 Z 閘 的 結
果幾乎相同,然而,因為 Y 閘是在 y 軸也就是
180˚
+y
虛數軸上進行翻轉,所以其結果會加上虛數 i。

y 軸是虛數軸,與 +y 與 +x 相位差 90 度, +x

所 以 i 代 表 相 差 90 度,–i 代 表 –90 度 或 270 |1>

度相位差。Y 閘的符號、真值表及轉換矩陣如
圖 4-19 所示。

輸入 輸出
0 −i 
Y |0〉 i |1〉 Y = 
i 0 
|1〉 – i |0〉
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-19 Y 閘的電路圖、真值表及轉換矩陣

1 輸入量子狀態為 |0〉 時,因量子狀態朝向 +Z 軸,所以經 Y 閘調控後,狀

態指向 –Z 閘,布洛赫球面上看似乎與 X 閘的結果一樣,但 Y 閘實際會


讓量子狀態的相位轉 +90 度(呈現紫色),也就是正虛軸的位置。
1
+z 1

0.8 |0> |0> 0.8


Amplitude

0.6
Amplitude

0.6

0.4 +y |0> Y i |1> 0.4

0.2 +x 0.2

0 0
|1> |1>
0 1 0 1
Computational basis states Computational basis states

▲圖 4-20 量子狀態的相位轉 +90 度狀態圖

2 輸入量子狀態為 |1〉時,因量子狀態朝向 –Z 軸,所以經 Y 閘調控後,狀

態指向 +Z 閘,布洛赫球面上看似乎與 X 閘的結果一樣,但 Y 閘實際會


讓量子狀態的相位轉 –90 度(或 270 度)(土黃色),也就是負虛軸的
位置。
46
Chapter 04 量子閘 (quantum gate)

0.8
|0> |0>
0.8

0.6 0.6
Amplitude

Amplitude
|0> y –i |1>
0.4 0.4

0.2 0.2

|1> |1>
0 0
0 1 0 1
Computational basis states Computational basis states

▲圖 4-21 量子狀態的相位轉 –90 度狀態圖

1
3 輸入量子狀態為 (| 0〉 + | 1〉 ) 時,因量子狀態朝向 +X 軸,所以經 Y 閘調
2

控後,狀態指向 –X 軸,布洛赫球面量子狀態的相位轉 180 度,由真值表


上 看 輸 入 |0〉 會 變 成 i|1 〉, i 代 表 相 差 90 度( 紫 色 ), 而 輸 入 |1〉 會 變 成
−i | 0〉 + i | 1〉
–i|0〉,代表相差 –90 度(土黃色),所以最後輸出會成為 。
2
+z
0.8 0.8

0.6
|0> |0>
0.6
Amplitude

Amplitude
0.4 1 –i |0> +i |1> 0.4
+y — ( |0> + |1> ) y —
�2 �2
0.2
+x 0.2

|1> |1>
0 0
0 1 0 1
Computational basis states Computational basis states

▲圖 4-22 相差 -90 度狀態圖

練習一下 4

( ) 1. 若量子狀態指向 +Z,經 Y 閘調控的量子狀態指向?


(A) +Z (B) –Z (A) +X (B) –X

( ) 2. 經 Y 閘調控後,量子狀態 |0〉 與 |1〉 的機率強度會?


(A) 增強 (B) 衰減 (A) 消失 (B) 互換

1
( ) 3. 將 (| 0〉 − i | 1〉 ) 的量子狀態輸入 Y 閘後,輸出的量子狀態變為?
2
1 1
(A) (| 0〉 − i | 1〉 ) (B) (−i | 0〉 + i | 1〉 )
2 2
1 1
(C) (| 0〉 + i | 1〉 ) (D) (− | 0〉 + i | 1〉 )
2 2

( ) 4. 0.6 |0〉 + 0.8 |1〉 經 Y 閘操控輸出為?


(A) |0〉 (B) |1〉 (C) –0.8i |0〉 + 0.6i |1〉 (D) 0.8i |0〉 – 0.6i |1〉
47
資訊篇

4-5 P 閘 (phase shift gates)

P 閘 是 相 位 控 制 閘,P 閘 可 以 任 意 控 制 +z
|0>
布 洛 赫 球 面 上 的 相 位 角, 也 就 是 以 Z 為 軸
的旋轉角度 φ,在前面介紹的 Z 閘,也是繞
+y
著 Z 軸旋轉的量子閘,然 Z 閘每次都是旋轉 φ
180 度,我們可稱之為反相或者稱之為相位 +x

翻轉,而 P 閘可以隨心所欲的控制相位角。 |1>

P 閘的符號、真值表及轉換矩陣如下:

輸入 輸出
1 0 
P |0〉 |0〉 P (ϕ ) =  iϕ 
0 e 
|1〉 e iφ |1〉
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣
▲圖 4-23 P 閘的電路圖、真值表及轉換矩陣

e iφ 歐拉公式,是用來表達在實數及虛數座標上相位旋轉的數學式。

e iφ = cosφ + isinφ

Im
i eiφ=cosφ+isinφ

sinφ
φ
0 cosφ 1 Re


▲圖 4-24 e 歐拉公式座標圖

48
Chapter 04 量子閘 (quantum gate)

在量子狀態的空間中,x 軸為實軸,y 為虛軸。推算幾個常用的角度,可


以得到下列結果:

i
(1) φ = 0 時,e 0 = 1

π i
π
π π
(2) φ = 時, e 2
= cos + i sin = i
2 2 2

(3) φ = π 時,e = cosπ + isinπ = –1

3π i

3π 3π
(4) φ = e
時, 2 = cos + i sin = −i
2 2 2

π i
π
π π 1 + 3i
(5) φ = 時, e 3
= cos + i sin =
3 3 3 2

由真值表可以看出 P 閘對輸入 |0〉 並無任何作用,而當輸入為 |1〉,則輸



出 e |1〉。在數學的意義上代表相位 φ 的旋轉,可用來表達 x–y 平面上的旋
轉角度,由轉換矩陣可以知道 P 閘只會調控相位角 φ。

1 輸入量子狀態為 |0〉 時,P 閘調控後狀態仍指向 +Z 閘,從布洛赫球面上

看沒有造成任何改變。
1 +z 1

0.8
|0> |0> 0.8
Amplitude

0.6
Amplitude

0.6

0.4 +y |0> P |0> 0.4

0.2 +x 0.2

0 0
0 1
Computational basis states |1> |1> 0 1
Computational basis states

▲圖 4-25 輸入量子狀態為 |0〉 時狀態

2 輸入量子狀態為 |1〉 時,P 閘調控後狀態仍指向 –Z 閘,從布洛赫球面上

看似沒有造成任何改變,P 閘 |1〉 的相位才會改變。


1
|0> |0>
1

0.8 0.8
Amplitude

0.6
Amplitude

0.6

0.4 |1> P eiφ |1> 0.4

0.2 0.2

|1> |1>
0 0
0 1 0 1
Computational basis states Computational basis states

▲圖 4-26 輸入量子狀態為 |1〉 時狀態

49
資訊篇

1
3 輸入量子狀態為 (| 0〉 + | 1〉 ) 時,P 閘 調 控 旋 轉 90 度 時, 則 狀 態 仍 指 向
2

+Y 閘,也就是正虛數軸。
0.8 0.8
|0> |0>
0.6 0.6
Amplitude

1 1

Amplitude
P( π2 )
0.4
— ( |0 + |1 ) — ( |0 + i |1> )
�2 > > �2 >
0.4

0.2 0.2

0
0 1 |1> |1> 0
0 1
Computational basis states Computational basis states

1
▲圖 4-27 輸入量子狀態為 (| 0〉 + | 1〉 ) 時,P 閘調控旋轉 90 度時狀態
2

1
4 輸入量子狀態為 (| 0〉 − | 1〉 ) 時,P 閘調控旋轉 270 度(–90 度)時,則
2

狀態仍指向 –Y 閘,也就是正虛數軸。
0.8 0.8
|0> |0>
0.6 0.6
Amplitude

1 1

Amplitude
P( 3π )
0.4
— ( |0 + |1 ) — ( |0 – i |1> )
�2 > > �2 >
0.4

2
0.2 0.2

0
0 1 |1> |1> 0
0 1
Computational basis states Computational basis states

1
▲圖 4-28 輸入量子狀態為 (| 0〉 − | 1〉 ) 時,P 閘調控旋轉 270 度(–90 度)時狀態
2

練習一下 5

( ) 1. P 閘主要是調控量子狀態的?
(A) 資料 (B) 相位 (C) 機率強度 (D) 頻率
π
( ) 2. P 閘調控 量子狀態 |0〉 與 |1〉 的機率強度會?
2
(A) 增強 (B) 衰減 (C) 消失 (D) 不變
π
( ) 3. 初始狀態為指向 +X 軸,經 P 閘調控 ?
2
1 1
(A) (| 0〉 − i | 1〉 ) (B) (−i | 0 + i | 1)
2 2
1 1
(C) (| 0〉 + i | 1〉 ) (D) (− | 0〉 + i | 1〉 )
2 2

50
Chapter 04 量子閘 (quantum gate)

4-6 Rx 閘 (Rotate-X gate)

Rx 閘,以 X 為軸調控量子狀態與 +Z 的夾角 θ 度。

輸入 輸出
 θ θ
θ θ  cos 2 −i sin 
|0〉 cos | 0〉 − i sin | 1〉
Rx Rx (θ ) =  2
2 2 
 −i sin θ cos
θ 
θ θ  2 2 
|1〉 −i sin | 0〉 + cos | 1〉
2 2
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣

▲圖 4-29 Rx 閘的電路圖、真值表及轉換矩陣

從布洛赫球面上來說即是以 X 為軸旋轉某個角度。舉例來說,若原始狀
態指向 +Z 軸,也就是 |0〉 的狀態,當角度設定為 90˚,則量子狀態會轉向 –
Y 軸。

|0〉 Rx ( 90˚ )
▲圖 4-30 Rx(90°)閘的電路圖

z z
|0> |0>

90˚
y y

x x

|1> |1>

( a ) 原始狀態指向 +Z 軸 [ 1 , 0 ] ( b ) 狀態向量指向 –Y 軸 [ 0.707,–0.707i ]

▲圖 4-31 在布洛赫球面狀態圖

51
資訊篇

4-7 Ry 閘(Rotate-Y gate)

Ry 閘,以 X 為軸調控量子狀態與 +Z 的夾角 θ 度。

輸入 輸出
 θ θ
θ θ  cos 2 − sin 
|0〉 cos | 0〉 − sin | 1〉
Ry 2 2 Ry (θ ) = 
2

 − sin θ cos
θ
θ θ  2 2 
|1〉 − sin | 0〉 + cos | 1〉
2 2
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣

▲圖 4-32 Ry 閘的電路圖、真值表及轉換矩陣

從布洛赫球面上來說,即是以 Y 為軸旋轉某個角度。舉例來說,若原始
狀態指向 +Z 軸,也就是 |0〉 的狀態,當角度設定為 90º,則量子狀態會轉向
+X 軸。

|0〉 Ry ( 90˚ )
▲圖 4-33 Ry(90°)閘的電路圖

z z
|0> |0>

90˚
y y

x x

|1> |1>

( a ) 原始狀態指向 +Z 軸 [ 1 , 0 ] ( b ) 原始狀態指向 +X 軸 [ 0.707 , 0.707 ]


▲圖 4-34 在布洛赫球面狀態圖

52
Chapter 04 量子閘 (quantum gate)

4-8 Rz 閘(Rotate-Z gate)

Rz 閘,以 Z 為軸調控量子狀態與 +Z 的夾角 φ 度,角度由 0 ∼ 360 度。

輸入 輸出
e − iϕ 0 
Rz |0〉
–iφ
e |0〉 Ry (θ ) =  iϕ 
 0 e 
|1〉 e iφ |1〉
( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣

▲圖 4-35 Rx 閘的電路圖、真值表及轉換矩陣

與 P 閘比較,Rz 閘與 P 閘功能似乎有點接近,但仔細比較一下真值表
或轉換矩陣,會發現 Rz 會對 |0〉 進行相位變化,而 P 閘對 |0〉 相位不會有任
何變化。

從布洛赫球面上來說即是以 Z 為軸旋轉某個角度。舉例來說,若原始狀
態指向 +X 軸,當角度設定為 270º,則量子狀態會轉向 –Y 軸。

|0〉 Rz ( 270˚ )
▲圖 4-36 Rz(270°)閘的電路圖

z z
|0> |0>

270˚
y y

x x

|1> |1>
|1〉 |1〉
( a ) 原始狀態指向 +X 軸 [ 0.707 , 0.707 ] ( b ) 經 Rz(270°)調控指向 –Y 軸,
[ 0.707i , –0.707i ]

▲圖 4-37 在布洛赫球面狀態圖 53
資訊篇

4-9 CNOT 閘 (controlled NOT gate)

CNOT 閘又稱為 CX 閘,也就是受控的 X 閘。多數的量子閘都可以加入


一個控制端,構成一個具有兩個以上量子位元的量子閘,從而做出更多豐
富的運算,而 CNOT 閘是量子電路中最常用的雙量子位元閘。其符號如圖
4-38(a) 所示,比單位元的 NOT 閘相比,多一個控制端。透過控制端的 |A〉
來控制 |B〉 是否進行反相的運算,運算結果真值表如圖 4-38(b)。如果以下列
真值表分析輸入 |0〉 及 |1〉 的狀態時輸出的結果,|A ⊕ B 〉 在 |A〉 與 |B〉 互異時
為 |1〉,相同時為 |0〉,稱之為互斥或(XOR)的邏輯。

輸入 輸出
|A〉 |B〉 |A〉 |A ⊕ B〉 1 0 0 0
|A〉 |A〉 |0〉 |0〉 |0〉 |0〉
0 1 0 0 
CNOT = 
|B〉 |A ⊕ B〉 |1〉 |0〉 |1〉 |1〉 0 0 0 1
 
|0〉 |1〉 |0〉 |1〉 0 0 1 0

|1〉 |1〉 |1〉 |0〉


( a ) 符號 ( b ) 真值表 ( c ) 轉換矩陣

▲圖 4-38 CNOT 閘的真值表、電路圖及轉換矩陣

然而,多輸入的量子閘,其輸入的部分仍會保留到輸出,如 |A〉,因為
量子閘的輸出會列舉所有的「量子狀態」,所以不會只有 |A ⊕ B 〉 這個輸出,
這點就與古典電腦輸入與輸出單向而不可逆的結果不太ㄧ樣,量子電路的運
算特性即量子電路輸出是可逆的,可以回推到輸入的狀態。

輸出用 ⊕ 的符號在數位邏輯是互斥或閘的運算,結果呈現輸入 |A〉、|B〉


兩者相同則輸出為 0,兩者不同則輸出為 1。這個運算是一個殘缺的加法,
也就是 0 + 0 = 0、0 + 1 = 1、1 + 0 = 1,而 1 + 1 = 0 ,少了進位 1。根據圖
4-38(b) 所描述的真值表,輸出為 |A ⊕ B 〉 其實只描述了古典邏輯的互斥或閘
的運算。

54
Chapter 04 量子閘 (quantum gate)

使用長條圖來描述兩個量子位元的狀態,如圖 4-39(a) 的電路圖,經過


H 閘跟 CX 閘的運算後,所得狀態如下圖 4-39(b),狀態共有 00,01,10,11,
其中 01 跟 10 的向量強度(機率)各有 0.707,00、11 的向量強度則為 0。
q0 是低位元,q1 是高位元所代表的位置,如圖 4-39(b) 所示。

1.0
|0> H q0
0.5

|0> CX q1
0 0 01 10 11
q1 q0

( a ) 量子電路 ( b ) 狀態向量圖

▲圖 4-39 使用 H 閘控制端的輸入產生的狀態

CNOT 閘運算推演如下:

1 當 |A〉 = |0〉 則輸出 |A ⊕ B 〉 保留輸入 |B〉 的狀態。

1 1

0.8
A> 0.8
Amplitude

Amplitude

0.6 0.6

0.4 0.4

0.2 0.2

0
00 01 10 11 B> 0
00 01 10 11
Computational basis states Computational basis states

1 1

0.8
A> 0.8
Amplitude

Amplitude

0.6 0.6

0.4 0.4

0.2 0.2

0
00 01 10 11 B> 0
00 01 10 11
Computational basis states Computational basis states

▲圖 4-40 當 |A〉 = |0〉 狀態圖


55
資訊篇

2 當 |A〉 = |1〉 則輸出 |A ⊕ B 〉 對輸入 |B〉 進行 X 閘的運算。

1 1

0.8
A> 0.8
Amplitude

Amplitude
0.6 0.6

0.4 0.4

0.2 0.2

0
00 01 10 11 B> 0
00 01 10 11
Computational basis states Computational basis states

1 1

0.8
A> 0.8
Amplitude

Amplitude
0.6 0.6

0.4 0.4

0.2 0.2

0
00 01 10 11 B> 0
00 01 10 11
Computational basis states Computational basis states

▲圖 4-41 當 |A〉 = |0〉 狀態圖

| 1〉 + | 0〉
3 當 | A〉 = 、|B〉 = |0〉 時,輸出 |A ⊕ B 〉 對輸入 |B〉 進行 X 閘的運算。
2

推導輸出的結果。|A〉 有 0 和 1 兩種狀態,當狀態為 1 時,兩個量子位元


共有 11,00 兩種狀態;當為 0 時,兩個量子位元只有 00 的狀態,所以整
個運算結果共有 00 及 11 兩種狀態。

0.8 0.8

A>
0.6 0.6
Amplitude

Amplitude

0.4 0.4

0.2 0.2

B>
0 0
00 01 10 11 00 01 10 11
Computational basis states Computational basis states

| 1〉 + | 0〉
▲圖 4-42 當 | A〉 = 、|B 〉 = |0〉 狀態圖
2

56
Chapter 04 量子閘 (quantum gate)

| 1〉 + | 0〉
4 當 | A〉 = 、|B〉 = |1〉 時,輸出 |A ⊕ B 〉 對輸入 |B〉 進行 X 閘的運算。
2

推導輸出的結果,|A〉 有 0 和 1 兩種狀態,當狀態為 1 時,兩個量子位元


共有 01,10 兩種狀態;當為 0 時,兩個量子位元只有 01 的狀態,所以整
個運算結果共有 01 及 10 兩種狀態。

1 1

0.8
A> 0.8
Amplitude

Amplitude
0.6 0.6

0.4 0.4

0.2 0.2

0
00 01 10 11 B> 0
00 01 10 11
Computational basis states Computational basis states

| 1〉 + | 0〉
▲圖 4-43 當 | A〉 = 、|B 〉 = |0〉 狀態圖
2

由 (3) 與 (4) 兩種狀態可知,|A〉 輸入是一個 0,1 各一半的疊加態,因此,


我們發現輸出的布洛赫球面呈現的狀態與長條圖呈現的量子狀態無法一致,
主要原因為兩個輸出都處於疊加態,沒辦法看出 CX 閘互斥或的運算結果,
也因此布洛赫球面在 CX 閘的運算已經無法參考,後續遇到 CX 運算將不再
採用。

此 外, 量 子 狀 態 的 呈 現 方 法 中,「 圓 標 記 法 」 可 以 呈 現 向 量 強 度、 機
率強度及相位,是一種很直觀的表示方法。本教材主要採用 IBM Quantum
Composer 的表示法,但在此還是將這種優秀的表示法介紹給各位,若讀者
以後在其他文章中看到此類標記法,可以快速理解。

向量強度 0_

相位(0度)

機率強度 1_

Final amplitudes
_0

_1

▲圖 4-44 使用圓標記法呈現的量子狀態
57
資訊篇

練習一下 6

( ) 1. CX 閘有控制端及受控端兩個輸入,當控制端為 0 的時候,受控端經過運算
後會如何?
(A) 反相 (B) 相位會改變 (C) 頻率改變 (D) 保持不變

控制端

受控端 輸出端

( ) 2. CX 當受控端為 1,控制端為 0,輸出端為?


(A) 1 (B) 0 (C) 1 或 0 (D) 1 和 0 同時存在

( ) 3. CX 當受控端使用 H 閘,控制端為 0,下列何者輸出的量子狀態(複選)?


(A) 00 (B) 01 (C) 10 (D) 11

( ) 4. CX 當受控端使用 H 閘,控制端為 H 閘,下列何者輸出的量子狀態(複選)?


(A) 00 (B) 01 (C) 10 (D) 11

( ) 5. CX 的邏輯運算是哪一種?
(A) OR (B) AND (C) XOR (D) NOT

( ) 6. CX 在控制端為 0 的輸出狀態?
(A) 00、11 (B) 10,11 (C) 01,10 (D) 01,00

58
Chapter 04 量子閘 (quantum gate)

4-10 CCNOT 閘 (controlled controlled NOT gate)

CCNOT 閘又稱為 Toffoli 閘(Toffoli gate),是一個三量子位元閘,架構


為用兩個量子位元控制一個 X 閘,其符號如圖 4-45(a),比 X 閘多了 |A〉、|B〉
兩個控制端。透過控制端的 |A〉、|B〉 來控制 |C〉 是否進行 X 閘,也就是反相
的 運 算, 運 算 結 果 真 值 表 如 圖 4-45(b)。 用 真 值 表 分 析, 當 控 制 端 |A〉、|B〉
同為 1 的時候,X 閘才會反向;當控制端 |A〉、|B〉 其一為 0,X 閘沒有作用時,
會保留原來的狀態。由於 |A〉、|B〉 呈現的是邏輯,也就是必須兩者同為 1 才
能產生作用,在此用 A 乘以 B 來呈現控制端 |A〉、|B〉 作用於受控端 |C〉 的邏輯。

輸入 輸出
|A〉 |B〉 |C〉 |A〉 |C〉 | AB ⊕ C 〉
|0〉 |0〉 |0〉 |0〉 |0〉 |0〉
|0〉 |0〉 |1〉 |0〉 |0〉 |1〉
| A〉 | A〉
|0〉 |1〉 |0〉 |0〉 |1〉 |0〉
| B〉 | B〉
|0〉 |1〉 |1〉 |0〉 |1〉 |1〉
|C〉 | AB ⊕ C 〉
|1〉 |0〉 |0〉 |1〉 |0〉 |0〉
|1〉 |0〉 |1〉 |1〉 |0〉 |1〉
|1〉 |1〉 |0〉 |1〉 |1〉 |1〉
|1〉 |1〉 |1〉 |1〉 |1〉 |0〉
( a ) 符號 ( b ) 真值表
▲圖 4-45 CCNOT 閘的真值表、電路圖及轉換矩陣

圖 4-45 所描述的真值表,輸出為 |AB ⊕ C 〉,其實只描述了古典計算機邏


輯的互斥或閘的運算。實際上,CNOT 閘運算觀念應該是 :

1 當 |AB〉 = |00〉、|01〉 或 |10〉,只要有一個位元為 0,則輸出 |AB ⊕ C 〉 保留

輸入 |C〉 的狀態。
2 當 |AB〉 = |11〉,則輸出 |AB ⊕ C 〉 才會對輸入 |C〉 進行 X 閘的運算。

59
資訊篇

由上推算,以 CBA 排列順序的 000、001、010 及 111 四個狀態的輸出。

▲圖 4-46 當 |AB〉 = |11〉 狀態圖

練習一下 7

( ) 1. CCX 閘有兩個控制端及一個受控端,當控制端有其中一個為 0 時,受控端


經過運算後會如何?
(A) 反相 (B) 相位會改變 (C) 頻率改變 (D) 保持不變

A 控制端 0
B 控制端 1

C 受控端 輸出端

( ) 2. CCX 當兩控制端均為 1 時,輸出端為?


(A) 控制端的反相 (B) 受控端的反向
(C) 0 或 1 其中之一 (D) 1 和 0 同時存在

( ) 3. CCX 是邏輯運算的?
(A) AND (B) OR (C) XOR (D) NOT

( ) 4. 當 CCX 兩個控制端均使用 H 閘產生 00、01、10 及 11 的疊加態時,則輸出


的量子狀態有幾個?
(A) 1 (B) 2 (C) 3 (D) 4

( ) 5. 當 CCX 兩個控制端均使用 H 閘產生 00、01、10 及 11 的疊加態,受控端為


0 時,下列哪個量子狀態以 CBA 順序呈現時,令 C 為受控端 BA 為控制
端,哪個狀態不會出現?
(A) 000 (B) 010 (C) 111 (D) 110

60
Chapter 04 量子閘 (quantum gate)

課後測驗
( ) 1. H 閘在輸入端為 |0〉 的狀態如右圖時,輸出的狀態為何?
1 1
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 )
2 2

1
( ) 2. H 閘在輸入端為 (| 0〉 − | 1〉 ) 的狀態時,輸出的狀態
2
為何?
1
1 1 (| 0〉 − | 1〉 )
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 ) 2
2 2

( ) 3. 如右圖使用 IBM Quantum Composer 的輸出統計


|0〉 與 |1〉 狀 態 的 輸 出 機 率(probabilities),在
輸 入 初 始 狀 態 |0〉 或 |1〉 時,請 問 那 一 種 量 子 閘
可以操作出下列的結果(複選)?
(A) X 閘 (B) Y 閘
(C) RX 閘 (D) H 閘

( ) 4. 上述的機率狀態 |0〉 與 |1〉 相同,以布洛赫球面來看,必須使用量子閘將量


子狀態操控在 θ 角的那個角度?
(A) 45 度 (B) 90 度 (C) 135 度 (D) 180 度

( ) 5. 下列哪個量子閘可以用於反相(複選)?
(A) X 閘 (B) Y 閘 (C) RX 閘 (D) H 閘

( ) 6. 量子狀態 0.8 |0〉 – 0.6 |1〉 經 X 閘之後所得結果為何?


(A) 0.8 |0〉 + 0.6 |1〉 (B) –0.8 |0〉 + 0.6 |1〉
(C) 0.6 |0〉 + 0.6 |1〉 (D) –0.6 |0〉 + 0.8 |1〉

( ) 7. 在輸入端為 |0〉 的狀態,經 H 閘調控後,再將輸出使用 X 閘操控,所得結果


為何?
1 1
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 )
2 2

61
資訊篇

( ) 8. H 閘在輸入端為 |1〉 的狀態,再將輸出使用 Z 閘操控,所得結果為何?


1 1
(A) |0〉 (B) |1〉 (C) (| 0〉 + | 1〉 ) (D) (| 0〉 − | 1〉 )
2 2

1
( ) 9. 若要操控量子狀態成為 (| 0〉 + | 1〉 ) ,以下有那幾種組合可以完成(複
2
選)?
(A) 輸入 |0〉 的 H 閘
(B) 輸入 |0〉 的 H 閘再經 X 閘操控
(C) 輸入 |0〉 的 H 閘再經 Z 閘操控
(D) 輸入 |1〉 的 H 閘再經 Z 閘操控

( ) 10. 在任何可能的輸入狀態下,經調控後可能會改變機率強度的有那些量子閘
(複選)?
(A) X 閘 (B) Y 閘 (C) Z 閘 (D) H 閘

62
Chapter 05 量子電路

05
chapter

量子電路
(quantum circuit)
先備知識
量子電腦可透過量子電路建立演算法,進行量子問題相關運算,但量子電腦不
適合像一般電腦一樣進行文書處理、影像處理、上網購物、社群軟體等作業,因此
量子電腦無法完全取代通用型電腦,兩者間應是相輔相成的關係。透過一般電腦協
助資料編輯、儲存、決策、分析,將量子運算交給量子電腦執行,再回到一般電腦
呈現結果,成為量子電腦目前的運行模式。

學習目標
為 協 助 讀 者 進 一 步 瞭 解 量 子 運 算, 本 章 節 將 透 過 範 例 介 紹 如 何 使 用 IBM
Quantum Composer 進行量子電路圖形化編輯,或利用 Qiskit 及 Python 進行程
式編輯,以利量子電路設計。

63
資訊篇

5-1 量子電路的基本架構

量子電腦基本運算單位為量子位元,透過量子閘操控量子位元數位資料
的振幅及相位,以構成具有特定目的、功能及演算法的量子電路。在量子電
路中,每條橫線代表一個量子位元,也可以稱之為量子暫存器。基本的量子
電路具有初始態、量子操作及測量三個基本流程。

初始態 量子操作 測量
▲圖 5-1 典型單一量子位元的量子電路

上圖為一個基本的單一量子位元的量子電路,基本流程標示說明如下:

1 初始態:設定為 |0〉 或 |1〉,通常放置在量子電路的左邊。若以布洛赫球

面來看,這兩個狀態因為是 100% 指向 |0〉 或 |1〉,因此等同古典位元的邏


輯 0 及 1。初始態可以決定後續量子閘的量子狀態。

z z
|0> |0>

y y

x x

|1> |1>

( a ) 初始態 |0〉100% 指向北極 ( b ) 初始化 |1〉100% 指向南極

▲圖 5-2 初始態的布洛赫球面狀態圖

64
Chapter 05 量子電路

2 量子操作:採用「量子閘」調控量子狀態,以產生不同的機率振幅及相位,

透過量子閘調控量子狀態(紅色箭頭)指向球面的任何方向。以下圖為
例,若有個量子閘可以讓量子狀態繞 y 軸旋轉 90 度,當初始態指向 |0〉 時,
調控後則指向 +x 軸;當初始態指向 |1〉 時,調控後則指向 –x 軸。每個量
子閘都有其調控的意義,下圖的例子所採用的量子閘是 H 閘,採用布洛
赫球面表示的量子狀態變化,淡紅為初始狀態,正紅為調控後的狀態。
其狀態變化分別正對 +x 軸及 –x 軸,也就是 90 度的位置。

z z
|0> |0>

y y

x x

|1> |1>

( a ) 初始態 |0〉 經 H 閘調控後指向 +x ( b ) 初始化 |1〉 經 H 閘調控後後指向 –x

▲圖 5-3 經 H 閘操作後的布洛赫球面狀態

3 測量:在圖 5-1,右端採用一個測量表的符號,代表對每個量子位元的測

量,在量子的理論中,量子的狀態被測量前,皆無法確定它的狀態,但
一旦經過測量則會崩塌在 0 或 1 其中一個狀態中,且每次測量可能會呈
現 0 或 1 的狀態。但如果經過多次的測量,則會發現 0 與 1 出現的機率
其實是有規律的,出現機率與量子狀態跟 z 軸的夾角有關。關於機率與
量子狀態的關係,為更清楚地呈現與說明,在此暫且省去 y 軸並將布洛
赫球面旋轉成 x-z 面,以圖 5-4 為例。

65
資訊篇

z z z
|0> |0> |0>

θ 90˚
θ
x x x

|1> |1> |1>

( a ) θ < 90º 測量指向較接近 |0〉 ( b ) θ > 90º 測量指向較接近 |1〉 ( c ) θ = 90º 測量指向 |0〉 與 |1〉
的狀態。 的狀態。 各 50% 狀態。

▲圖 5-4 測量的結果與布洛赫球面上 θ 角有關

⑴ 如果指向接近於 |0〉 也就是 θ < 90º,則有比較高的機率得到 0 的結果。

⑵ 如果指向接近於 |1〉 也就是 θ > 90º,則較高的機率產生 1 的結果。

⑶ 如果指向在之間也就是 θ = 90º,則 0 與 1 產生的機率都是 50%。

以圖 5-5 的量子電路為例,經過 H 閘後調整後再進行測量。測量 0 與 1


出現機率理想上應該是 0.5:0.5。而經過 1024 次實際反覆的操作及測量的
結果可能是 0.505:0495,這個數值雖然沒有呈現完美的理想值,但卻十分
接近理想值的結果,理論上在測量次數提高,機率將越接近理想值,目前量
子電腦,運算結果只能透過測量的方式取得。

0.60
0.505 0.495
0.45
Probabilities

0.30

q | 0> H
0.15

c
0 0.00
0 1

( a ) 以 |0〉 初始 H 閘的測量電路 ( b ) 經 1024 次測量後 0 與 1 出現的機率

▲圖 5-5 經過多次測量出現機率可以反應量子操作的結果

66
Chapter 05 量子電路

前 面 的 例 子 是 只 操 作 一 個 量 子 位 元, 但 實 際 可 以 拿 來 運 算 的 量 子 電
路,當然不會只有一個量子位元那麼簡單。如圖 5-6 是使用 IBM Quantum
的 Composer 製 作 兩 量 子 位 元 的 電 路, 是 一 個 被 稱 之 為 Grover 的 演 算 法
(Grover's algorithm),可用以在一個數列中搜尋正確的資料,在窮舉、資
料庫及量子演算問題上,可發揮極大的價值。

初始態 量子操作 測量

▲圖 5-6 兩量子位元的量子電路

67
資訊篇

5-2 量子程式設計

上述的量子電路,可以透過程式設計的方式來完成,本單元將利用 IBM
Quantum 的 Composer(作曲家)及 Lab(實驗室)練習量子電路。

一、IBM Quantum
IBM Quantum 採 用 雲 端 運 算 的
架構,免費提供量子電路學習資源給
大眾使用。您可以在這個平臺上運用 建議用 Google 申請
模擬器執行量子電路程式,也可以將
您 設 計 的 量 子 電 路, 透 過 IBM 放 置
在世界各地的量子電腦進行運算。 ▲圖 5-7 IBM Quantum 的首頁

首次使用 IBM Quantum 請先開設一個帳號,申請登入後即可使用完整


的 功 能。 這 個 雲 端 平 臺 提 供 IBM Quantum Composer 及 IBM Quantum Lab
以利使用者進行程式編寫,也可以透過 API 取得量子電路運算結果。

二、IBM Quantum Composer


IBM Quantum Composer 之所以用作曲家 Composer 命名,是因為設計
量子電路時,都是用一條直線當作一個量子位元,就像在五線譜上放置音符
一樣,將量子閘放置到每個量子位元上。操作步驟如下:

1. 點選圖 5-8 的 Launch Composer 進入編輯環境。

▲圖 5-8 IBM 提供兩種編寫量子電路的環境

2. 在畫面上方量子閘工具箱,挑選量子閘並拖曳到量子電路上。
3. 以圖 5-9 為例,拖曳 H 閘及 CNOT 閘到量子電路之後,即同時出現具有

68 00 及 11 狀態的向量。
Chapter 05 量子電路

4. 圖 5-9 右方為量子電路對應的量子程式,量子程式可以用 OpenQASM 及


Qiskit 兩種工具進行編寫,Qiskit 採用 Python 編輯,也可以透過以下介
紹的 Open in Quantum Lab 進入練習環境進行程式編寫。

H T S Z T+ S+ P RZ Qiskit Read only


量子閘 z +
| 0> if Y RX RY U RXX RZZ +Add
Open in Quantum Lab
�X �X
1 from qiskit import QuantumRegister,
ClassicalRegister, QuantumCircuit
q0 H 2 from numpy import pi
3
量子電路 q1 4 qreg_q = QuantumRegister(2,̀q́)
+ 5 creg_c = ClassicalRegister(2,̀ć)
c2 6 circuit = QuantumCircuit(qreg_q,
creg_c)
7
Statevector Q-sphere 8 circuit.h(qreg_q[0])


9 circuit.cx(qreg_q[0], qreg_q[1])
0.8
Amplitude

0.6

狀態向量 0.4

0.2
π/2 可將量子電路
0
00 01 10 11 π Phase 0 轉譯成的程式
Computational basis states
3π/2 State Phase angle

▲圖 5-9 Composer 的編輯環境

圖 5-9 可 以 看 到 狀 態 向 量(statevector) 有 00 及 11 兩 個 狀 態, 量 子 電
腦的運算模式可以一次提供所有運算結果,多次的測量結果計算 00 或 11 的
出現次數,統計出現的比例則得到出現機率。

如果將狀態向量(statevector)切換成機率(probabilities)如圖 5-9,我們
1 2
將透過向量狀態的平方獲得結果 00 與 11 的出現機率,也就是 ( ) = 0.5 ,即
2
50% 的機率(probability),藉由 Composer 的模擬得證(如圖 5-10)。

Statevector i Probabilities i

1
Statevector 100

0.8 80
Probabilities
Probabilitiy(%)
Amplitude

0.6 60

0.4 40

0.2 20

0 0
00 01 10 11 00 01 10 11
Computational basis states Computational basis states

▲圖 5-10 將向量狀態切換成機率

學會判讀量子電路模擬執行後產生的狀態向量或是機率,是學習量子運
算很重要的技術及步驟。
69
資訊篇

三、IBM Quantum Lab


IBM Quantum Lab 提供可以使用 Python 應用量子程式 Qiskit 模組進行
程式處理或練習測試,請參考圖 5-11,點選 Launch Lab 進入 Lab 介面,進
入後選擇以 Notebook 模式編輯。學習者也可以在 Composer 用圖形化的方
式先編好,接著轉成 Python 再進行編輯。

舉例來說,先將 H 閘及 CNOT 量子閘拖曳到兩個量子位元,q1 為高位


元、q0 為低位元,另外拖曳兩個測量表,分別測量 q0-q1 的狀態。

H T S Z T+ S+ P RZ Qiskit Read only 選用Qiskit


z
| 0> if X+ Y RX RY U RXX RZZ +Add
Open in Quantum Lab
X
1 from qiskit import QuantumRegister,
ClassicalRegister, QuantumCircuit
q0 z
低位元 H 2 from numpy import pi
3
q1 z
低位元 4 qreg_q = QuantumRegister(2,̀q́)
+ 5 creg_c = ClassicalRegister(2,̀ć)
c2 6 circuit = QuantumCircuit(qreg_q,
0 1 creg_c)
7
Statevector Q-sphere 8 circuit.h(qreg_q[0])

9 circuit.cx(qreg_q[0], qreg_q[1])
1
10 circuit.measure(qreg_q[0], creg_c[0])
0.8
Amplitude

11 circuit.measure(qreg_q[1], creg_c[1])
0.6
0.4 產生左方量子電路的
0.2 π/2

0
00 01 10 11 π Phase 0

Computational basis states


3π/2 State Phase angle

▲圖 5-11 Composer 的編輯畫面

選擇 Qiskit 模式,運用 Python 進行編輯,產生如圖 5-11 右方的程式,


此方式可協助學習者快速理解量子電路的程式。以下為使用 Qiskit 進行量子
程式設計的講解:

1 從 Qiskit 載入三個模組如下,分別為:

from qiskit import QuantumRegister, ClassicalRegister,


QuantumCircuit
from numpy import pi

70
Chapter 05 量子電路

• QuantumRegister : 量子暫存器的模組,也就是圖 5-11 的 q0-q2,用以在上面


佈置量子閘,以建構量子電路。

• ClassicalRegister : 古典位元暫存器的模組,也就是圖 5-9 的 c3。

• QuantumCircuit : 由量子暫存器及古典位元暫存器構成,用來建構量子電路的
模組。

numpy 是 Python 中一個很便利的數值運算模組,在這個模組中只取用


pi 來使用,pi 為圓周率也就是 3.14159。

2 定義量子暫存器、古典位元暫存器及量子電路如下。共有三個步驟:

qreg_q = QuantumRegister(2, 'q')


creg_c = ClassicalRegister(2, 'c')
circuit = QuantumCircuit(qreg_q, creg_c)

• 用 QuantumRegister 類別定義兩個量子暫存器,暫存器用 q 來標示,所以會標示


成 q0-q1,而模組定義帶入 qreg_q 變數,qreg_q 將成為一個陣列,分別用 qreg_
q[0]~qreg_q[1] 代表 q0-q1 的量子位元。

• 用 ClassicalRegister 類別定義兩個古典暫存器,暫存器用 c 來標示,所以會標示


成 c0-c2,而模組定義帶入 creg_c 變數,creg_c 將成為一個陣列,分別用 creg_
c[0]~creg_c[1] 代表 c0-c1 的古典位元。

• 最後將 qreg_q, creg_c,代入到 QuantumCircuit 類別,產生 circuit 的物件變數。

3 接下來開始設計量子電路,量子閘的設定與程式碼有先後的關係,前面

程式碼所設定的量子閘為前,後面量子閘為後,從以下程式可見,H 閘
先執行結果會影響到 CX 閘,CX 閘不能影響到 H 閘。

circuit.h(qreg_q[0])
circuit.cx(qreg_q[0], qreg_q[1])

• circuit.h(qreg_q[0]) : 在量子電路的物件變數 circuit,使用 H 閘將量子閘設定


在第 0 個量子暫存器。

• circuit.cx(qreg_q[0], qreg_q[1]) : CX 即為 CONT 閘,使用 qreg_q[0] 定義第


0 個量子暫存器為控制端,qreg_q[1] 定義第一個量子暫存器受控端。
71
資訊篇

4 最後是測量,前面 qreg_q 為受測的量子位元,後方 creg_c 為古典量子位

元結果。在 Composer 的介面會將 creg_c 的結果都導入到一個 c2 的數位


線,而這個數位線只會有一個狀態。

circuit.measure(qreg_q[0], creg_c[0])
circuit.measure(qreg_q[1], creg_c[1])

IBM Quantum Composer 上的測量似乎都會只有一個結果,這常會造成


初學者誤解。事實上,如果一個量子電路的運算會產生 n 種狀態,則測量後
的量子位元會隨機出現其中一個狀態,例如 11 或 00。但隨著測量次數增加,
會發現每種狀態機率經過統計後會越來越接近正確的機率,將會呈現一定比
例的規律,各種狀態的機率總和會趨近於 1。

四、使用實體的量子電腦運算
IBM Quantum 的 Composer 及 Lab 這兩套工具,可以協助使用者快速且
即時地檢視量子電路運算後的狀態,但現實中的量子電腦實際上是無法做到
這一點的,因為量子位元「經過觀測後,量子狀態就會消失」,因此最後只
能看到古典邏輯的狀態結果。目前沒有通用型的量子電腦,通常會使用傳統
程式搭配量子程式,將量子電腦的運算結果交給傳統程式處理,呈現給使用
者運算的結果,如圖 5-12 所示。

量子傳統程式 量子程式

▲圖 5-12 目前的量子程式是傳統程式與量子運算混用

Composer 及 Qiskit 的量子程式沒有實際透過量子電腦運算,其運算結


果都是模擬的,將模擬的程式送到 IBM 提供的實體量子電腦,使用者必須
等待排程執行該量子程式。使用步驟如下:

72
Chapter 05 量子電路

1. 在 Composer 上按下 Setup and run 的按鈕,進入下方頁面

▲圖 5-13 設定實體的量子電腦運算

2. 任 意 選 取 一 臺 量 子 電 腦, 例 如 圖 中 使 用
者選取的是 ibmq_manila,(請注意是否
online),還有可以使用的 Qubits(量子
位元)的數量。
3. 前面提到,量子位元每次執行的狀態都不
一 樣, 所 以 設 定 執 行 1,024 個 shots, 也
就是讓量子電路運算 1,024 次。
4. 命名 Job name 為 one_qubits_entanglement,
Tags 為 entaglement, 按 下 Run on ibmq_
manila (名字視選取的量子電腦而定),接
著進入量子運算排程。
5. 排 程 經 過 一 段 時 間 後, 如 圖 5-14, 運 算
是在 40 分 51 秒後得到結果,最後可以看
到圖 5-9 的長條圖 00 跟 11 都有明顯的出 ▲圖 5-14 實體量子電腦運算的結果

現次數,而且接近相等。可以認定 00 跟 11 是這個量子電路運算後的狀態。

依據實際量子電路運算的結果,現實中的量子電腦基於量子特性「量子
電路只要測量,就會崩塌在 0 與 1 的古典位元狀態」,必須要執行多次「射
擊(shot)」,使量子電路產生一次又一次的運算及測量,最後依據多次射
擊的測量結果,統計各種狀態出現機率,以推測運算結果。
73
資訊篇

5-3 單量子位元電路設計

以下單元將進行實作,請先準備可上網的電腦,並先行註冊 IBM Quantum


的 帳 號, 進 入 IBM Quantum Composer 及 IBM Quantum Lab, 再 開 始 進 行
圖形化量子電路編輯及 Qiskit 的量子程式編輯。

實作練習 1

在 IBM Quantum Composer,使用一個量子位元,放置一個 H 閘,觀察各資


料的狀態向量及機率。
狀態向量(statevector):根據 H 閘的狀態 |ψ〉 = α|0 〉 + β|1 〉,所以 α = β =

機率(probabilities):參考狀態向量 |ψ〉 = α|0 〉 + β|1 〉,所以每個狀態的機
率為 | α | 2 = | β | 2 = 。

Statevector i Probabilities i

0.8 α β 100

80
α2 β 2
0.6
q 0 H
Probabilitiy(%)

60
Amplitude

+ 0.4
c1 40
0.2
20

0 0
0 1 0 1
Computational basis states Computational basis states

( a ) 量子電路 ( b ) 狀態向量 ( c ) 機率
▲圖 5-15 IBM Quantum Composer 量子電路、狀態向量及機率

實作練習 2

使用 Qiskit 模組以 IBM Quantum 的 Lab 編輯,編輯量子電路程式,在單一


量子位元上放置一個 H 閘,並觀察其布洛赫球面及量子狀態。

74
Chapter 05 量子電路

(1) 載入 Qiskit 及 Numpy 模組並設定一個量子位元的電路。

▲圖 5-16 載入 Qiskit 及 Numpy 模組電路圖

(2) 在量子位元上放置一個 H 閘。

q H

▲圖 5-17 量子位元上放置一個 H 閘狀態圖

(3) 下列程式目的為運算及觀察量子電路的狀態向量(statevector)。
H 閘的狀態式定義為 |ψ〉 = α|0 〉 + β|1 〉,由結果來看 α = β = 。
觀察下列程式執行結果 0j 代表 H 閘的狀態沒有 軸的成分。

▲圖 5-18 0j 代表 H 閘的狀態圖

(4) 使用布洛赫球面觀察狀態向量,H 閘的狀態是指向 軸。

▲圖 5-19 使用布洛赫球面觀察狀態圖 75
資訊篇

實作練習 3

在 IBM Quantum Composer,使用一個量子位元,放置一個 X 閘後,觀察其


狀態向量及機率。

(1) 狀態向量(statevector):X 閘狀態 |ψ〉 = α|0 〉 + β|1 〉,所以


α= ,β = 。

(2) 機率(probabilities):參考狀態向量 |ψ〉 = α|0 〉 + β|1 〉,所以每個狀態的


機率為 | α | 2 = 、| β | 2= 。

1 1

0.8 0.8

q 0 q 0
Amplitude

Amplitude
0.6 0.6

+ 0.4 + 0.4

c1 0.2
c1 0.2

0 0
0 1 0 1
Computational basis states Computational basis states

( a ) 未放置任何量子閘初始態為 0 ( b ) 放置 X 閘後狀態轉為 1

▲圖 5-20 狀態向量圖

實作練習 4

使用 Qiskit 模組以 IBM Quantum 的 Lab 編輯X閘的程式,並觀察其狀態向


量及布洛赫球面狀態。

(1) 載入 Qiskit 及 Numpy 模組並且設定一個量子位元的電路。

76
Chapter 05 量子電路

(2) 在量子位元上放置一個 X 閘。

q H

下 列 程 式 主 要 目 的 是 要 運 算 及 觀 察 量 子 電 路 的 狀 態 向 量(statevector)。
X 閘 的 初 始 狀 態 為 |0〉 , 量 子 狀 態 定 義, 經 執 行 後 結 果 α = ,
β= 。

(4) 使用布洛赫球面觀察狀態向量,X 閘
的狀態是指向 ________ 軸。

挑 戰 看 看, 將 上 述 的程 式 初 始 態 改
成 |1〉, 量 子 電 路 的 初 始 態 為 |0〉, 可 以
用一個 X 閘轉態,程式設定及電路如下
圖,則輸出狀態為何?布洛赫球的狀態
為何?請進行實作練習並觀察。 ▲圖 5-21 布洛赫球面觀察狀態

q X H

77
資訊篇

實作練習 5

在 IBM Quantum Composer,放置一個 H 閘之後再放置一個 Z 閘,觀察其狀


態向量及機率。

狀態向量(statevector):根據 H 閘的狀態,所以 α = 、β = ,
相位角(phase angle)= 。

機率(probabilities):參考狀態向量 |ψ〉 = α|0 〉 + β|1 〉,所以每個狀態的機


率為 | α | 2 = | β | 2 = 。

使用 H 閘再經 Z 閘調控,所得狀態 1 相移 180 度,與單一 H 閘的比較,兩


者出現機率相同,代表的意義是改變相位角並沒有辦法改變出現機率。

0.8 100

80
α2 β 2
0.6
Probabilitiy(%)

q 0 H Z
60
Amplitude

0.4
+ 40
c1 0.2
20

0 0
0 1 0 1
Computational basis states Computational basis states

( a ) 量子電路 ( b ) 狀態向量 ( c ) 機率
▲圖 5-22 IBM Quantum Composer 量子電路、態向量及機率

實作練習 6
π
用 Qiskit 編輯量子電路在 H 閘後面多加了一行 P 閘,執行 90 度( )的相
2
位旋轉,觀察其狀態向量及布洛赫球面的變化。

q H Z

78 ▲圖 5-23 H 閘後加一行 P 閘,執行 90 度狀態


Chapter 05 量子電路

(1) 編寫可以查看上述量子電路狀態向量的程式 [α , β] = [ , ]。

(2) 編寫觀察上述量子電路的布洛赫球的程式,可看到狀態指向 軸。

(3) 若設計電路如右 q H P Z ,則最後的相位角度(phase angle)


π/6

=________。

實作練習 7

在 IBM Quantum Composer,放置一個 H 閘之後再放置一個 P 閘,相位設定


為 pi/2,觀察其狀態向量及出現機率。

0.8 100

80
α2 β 2
0.6

Probabilitiy(%)
q 0 H P 60
Amplitude

(pi/2) 0.4
+ 40
c1 0.2
20

0 0
0 1 0 1
Computational basis states Computational basis states

( a ) 量子電路 ( b ) 狀態向量 ( c ) 機率
▲圖 5-24 IBM Quantum Composer 量子電路、狀態向量及出現機率

狀態向量(statevector):
根據 H 閘的狀態 |ψ〉 = α|0 〉 + β|1 〉,
所以 α = 、β = ,相位角(phase angle)= 。

機率(probabilities):
參考狀態向量 |ψ〉 = α|0 〉 + β|1 〉,
所以每個狀態的機率為 | α | 2 = | β | 2 = 。

在使用 P 閘改變相位角後與單一 H 閘的比較,


出現機率相同,代表的意義是什麼?

使 用 P 閘 可 操 控 量 子 狀 態 繞 著 Z 軸 旋 轉, 也
因 為 繞 著 Z 軸 旋 轉, 所 以 會 有 Y 軸, 也 就 是
虛 數 軸 的 成 分 會 有 所 變 化。 因 此 在 Composer ▲圖 5-25 狀態長條圖
79
資訊篇

除 了 用 Output state( 輸 出 狀 態 ) 表 示 或 有 實 數 與 虛 數 的 成 分 如 [0.707+0j,


π
0+0.707j],也可以用顏色表示相移,以藍色代表 0 度,粉紅代表 90 度( )。
2
參 考 Phase( 相 位 ) 的 甜 甜 圈, 便 可 瞭 解 顏 色 分 布 所 代 表 的 角 度。 另 外 當
滑鼠游標移到表示狀態的長條,便會直接顯示 Amplitude(強度)及 Phase
angle(相位角)等資訊。

實作練習 8

在 IBM Quantum Lab 編輯量子電路程式,H 閘後面多加了一行 P 閘,執行


π
90 度( )的相位旋轉,觀察量子電路的量子狀態。
2

(1) 在一個量子位元上放置 H 閘及 P 閘,P 閘相位設定為 pi/2。

q H P
π/2

▲圖 5-26 P 閘相位設定為 pi/2 狀態

(2) 將量子狀態模擬並將狀態存放至 statevector 的變數,可以從數據結果看


到 0 的狀態在實軸(X 軸)沒有虛軸,是 0.707 + 0j;1 的狀態是在虛軸(Y
軸)沒有實軸,所以是 0 + 0.707j。

▲圖 5-27 量子狀態模擬圖

80
Chapter 05 量子電路

(3) 用 plot_bloch_multivector 顯示 statevector 的狀態,布洛赫球面上可看到


狀態指向 +Y。

▲圖 5-28 布洛赫球面上狀態圖

(4) 量子電路是藉由統計多次運算結果各個狀態出現的比例,來表現各個量
子位狀態及強度。使用 plot_histogram,用 get_counts() 統計狀態出現比
例,資料採用 JSON 的格式表達。

▲圖 5-29 JSON 的格式表達各量子狀態的強度

(5) 使 用 P 閘 可 改 變 相 位, 但 如 果 從
上圖 5-28 的布洛赫球面看,其實
單一量子位元電路出現在 0 或 1
的 機 率, 跟 H 閘 一 樣 是 均 等, 也
就是機率都是接近 0.5,如圖 5-30
所示。

▲圖 5-30 機率強度狀態圖

81
資訊篇

Q JSON 是什麼?
JSON 是一種程式語言可採用的資料交換格式,可用於表達結構化
資料,主要是由物件、陣列及資料對三種元素構成:

(1) 物件:只要用大括號 { } 包起來的都是物件,物件由 0 到數個『資


料對』組成,資料對與資料對之間用逗點 ( , ) 隔開,如:{"name":
"David Liu","birthday": "1988/8/8"}

(2) 陣列:只要用中括號 [ ] 包起來的都是陣列,陣列的內容可以是各種資


料,資料與資料用逗點隔開。如:[1,3,5,"one","three","five"]

(3) 資料對:其格式為 key:value。Key 是用字串來定義的資料名稱,


會用雙引號框起來表示,value 則泛指各種類型的資料。

JSON 中可以用的資料包括:數值、字串、布林值、陣列、物件。範例如下:
數值:數值資料不需要雙引號,如:"mony": 30000, "rate":34.5。
字串:用雙引號包起的就是字串資料,如:"name": "JohnsonWang",
"city":"Taipei"。
布林值:只有 true 跟 false,如:"agree":true,"sad":false,。
陣列:"tools":["hammer","ruler","cutter"]。
物件:"users":{"name":"David Liu","birthday":"1988/8/8"}。

實作練習 9

請參考上述的電路進行實作,呈現輸入、輸出狀態相反的疊加態。請問下圖
空白框格中,應該放入哪種量子閘,才能產生如圖 5-31 的狀態?

0.8

0.6
Amplitude

0.4

0.2

0
00 01 10 11
Computational basis states

▲圖 5-31 量子電路狀態

82
Chapter 05 量子電路

5-4 疊加態的運算

一、單一量子位元
單一量子位元的疊加態,可以使用方程式來表達,另外也可採用矩陣進
行更簡潔的表達:

1  0 
| 0〉 =   、 |1〉 =  
0  1 

因此 |ψ〉 = α|0 〉 + β|1 〉

1  0  α 
可寫成 |ψ 〉 = α   + β   =  
0 1   β 

二、多量子位元
使用兩個以上的量子位元如下圖所示。初始態皆為 |0 ,採用 H 閘調控
量子狀態,再分別測量後得到最後的結果。

|ψ 0〉 = α|0 〉 H
|ψ 1〉 = α|0 〉 H
▲圖 5-32 兩個量子位元的量子電路

在上述量子電路中,由於兩個量子位元分別經過 H 閘調控,因此在測量
前會同時存在 00、01、10 及 11 四種狀態,也就是高位元會包含低位元的狀
態,在此以下圖 5-33 來協助讀者理解。

|ψ 1〉 0 1

|ψ 0〉 0 1 0 1

|ψ 1 ψ 0〉 00 01 10 11
▲圖 5-33 高位元 |ψ1〉 包含低位元 |ψ0〉 狀態的樹狀圖

83
資訊篇

如圖 5-33,高位元的狀態已包含低位元的狀態,是一種「你中有我,我
中有你」的狀態。因此經過測量表測量後,兩個位元會得到 00、01、10 及
11 其中一種狀態,又因為上圖使用的是 H 閘,因此這四種狀態的出現機率
1
應該相當相近。若由方程式來看 |ψ 0 〉 = |ψ 1 〉 = (| 0〉 + | 1〉 ) ,當兩者進行疊加,
2

則可得到下列的結果。

1 1
|ψ 1ψ 0〉 = (|0〉 + |1〉) (|0〉 + |1〉)
2 2

可以得知四個狀態的向量都是 1/2,每個狀態的出現機率 0.52 = 0.25,


四個狀態的機率總和為 0.5 2 + 0.5 2 + 0.5 2 + 0.5 2 = 1,等於 1。

量子疊加時各結果出現機率,可以用張量積來運算,張量積的運算符號
為 ⊗,其運算結果可以貼切地表達兩個量子位元的疊加態,舉例來說,有兩
個陣列 A、B,分別為:

  c    ac 
a *     
a  c   d    ad 
A =   , B =   ,則 A ⊗ B =    bc  [
= = ac ad bc bd ]
b
   d   c 
b *     
  d   bd 

以上述 H 閘的疊加為例子:

 1   1 
 2   2
|ψ 0 〉 =   , |ψ 1 〉 =  
 1   1 
 2  2 

  1 
 
 1  2 
* 
 2  1   1 / 2  0.5
    
 2   1 / 2  0.5
|ψ 1ψ 0 〉 = |ψ 1 〉 ⊗ |ψ 0 〉 =  = = = [ 0.5 0.5 0.5 0.5]
  1   1 / 2  0.5
     
 1  2   1 / 2  0.5
* 
 2  1 
 

 2  
84
Chapter 05 量子電路

|ψ 1ψ 0 〉 = 0.5 | 00〉 + 0.5 | 01〉 + 0.5 | 10〉 + 0.5 | 11〉

以上的計算結果以二進位列式,也可以採用 10 進位表示如下:

|ψ 1ψ 0 〉 = 0.5 | 0〉 + 0.5 | 1〉 + 0.5 | 2〉 + 0.5 | 3〉

實作練習 10

0.6   0.8
若 |ψ 0 〉 =   , |ψ 1 〉 =   則 |ψ1〉 與 |ψ0〉 疊加後狀態為何?
 0.8 0.6 

  0.8   0.48
0.6     
 0.6   0.36 
答: |ψ 〉 = |ψ 1 ψ 0 〉 = |ψ 1 〉 ⊗ |ψ 0 〉 =  =
 0.8  0.64 
 0.8     
 0.6    0.48

也就是 |ψ 〉 = |ψ 1 ψ 0 〉 = 0.48 | 00〉 + 0.36 | 01〉 + 0.64 | 10〉 + 0.48 | 11〉

每個資料狀態如 |00〉 的狀態向量為 0.48,0.48 的平方等於 0.2304 則為 |00〉


的出現機率、0.36 的平方等於 0.1296 則為 |01〉 的出現機率…以此類推,每
個資料狀態機率合必定為 1,驗算如下:

0.48 2 + 0.36 2 + 0.64 2 + 0.48 2 = 0.2304 + 0.1296 + 0.4096 + 0.2304 = 1

驗證結果正確。

85
資訊篇

5-5 疊加態量子電路

表現疊加態最具有代表性的量子閘為 H 閘,H 閘在初始為 |0〉 時,其量

1 1 1
子狀態為 (| 0〉 + | 1〉 ) 或可表示為   ,在布洛赫球面上,其位置就是指向
2 2 1

1 1 1
+X 軸; 在 初 始 為 |1〉 時, 其 量 子 狀 態 為 (| 0〉 − | 1〉 ) 或 可 表 示 為  。
2 2  −1

上 述 初 始 態 無 論 為 何, 最 後 出 現 在 |0〉 或 |1〉 的 機 率 都 各 為 一 半, 也 就 是
[0.5 0.5]。

▼表 5-1 H 閘出現在 |0〉 或 |1〉 的量子狀態及機率

H 閘初始為 |0〉 的量子狀態 H 閘出現在 |0〉 或 |1〉 的機率


z
|0>

|1>

H 閘初始為 |1〉 的量子狀態 H 閘出現在 |0〉 或 |1〉 的機率


z
|0>

|1>

若使用兩個初始為 |0〉 的 H 閘,令左邊為高位元,右邊為低位元,則其


量子狀態將會有 |00〉、|01〉、|10〉 及 |11〉 四種,四個狀態出現機率均等,因此,
每種狀態出現機率各為 25%。

86
Chapter 05 量子電路

0.25 高位元 低位元


  |0〉 H
0.5 0.5 0.25

量子電路如右,透過卷積的運算     =
0.5 0.5 0.25 |0〉 H
 
0.25

兩個量子位元從布洛赫球面上看,狀態都指向 +X,從機率狀態看來,
每個狀態都是均等,所以各種狀態的機率為 0.25,如表 5-2 所示。

▼表 5-2 H 閘出現在 |0〉 或 |1〉 的量子狀態及機率

H 閘初始為 |0〉 的量子狀態 H 閘出現在 |00〉、|01〉、|10〉 |11〉 的機率


z
|0> 0.25
 
0.5 0.5 0.25
0.5 ⊗ 0.5 = 0.25
90˚    
y  
0.25
x

|1>
|ψ1>
z
|0>

90˚
y

|1>
|ψ0>

上圖的紅色箭頭指向 +x 軸即為典型的 H 閘,是典型的疊加態量子閘,


而疊加態代表所有的狀態是同時存在的。若紅色的箭頭指向別處,疊加態是
否還會存在?答案為「是」,只是各種狀態出現的機率會不一樣而已,除非
紅色箭頭指向 |0〉 或 |1〉 不存在疊加態,否則布洛赫球的其他任何位置,都會
產生疊加態。由結果來看,紅射箭頭比較偏 |0〉,因此 |0〉 的機率有 85.3%,
高於 |1〉 的 14.6%。

|0〉 Ry ( 45 °)
87
資訊篇

▼表 5-3 Ry(45°) 出現在 |0〉、|1〉 的量子狀態及機率

調控在與 |0〉 夾角 45 度的量子狀態 Ry ( 45 °) 出現在 |0〉、|1〉 的機率


z
|0>

45˚

|1>

上述的量子狀態該如何調控呢?我們在前述章節曾提到一種名為 Ry 的
量子閘,即可調控量子狀態旋轉 y 軸的角度,若將一個 H 閘跟 Ry(45°)進
行疊加,會形成怎樣的結果?

|0〉 H
|0〉 Ry ( 45 °)

H 閘出現 |0〉 及 |1〉 的機率分別為 [0.5 0.5],而 Ry(45°)的機率為 [0.853

  0.853 
0.5  
 0.146  
0.146],透過疊加  搭配出 [0.426 0.073 0.426 0.073] 的機率。最
 0.853 
0.5  
 0.146  

後形成的結果如下表 5-4:

▼表 5-4 H 與 Ry(45°) 閘在 |00〉、|01〉、|10〉 及 |11〉 的量子狀態及機率

H 與 Ry ( 45º ) 閘 在 |00〉、|01〉、|10〉
H 閘初始為 |0〉 的量子狀態
及 |11〉 的機率
z z
|0> |0>

45˚
90˚
y y

x x

|1> |1>
|ψ1> |ψ0>
88
Chapter 05 量子電路

實作練習 11

使用 IBM Quantum Composer 編輯,在不同配置的量子電路下,以 H 閘產


生疊加態進行輸入,並畫出其狀態及標示出機率強度的長條圖,請嘗試記錄
下來,說明各狀態的機率強度,並分析其產生的原因。

▼表 5-5 量子電路及機率強度關係

序次 量子電路 機率強度
100

q0 | 0> H 80

60

1 q1 | 0> H 40

20
q2 | 0> H
0
000 001 010 011 100 101 110 111

100

q0 | 0> 80

60

2 q1 | 0> H 40

20
q2 | 0> H 0
000 001 010 011 100 101 110 111

100

q0 | 0> 80

60

3 q1 | 0> 40

20
q2 | 0> H
0
000 001 010 011 100 101 110 111

100

| 0> H 80

60

4 q1 | 0> 40

20
q2 | 0> H
0
000 001 010 011 100 101 110 111

89
資訊篇

實作練習 12

Ry(45°)的出現在機率 |0〉 及 |1〉 分別為 [0.853 0.146],那兩個 Ry(45°)


疊 加, 出 現 在 |00〉、|01〉、|10〉 及 |11〉 的 機 率 為 何? 請 使 用 Quantum lab 設
計量子電路程式。

▼表 5-6 Quantum lab 程式、電路及機率分布圖

0.8
0.729

0.6
circuit =

Probabilities
q0 RY
π/4 0.4
QuantumCircuit(2)
circuit.ry(pi/4,0) q1 RY
π/4 0.2
circuit.ry(pi/4,1) 0.125 0.125
0.021
0
00 01 10 11
Computational basis states

程式 電路 機率分布圖

實作練習 13

使用 H 閘及 P 閘來調控四個量子位元的相位角變化,四個量子位元有 16 種
狀態,每個狀態如果偏移 360/16 = 22.5 度,可以實作出連續十六個狀態的
相角變化,剛剛好可以繞一圈。實作之前可以先試著推算一下,如果每個狀
態會相移 22.5 度,則

0000 → 0001 → 0010 → 0011 → 0100 →…→ 1101 → 1111

0 → 22.5 → 45 → 67.5 → 90 →…→ 292.5 → 337.5

當第 1 量子位元為 1 時,相移 22.5 度;當第 2 量子位元為 1 時,相移 45 度;


第 3 量子位元為 1,相移 90 度,第 4 量子位元為 1,則相移 180 度。如此一
來,即可推導出規律,試著實作量子電路如下。

90
Chapter 05 量子電路

▼表 5-7 量子電路及狀態向量關係

0.25

0.2

Amplitude
0.15

0.1
q0 | 0> H P
(pi/8) 0.05

q1 | 0> H P 0
(pi/4)

00 0
00 1
00 0
01 1
01 0
01 1
01 0
10 1
10 0
10 1
10 0
11 1
11 0
11 1
11 0
11
1

1
0
0
1

0
0
1

0
0
1

0
0
1
00
Computational basis states
q2 | 0> H P π/2
(pi/2) Output state
π Phase 0 [0.25+0j, 0.231+0.096j,

q3 | 0> H P 0.177+0.177j...
(pi) 3π/2

狀態循序相移的量子電路 狀態向量

91
資訊篇

5-6 糾纏態(entanglement)量子電路

在量子物理中,「當兩個粒子發生糾纏,其中一個粒子的狀態變化,會
同時發生在另一個粒子上」,此即為「糾纏態」。在量子電腦中,如果要做
出一個量子位元的糾纏態,則須將量子調控為以下狀態:

1
|ψ 〉 = (| 00〉 + | 11〉 )
2

也就是當第一個量子位元為 |0〉,則第二個量子位元也為 |0〉;反之第一


個量子位元為 |0〉,則第二個量子位元也為 |1〉。兩個量子位元一同變化,亦
步亦趨,這就是糾纏態的實現方式。

▼表 5-8 糾纏態的實現方式

輸入 輸出
|B〉 |A〉 |A ⊕ B〉 |A〉
|0〉 |0〉 |0〉 |0〉
| A〉 | A〉
|0〉 |1〉 |1〉 |1〉 |B〉 |A ⊕ B〉
|1〉 |0〉 |1〉 |0〉
|1〉 |1〉 |0〉 |1〉

將 CNOT 閘的 |B〉 設定為 |0〉 時,即可製作出一個單量子位元的糾纏態


量子電路,也就是當 q0 當作輸入,則輸出端會出現與輸入端完全相反的狀
態。使用 IBM Quantum Composer 設計如下:

▼表 5-9 q0 輸入 |0〉 及 |1〉 的狀態


100 100

q0 z q0 z
| 0> 80 | 0> 80
Probabilitiy(%)

Probabilitiy(%)

q1 z 60
q1 z 60
| 0> | 0>
40 40

20 20

c2 c2
0 1 0
00 01 10 11 0 1 0
00 01 10 11
Computational basis states Computational basis states

q0 輸入 |0〉 的狀態 q0 輸入 |1〉 的狀態


92
Chapter 05 量子電路

上述的狀態呈現,輸入與輸出亦步亦趨的狀態即為糾纏態,也就是說,
一個 CNOT 閘即可完成糾纏態的運算。

將 q0 輸入端改成使用 H 閘,產生同時具有 0 與 1 的狀態,則結果將列


出所有糾纏的狀態,量子電路如下,長條圖只有 00 與 11 兩種狀態,彼此互
相糾纏。

0.60
0.505 0.505
q0 z
H 0.45

Probabilities
q1 z
| 0> 0.30

0.15

c2 0.00
0 1 00 11

▲圖 5-34 量子電路狀態及長條圖

使用 Composer 製作一個二量子位元的糾纏態電路。

q0 z
H
0.32
q1 z
H 0.268 0.265
Probabilities

0.228 0.240
0.24
q2 z
| 0>
0.16
q3 z
| 0>
0.08

0
c4
0 1 2 3
00

01

10

11
11
00

01

10

▲圖 5-35 量子電路狀態及長條圖

實作練習 14

小亮、小安跟小麗三個同學受邀參加一場聚會,小亮說他有一半的可能性可
以到,小安則說要是小亮有出席他就會出席,小麗則說如果小亮跟小安都出
席,那他就會出席。請問:
(1) 有哪幾種狀況可能會發生?
(2) 三人都會出席的機率是多少?

93
資訊篇

使用 H 閘、CNOT 或 CCNOT 來設計電路。假設 q0 是小亮、q1 是小安、q2


是小麗,小亮有一半的機會會出席,在此用 H 閘表示。小安如果小亮出席就
會出席,所以用一個 CNOT 閘表示在小亮出席的時候,小安也會出席。小麗
是否出席取決於小亮與小安是否都出席,所以使用 CCNOT 閘,當兩個同時
為 1 時,小麗就可以出席。

100

80

60

q0 | 0> H 40

q1 | 0> 20

q2 | 0> 0
000 001 010 011 100 101 110 111

▲圖 5-36 量子電路狀態及長條圖

答:(1) 總 計 有 兩 種 狀 況, 一 種 是 通 通 都 出 席(111), 一 種 是 通 通 不 出 席
(000)。

(2) 三個都出席(111),三個都不出席(000)機率各有 50% 的機率。

94
Chapter 05 量子電路

課後測驗
如何將量子狀態(前)透過某個量子閘操作變成量子狀態(後)?請將可用
的量子閘填入量子閘的欄位,請注意可能不只一個答案。

z z z z z
|0> |0> |0> |0> |0>

量子
狀態 y y y y y

x x x x x
(前)
|1> |1> |1> |1> |1>

量子閘 X 閘、Y 閘
z z z z z
|0> |0> |0> |0> |0>

量子
狀態 y y y y y

x x x x x
(後)
|1> |1> |1> |1> |1>

( ) 1. 下列哪個組合經調控後量子狀態與其他的組合不同?

(A) (B) (C) (D)

( ) 2. 若初始狀態為 |0〉 可用那個量子閘直接調控成 [0.707,-0.707i] 的狀態?


RX RX RX RX
(A) (B) (C) (D)
(pi/2) (pi) (-pi/2) (-pi)

( ) 3. 使用兩量子位元分別為 q0 及 q1,q0 放置一個 X 閘,q1 放置一個 H 閘,量


子電路圖如右,接著將 CX 以 q0 為控制端,q1 為被控端,其輸出狀態向
量(statevector)為何?
1 1
(A) (|00〉 + |10〉) (B) (|00〉 + |01〉)
2 2
1 1
(C) (|00〉 + |10〉) (D) (|01〉 + |11 〉)
2 2

95
資訊篇

( ) 4. 如果要輸出狀態向量(statevector)
如 右 圖,則 可 以 使 用 下 列 一 個 量
子電路完成?

(A) (B)

(C) (D)

( ) 5. 使 用 三 量 子 位 元(qubit)q0、q1 各 一 個 H 閘,再 用 一 個
CCNOT 量子閘將受控端設定為 q2,量子電路圖如下,則
輸出的狀態向量(statevector)為何?
1
(A) (|000〉 + |001〉 + |011〉 + |111〉)
2
1
(B) (|000〉 + |001〉 + |010〉 + |111〉)
2
1
(C) (|000〉 + |010〉 + |011〉 + |111〉)
2
1
(D) (|001〉 + |010〉 + |011〉 + |111〉)
2

96
06
chapter

量子的算術與
邏輯運算
先備知識
對量子位元、量子閘和量子電路設計有基礎瞭解,為本章學習量子算數及邏輯
運算奠基。若您有技術高中電機電子數位邏輯課程基礎,可以用布林代數來理解本
案演算,普通高中同學也可以嘗試從資訊課程所學與本章內容對照,逐步理解一般
電腦及量子電腦運算邏輯。

學習目標
將針對量子算術與邏輯運算進行練習,用數位邏輯的方法去產生各種模擬古典
邏輯的量子電路,訓練自己設計量子電路的能力,也有助進一步學習利用量子閘設
計加法電路、比較器及量子記憶體等應用。
資訊篇

6-1 古典邏輯閘介紹

一 般 電 腦 中 有 許 多 古 典 邏 輯 運 算 法 可 使 用, 下 圖 為 古 典 邏 輯 閘 的 真 值
表,量子電腦並沒有相對應的邏輯閘可以使用,但卻可以透過現有的量子邏
輯閘輕易的組合,以下將探討挑戰:如何用 NOT、CNOT 及 CCNOT 模擬下
列的古典邏輯閘?

▼表 6-1 古典邏輯閘的真值表

A B F A B F A B F A B F A B F A B F
0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0
1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0
1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1
A A A A A A
B F B F F F F F
B B B B

AND 閘 NAND 閘 OR 閘 NOR 閘 XOR 閘 XNOR 閘


F = AB F = AB F = A+B F = A+B F = A⊕B F = A⊕B
= AB ⊕ 0 = AB ⊕ 1 =AB⊕0 =AB⊕1 = A ⊕ B ⊕0 = A ⊕ B ⊕1

在古典邏輯中,通常用布林代數來表達古典邏輯閘的運算,反向通常會在
符號上方拉一條橫線稱之為 Bar,比如說 F = AB,可唸成 F 等於 AB Bar,
代表為 AB 運算的結果反相。AB 若與 1 作互斥運算,則也等同反相,這樣
的運算跟量子閘的習慣比較貼近,所以統一用 F = AB⊕0 表示 F = AB;F =
AB⊕1 表示 F = AB,其他邏輯閘以此類推。

98
Chapter 06 量子的算術與邏輯運算

6-2 使用量子閘模擬古典邏輯閘
AB 若與 1 作互斥運算,則也等同反相。這樣的古典邏輯運算跟量子閘
習慣較為貼近,完全使用 X、CX 或 CCX 組合量子電路,可以組合出各種邏
輯閘,其使用的邏輯以 XOR 為主,推導條列如下:

1. F = AB = AB ♁ 0
2. F = AB = AB ♁ 1
3. F = A+B = A + B ♁ 0 = A ♁ B ♁ AB ♁ 0
4. F = A+B = A + B ♁ 1 = A ♁ B ♁ AB ♁ 1
5. F = A ♁ B = A ♁ B ♁ 0
6. F = A ♁ B = A ♁ B ♁ 1

實作練習 1

AND 閘:使用 CCNOT 閘模擬成 NAND 閘,C 的輸入必須是 0。


CCNOT 閘的布林式 F = AB ♁ C,若 C = 0 則 F = AB,量子電路組裝如圖 6-1
所示。使用 H 閘產生疊加態,則可以看到狀態向量同時出現四個結果:
000、001、010 及 111,即 AND 運算的所有答案。
0.5

0.4

0.3
A q0 H
0.2

B q1 H 0.1

C q2 |0 > F=AB 0 0
000 001 010 011 100 101 110 111

▲圖 6-1 模擬 AND 閘的量子電路及輸出的狀態

由呈現的輸出結果來看高位元 C = 0,狀態的解析如下:
000 則為 0 ← 00 001 則為 0 ← 01
010 則為 0 ← 10 111 則為 1 ← 11

99
資訊篇

實作練習 2

NAND 閘: 使 用 CCNOT 閘 模 擬 成 NAND 閘,q2 的 輸 入 必 須 是 1, 依 據


CCNOT 閘的布林式 F = AB ♁ C,若 C = 1 則 F = AB,使用 H 閘產生疊加態,
就可看到狀態向量同時出現四個結果:011、100、101 及 110,即 NAND 運
算的所有答案。
0.5

0.4

0.3
A q0 H
0.2

B q1 H 0.1

C q2 F=AB 1 0
000 001 010 011 100 101 110 111

▲圖 6-2 模擬 NAND 閘的量子電路及輸出的狀態

由呈現的輸出結果來看高位元 C=1,狀態的解析如下:
100 則為 1 ← 00 101 則為 1 ← 01
110 則為 1 ← 10 011 則為 0 ← 11

實作練習 3

OR 閘:根據狄摩根定理(De Morgan's laws),如果在 A、B 各加上一個X閘,


且 C=1,就可以製作一個 OR 量子閘。但由於 H 閘的狀態被 X 閘反相,所
以 AB 需要多一個 X 閘反向過來,才能還原原來的輸入狀態。使用 H 閘產生
疊加態,可以看到狀態向量輸出腳 FBA 會同時出現四個結果:000、101、
110 及 111,OR 在 B、A 腳有一個為 1 的時候 F = 1;B、A 腳同為 0 時 F = 0,
以上運算,即 OR 運算的所有答案。
0.5

0.4

0.3
A H
0.2

B H 0.1

C F=AB 1=A+B 0
000 001 010 011 100 101 110 111

▲圖 6-3 模擬 OR 閘的量子電路及輸出的狀態
100
Chapter 06 量子的算術與邏輯運算

由呈現的輸出結果來看高位元 C=1,狀態的解析如下:
100 則為 0 ← 00 101 則為 1 ← 01
110 則為 1 ← 10 011 則為 1 ← 11
OR 可以採用 F = A + B = A ♁ B ♁ AB 的解法,電路完成後進行測試,結果
如下:
0.5

0.4

0.3
A H
0.2
B H
0.1

C | 0> F=A B AB 0 0
000 001 010 011 100 101 110 111

▲圖 6-4 採用 A ♁ B ♁ AB 模擬 OR 閘的量子電路及輸出的狀態

上圖的狀態為 000、101、110 及 111,可以看出其狀態與圖 6-2-4 的結果是


一致的,證明 F = A + B = A ♁ B ♁ AB 是完全一致,這樣的解法完全運用到
CX 閘及 CCX 閘的特性,後續模擬古典組合邏輯的運算可以多利用上述的等
式來建構 OR 邏輯相關的量子電路。

實作練習 4

NOR 閘:F = A + B = A B ♁ 0 如果在 A、B 各加上一個 X 閘,且 C=1,就可


以 製 作 一 個 OR 運 算 的 量 子 閘。 由 於 H 閘 的 狀 態 被 X 閘 反 相, 所 以 AB 個
需要多一個 X 閘反向過來,才能呈現正確的狀態。使用 H 閘產生疊加態,
則可以看到狀態向量輸出腳 FBA 會同時出現四個結果:000、101、110 及
111,NOR 在 B、A 腳有一個為 1 的時候 F = 0;B、A 腳同為 0 時 F = 1,以
上運算確實為 NOR 運算的所有答案。
0.5

0.4

0.3
A H
0.2

B H 0.1

C F=A+B=AB 0 0
000 001 010 011 100 101 110 111

▲圖 6-5 模擬 N OR 閘的量子電路及輸出的狀態 101


資訊篇

由呈現的輸出結果來看高位元 C=0,狀態的解析如下:
100 則為 1 ← 00 101 則為 0 ← 01
110 則為 0 ← 10 011 則為 0 ← 11

實作練習 5

XOR 閘:根據 F = A⊕B⊕0= A⊕B,如果在 A、B 控制端各加上一個 CNOT


閘到 C,且 C = 0,就可以製作一個 XOR 運算的量子閘。使用 H 閘產生疊
加態,則狀態向量同時出現四個結果:000、101、110 及 011,XOR 在 B、
A 腳相異的時候 F=1;B、A 腳相同的時候 F=0,以上運算確實為 XOR 的所
有答案。

0.5

0.4

0.3
A H
0.2

B H 0.1

C F=A B 0 0
000 001 010 011 100 101 110 111

▲圖 6-6 模擬 XOR 閘的量子電路及輸出的狀態

由呈現的輸出結果來看高位元 C=0,狀態的解析如下:
000 則為 0 ← 00 101 則為 1 ← 01
110 則為 1 ← 10 011 則為 0 ← 11

實作練習 6

XNOR 閘:如果根據 F = A⊕B⊕1,如果在 A、B 各控制端一個 CNOT 閘被


控端為 C,且 C = 1,就可以製作一個 XNOR 運算的量子閘。使用 H 閘產生
疊加 態, 則 狀 態 向 量輸 出 腳 FBA 會 同 時出 現 四 個 結果:000、101、110 及
011,XNOR 在 B、A 腳相同的時候 F=1;B、A 腳相異的時候 F=0,以上運
算確實為 XNOR 所有答案。

102
Chapter 06 量子的算術與邏輯運算

0.5

0.4

0.3
A H
0.2

B H 0.1

C F=A B 0
000 001 010 011 100 101 110 111

▲圖 6-7 模擬 XNOR 閘的量子電路及輸出的狀態

由呈現的輸出結果來看高位元 C=1,狀態的解析如下:
100 則為 1 ← 00 101 則為 0 ← 01
110 則為 0 ← 10 111 則為 1 ← 11

103
資訊篇

6-3 半加器

半加器由 XOR 跟 AND 組成,A 與 B 相加的總和為 S、進位為 C。S 經


過 XOR 邏輯閘,C 通過 AND 邏輯閘,透過真值表較容易看出規律,比如說
A 與 B 相加後的結果,若 A=0、B=1 時,總和 S=1,沒有進位 C=0;A=1、
B=1 時,總和 S=0,進位 C=1。

A
A B S C
S 0 0 0 0
B
0 1 1 0
C 1 0 1 0
1 1 0 1
( a ) 半加器數位邏輯電路 ( b ) 真值表
▲圖 6-8 半加器的電路圖及真值表

實作練習 7

半加器:使用四個量子位元來處理,如下圖 q0、q1 分別為 A、B 也就是加


數與被加數,q2 當作總和可以用 S=A ♁ B 布林代數表示,q3 當作進位可以
用 C=AB 布林代數表示。
XOR AND
0.5

A q0 | 0> H 0.4

0.3
B q1 | 0> H
0.2

q2 | 0> S 0.1

0
q3 | 0> C
00 0
00 1
00 0
01 1
01 0
01 1
01 0
10 1
10 0
10 1
10 0
11 1
00
11 1
11 0
11
1

1
0
0
1

0
0
1

0
0
1

0
1
00

11

▲圖 6-9 模擬半加器的量子電路及輸出的狀態

由上述長條圖的結果比對,分析輸出的狀態有 0000、0101、0110 及 1011 四


種,進一步分析它的狀態與全加器的關係,舉 0110 為例,由左邊的高位元
到右邊的低位元分別為 CSBA,也就是 0 → C、1 → S、1 → A、0 → B,符
合 A+B 之 後 總 和 S=1 沒 有 進 位 C=0; 再 舉 狀 態 1011 為 例, 由 左 邊 的 高 位
元 到 右 邊 的 低 位 元,1 → C、0 → S、1 → A、1 → B, 符 合 A+B 之 後 總 和
104 S=0,有進位 C=1。
Chapter 06 量子的算術與邏輯運算

6-4 全加器

所謂全加器是包含進位輸入的加法電路,其真值表如下所列,A、B 及
Cin 的加總和為 S、進位為 Co。

A A B C in S Co
B 0 0 0 0 0
S 0 0 1 1 0
Ci
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
Co 1 0 1 1 1
1 1 0 0 1
1 1 1 1 1
( a ) 全加器古典數位電路 ( b ) 真值表
▲圖 6-10 全加器的電路及真值表

實作練習 8

設 計 一 個 位 元 相 加, 具 備 加 數 A、 被 加 數 B、 進 位 輸 入 Cin 及 輸 出 的 Cout
全加器量子電路。

XOR AB BC AC
A q0 | 0> H

B q1 | 0> H

Cin q 2 | 0> H

q3 | 0> S=A B C 0

q4 | 0> Cout=AB BC AC

▲圖 6-11 使用量子閘建構的全加器
0.4

0.3

0.2

0.1

0
00 00
00 01
00 10
00 11
00 0
00 01
00 10
01 11
01 00
01 01
01 10
01 11
01 00
01 01
01 10
10 11
10 00
10 01
10 10
10 11
10 00
10 01
10 10
11 11
11 00
11 01
11 10
11 11
11 00
11 01
11 10
1
11
10

1
0

0
0

1
0
0
0

0
0
0

1
1

0
0
0

1
1

0
0
0

1
1
00

▲圖 6-12 量子全加器的八個輸出狀態
105
資訊篇

6-5 二選一多工器

下圖是一個二選一的多工器,使用 C 腳選擇 A 或 B 輸出到 F。C=0 的時


候選用 A,C=1 則選用 B,如果使用古典邏輯電路,可以看到兩個 AND 閘,
C 腳控制 B 腳,再經過一個 NOT 閘,也就是反閘控制 A 腳,所以 C=0 則選
A 輸出,C=1 則選 B 輸出,再經過 OR 閘選擇 A 或是 B 的結果輸出到 F,布
林代數式為 F = AC + BC。
A B C F
0 0 0 0
A
0 0 1 0
F 0 1 0 0
B
0 1 1 1
1 0 0 1
C 1 0 1 0
1 1 0 1
1 1 1 1
( a ) 多工器古典邏輯電路圖 ( b ) 多工器真值表
▲圖 6-13 二選一多工器的電路圖及真值表

實作練習 9

若採用量子閘來模擬二選一多工器,真值表參考圖 6-13(b),B、C 接上一個


CCNOT 的控制端,成為一個 AND 閘,接者 C 透過一個 NOT 閘,輸入到接 A、
C 腳的 CCNOT 閘,則可以成為一個二選一的多工器,但結果與上面的式子
差了一個 + 與♁。在這個例子,由於不會出現兩個 AND 閘輸出同為 1 的狀
態,所以在這個電路上 XOR 閘是可以代替 OR 閘的。

A q0 | 0> H

B q1 | 0> H

C q2 | 0> H

q3 | 0> F=AC BC

▲圖 6-14 使用量子閘建構的二選一多工器

106
Chapter 06 量子的算術與邏輯運算

0.4

0.3

0.2

0.1

00 0
00 1
00 0
01 1
01 0
01 1
01 0
10 1
10 0
10 1
10 0
11 1
11 0
11 1
11 0
11
1

1
0
0
1

0
0
1

0
0
1

0
0
1
00
▲圖 6-15 使用量子閘建構的二選一多工器狀態

經上面四個量子位元的量子電路運作後可以得到八個狀態,最左邊的是 F 輸
出,最右邊是 A,狀態符合二選一多工器真值表的運算狀況。

107
資訊篇

6-6 N = N + 1 運算

使用一個 3 量子位元的量子電路,輸出為輸入加 1,也就是 a=a+1,進


行這個電路設計以前,可以先用真值表來描述狀態的變化,真值表如下:

▼表 6-2 狀態變化真值表

C B A C' B' A'


0 0 0 0 0 1
0 0 1 0 1 0
0 1 0 0 1 1
0 1 1 1 0 0
1 0 0 1 0 1
1 0 1 1 1 0
1 1 0 1 1 1
1 1 1 0 0 0

布林代數運算過程

可以看到 A 與 A' 都正好相反,所以 A' = A

CNOT 閘等同於 XOR 的邏輯,儘量將布林式調整成 XOR 的運算,也就

是 F = BA + BA = B ⊕ A

( )
B' = CBA + CBA + CBA + CBA = C + C ( BA + BA )

= BA + BA = B ⊕ A

CCNOT 閘等同於 AND 的邏輯,所以儘量將布林式調整成 AND 的邏輯,


也就是 F=AB

C ' = CBA + CBA + CBA + CBA = C (BA) + C ( BA)

= C ⊕ BA

108
Chapter 06 量子的算術與邏輯運算

實作練習 10

經由上述的運算後得量子電路如下,由輸入來看,採用一個 H 閘放在第二個
量子位元,所以輸入是 000 與 010 兩個狀態疊加。

0.6
A | 0> A´=A
0.4

B | 0> H B´=B A 0.2

C | 0> C´=C BA 0
000 001 010 011 100 101 110 111

▲圖 6-16 加 1 的電路圖及狀態

經運算後,得到狀態為 001 及 011,也就是輸入 000 及 010 加 1 以後的狀態。

實作練習 11

設計一個加 2 的量子電路,真值表如下表,請完成布林代數的運算,並設計
出量子電路,輸入 000、001、010 及 011 的疊加狀態來驗證。

▼表 6-3 狀態的變化真值表

C B A C' B' A' 布林代數運算過程


0 0 0 0 1 0 A' = A
0 0 1 0 1 1
B' = CBA + CBA + CBA + CBA
0 1 0 1 0 0
0 1 1 1 0 1 = CB ( A + A ) + CB ( A + A ) = B
1 0 0 1 1 0
1 0 1 1 1 1 C ' = CBA + CBA + CBA + CBA
1 1 0 0 0 0
1 1 1 0 0 1 = CB + CB = C ⊕ B

0.8

0.6
A | 0> A
0.4

B | 0> H B 0.2

C | 0> C B 0
000 001 010 011 100 101 110 111

▲圖 6-17 量子電路及狀態圖

將上述運算的結果組成電路如上,輸入 000 及 010 的狀態,得到結果為 010


及 100,測試結果證明輸入為加 2 的結果。
109
資訊篇

實作練習 12

設計一個加 3 的量子電路,真值表如下表,請完成布林代數的運算,並設計
出量子電路,請輸入 001 與 011 的疊加狀態來驗證。

▼表 6-4 狀態的變化真值表

C B A C' B' A'


0 0 0 0 1 1
0 0 1 1 0 0
0 1 0 1 0 1
0 1 1 1 1 0
1 0 0 1 1 1
1 0 1 0 0 0
1 1 0 0 0 1
1 1 1 0 1 0

q1 使用 H 閘,可以疊加在 010 及 000 的狀態,q0 使用反閘輸入 1,則可得


到 011 及 001 的兩個狀態。後續可先做加 2 再加 1,即可成為加 3 的運算電路。

+2 +1
q0

q1 H

q2
+
c3

0.8 0.8

0.6 0.6
Amplitude

Amplitude

0.4 0.4

0.2 0.2

0 0
000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Computational basis states Computational basis states

▲圖 6-18 加 3 的運算電路及狀態圖

最後輸出得到 100 及 110 兩個狀態,也就是 001+011=100 及 011+011=110 運


算後的結果,證實上述使用一個加 2 及加 1 的電路串接可以得到加 3 的結果。
110
Chapter 06 量子的算術與邏輯運算

6-7 組合邏輯

上述的運算,皆可用布林代數,將古典邏輯電路轉換成量子邏輯電路,
以下將舉幾個簡單的例子,將古典組合邏輯轉換成量子邏輯電路。

• F = A+BC
上述的章節有提到 F = A + B = A⊕B⊕AB,如果用這個公式,可以列出
以 XOR 為主的布林代數式如下:

F = A + BC = A⊕BC⊕ABC

接著可依據上述的布林代數式,繪製出一個簡單而單純的量子電路:

F C B A
0 0 0 0
1 0 0 1
g0 A H A 0 0 1 0
g1 B H B
1 0 1 1
0 1 0 0
g2 C H C 1 1 0 1
g3 |0> F 1 1 1 0
A A BC A BC ABC 1 1 1 1
( a ) 電路圖 ( b ) 真值表
▲圖 6-19 F=A+BC 量子電路手繪稿及真值表

讀者可練習用 Composer 嘗試將電路完成,並加以測試。以下的範例則


使用 Qiskit 來進行量子電路的程式撰寫及測試。

1. 載入必要的 qiskit 及 qiskit.visualization 兩個必要的模組。

111
資訊篇

2. 建 立 四 個 量 子 位 元 的 電 路, 用 qc.h([0,1,2]) 分 別 在 0-2 的 量 子 位 元 暫 存
器上設置三個 H 閘,可以產生出 000 至 111 八種量子狀態。qc.mcx 可以
任意產生多個控制端,可以用這個函數解決 IBM Quantum Composer,
沒 有 多 於 三 個 以 上 控 制 端 的 問 題, 控 制 端 可 以 用 陣 列 來 定 義, 以
qc.mcx([0,1,2],3) 為例,[0,1,2] 是三個控制端,3 則是受控端。

使用 qc.draw() 畫出電路如下:

q0 H

q1 H

q2 H

q3

▲圖 6-20 F=A+BC 的邏輯運算量子

3. 接 著 再 執 行 backend.run(qc), 執 行 之 後, 從 job.result().get_counts() 得
到最後各個狀態出現的機率。

112
Chapter 06 量子的算術與邏輯運算

經執行後共有八個狀態,每個出現的機率各有 0.125。
{`0000´: 0.125,
`0010´: 0.125,
`0100´: 0.125,
`1001´: 0.125,
`1011´: 0.125,
`1101´: 0.125,
`1110´: 0.125,
`1111´: 0.125}

接 著 來 驗 證 上 列 的 狀 態 是 否 正 確, 以 上 述 結 果 為 例, 四 個 位 數 分 別 是
FCBA,也就是最左邊的是 F,最右邊的是 A。如果比對真值表,可以得到
CBA = 000、010 及 100 時,F 輸出均為 0,其餘狀態皆為 1,驗證完全正確。
使用直條圖顯示,以 plot_histogram 顯示 job.result().get_ counts() 的結果。

顯示狀態長條圖如下圖 6-21:

0.15
0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125
0.12
Probabilities

0.09

0.06

0.03

0
00

10

00

01

11

10

11
0

11
10

11
00

00

01

10

11

▲圖 6-21 狀態長條圖

113
資訊篇

實作練習 13

請依照下列布林代數繪製及實作量子電路。

( 1 ) F = AB ( 2 )F = AB

(3) F = A + B ( 4 )F = A + B

( 5 ) F = AB + BC ( 6 ) F = AB + A BC

114
Chapter 06 量子的算術與邏輯運算

6-8 一位元比較器

下圖為一位元比較器,比較 AB 兩個輸入,透過 LGE 三個輸出,方塊圖


如下,分別代表小於(less)、相等(equal)及大於(greater),若 B>A 則
G = 1 ,L = E = 0;若 B<A 則 L = 1,G = E = 0;若 B = A,則 E =1 ,L = G = 0。

輸入 輸出
A B A<B A=B A>B
A < L 0 0 0 1 0
比較器 = E
0 1 1 0 0
B > G
1 0 0 0 1
1 1 0 1 0

( a ) 比較器方塊圖 ( b ) 真值表
▲圖 6-22 比較器的古典邏輯架構圖及真值表

為了呈現完整的量子狀態,量子電路架構通常會保留輸入 A、B 的狀態,


以利完整地呈現所有的狀態。架構圖如下方右圖,由真值表可以列出布林代
數如下: A A
B B
比較器 <
G=BA、L=BA、E=(B A) L
= E
使用 Qiskit 撰寫量子電路如下:
> G

A H A

B H B

L |0> L

E |0> E

G |0> G

▲圖 6-23 一位元比較器的量子電路圖

1. 載入必要的 qiskit 及 qiskit.visualization 兩個模組。

115
資訊篇

2. 建立五個量子位元的電路,使用 qc.h([0,1]) 設定兩個量子位元的疊加態,


接著依撰寫量子電路的程式。比較需要注意的是,q0 及 q1 都有經過 X
閘反向,但為還原為原來的狀態,注意必須再用一個 X 閘還原。

經執行以後得到電路圖如下:

q0 H X X

q1 H X X

q2

q3 X

q4

▲圖 6-24 電路圖

3. 使 用 下 列 的 程 式 執 行 量 子 電 路, 使 用 job.result().get_counts() 取 得 各 狀
態的概率。

經執行後,得到下列四個狀態,每個狀態各有 0.2 五個機率。


{'00101': 0.25,
'01000': 0.25,
'01011': 0.25,
'10010': 0.25}

116
Chapter 06 量子的算術與邏輯運算

以第一個狀態 00101 分別為 GELBA 的狀態,B = 0、A = 1,此時 B<A,


故 L = 1,G = E = 0; 而 BA = 00 或 11 時,E = 1、G = L = 0; 接 著 B = 1、
A = 0,此時 B>A,故 G = 1,L = E = 0,經驗證狀態均與真值表吻合。

最 後 在 使 用 plot_histogram 顯 示 各 狀 態 機 率 的 長 條 圖, 可 以 更 明 顯 地
看出結果。以長條圖左起的第一個狀態 00101 為例,排列為 GELBA,此時
B=0,A =1,明顯 B<A,此時 L=1 代表小於,其他的狀態也可以依照上述
的方法驗證經過比較器電路運作後狀態是否正確。

0.30
0.250 0.250 0.250 0.250
0.24
Probabilities

0.18

0.12

0.06

0
1

0
01
10

00

01
01
00

01

10

▲圖 6-25 使用 plot_histogram 顯示各狀態機率長條圖

117
資訊篇

6-9 A+=B 電路

上述提到加 1 及加 2 的量子電路,如果將加 1 及加 2 量子電路串接,則


可以得到加 3 的電路,如下所列:

q0 q0 q0

q1 q1 q1

q2 q2 q2

A = A+1 A=A+2 A = A+3

▲圖 6-26 加 3 的電路狀態圖

若依照上述的電路,再採用一個位元 B0 來控制加 1 電路,當 B0=1 才


會加 1,這時候可以再 A0-A2 的輸出得到 A+=B 的結果。

A0

A1 A=A+B

A2

B0
▲圖 6-27 A=A+B 量子電路圖

若這個將加入一個加 2 電路,使用 B1 決定是否加 2,則此時便可以得到


一個三位元加 2 位元的加法電路。

A0

A1 A=A+B

A2

B0

B1
▲圖 6-28 A=A+B 量子電路圖

118
Chapter 06 量子的算術與邏輯運算

1. 載入所需要的模組。

2. 編寫量子電路程式如下。

使 用 q0、q1、q2 當 作 A0、A1、A2;q3、q4 當 作 B0、B1。 輸 入 的 部


分,在 q2 放上一個 H 閘,則 A 可以產生 000、100 兩組數字,B 則在 q3、q
四個放一個 H 閘,則會產生 00、01、10 及 11 四個數字,最後輸出的狀態,
會 產 生 出 8 組 狀 態:000、001、010、011、100、101、110、111。 最 後 使
用測量表來測量 A=A+B 的結果,則 B 的量子狀態消失後讀者可以很清楚地
從圖表如圖看到結果,這也是量子運算的標準方式。

}
} q0

A q1 A+=B

q2 H
} q3 H
B
q4 H

c
0 2 1
▲圖 6-29 A+=B 的量子電路圖

119
資訊篇

3. 透過下列程式執行上述的量子電路。

由於每次測量的結果,都只會有一種狀態,所以如果經過連續的測量,
統計各狀態出現的次數,就可知道各狀態的出現機率。

理論上,八個狀態每個狀態出現的機率都是 0.125,上述的程式使用 job.


result().get_counts() 模擬多次測量後的結果,可以看到每個狀態出現的次數
各有不同,事實上量子電路經過測量後,統計的結果並不會如同理想值,結
果如下:

{'101': 98,
'001': 138,
'010': 129,
'110': 135,
'100': 142,
'111': 115,
'000': 120,
'011': 147}

最 後, 使 用 plot_histogram 長 條 圖 顯 示 結 果,A 與 B 使 用 H 閘 設 定 8
種狀態,並且符合預期的結果。雖然每種狀態的出現次數無法精確推測為
0.125,但接近這個理論值。這證實了電路的正確性,並且表明該量子電路
的設計和實現是可行的。

0.16 0.144
0.135 0.139
0.126 0.132
Probabilities

0.117
0.12 0.112
0.096

0.08

0.04

0
0

1
01

11
00

00

01

10

10

11

120
▲圖 6-30 使用 plot_histogram 呈現各種狀態出現的次數及機率
Chapter 06 量子的算術與邏輯運算

6-10 記憶體

有一個電路其資料狀態的真值表如下,當位址為 00 的時候,資料輸出
110;若位址為 11,則資料輸出為 111,其餘位址對應的資料輸出如表所列。
藉由符合下列真值表狀態的電路可以索引對應的資料輸出,其功能便是記憶
體的功能與概念。

資料
A1 A0 D2 D1 D0 A1 < D2
0 0 1 1 0 記憶體 = D1
0 1 0 1 1 A0 > Dn
1 0 1 1 1
1 1 1 0 1

由上述的真值表分析,可以得到每個位元的布林代數如下:

D2 = A1 + A0 = A1 ⊕ A0 ⊕ A1 A0

D1 = A1 + A0 = A1 ⊕ A0 ⊕ A1 A0

D0 = A1 + A0 = A1 ⊕ A0 ⊕ A1 A0

透過上述的分析,使用量子閘組合出量子記憶體如下:

q0 D0

q1 D1

q2 D2

A0 q 3 H A0

A1 q 4 H A1

▲圖 6-31 組成電路圖

測試狀態如下,經檢視與真值表的四個狀態完全符合。
0.5

0.4
Amplitude

0.3

0.2

0.1

0
00 00
00 01
00 10
00 11
00 00
00 01
00 10
01 11
01 00
01 1
01 10
01 11
01 00
01 01
01 10
10 11
10 00
10 01
10 10
10 11
10 00
10 1
10 10
11 11
11 00
11 01
11 10
11 11
11 0 0
11 0 1
11 1 0
1
11
00

121
10
1

1
0

1
0
0
0

1
1

1
1

0
0
0

0
0
0
0

1
1
1
00
資訊篇

課後測驗
( ) 1. 兩個輸入的 AND 閘可以用哪個量子閘來實現?
(A) CNOT (B) CZ (C) CCNOT (D) CP

( ) 2. CX 的量子閘控制端為 A,受控端為 1 的話,則輸出使用布林代數表示的話


應該是
(A) F = A (B) F = A ⊕ 0 (C) F = A ⊕ 1 (D) F = A + 1

( ) 3. 使用三量子位元的 CCNOT 閘來處理 AND 的運算,A、B 分別為兩個控制端,


F 為輸出端,則受控端的輸入必須為
(A) 0 (B) 1 (C) –1 (D) –2

( ) 4. 使用三量子位元的 CCNOT 閘來處理 NAND 的運算,A、B 分別為兩個控制


端,F 為輸出端,則受控端的輸入必須為
(A) 0 (B) 1 (C) –1 (D) –2

( ) 5. 若用三個量子位元來實現 XOR 運算,A、B 為控制端,XOR 的輸出端 F,


則需要多少個 CX 閘來實現?
(A) 一個 (B) 兩個 (C) 三個 (D) 四個

6. 連續數列有三個數位,每個數位只有 0 與 1。若規定相鄰的數位不能相
同,也就是像 110、011 及 111 這三個狀態不允許存在。使用四個量子位
元,q0 ∼ q2 是三個數位,q3 的輸出如果為 1 代表不允許的狀態,如果
是 0 則代表允許的狀態,請問如何用 CCNOT 來實現?

7. 設計一個量子記憶體,使用 q4-q5 二個量子位元當位址,資料有四個量子


位元用 q0-q3 表示。位址有三個量子位元,所以可以對 8 筆資料定址。假
設位址 0 ∼ 3 的資料分別為 3, 4, 9,12,請運用真值表及布林代數完成電
路設計。

122
臺北市高中職

量子電腦教材
資訊篇
臺北市高中職量子電腦教材—資訊篇
The Quantum Of Computing

出 版 機 關 :臺北市政府教育局
發 行 人 :湯志民
C70 M15 Y15 K0 C0 M80 Y90 K0 C20 M50 Y80 K0
R55 G167 B202 R234 G85 B32 R209 G143 B64

合 作 單 位 :鴻海教育基金會 C100 M90 Y30 K0


R15 G54 B117
C0 M0 Y0 K90
R62 G58 B57

承 辦 單 位 :臺北市立永春高級中學 3A 教學基地中心
指 導 委 員 :陳素慧、鄧進權、廖文靜、陳秉熙、汪用和
諮 詢 委 員 :張慶瑞 、 傅昭銘 、 張元翔 、 黃琮暐 ( 按姓氏筆畫順序排列 )

總 編 輯 :林春煌
執 行 編 輯 :曾慶良
編 輯 群 :王昱珺 、吳健鑫 、 陳昭安 ( 按姓氏筆畫順序排列 ) Type your text

地 址 :11008 臺北市信義區市府路 1 號
網 址 :https://www.doe.gov.taipei/
電 話 :02-2720-8889

設 計 編 排 :台科大圖書股份有限公司
地 址 :242 新北市新莊區中正路 649-8 號 8 樓
電 話 :02-2908-0313

展 / 銷售處
【 國家書店 】( 松江門市 )
地 址 :104 臺北市松江路 209 號 1 樓
電 話 :02-2518-0207
網 址 :http://www.govbooks.com.tw/

【 五南文化廣場 】( 臺中代表總店 )
地 址 :400 臺中市中山路 6 號
電 話 :04-2226-0330
網 址 :http://www.wunanbooks.com.tw/

I S B N :978-626-7250-72-3
G P N :1011200631
出 版 日 期 :112 年 6 月
定 價 :新台幣 330 元
臺北市高中職量子電腦教材
臺北市高中職
量子電腦教材

資訊篇
資訊篇

ISBN 978-626-7250-72-3
G P N 1011200631

You might also like