2022年12月31日 星期六

Quantum Computing Books

 Quantum Computing Books

2022/01/22

-----


https://pixabay.com/zh/photos/books-read-to-learn-literature-3322275/

-----

數位信號處理先修:

-----

Signals and Systems

-----

Alan V. Oppenheim, Alan S. Willsky, with S. Hamid Nawab. Signals and systems. Prentice-Hall International, 1997.

https://www.amazon.com/Signals-Systems-2nd-Alan-Oppenheim/dp/0138147574

-----

◎ Discrete-Time Signal Processing

-----

Alan V. Oppenheim, Ronald W. Schafer, with John R. Buck. Discrete-time signal processing. Prentice Hall, 2001.

https://www.amazon.com/-/zh_TW/Alan-V-Oppenheim/dp/0137549202/

-----

◎ Introduction to Signal Processing

-----

https://www.amazon.com/Introduction-Signal-Processing-Sophocles-Orfanidis/dp/0132091720

-----

量子運算基礎:

-----

◎ Quantum Computation and Quantum Information

-----

https://www.amazon.com/Quantum-Computation-Information-10th-Anniversary/dp/1107002176

-----

◎ Principles of Quantum Computation and Information

-----

https://www.amazon.com/Principles-Quantum-Computation-Information-Comprehensive/dp/9813237228

-----

◎ Quantum Computing: A Gentle Introduction

-----

https://www.amazon.com/Quantum-Computing-Introduction-Engineering-Computation/dp/0262526670

-----

◎ Practical Quantum Computing for Developers

-----

https://www.amazon.com/Practical-Quantum-Computing-Developers-Programming/dp/1484242173

-----

量子力學簡介(七):量子力學公設

 量子力學簡介(七):量子力學公設

2022/12/31

-----

References


[1] The Postulates of Quantum Mechanics

https://www.sydney.edu.au/science/chemistry/~mjtj/CHEM3117/Resources/postulates.pdf


[2] 量 子 公 設 (Quantum Postulates)

https://phy.ntnu.edu.tw/~yao/quantum-pos-2016.pdf

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

量子力學簡介(八):EPR 悖論與貝爾不等式

量子力學簡介(八):EPR 悖論與貝爾不等式

2022/12/15

-----

References


[1] 愛因斯坦的最後一搏-EPR 悖論

http://gclie.users.sonic.net/gclie/EPR.pdf


[1] The EPR Paradox and Bell's Inequality

https://math.ucr.edu/home/baez/physics/Quantum/bells_inequality.html

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

量子力學簡介(四):電子雙狹縫實驗

量子力學簡介(四):電子雙狹縫實驗

2022/12/31

-----

References


# Feynman

[1] The Feynman Lectures on Physics Vol. III Ch. 1: Quantum Behavior

https://www.feynmanlectures.caltech.edu/III_01.html


[2] 稜鏡與擺錘:探究科學實驗之美——《如何幫地球量體重》書評 - 科學家隨筆 - 新聞訊息 - 物理雙月刊

https://pb.ps-taiwan.org/modules/news/article.php?storyid=143


[3] 顛覆認知的電子雙狹縫實驗│科學史上的今天:5/26 - PanSci 泛科學

https://pansci.asia/archives/140581


[4] 三狹縫量子啟示-科學人雜誌

https://sa.ylib.com/MagArticle.aspx?id=4703


[5] (7) 上帝的骰子:电子双缝干涉实验有多诡异?量子的波函数如何理解? - YouTube

https://www.youtube.com/watch?v=Ik58awh2Mp4


[6] 完全一樣又不可分辨(一)-科學人雜誌

https://sa.ylib.com/MagArticle.aspx?id=3480


[7] 完全一樣又不可分辨(二)-科學人雜誌

https://sa.ylib.com/MagArticle.aspx?id=3479

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

量子力學簡介(六):斯特恩-革拉赫實驗

量子力學簡介(六):斯特恩-革拉赫實驗

2022/12/02

-----

References


[1] 斯特恩—革拉赫實驗其人其事 - 科學家隨筆 - 新聞訊息 - 物理雙月刊

https://pb.ps-taiwan.org/modules/news/article.php?storyid=158


[2] 電子自旋引爆下一代記憶體革命—錢嘉陵院士專訪

https://research.sinica.edu.tw/chien-chia-ling-spin-electron-hard-disk/


[3] 修正的Stern-Gerlach實驗 – 4分33秒的科哲天地

https://proscience2.wordpress.com/2019/09/18/%E4%BF%AE%E6%AD%A3%E7%9A%84stern-gerlach%E5%AF%A6%E9%A9%97/


# Feynman

[4] The Feynman Lectures on Physics Vol. II Ch. 35: Paramagnetism and Magnetic Resonance

https://www.feynmanlectures.caltech.edu/II_35.html


# Feynman

[5] The Feynman Lectures on Physics Vol. III Ch. 5: Spin One

https://www.feynmanlectures.caltech.edu/III_05.html

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

量子力學簡介(五):磁矩

量子力學簡介(五):磁矩

2022/12/31

-----

參考資料一


「力矩、電矩、磁矩都是描述物體轉動或公轉的物理量,但三者在本質上有不同含義;電磁學的磁矩概念是牛頓力學力矩概念的延伸;量子力學磁矩概念是勢能概念的延伸,角動量也是勢能概念的延伸。經典力學中的力矩、電磁學中的磁力矩與量子力學中的磁力矩雖有相同的數學表達式,即 L = FR,l(m) = Fr,但含義不同。」[1]。

-----

參考資料二


原子「核在一個位於 z 軸的磁場 B 的狀態可以用一個陀螺的運轉來想像,但是核的角動量是量子化的,因此連帶的核之磁矩亦是量子化的。 」「當我們說一個核具有 magnetic moment 時,代表這個核就好像是一塊小磁鐵一般。」[2]。

-----

References


[1] 量子力學為什麼要用磁矩代替牛頓力學中的角動量? - 每日頭條

https://kknews.cc/zh-tw/science/rj9x46n.html


[2] 從 magnetic moment 談起

