前言
因為參加IBMQ challenge fall 2021
得到一個免費考Qiskit developer certification exam的機會
(手把手教你準備考試https://slides.com/javafxpert/prep-qiskit-dev-cert-exam#/10)
於是我決定來
認真按照順序看一下官方的教學
教學網址在這裡:
- 第0章-環境設定
https://learn.qiskit.org/course/ch-prerequisites/environment-setup-guide-to-work-with-qiskit-textbook - 第1章-量子位元(Qbit)和量子態(State)
https://learn.qiskit.org/course/ch-states/introduction
一些小筆記
如果之後比較有系統化再來認真整理
一開始的套件引用
from qiskit import QuantumCircuit, execute, Aer
# 也可以用 import *
# 直接引用所有function
from qiskit.visualization import plot_histogram
用QuantumCircuit()做一個量子電路!
qc_output = QuantumCircuit(8, 8)
# QuantumCircuit(量子位元數量, 傳統位元數量)
# 接下來量子位元都會寫成Qbit、傳統位元寫成Cbit
測量(measurement) = 輸出結果
qc_output.measure(0, 1)
# 你ㄉ電路名稱.measure(從第1個Qbit抓資料, 把資料丟到第2個Cbit)
# 要注意,跟陣列一樣,位置是從0開始編號
畫出你ㄉ電路!
qc_output.draw()

畫出結果的直方圖
counts = execute(qc,Aer.get_backend('qasm_simulator')).result().get_counts()
plot_histogram(counts)

*注意!
直方圖histogram 和 長條圖bar chart 是不一樣的東東
- 直方圖的橫軸資料是連續的(eg. 0~5歲、5~10歲)
- 長條圖的橫軸資料是不連續的(eg. 高雄、桃園、新北)
使用NOT gate(把0變成1、1變成0)
qc_encode = QuantumCircuit(n)
qc_encode.x(7) # 在q7上加x gate
使用CNOT gate(確保只有「1個」有資料的輸入)
*又稱Controlled-Not、XOR gate
| q0 | q1 | XOR outpute |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
qc_cnot = QuantumCircuit(2)
qc_cnot.cx(0,1) # 在q0、q1加上XOR gate