https://case.ntu.edu.tw/CASTUDIO/Files/speech/Ref/CS0100S1B02_14.pdf

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

量子力學簡介(三):楊氏雙狹縫實驗

量子力學簡介(三):楊氏雙狹縫實驗

2022/12/05

-----

References


# Feynman

[1] The Feynman Lectures on Physics Vol. III Ch. 1: Quantum Behavior

https://www.feynmanlectures.caltech.edu/III_01.html


[2] 稜鏡與擺錘:探究科學實驗之美——《如何幫地球量體重》書評 - 科學家隨筆 - 新聞訊息 - 物理雙月刊

https://pb.ps-taiwan.org/modules/news/article.php?storyid=143


[3] 雙狹縫干涉圖樣與飛機的「盲降系統」 - Play-Create-Learn 紐西蘭科學與物理教育點滴 - 新聞訊息 - 物理雙月刊

https://pb.ps-taiwan.org/modules/news/article.php?storyid=246

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

量子力學簡介(二):前後五人

量子力學簡介(二):前後五人

2022/12/16

-----

說明:

量子力學核心的五人是普朗克、愛因斯坦、波耳、海森堡、薛丁格。五人之前有牛頓、馬克士威、波茲曼。五人之後有馮紐曼與費曼。

-----

Newton

Maxwell

Boltzmann

von Neumann

Feynman

-----

Outline

一、Newton

二、Maxwell

三、Boltzmann

四、von Neumann

五、Feynman

-----

參考資料一


從牛頓到費曼

「(1473 - 1543)哥白尼

(1564 - 1642)伽利略

(1571 - 1630)克卜勒

(1642 - 1727)Newton

(1646 - 1716)萊布尼茲


(1831 - 1879)Maxwell

(1844 - 1906)Boltzmann

量子力學核心五人

(1903 - 1957)von Neumann

(1918 - 1988)Feynman」[1], [2]。

 -----

參考資料二


馬克士威方程組

「1. 高斯定律:在一個有限體積中流出的電場通量,與此體積中的電荷成正比。

2. 安培-馬克士威定律:電流或交變電通量會產生磁渦流。

3. 法拉第定律:交變磁通量會產生電渦流。

4. 磁單極子不存在:在有限體積中的磁通量永遠為零。」(pp. 392 - 404)[3]。

-----

參考資料三


線光譜

「早在十九世紀,人們就知道,每個元素都發出特定的光譜,因而認為原子的特性及內部結構必定與它的光譜有某種關係。但是,以牛頓力學及古典電磁學為基礎去嘗試了解這種關係的努力都失敗了。」(p. 1022)[4]。

-----

參考資料四


原子論

「原子的概念,古希臘人早在 2000 多年前就已經提出了。不過古希臘人所說的原子,完全是一種哲學上的思辨。最早從科學上闡述原子概念的人,是著名的奧地利物理學家玻爾茲曼。」「玻爾茲曼一直相信世界是由原子構成的,並以此為基礎創立了一門叫統計力學的學科。不過在那個年代,大家普遍不相信原子論,所以,在學術上,玻爾茲曼有一大批反對者。這些人常年攻擊原子論,甚至直接攻擊玻爾茲曼本人,這讓他感到很痛苦。玻爾茲曼曾感慨他是「一個軟弱無力地與時代潮流抗爭的人」。但玻爾茲曼並非孤軍奮戰,有一個年輕的德國科學家也站在他這邊。不過玻爾茲曼心高氣傲,覺得支持他的德國人是個無名小卒,根本看不上眼。然而,這個德國科學家不是別人,正是日後被稱為「量子論之父」的普朗克。」(pp. 14 - 17)[5]。

-----

參考資料五


量子力學與數學

「馮.紐曼回來後動動腦,第二年就發表了一篇現代電腦發展里程碑的論文,將電腦硬體劃分成五大組件,並且定義了軟體的邏輯結構,成為現代電腦的基本架構,因此被譽為「電腦之父」。」[6]。

「他利用希爾伯特空間(Hilbert space)證明矩陣力學和波動方程式等價,為剛萌芽的量子力學提供嚴謹的數學架構;而往後的數學家與物理學家也因而有了處理多維空間的數學工具。」[6]。

「基於這一思路的第一個完備數學表述體系現在被稱為狄拉克-馮諾伊曼公理體系。這一理論體系現在一般認為是馮.諾伊曼在其 1932 年發行的專著《量子力學的數學基礎》中提出的。儘管此前外爾已經在其 1927 年發表的論文著作中引入了希爾伯特空間(他自己將之稱為「么正空間」)。這一體系採用的方法是數學中基於線性算符的譜理論,而非大衛.希爾伯特在一個世代前所採用的二次型方法。儘管量子力學理論如今依然在發展,但所採用的數學表述的基本框架仍是基於馮.諾伊曼的工作的。換言之,目前有關量子力學詮釋的探討及其延伸話題大多是圍繞著數學基礎理論中共用假設的基礎展開的。」[7]。

「在這之後發展起來的量子力學表述包括:路徑積分表述。」[7]。「路徑積分表述的完整方法,由理論物理學家理察.費曼在 1948 年發展出來,但較早時,費曼已在約翰.惠勒指導的博士論文中,摸索出初步結果。因爲路徑積分的表述法顯然地把時間和空間同等處理,它成為以後理論物理學發展的重要工具。」[8]。

-----

參考資料六


量子力學與電腦

「量子計算機的提出者、著名物理學家費曼。」(p. 116)[5]。

「如果在牛頓的時代或是在馬克士威建立起電磁場方程式的十九世紀出現像費曼這樣的人,物理學可能會變成什麼樣子?當然,費曼出生的太晚,沒有辦法催生量子理論的形成,但他還是自己將這個理論導出來了,而且還導了兩次:一次是替他的學生建立觀念,另一次則是為了他的同事換成一個新的數學形式。」(p. 256)[2], [9]。

-----

References


# 牛頓

[1] 從亞里斯多德以後

https://www.eslite.com/product/1001136021329747


# 馬克士威

[2] 在費曼之前

https://www.eslite.com/product/1001136021310534


牛頓與馬克士威

[3] 數學的語言

https://www.eslite.com/product/1001118562012274


# 牛頓力學與古典電磁學

[4] 大學物理學(上+下冊)9571200840 曹培熙/駱劍秋 曉園 | 蝦皮購物

https://shopee.tw/%E5%A4%A7%E5%AD%B8%E7%89%A9%E7%90%86%E5%AD%B8%EF%BC%88%E4%B8%8A-%E4%B8%8B%E5%86%8A%EF%BC%899571200840-%E6%9B%B9%E5%9F%B9%E7%86%99-%E9%A7%B1%E5%8A%8D%E7%A7%8B-%E6%9B%89%E5%9C%92-i.27377859.20637222869?sp_atk=ff6fb27d-abd2-436c-a2ba-7a5b6f556cbb&xptdk=ff6fb27d-abd2-436c-a2ba-7a5b6f556cbb


# 波茲曼

[5] 上海书评︱孙珷:谁说给孩子讲量子力学,一定要懂了_上海书评_澎湃新闻-The Paper

https://www.thepaper.cn/newsDetail_forward_1620978


# 馮紐曼

[6] 科科史上的今天 - 【科學史上的今天】12/28——馮·紐曼誕辰(JOHN VON NEUMANN,...

https://history.pansci.asia/post/136083632385/%E7%A7%91%E5%AD%B8%E5%8F%B2%E4%B8%8A%E7%9A%84%E4%BB%8A%E5%A4%A91228%E9%A6%AE%E7%B4%90%E6%9B%BC%E8%AA%95%E8%BE%B0john-von-neumann


# 馮紐曼

[7] 量子力學的數學表述 - 維基百科,自由的百科全書

https://zh.wikipedia.org/zh-tw/%E9%87%8F%E5%AD%90%E5%8A%9B%E5%AD%B8%E7%9A%84%E6%95%B8%E5%AD%B8%E8%A1%A8%E8%BF%B0


[8] 路徑積分表述 - 維基百科,自由的百科全書

https://zh.wikipedia.org/zh-tw/%E8%B7%AF%E5%BE%91%E7%A9%8D%E5%88%86%E8%A1%A8%E8%BF%B0


# 費曼

[9] 費曼物理學講義

http://www.bookzone.com.tw/event/bw1201/sale.asp


# 公設

[10] 量 子 公 設 (Quantum Postulates)

https://phy.ntnu.edu.tw/~yao/quantum-pos-2016.pdf


# There are six postulates of quantum mechanics

[11] The Postulates of Quantum Mechanics

https://www.sydney.edu.au/science/chemistry/~mjtj/CHEM3117/Resources/postulates.pdf

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

量子力學簡介(一):核心五人

量子力學簡介(一):核心五人

2022/12/15

說明:

學習量子運算,需不需要懂得量子力學呢?參考三本量子運算的書籍後,這個答案是:「不確定」 [1] - [3]。

-----

Planck

Einstein

Bohr

Heisenberg

Schrödinger

-----

以第一本教科書為例 [1],第二章量子力學的部分,除了線性代數與量子力學公設以外,主要只講了斯特恩-革拉赫與楊氏雙狹縫兩個實驗與 EPR、貝爾不等式。第二本 Cirq 推薦的經典,量子力學的部分,除了線性代數與量子力學公設以外,主要只講了斯特恩-革拉赫實驗與 EPR、貝爾不等式。第三本評價也不錯的量子運算書籍,則對量子力學幾乎不提。

由於黃靜瑜推薦的這本寫得很仔細、清楚,所以我認為第二章可以好好研讀,順便瞭解一下量子力學。隨意找了一些參考書籍後,發現有點難,事實上是,很難 [4]。最後讀了《給孩子講量子力學》 [5],才有個切入點,可以先瞭解普朗克、愛因斯坦、波爾、海森堡、薛丁格這五個人的研究發現,也就是《量子力學導論》第一章的內容,接著再進入第二章薛丁格的波函數。

《給孩子講量子力學》這本書雖然薄薄一本,不過寫得很好。引用的科學家人名雖然不少,但邏輯上的順序安排的很清楚,不會搞的人昏頭漲腦,比方說,第一章依序介紹了普朗克、愛因斯坦、波爾、海森堡,第四章則出現薛丁格,也因為如此,我才回去看《量子力學導論》,也才知道量子力學核心這五個人的順序。

話雖如此,就如剛剛提到的第三本量子運算參考書,其實不懂量子力學也沒關係。讀完《給孩子講量子力學》,只要再看看《量子物理史話》 [6],知道一點歷史就可以了,有誰真的懂量子力學呢?[7]。

-----

Outline

一、Planck

二、Einstein

三、Bohr

四、Heisenberg

五、Schrödinger

-----

參考資料一


量子力學

「2.1 The Stern-Gerlach experiment

2.2 Young's double-slit experiment

2.3 Linear vector spaces

2.4 The postulates of quantum mechanics

2.5 The EPR paradox and Bell's Inequalities」[1]。

-----

參考資料二


Cirq

「This tutorial isn’t a quantum computing 101 tutorial: it assumes familiarity of quantum computing at about the level of the textbook “Quantum Computation and Quantum Information” by Nielsen and Chuang.」[2]。

-----

參考資料三


A Gentle Introduction

「I detected another rare quality: I could open any chapter and follow its content without having to turn to previous chapters for notions and notation.」[3]。

-----

參考資料四


量子力學導論

「1.1 黑體輻射與 Planck 的量子論

1.2 光電效應與 Einstein 的光量子

1.3 原子結構與 Bohr 的量子論

1.4 Heisenberg 矩陣力學的提出

1.5 de Broglie 的物質波與 Schrodinger 波動力學的提出」[4]。

-----

參考資料五


量子力學核心五人

「(1858 - 1947)Planck

(1879 - 1955)Einstein

(1885 - 1962)Bohr

(1887 - 1961)Schrödinger

(1901 - 1974)Heisenberg」

-----

References


[1] 東海課程-應用物理學系量子資訊與量子計算(黃靜瑜老師1091-0471)

https://course.thu.edu.tw/view/109/1/0471


[2] Cirq basics  |  Google Quantum AI

https://quantumai.google/cirq/start/basics


[3] Quantum Computing: A Gentle Introduction: Physics Today: Vol 65, No 2

https://physicstoday.scitation.org/doi/10.1063/PT.3.1442


[4] 量子力學的形式體系與核心概念的一些注記 @ 冒牌自然老師 :: 痞客邦 ::

https://chendaneyl.pixnet.net/blog/post/31436914


[5] 上海书评︱孙珷:谁说给孩子讲量子力学,一定要懂了_上海书评_澎湃新闻-The Paper

https://www.thepaper.cn/newsDetail_forward_1620978


[6] [推薦] 上帝擲骰子嗎-量子物理史話 - 看板 historia - 批踢踢實業坊

https://www.ptt.cc/bbs/historia/M.1365788538.A.047.html


[7] Feynman - Nobody understands Quantum Mechanics - YouTube

https://www.youtube.com/watch?v=w3ZRLllWgHI


[8] 量子四書(上) 從量子論到量子力學 - 阿文開講 - 新聞訊息 - 物理雙月刊

https://pb.ps-taiwan.org/modules/news/article.php?storyid=416&uid=0


[9] 量子四書(下) 從矩陣力學到量子場論 - 阿文開講 - 新聞訊息 - 物理雙月刊

https://pb.ps-taiwan.org/modules/news/article.php?storyid=494


[10] 【大宇宙小故事】47 海姑蘭之夜 | CASE 報科學

https://case.ntu.edu.tw/blog/?p=29894


[11] 海森堡不確定性原理的矩陣證明 | 線代啟示錄

https://ccjou.wordpress.com/2013/04/25/%E6%B5%B7%E6%A3%AE%E5%A0%A1%E4%B8%8D%E7%A2%BA%E5%AE%9A%E6%80%A7%E5%8E%9F%E7%90%86%E7%9A%84%E7%9F%A9%E9%99%A3%E8%AD%89%E6%98%8E/


[12] 【俗說量子】“不確定性原理”為何不確定?從“矩陣力學”到“不確定性原理”(第6期)| Linvo說宇宙 - YouTube

https://www.youtube.com/watch?v=OOGdJZNyOTg

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

Python 量子運算(一二):括量與包量

Python 量子運算(一二):括量與包量

2022/12/31

-----


Fig. 12.1. Bra and ket.

-----

代碼 12.1




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Program 12.1:Bra and ket
import matplotlib as mpl
import matplotlib.pyplot as plt

# figure setting
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r'\usepackage{{amsmath}}'
mpl.rcParams['font.size'] = 80
fig, ax = plt.subplots(figsize=(16, 16))

# string setting
s1_1 = r'$\langle\Psi\vert=\begin{bmatrix}a_1^*\quad a_2^*\end{bmatrix}$'
s1_2 = r'$\vert\Psi\rangle=\begin{bmatrix}a_1\\a_2\end{bmatrix}$'
s2 = r'$(1+i)^*=1-i$'
s3 = r'$\rm \langle bra\vert ket\rangle$'

# string output
ax.text(0.05, 0.75, s1_1)  # string 1
ax.text(0.60, 0.75, s1_2)
ax.text(0.05, 0.55, s2)    # string 2
ax.text(0.20, 0.15, s3, fontsize=160)  # string 3
ax.set_axis_off()

plt.savefig('/content/drive/My Drive/pqc/0012_001.png')
plt.show()

解說

-----

References


[1] Sabine Hossenfelder: Backreaction: Understanding Quantum Mechanics #4: It’s not as difficult as you think! (The Bra-Ket)

http://backreaction.blogspot.com/2020/07/understanding-quantum-mechanics-4-its.html


[2] LaTex中输入空格以及换行_橘子甜不甜的博客-CSDN博客_latex空格

https://blog.csdn.net/luolang_103/article/details/81289529


[3] 如何用latex編寫矩陣(包括各類複雜、大型矩陣)? - 知乎

https://zhuanlan.zhihu.com/p/266267223


[4] 5. 空間與位置

https://www.cs.pu.edu.tw/~wckuo/doc/latex123/node6.html

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

2022年12月20日 星期二

作家 365 - 9:西西

作家 365 - 9:西西

2022/01/09

-----

X庚辛丁

X子亥丑

-----



-----

重點記事:

「1989 年,因乳癌入院,手術康復後因後遺症致右手失靈,改用左手寫作。」[1]。

-----

八字:


-----

八字特點:


-----

占星:

時辰不知,以正午排盤。

-----

相關人物:

「1974、1975 年間,寫一個關於「我」的香港故事《我城》。1975 年,與何福仁、適然、也斯、吳煦和舒明等創辦《大姆指周報》並任編輯。1978 年,與許迪鏘、何福仁、鍾玲玲和康夫等成立「素葉出版社」,出版「素葉文學叢書」,後來出版《素葉文學》雜誌並擔任編輯。」[1]。

-----

2019 看小說 https://webpacx.ksml.edu.tw/bookDetail/1655187(2022/08/19)

-----

References

[1] 西西 - 維基百科,自由的百科全書

https://zh.wikipedia.org/wiki/%E8%A5%BF%E8%A5%BF

-----

2022年12月18日 星期日

Python 量子運算(一一):歐拉公式

Python 量子運算(一一):歐拉公式

2022/12/02

-----


Fig. 11.1. Euler's formula.

-----

代碼 11.1


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Program 11.1:Euler's formula
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


def DrawSubplot():
    ax = plt.subplot(111)

    # basic setting
    theta = np.linspace(0, 2*np.pi, 100)
    axis = np.linspace(-1, 1, 100)
    zero = axis * 0
    radius = 0.7
    x1 = radius * np.cos(theta)
    y1 = radius * np.sin(theta)

    # basic plotting
    ax.plot(axis, zero, 'b')  # y = 0(x_axis)
    ax.plot(zero, axis, 'b')  # x = 0(y_axis)
    ax.plot(x1, y1, 'k')      # cicle

    # vector setting
    coordinates = [0, 0]      # original point
    splt_radian = np.pi / 3
    splt_title = r"$e^{i\pi}+1=0$"

    # vector plotting
    vector_p = splt_radian
    vector = [radius*np.cos(vector_p), radius*np.sin(vector_p)]  # direction
    plt.quiver(coordinates[0], coordinates[1], vector[0], vector[1],
               scale=2, color='r')

    # red line
    r_line_y = np.linspace(0, radius*np.sin(splt_radian), 100)
    r_line_x = r_line_y * 0 + radius * np.cos(splt_radian)
    ax.plot(r_line_x, r_line_y, 'r')

    # red arc
    phi = np.linspace(0, splt_radian, 100)
    x2 = 0.2 * np.cos(phi)
    y2 = 0.2 * np.sin(phi)
    ax.plot(x2, y2, 'r')

    ax.text(1.1, -0.15, "Re", color='b')
    ax.text(0.1, 1, "Im", color='b')
    ax.text(0.2, 0.1, r"$\phi$")

    ax.text(radius+0.1, -0.15, r"$1$")
    ax.text(-0.1, -0.15, r"$0$")
    ax.text(-0.1, radius+0.1, r"$i$")
    ax.text(0.1, -0.15, r"$\cos\phi$")
    ax.text(0.4, 0.25, r"$\sin\phi$")
    ax.text(radius*np.cos(vector_p)+0.1, radius*np.sin(vector_p),
            r"$e^{i\phi}=\cos\phi+i\sin\phi$")

    plt.title(splt_title, fontsize=80)
    ax.set_axis_off()
    return


mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r'\usepackage{{amsmath}}'
mpl.rcParams['font.size'] = 40
fig = plt.figure(figsize=(16, 16))

DrawSubplot()

# plt.savefig('/content/drive/My Drive/pqc/0011_001.png')
plt.show()

解說:


-----

尤拉公式 - 維基百科,自由的百科全書

https://zh.wikipedia.org/zh-tw/%E6%AC%A7%E6%8B%89%E5%85%AC%E5%BC%8F


棣美弗定理與Euler 公式 - 中央研究院

https://web.math.sinica.edu.tw/math_media/d274/27401.pdf


毛起來說無限


毛起來說三角


毛起來說e

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

Python 量子運算(一0):投影

Python 量子運算(一0):投影

2022/12/06

-----


Fig. 10.1. Projection.

-----


-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

Python 量子運算(九):半角

Python 量子運算(九):半角

2022/12/05

-----


Fig. 9.1. Half angle.

-----

代碼 9.1


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Program 9.1:Half angle
import matplotlib as mpl
import matplotlib.pyplot as plt

# figure setting
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r'\usepackage{{amsmath}}'
mpl.rcParams['font.size'] = 80
fig, ax = plt.subplots(figsize=(16, 16))

# string setting
s1_1 = r'$\vert\psi\rangle$'
s1_2 = r'$=\cos\frac{\theta}{2}\ \vert0\rangle'\
       r'+e^{i\phi}\sin\frac{\theta}{2}\ \vert1\rangle$'

s2 = r'$=\begin{bmatrix}\cos\frac{\theta}{2}\\'\
     r'\ e^{i\phi}\sin\frac{\theta}{2}\ \end{bmatrix}$'

s3 = r'$(0\leq\theta\leq\pi,\ 0\leq\phi<2\pi)$'

# string output
ax.text(0.10, 0.75, s1_1)
ax.text(0.25, 0.75, s1_2)
ax.text(0.25, 0.45, s2)
ax.text(0.10, 0.15, s3)
ax.set_axis_off()

# plt.savefig('/content/drive/My Drive/pqc/0009_001.png')
plt.show()

解說:


-----

References


[1] 布洛赫球面 - 維基百科,自由的百科全書

https://zh.m.wikipedia.org/zh-tw/%E5%B8%83%E6%B4%9B%E8%B5%AB%E7%90%83%E9%9D%A2


[2] Quantum States And The Bloch Sphere | Quantum Untangled

https://medium.com/quantum-untangled/quantum-states-and-the-bloch-sphere-9f3c0c445ea3


[3] Introduction to quantum computing: Bloch sphere. — Anastasios Kyrillidis

http://akyrillidis.github.io/notes/quant_post_7

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

Python 量子運算(八):球面上的線性組合

Python 量子運算(八):球面上的線性組合

2022/11/26

-----


Fig. 8.1. Qubit psi.

-----

代碼 8.1


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Program 8.1:Qubit psi
import matplotlib as mpl
import matplotlib.pyplot as plt

# figure setting
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r'\usepackage{{amsmath}}'
mpl.rcParams['font.size'] = 80
fig, ax = plt.subplots(figsize=(16, 16))

# string setting
s1_1 = r'$\vert0\rangle\equiv\begin{bmatrix}1\\0\end{bmatrix},$'
s1_2 = r'$\vert1\rangle\equiv\begin{bmatrix}0\\1\end{bmatrix},$'
s2 = r'$\vert\psi\rangle=\alpha\vert0\rangle+\beta\vert1\rangle'\
     r'\equiv\begin{bmatrix}\alpha\\\beta\end{bmatrix},$'
s3 = r'$\vert\alpha\vert^2+\vert\beta\vert^2=1$.'

# string output
ax.text(0.10, 0.75, s1_1)  # equation 1
ax.text(0.50, 0.75, s1_2)
ax.text(0.10, 0.45, s2)    # equation 2
ax.text(0.10, 0.15, s3)    # equation 3
ax.set_axis_off()

# plt.savefig('/content/drive/My Drive/pqc/0008_001.png')
plt.show()

解說:


-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

Python 量子運算(七):球面上的量子位元

Python 量子運算(七):球面上的量子位元

2022/11/25

-----


Fig. 7.1. Qubit Psi on the Bloch sphere.

-----



-----

代碼 7.1


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Program 7.1:Quantum bit Psi
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

from qiskit.visualization import plot_bloch_vector

# figure setting
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r'\usepackage{{amsmath}}'
mpl.rcParams['font.size'] = 80
fig = plt.figure(figsize=(16, 16))
ax1 = fig.add_subplot(111, projection='3d')  # 3d subplot

# vector Psi setting
radius = 1
theta_max = np.pi / 6  # angle between Psi and z axis
phi_max = np.pi / 3    # angle between Psi and x axis
Psi_z = radius * np.cos(theta_max)
Psi_xy = radius * np.sin(theta_max)
Psi_x = Psi_xy * np.cos(phi_max)
Psi_y = Psi_xy * np.sin(phi_max)

# draw the Bloch sphere and vector Psi
plot_bloch_vector([Psi_x, Psi_y, Psi_z], ax=ax1)
# ax1.scatter(Psi_y, -Psi_x, 0)  # projection(Psi) on xy plane

# lables(standard)
ax1.text(0, -1.8, 0, r"$x$")
ax1.text(1.4, 0, 0, r"$y$")
ax1.text(0, 0, 1.4, r"$z$")
ax1.text(-0.4, 0, 1.2, r"$\vert0\rangle$")
ax1.text(0, 0, -1.8, r"$\vert1\rangle$")

# lables(Psi)
ax1.text(0.35, 0, 0.8, r"$\vert\Psi\rangle$")
ax1.text(0.05, 0, 0.4, r"$\theta$")
ax1.text(-0.1, 0, -0.45, r"$\phi$")

# projection lines(Psi): vertical and horozantal
ax1.plot([Psi_y, Psi_y], [-Psi_x, -Psi_x], zs=[0, Psi_z])  # vertical
ax1.plot([0, Psi_y], [0, -Psi_x], zs=[0, 0])               # horizontal

# curves: theta and phi
phi_offset = -np.pi / 2  # xy coordinate rotation from matplotlib to qiskit
curve_radius = 0.3
n = 20

c1 = np.linspace(0, theta_max, n)
x1 = curve_radius * np.sin(c1) * np.cos(phi_max+phi_offset)
y1 = curve_radius * np.sin(c1) * np.sin(phi_max+phi_offset)
z1 = curve_radius * np.cos(c1)
ax1.plot(x1, y1, z1, 'g', lw=2)  # curve theta

c2 = np.linspace(phi_offset, phi_max+phi_offset, n)
x2 = curve_radius * np.cos(c2)
y2 = curve_radius * np.sin(c2)
z2 = c2 * 0
ax1.plot(x2, y2, z2, 'r', lw=2)  # curve phi

# plt.savefig('/content/drive/My Drive/pqc/0007_001.png')

解說:


-----

References


# Bloch sphere

[1] Bloch sphere - Wikipedia

https://en.wikipedia.org/wiki/Bloch_sphere


# 3d line

[2] python - How can I make a simple 3D line with Matplotlib? - Stack Overflow

https://stackoverflow.com/questions/11541123/how-can-i-make-a-simple-3d-line-with-matplotlib


# 3d curve

[3] Depicting a helix

https://scipython.com/book/chapter-7-matplotlib/examples/depicting-a-helix/

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

Python 量子運算(六):角度與弧度

Python 量子運算(六):角度與弧度

2022/11/28

-----


Fig. 6.1. Degree and radian.

-----

代碼 6.1


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Program 6.1:Degree and radian
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


def DrawSubplot(N, i, j):
    splt_number = i * N + j + 1
    ax = plt.subplot(N, N, splt_number)

    # basic setting
    theta = np.linspace(0, 2*np.pi, 100)
    axis = np.linspace(-1, 1, 100)
    zero = axis * 0
    radius = 0.7
    x1 = radius*np.cos(theta)
    y1 = radius*np.sin(theta)

    # basic plotting
    ax.plot(axis, zero, 'k')  # y = 0(x_axis)
    ax.plot(zero, axis, 'k')  # x = 0(y_axis)
    ax.plot(x1, y1, 'k')      # cicle

    # vector setting
    coordinates = [0, 0]      # original point
    splt_radian = [10*(2*np.pi/360), np.pi/6, 1, np.pi/3]
    splt_title = [r"$10^{\circ}$", r"$30^{\circ}$", r"$1rad$", r"$60^{\circ}$"]
    splt_index = ['(a)', '(b)', '(c)', '(d)']

    # vector plotting
    vector_p = splt_radian[splt_number-1]
    vector = [radius*np.cos(vector_p), radius*np.sin(vector_p)]  # direction
    plt.quiver(coordinates[0], coordinates[1], vector[0], vector[1],
               scale=2, color='r')

    ax.set_aspect(1)  # height : width
    ax.set_axis_off()

    if splt_number == 2:
        ax.text(1.1, -0.15, r"$Z$")
        ax.text(0.1, 1, r"$X$")
        ax.text(0.35, 0.03, r"$\theta$", fontsize=40)
    elif splt_number == 4:
        ax.text(1.1, -0.15, r"$X$")
        ax.text(0.1, 1, r"$Y$")
        ax.text(0.2, 0.1, r"$\phi$", fontsize=40)
    else:
        ax.text(1.1, -0.15, r"$X$")
        ax.text(0.1, 1, r"$Y$")

    ax.text(radius+0.1, -0.15, r"$A$")
    ax.text(radius*np.cos(vector_p)+0.1, radius*np.sin(vector_p), r"$B$")

    plt.title(splt_title[splt_number-1], fontsize=80)
    ax.text(0.1, -1, splt_index[splt_number-1])
    return


mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r'\usepackage{{amsmath}}'
mpl.rcParams['font.size'] = 20
fig = plt.figure(figsize=(16, 16))

N = 2
for i in range(N):
    for j in range(N):
        DrawSubplot(N, i, j)

# plt.savefig('/content/drive/My Drive/pqc/0006_001.png')
plt.show()

解說:


-----

References


[1] 自定義View 基礎- 角度與弧度| Welcome to sunzn's Blog

https://www.sunzn.com/2017/08/21/%E8%87%AA%E5%AE%9A%E4%B9%89-View-%E5%9F%BA%E7%A1%80-%E8%A7%92%E5%BA%A6%E4%B8%8E%E5%BC%A7%E5%BA%A6/


[2] 如何在 Matplotlib 中繪製圓 | D棧 - Delft Stack

https://www.delftstack.com/zh-tw/howto/matplotlib/how-to-plot-a-circle-in-matplotlib/


[3] Matplotlib 中的箭袋圖 | D棧 - Delft Stack

https://www.delftstack.com/zh-tw/howto/matplotlib/create-quiver-diagram-in-matplotlib/


[4] Matplotlib 中的箭袋圖 - GeeksforGeeks

https://www.geeksforgeeks.org/quiver-plot-in-matplotlib/


[5] matplotlib.pyplot.quiver — Matplotlib 3.6.2 documentation

https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.quiver.html


[6] 在 Matplotlib 中新增子圖 | D棧 - Delft Stack

https://www.delftstack.com/zh-tw/howto/matplotlib/add-subplot-to-a-figure-matplotlib/


[7] 如何在 Matplotlib 中改變子圖的大小和間距 | D棧 - Delft Stack

https://www.delftstack.com/zh-tw/howto/matplotlib/how-to-improve-subplot-size-or-spacing-with-many-subplots-in-matplotlib/


[8] LaTeX angle symbols (degree, radian) - Rollpie

https://www.rollpie.com/post/475

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

Python 量子運算(五):布洛赫球面

 Python 量子運算(五):布洛赫球面

2022/11/14

-----


Fig. 5.1. The Bloch sphere.

-----

代碼 5.1


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# Program 5.1:Bloch sphere
import matplotlib as mpl
import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D
from qiskit.visualization import plot_bloch_vector

mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r'\usepackage{{amsmath}}'
mpl.rcParams['font.size'] = 80
fig = plt.figure(figsize=(16, 16))
ax1 = fig.add_subplot(111, projection='3d')

plot_bloch_vector([0, 0, 1], ax=ax1)
ax1.text(0, -1.8, 0, r"$x$")
ax1.text(1.4, 0, 0, r"$y$")
ax1.text(0, 0, 1.4, r"$\vert0\rangle$")
ax1.text(0, 0, -1.8, r"$\vert1\rangle$")

# plt.savefig('/content/drive/My Drive/pqc/0005_001.png')

解說:


-----

References


[1] qiskit.visualization.plot_bloch_vector — Qiskit 0.39.2 documentation

https://qiskit.org/documentation/stubs/qiskit.visualization.plot_bloch_vector.html


[2] 發現自然之美:諾貝爾物理獎1952 - 發現自然之美:諾貝爾物理獎 - 新聞訊息 - 物理雙月刊

https://pb.ps-taiwan.org/modules/news/article.php?storyid=571

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

Python 量子運算(四):北極與南極

Python 量子運算(四):北極與南極

2022/11/25

-----


Fig. 4.1. The North and South Poles.

-----

等號與全等有何不同

equiv

mapsto

-----

代碼 4.1


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# Program 4.1:The North and South Poles
import matplotlib as mpl
import matplotlib.pyplot as plt

mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r'\usepackage{{amsmath}}'
mpl.rcParams['font.size'] = 80

fig, ax = plt.subplots(figsize=(16, 16))
s1 = r'$\vert0\rangle\equiv\begin{bmatrix}1\\0\end{bmatrix}\mapsto(0,0,1)$'
s2 = r'$\vert1\rangle\equiv\begin{bmatrix}0\\1\end{bmatrix}\mapsto(0,0,-1)$'

ax.text(0.15, 0.65, s1)
ax.text(0.15, 0.30, s2)
ax.set_axis_off()
# plt.savefig('/content/drive/My Drive/pqc/0004_001.png')
plt.show()


解說:


-----

References


Write a long string on multiple lines in Python | note.nkmk.me

https://note.nkmk.me/en/python-long-string/

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

Python 量子運算(三):量子位元基底

Python 量子運算(三):量子位元基底

2022/11/22

-----


Fig. 3.1. Qubit.

-----

一、安裝 LaTex


!sudo apt-get update

!sudo apt-get install texlive-latex-recommended 

!sudo apt-get install dvipng texlive-latex-extra texlive-fonts-recommended  

!wget http://mirrors.ctan.org/macros/latex/contrib/type1cm.zip 

!unzip type1cm.zip -d /tmp/type1cm 

!cd /tmp/type1cm/type1cm/ && sudo latex type1cm.ins

!sudo mkdir /usr/share/texmf/tex/latex/type1cm 

!sudo cp /tmp/type1cm/type1cm/type1cm.sty /usr/share/texmf/tex/latex/type1cm 

!sudo texhash 

!apt install cm-super

」[1], [2]。


以上整合了參考文件的說明 [1], [2]。「sudo」是 Linux 作業系統的指令,用來取得較高的權限,以更動系統的部分設定 [3]。

比起「\rangle」等,較複雜的 LaTex 語法如「bmatrix」需要先在 Linux 中安裝 LaTex [1] - [4]。再於 Matplotlib 指定使用 LaTeX,以及使用 amsmath 此套件 [4]。

mpl.rcParams['text.usetex'] = True

mpl.rcParams['text.latex.preamble'] = r'\usepackage{{amsmath}}'

」[4]。

-----

代碼 3.1


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# Program 3.1:qubit(quantum bit)
import matplotlib as mpl
import matplotlib.pyplot as plt

mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r'\usepackage{{amsmath}}'
mpl.rcParams['font.size'] = 80

fig, ax = plt.subplots(figsize=(16, 16))

ax.text(0.35, 0.65, r"$\vert0\rangle\equiv\begin{bmatrix}1\\0\end{bmatrix}$")
ax.text(0.35, 0.30, r"$\vert1\rangle\equiv\begin{bmatrix}0\\1\end{bmatrix}$")
ax.set_axis_off()

# plt.savefig('/content/drive/My Drive/pqc/0003_001.png')
plt.show()

解說:


-----

References


# LaTex

[1] Latex + matplotlib + google colab – learnsharewithdp

https://learnsharewithdp.wordpress.com/2020/05/08/latex-matplotlib-google-colab/


[2] (29) Make Latex Work with Matplotlib on Google Colab - YouTube

https://www.youtube.com/watch?v=yySQ-6mh8yo


# sudo

[3] Linux 的 su 與 sudo 指令教學與範例 - G. T. Wang

https://blog.gtwang.org/linux/sudo-su-command-tutorial-examples/


# matrix

[4] python - How to render a latex matrix by using matplotlib - Stack Overflow

https://stackoverflow.com/questions/55427836/how-to-render-a-latex-matrix-by-using-matplotlib


# math equations

[5] Rendering math equations using TeX — Matplotlib 3.6.0 documentation

https://matplotlib.org/stable/gallery/text_labels_and_annotations/tex_demo.html


# quantum bit

[6] 量子電腦設計原理

https://blog.heron.me/quantum-computing-c7633efa9030


# mathtext(another system)

[7] Mathtext Examples — Matplotlib 3.4.3 documentation

https://matplotlib.org/3.4.3/gallery/text_labels_and_annotations/mathtext_examples.html

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----

Python 量子運算(一):量子電路

Python 量子運算(一):量子電路

2022/11/16

-----

Outline


一、進入 colab 

二、切換至英文介面

三、顯示行號

四、安裝 qiskit

五、維持好的 coding style

六、將 Python 代碼轉成 HTML

七、代碼 1.1

-----


Fig. 1.1. A quantum circuit.

-----

一、進入 colab


Colab 是 Google 提供的免費線上程式開發環境。大部分常使用的元件都已經安裝好,用網頁登入即可寫程式。

使用時可先以 Gmail 登入。再依此連結「https://colab.research.google.com/」,選擇右下角「新增筆記本」,或左方某 .ipynb 檔 [1]。

-----

二、切換至英文介面


「說明 -> 查看英文版本」。

-----

三、顯示行號


「Tools -> Settings -> Editor -> show line numbers」[2]。

-----

四、安裝 qiskit


左上角「+ Code」。

輸入以下兩行安裝指令「

!pip install qiskit

!pip install qiskit[visualization

]」[3]。

-----

五、維持好的 coding style


在 Colab 上使用 pylint 協助維持良好的 coding style [4] - [6]。


先依下列指令安裝「

!pip install pycodestyle pycodestyle_magic

!pip install flake8

%load_ext pycodestyle_magic

」[6]。

然後在你想要 lint 的任何單元格的頂部添加「

%%pycodestyle

」(注意:%%pycodestyle 後面不要跟註解的 # 連在一起)[6]。

若已遵循 Flake8 Rules 的 Best practice,卻出現「W391 blank line at end of file」的警告訊息,可忽略 [7]。

-----

六、將 Python 代碼轉成 HTML


可使用「Source code beautifier」 [8]。

-----

七、代碼 1.1


1
2
3
4
5
6
7
# Program 1.1:qubit(quantum bit) and cbit(classical bit)
from qiskit import QuantumCircuit

qc1 = QuantumCircuit(5, 4)
qc1.measure([0, 3, 4], [0, 2, 3])
# qc1.draw()
qc1.draw('mpl')


解說:


LINE 1 註解

LINE 2 匯入模組

LINE 3 空行

LINE 4 建立一個有 5 個量子位元與 4 個經典位元的量子電路 [9]。

LINE 5 建立量測量子位元與經典位元的關係,q0、q3、q4 對應 c0、c2、c3 [10]。中括號表示這是一個 Python 的 list(四種主要的 Python 資料型態分別是 list、tuple、set、dictionary) [11]。

LINE 6 繪圖(可比較與 LINE 7 的不同)。

LINE 7 繪圖(mpl 為 matplotlib 的縮寫) [12]。


若已啟用 google drive,則增修以下四行指令「

import matplotlib.pyplot as plt

fig, ax1 = plt.subplots(figsize=(16, 16))

qc1.draw('mpl', ax=ax1)

plt.savefig('/content/drive/My Drive/pqc/0001_001.png')

可以將輸出的圖形存檔,如 Fig. 1.1.。

-----

References


# colab

[1] Google Colab

https://colab.research.google.com/


# line numbers

[2] python - How to show line numbers in Google Colaboratory? - Stack Overflow

https://stackoverflow.com/questions/49182502/how-to-show-line-numbers-in-google-colaboratory


# qiskit

[3] 輕鬆學量子程式設計

https://staff.csie.ncu.edu.tw/jrjiang/qbook/


# coding style

[4] The ultimate Python style guidelines - Blog | luminousmen

https://luminousmen.com/post/the-ultimate-python-style-guidelines


# pylint

[5] Python coding style 1: 基本概念 & linter – ianlini

https://ianliniblog.wordpress.com/2017/05/03/python-coding-style-1-%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5-linter/


# colab pylint

[6] Is there a python style checker that works on notebooks in google colab? - Stack Overflow

https://stackoverflow.com/questions/62154714/is-there-a-python-style-checker-that-works-on-notebooks-in-google-colab


# blank line

[7] Blank line at end of file (W391)

https://www.flake8rules.com/rules/W391.html


# 代碼轉 HTML

[8] Source code beautifier / syntax highlighter – convert code snippets to HTML « hilite.me

http://hilite.me/


# QuantumCircuit

[9] QuantumCircuit — Qiskit 0.39.2 documentation

https://qiskit.org/documentation/stubs/qiskit.circuit.QuantumCircuit.html


# measure

[10] qiskit.circuit.QuantumCircuit.measure — Qiskit 0.39.2 documentation

https://qiskit.org/documentation/stubs/qiskit.circuit.QuantumCircuit.measure.html


# list

[11] Python Lists

https://www.w3schools.com/python/python_lists.asp


# draw

[12] qiskit.circuit.QuantumCircuit.draw — Qiskit 0.39.2 documentation

https://qiskit.org/documentation/stubs/qiskit.circuit.QuantumCircuit.draw.html


# 如書名所說,是本好書

[13] 博客來-必學!Python 資料科學‧機器學習最強套件:NumPy、Pandas、Matplotlib、OpenCV、scikit-learn、tf.Keras

https://www.books.com.tw/products/0010888154

-----

Python 量子運算(目錄)

https://mandhistory.blogspot.com/2022/01/quantum-computing.html

-----