---
title: 量子計算の基礎
tags:  #量子計算  
author: [藤田 一寿](https://convert.docswell.com/user/k_fujita)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/P7XD2G4XJX.jpg?width=480
description: 量子計算の基礎の資料です．量子計算を始めてみたついでに作った資料になります．
published: August 21, 22
canonical: https://convert.docswell.com/s/k_fujita/ZPP92Z-2022-08-21-111132
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/P7XD2G4XJX.jpg)

量⼦計算の基礎
藤⽥ ⼀寿
Ver. 20240112


# Page. 2

![Page Image](https://bcdn.docswell.com/page/37KXM4Z9JD.jpg)

量⼦計算の基礎の基礎


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LJ35YLD975.jpg)

ビットと量⼦ビット
• 古典計算機ではビットを使い情報を表現する．
• 量⼦計算機では量⼦ビットを使い情報を表現する．
古典計算機
ビットは0か1の値
ビットの値は0か1のどちらかに決
まっている．
量⼦計算機
量⼦ビットは0か1の状態
量⼦ビットの状態は確率的に決まる．


# Page. 4

![Page Image](https://bcdn.docswell.com/page/8JDD5NP8JG.jpg)

量⼦計算
• 量⼦計算は，量⼦ビットの状態が現れる確率を観測し，その観測結果
を計算結果とする．
• 量⼦ビットの状態は量⼦⼒学に基づき決定される．
• ⽬的の計算を⾏うための量⼦⼒学的な回路を考えるのが量⼦計算であ
る．
𝑈!&quot; (𝑥)
量⼦ビット
𝑈(𝜃)
量⼦⼒学的な回路
量⼦ビットの状態を観測


# Page. 5

![Page Image](https://bcdn.docswell.com/page/VEPXG5NWJ8.jpg)

量⼦計算の理解するための
量⼦⼒学


# Page. 6

![Page Image](https://bcdn.docswell.com/page/27VL6PK9EQ.jpg)

物質波
• ド・ブロイの物質波
• 物質は波らしい？
• 電⼦の2重スリット実験
• 電⼦を2重スリット越しのスクリーンに当てる．
• スクリーンには⼲渉縞が現れる．
• 電⼦に波動性があることが分かる．
電⼦銃
スクリーン
原康夫 現代物理学


# Page. 7

![Page Image](https://bcdn.docswell.com/page/5JGXNPQ47L.jpg)

波動関数と確率
• 物質は波らしいから，シュレディンガー⽅程式とか⾔う波の⽅程式で
書けるようだ．
• 時間に依存しないシュレディンガー⽅程式は
• 𝐻𝜓 𝑥 = 𝐸𝜓(𝑥)
• 何故かわからないが波動関数 𝜓 𝑥 の２乗が物質の存在確率を表す．
• コペンハーゲン解釈
• 波動関数の２乗が存在確率を表すので，全領域で積分すると1になる．
• ∫ 𝜓 ∗ 𝑥 𝜓 𝑥 𝑑𝑥 = 1
𝜓 ∗ 𝑥 は複素共役
• シュレディンガー⽅程式を違う視点で⾒ると
• 𝐻𝜓 𝑥 = 𝐸𝜓(𝑥)
• 演算⼦×波動関数 = 固有値×波動関数と思える．
物質波やシュレディンガ
ー⽅程式，波動関数の解
釈が分からない．どう思
えばよいのか？


# Page. 8

![Page Image](https://bcdn.docswell.com/page/47Q8Q2KREP.jpg)

期待値
• 物質がどこにあるのかは確率で決まるらしい．
• しかし，物質がどのあたりにあるのか気になる．
• 期待値を求めればそれが分かる．
• 𝑥 = ∫ 𝑥𝑝 𝑥 𝑑𝑥 = ∫ 𝑥 𝜓 𝑥
! 𝑑𝑥
= ∫ 𝑥𝜓∗ 𝑥 𝜓 𝑥 𝑑𝑥


# Page. 9

![Page Image](https://bcdn.docswell.com/page/KE42NLPQ71.jpg)

量⼦⼒学
• よく分からないので，とにかく量⼦の状態は確率的に決まると思うこ
とにする．


# Page. 10

![Page Image](https://bcdn.docswell.com/page/L71M5L9LJG.jpg)

ブラケット


# Page. 11

![Page Image](https://bcdn.docswell.com/page/G7W35VQQ72.jpg)

ブラケット
• ∫ 𝜓∗ 𝑥 𝜓 𝑥 𝑑𝑥 = 𝜓 𝑥 𝜓 𝑥
=1
• と書くことにする．
• 𝜓 をブラベクトル， 𝜓 をケットベクトルという．
• 期待値は次のようにブラケットを⽤いて書ける．
• 𝑥 = ∫ 𝜓∗ 𝑥 𝑥𝜓 𝑥 𝑑𝑥 = 𝜓 𝑥 𝑥 𝜓 𝑥
ブラケットはDirac先⽣の贈り物
シュレディンガー⽅程式がブラケットにより抽象
化される．なぞのカッコに抽象化され，初学者の
私は困惑する．


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4JZVN4W373.jpg)

本当にブラケットがどうにも分からないのでいいかげんに納得する
𝜓 ∗ 𝑥 𝜓 𝑥 は連続の関数（確率密度関数）
なので，確率ではない．区間𝑥! （区間の幅
𝛿𝑥）に量⼦が存在する確率を求めるには，
𝜓 ∗ 𝑥! 𝜓 𝑥! 𝛿𝑥のように確率密度関数に区間
の幅をかけなければならない．
• ∫ 𝜓 ∗ 𝑥 𝜓 𝑥 𝑑𝑥 = 𝜓 𝑥 𝜓 𝑥 = 1
• 積分は難しいので，⾜し算で考える．
• ∑&quot; 𝜓 ∗ 𝑥&quot; 𝜓 𝑥&quot; 𝛿𝑥 = 𝛿𝑥 𝜓 ∗ 𝑥#
… 𝜓 ∗ 𝑥&quot;
… 𝜓 ∗ 𝑥$
𝜓 𝑥#
⋮
𝜓 𝑥&quot;
⋮
𝜓 𝑥$
𝑎#
⋮
∗
∗
𝑎&quot; = 𝑎#∗ 𝑎# + ⋯ + 𝑎&quot;∗ 𝑎&quot; + ⋯ + 𝑎$
𝑎#∗ … 𝑎&quot;∗ … 𝑎$
𝑎$ = 1
⋮
𝑎$
∗
• 𝑎 = 𝑎#∗ … 𝑎&quot;∗ … 𝑎$
， a = 𝑎# … 𝑎&quot; … 𝑎$ %
=
𝑎! = 𝛿𝑥𝜓(𝑥! )
= 𝑎! $ が場所𝑥! で観
測される(状態𝑖 である)確
率になる．
𝑎!∗ 𝑎!
• ブラは縦ベクトル，ケットはブラの転置⾏列で複素共役になる．これでなんとな
く，ブラとケットがベクトルであることに納得がいったと思いたい．


# Page. 13

![Page Image](https://bcdn.docswell.com/page/YE6583GZJV.jpg)

エルミート共役
• ケットベクトルが2次元だとすると，演算⼦Aは2×2の⾏列である．
𝑎 𝑏 𝑥
•𝐴𝜓 =
𝑐 𝑑 𝑦
• 𝐴のエルミート共役は
•
•
•
•
•
•
#
𝑎
𝑏
𝑎∗ 𝑐 ∗
#
𝐴 =
=
= ∗
𝑐 𝑑
𝑏 𝑑∗
𝐴 = 𝐴#となる⾏列をエルミート⾏列と呼ぶ．
𝑎 𝑏
𝑎∗ 𝑐 ∗
エルミート⾏列の場合
= ∗
だから
∗
𝑐 𝑑
𝑏 𝑑
𝑎 = 𝑎∗ ，𝑏 = 𝑐 ∗ ，𝑐 = 𝑏∗ ，𝑑 = 𝑑∗ が成り⽴つので
エルミート⾏列𝐴は
𝑎 𝑏
𝐴= ∗
，ただし𝑎，𝑏は実数．
𝑏 𝑑
∗
$
𝐴
𝐴% はエーダガーと⾔う．


# Page. 14

![Page Image](https://bcdn.docswell.com/page/GE5Y9LV9E4.jpg)

ユニタリ⾏列
• ユニタリ⾏列𝑈は次の条件を満たすものを⾔う．
• 𝑈# = 𝑈%&amp;
• 𝑈#𝑈 = 𝐼，𝑈𝑈# = 𝐼


# Page. 15

![Page Image](https://bcdn.docswell.com/page/972G2L357R.jpg)

量⼦計算


# Page. 16

![Page Image](https://bcdn.docswell.com/page/DJYVYQ16JM.jpg)

量⼦計算の概要


# Page. 17

![Page Image](https://bcdn.docswell.com/page/V7NMPKQ1E8.jpg)

ビットと量⼦ビット
• 古典計算機ではビットを使い情報を表現する．
• 量⼦計算機では量⼦ビットを使い情報を表現する．
古典計算機
ビットは0か1の値
ビットの値は0か1のどちらかに決
まっている．
量⼦計算機
量⼦ビットは0か1の状態
量⼦ビットの状態は確率的に決まる．


# Page. 18

![Page Image](https://bcdn.docswell.com/page/YJ9N3VDYJ3.jpg)

量⼦計算
• 量⼦計算は，量⼦ビットの状態が現れる確率を観測し，その観測結果
を計算結果とする．
• 観測結果に計算結果が現れるようにユニタリ⾏列𝑈つくる．
• ユニタリ⾏列 𝑈 と等価な量⼦回路をつくる．
𝑈!&quot; (𝑥)
量⼦ビット
量⼦回路
𝑈(𝜃)
量⼦ビットの状態を観測
量⼦ビットが量⼦回路で状態が変わり，その状態を観測する．
観測結果に計算結果が乗っかる．


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GJ8KMP3KED.jpg)

古典計算機と量⼦計算機
• 古典計算機は，論理演算を⾏っている．
• 論理演算を組み合わせることで，様々な計算を実現している．
A
B
Y
&lt;latexit sha1_base64=&quot;l3lVn+LAtRu6tnDQ4Qhs9eYdxKQ=&quot;&gt;AAAB9HicbVBNSwMxEJ31s9avqkcvwSJ4Krsi6EWo9eKxgv2QdinZbLYNzSZrki2Upb/DiwdFvPpjvPlvTNs9aOuDgcd7M8zMCxLOtHHdb2dldW19Y7OwVdze2d3bLx0cNrVMFaENIrlU7QBrypmgDcMMp+1EURwHnLaC4e3Ub42o0kyKBzNOqB/jvmARI9hYyb9BXRJKg2roGj32SmW34s6AlomXkzLkqPdKX91QkjSmwhCOte54bmL8DCvDCKeTYjfVNMFkiPu0Y6nAMdV+Njt6gk6tEqJIKlvCoJn6eyLDsdbjOLCdMTYDvehNxf+8TmqiKz9jIkkNFWS+KEo5MhJNE0AhU5QYPrYEE8XsrYgMsMLE2JyKNgRv8eVl0jyveG7Fu78oV2t5HAU4hhM4Aw8uoQp3UIcGEHiCZ3iFN2fkvDjvzse8dcXJZ47gD5zPH3/0kJs=&lt;/latexit&gt;
AND回路(ゲート)
A
0
0
1
1
B
0
1
0
1
Y
0
0
0
1
• 量⼦計算機は，量⼦演算を⾏っている．
• 量⼦演算は量⼦ビットの状態を変化させる演算
• 量⼦演算を組み合わせることで様々な計算を実現できる．
• 量⼦演算でNAND回路が作れるため古典計算機で出来ることは，量⼦計算
を使うことで実現出来る．
• しても意味がない．
𝑈!&quot; (𝑥)
𝑈(𝜃)


# Page. 20

![Page Image](https://bcdn.docswell.com/page/LJLZ31VP7R.jpg)

電⼦の2重スリット実験を使った量⼦計算の直感的理解
• 電⼦の2重スリット実験
• 電⼦を2重スリット越しのスクリーンに当てる．
• スクリーンに⼲渉縞が現れる．
注：これはあくまでも量⼦計算の雰囲気
を伝えるための例え話．実際の量⼦計算
とは異なる！！
• ⼲渉縞を量⼦計算の計算結果と⾒なすと，⽬的の⼲渉縞が現れるよう
なスリットやスクリーンを考えることが量⼦回路を考えることに相当
するだろう．
2重スリット実験
縞模様（濃淡）が，
ある場所で電⼦が検
出される確率密度関
数（確率分布）にな
っている．
電⼦銃
スリット
スクリーン
確率分布に計算結果を
乗せるのが量⼦計算．
確率分布に計算結果が乗
るように，スリットやス
クリーンを考える作業が
必要．
量⼦回路
に対応


# Page. 21

![Page Image](https://bcdn.docswell.com/page/47MVDWG27W.jpg)

量⼦ビット


# Page. 22

![Page Image](https://bcdn.docswell.com/page/P7R24YZ5J9.jpg)

量⼦ビット
量⼦ビットの状態はケットベクトルで表される．
量⼦計算機
0状態
1状態
量⼦ビットは0か1の状態
量⼦ビットの状態は確率的に決まる．
1
0
0
1 =
1
0 =
量⼦ビット𝑞が 𝛼 ! の確率で0状態になり，
𝛽 ! で1状態になるとき
𝑞 =𝛼 0 +𝛽 1


# Page. 23

![Page Image](https://bcdn.docswell.com/page/PJXD2G9XEX.jpg)

量⼦ビット
• 古典計算ではビット（２進数）を使う．
• 量⼦計算では量⼦ビットを使う．
• 量⼦ビットは2つの状態のいずれかになる．
• ⼀つを0，もう⼀つを1で表す．
• 量⼦ビットの状態をケットベクトルと呼ばれる複素数ベクトルで表す
．
1
0
• 0 =
，1 =
0
1
0 と 1 は正規直交基底である．


# Page. 24

![Page Image](https://bcdn.docswell.com/page/3JKXM4P9ED.jpg)

重ね合わせ状態
0 と 1 は正規直交基底である．
• 古典ではビットは０か１の値しか取れない．
• 量⼦では量⼦ビットは０と１の状態を重ね合わせた状態になれる．
• 𝑞 =𝛼 0 +𝛽 1
• 式では０と１の状態の重ね合わせを和で表現する．
シュレディンガーの猫
1
0
放射線
量⼦ビットの状態は０かも
しれないし１かもしれない
猫は⽣きているか死んで
いる状態の重ね合わせ
放射線を検知
して毒が出る


# Page. 25

![Page Image](https://bcdn.docswell.com/page/LE35YLX9J5.jpg)

ケットベクトル
• ケットベクトルを転置して複素共役をとったものをブラベクトルとい
う．
• 𝑞 = 𝑞
#
= [𝛼 ∗ 𝛽∗ ]
• ケットベクトルとブラベクトルの積は
𝛼
∗
∗
• 𝑞 𝑞⟩ = 𝛼 𝛽 𝛽 = 𝛼 ! + 𝛽 !


# Page. 26

![Page Image](https://bcdn.docswell.com/page/8EDD5N28EG.jpg)

状態が出てくる確率との関係
• 量⼦ビットの状態を𝑞とすると，
𝛼
• 𝑞 =𝛼 0 +𝛽 1 = 𝛽
• と書ける．ただし， 𝛼と 𝛽は複素数で
• 𝛼
!
+ 𝛽
!
=1
• を満たす．


# Page. 27

![Page Image](https://bcdn.docswell.com/page/V7PXG51WE8.jpg)

確率との関係
• 波動関数との対応を思い出してみる．
• ∫ 𝑞∗ 𝑥 𝑞 𝑥 𝑑𝑥 → 𝑞 𝑞⟩
• 𝑞 𝑞⟩ = 𝛼
!
+ 𝛽
!
= 1は観測確率である．
• 上の式は量⼦ビットの状態の出現確率の総和なので1に規格化されてい
る．
• 状態0が出てくる確率はいくらか？
!
𝛼
• 𝑝(|0⟩) = | 0 𝑞 ! = 1 0 𝛽 = 𝛼 !


# Page. 28

![Page Image](https://bcdn.docswell.com/page/2JVL6PY97Q.jpg)

Bloch sphere
• 量⼦ビットの状態を次の式で表した．
• 𝑞 =𝛼 0 +𝛽 1
• この式では，𝛼と𝛽は複素数であった．𝛼と𝛽を実数に制限しそれらの相対的
な位相の後を追加して書き直すと次のようになる．
• 𝑞 = 𝛼 0 + 𝑒 &quot;# 𝛽 1
• また，正規化されている必要があるので
&quot;#
$
• 𝛼
$
+ 𝑒 𝛽
• 𝛼
$
+ 𝛽
$
= 1だから， 𝛼と𝛽を次のように置いて良い．
• 𝛼
$
+ 𝛽
$
= cos $ 𝜃/2 + sin$ 𝜃/2 = 1
= 𝛼
$
+ cos $ 𝜙 + sin$ 𝜙 𝛽
オイラーの公式
𝑒 !&quot; = cos 𝜙 + 𝑖 sin 𝜙
$
= 𝛼
$
+ 𝛽
$
=1
cos 𝜃
• よって， 𝑞 = cos 𝜃/2 0 + 𝑒 sin 𝜃/2 1 = &quot;#
と書ける．
𝑒 sin 𝜃
• ただし，0 ≤ 𝜃 ≤ 2𝜋, 0 ≤ 𝜙 ≤ 2𝜋
&quot;#


# Page. 29

![Page Image](https://bcdn.docswell.com/page/5EGXNP94JL.jpg)

Bloch sphere
• 𝑞 = cos 𝜃/2 0 + 𝑒 *+ sin 𝜃/2 1 と書けることを⽰した
• 次に，⟨𝑞 𝑞 = 1かどうか確かめる．
cos! 𝜃 /2 +
,
!
sin !
• ⟨𝑞 𝑞 =
cos 𝜙 + 𝑖 sin 𝜙 cos 𝜙 − 𝑖 sin 𝜙
cos! 𝜙 + sin! 𝜙 sin! 𝜃/2 = cos! 𝜃/2 + sin! 𝜃/2 = 1
= cos! 𝜃 /2 +


# Page. 30

![Page Image](https://bcdn.docswell.com/page/4JQ8Q2WR7P.jpg)

おまけ：波の式
• 1次元の波は𝑦 𝑥 = 𝐴 cos 𝑘𝑥 + 𝜃と書ける．
• オイラーの公式から複素数の振動は
• 𝐴𝑒 &quot;(0123) = 𝐴 cos 𝑘𝑥 + 𝜃 + 𝑖𝐴 sin(𝑘𝑥 + 𝜃)
• = 𝐴 cos 𝑘𝑥 + 𝜃 + 𝑖𝐴 cos(𝑘𝑥 + 𝜃
• つまり複素数の振動は位相が
5
− $)
ずれた2つの波の重なりである．
!
• これに𝑒 *+ をかけると，
• 𝐴𝑒 &quot;(0123) 𝑒 &quot;# = 𝐴𝑒 &quot;(01232#)
• なる．
• つまり， 𝑒 *+ かけると位相が𝜙ずれる．


# Page. 31

![Page Image](https://bcdn.docswell.com/page/K742NLKQJ1.jpg)

Bloch sphere
𝑧
• 量⼦ビットの状態を次の式で表した．
cos 𝜃/2
*+
• 𝑞 = cos 𝜃 /2 0 + 𝑒 sin 𝜃/2 1 = *+
𝑒 sin 𝜃/2
• この式から 𝑞 の振幅は3次元直交座標で表現できる．
𝜃
𝑦
𝜙
• 𝑥 = cos 𝜙 sin 𝜃 , 𝑦 = sin 𝜙 sin 𝜃 , 𝑧 = cos 𝜃
• 𝜙，𝜃で表される振幅は，⻑さ１の球上にある．
• この球をBloch sphere（ブロッホ球）という．
𝑥


# Page. 32

![Page Image](https://bcdn.docswell.com/page/LJ1M5LXLEG.jpg)

Bloch sphere おまけ
• 𝑞 =𝛼 0 +𝛽 1
• 𝛼, 𝛽は複素数で規格化されているから次のように書く．
• 𝑞 = 𝛼𝑒 &quot;## 0 + 𝛽𝑒 &quot;#$ 1
• この4変数はすべて実数である．さらに，
• 𝑞 = 𝑒 &quot;## 𝛼 0 + 𝛽𝑒 &quot;(#$%##) 1
• と書ける．さらに， 𝜃&#039; = 𝛿, (𝜃! −𝜃&#039; ) = 𝜙とすると
• 𝑞 = 𝑒 &quot;( 𝛼 0 + 𝛽𝑒 &quot;) 1
• となる． 𝛼 = cos 𝜃/2 , 𝛽 = sin 𝜃/2とおけば規格化条件を満たすので
• 𝑞 = 𝑒 &quot;( cos 𝜃/2 0 + 𝑒 &quot;) sin 𝜃/2 1
• と書ける． 𝑒 &quot;( は全体にかけてあるため，観測上区別できる変数は𝜃と𝜙のみである．よっ
て
• 𝑞 = cos 𝜃/2 0 + 𝑒 &quot;) sin 𝜃 /2 1
• と書いて良い．


# Page. 33

![Page Image](https://bcdn.docswell.com/page/GJW35VNQJ2.jpg)

シミュレーション
• 量⼦ビットを観測する．
• 初期状態を0にする．
• 操作をしていないので，観測では0の状態になる確率が1になる．
回路図


# Page. 34

![Page Image](https://bcdn.docswell.com/page/4EZVN433J3.jpg)

量⼦ゲート


# Page. 35

![Page Image](https://bcdn.docswell.com/page/Y76583XZEV.jpg)

量⼦ゲート
• 量⼦ビットの状態は量⼦ゲートにより変化する．
• 量⼦ビットに作⽤させる量⼦ゲートを組み合わせて，やりたい計算を
実現する．
0
量⼦ゲート
量⼦ビットの
初期状態
量⼦ゲート
を適⽤する
1
0
量⼦ビットの状
態が量⼦ゲート
により変わる


# Page. 36

![Page Image](https://bcdn.docswell.com/page/G75Y9LX974.jpg)

単⼀量⼦ビットゲード


# Page. 37

![Page Image](https://bcdn.docswell.com/page/9J2G2LX5JR.jpg)

Xゲート
•
•
•
•
0 1
𝑋=
= 0 1 + 1 0
1 0
このゲートを|0⟩に作⽤させると次のようになる．
0×1 + 1×0
0 1 1
0
𝑋0 =
=
=
1×1 + 0×0
1 0 0
1
つまり，Xゲートはx軸を中⼼にπ回転させる．
回路図
Xゲート
|0⟩
𝑋|0⟩


# Page. 38

![Page Image](https://bcdn.docswell.com/page/DEYVYQ86EM.jpg)

Xゲートの位相計算の詳細
cos 𝜃/2
sin 𝜃/2
𝑒 *+ sin 𝜃/2
0 1
*+
•𝑋𝑞 =
=
=𝑒
=
*+
%*+
1 0 𝑒 sin 𝜃/2
cos 𝜃/2
𝑒
cos 𝜃/2
cos ! − 𝜃/2
𝑒 *+ %*+
𝑒
sin ! − 𝜃/2
=
-%,
cos !
𝑒 *+
-%,
%*+
𝑒
sin !
• 𝜃 →𝜋−𝜃
• 𝜙 → −𝜙
y
z
𝜃
𝜙
𝜙
x
𝜃
y


# Page. 39

![Page Image](https://bcdn.docswell.com/page/VJNMPK9178.jpg)

Yゲート
•
•
•
•
0 −𝑖
𝑌=
= −𝑖 0 1 + 𝑖 1 0
𝑖 0
このゲートを|0⟩に作⽤させると次のようになる．
0×1 − 𝑖×0
0 −𝑖 1
0
𝑌0 =
=
=
𝑖×1 + 0×0
𝑖 0 0
𝑖
つまり，Yゲートはy軸を中⼼にπ回転させる．
Yゲート
|0⟩
𝑌|0⟩


# Page. 40

![Page Image](https://bcdn.docswell.com/page/YE9N3V2YE3.jpg)

Yゲートの位相計算の詳細
cos 𝜃/2
sin 𝜃 /2
0 −𝑖
*+
•𝑌𝑞 =
= 𝑖𝑒
=
*+
%*+
𝑖 0 𝑒 sin 𝜃/2
−𝑒
cos 𝜃/2
𝑖𝑒 *+
cos(𝜋/2 − 𝜃/2)
=
%*+
−𝑒 sin(𝜋/2 − 𝜃/2)
-%,
cos( ! )
𝑖𝑒 *+
-%,
*(-%+)
𝑒
sin( ! )
=
𝑒 !&quot; = cos 𝜙 + 𝑖 sin 𝜙
y
• 𝜃 →𝜋−𝜃
• 𝜙 →𝜋−𝜙
-%,
cos( ! )
𝑖𝑒 *+
-%,
*%*+
𝑒 𝑒 sin( ! )
𝜙
z
𝜃
𝜙
x
𝜃
y


# Page. 41

![Page Image](https://bcdn.docswell.com/page/GE8KMP5K7D.jpg)

アダマールゲート
•
•
•
•
•
1 1
𝐻=
1 −1
このゲートを|0⟩， 1 に作⽤させると次のようになる．
&amp; 1
&amp; 1×1 + 1×0
&amp; 1
&amp;
1 1
𝐻0 = !
= !
= !
= ! 0 + 1 = |+⟩
1 −1 0
1×1 − 1×0
1
&amp; 1
&amp; 1×− +1×1
&amp;
&amp;
1 0
1
𝐻1 = !
= !
= !
= ! 0 − 1 = −
1×0 − 1×1
1 −1 1
−1
アダマールゲートは重ね合わせ状態を作るために⽤いられる重要なゲ
ートである．
&amp;
!
Hゲート
|0⟩
𝐻|0⟩


# Page. 42

![Page Image](https://bcdn.docswell.com/page/LELZ31YPJR.jpg)

Zゲート
1 0
•𝑍=
= 0 0 − 1 1
0 −1
• このゲートを + =
&amp;
!
0 + 1 に作⽤させると次のようになる．
&amp; 1×1 + 0×1
&amp;
1 0 1
1
•𝑍+ =
= !
= !
0 −1 1
0×1 − 1×1
−1
• つまりZゲートはZ軸を中⼼にπ回転させる．
&amp;
!
Zゲート
|+⟩
𝑋|+⟩


# Page. 43

![Page Image](https://bcdn.docswell.com/page/4JMVDWN2JW.jpg)

Zゲートの位相計算の詳細
cos 𝜃/2
cos 𝜃/2
cos 𝜃/2
1 0
•𝑍𝑞 =
=
= *(-%+)
*+
*+
0 −1 𝑒 sin 𝜃/2
−𝑒 sin 𝜃/2
𝑒
sin 𝜃/2
•𝜃→𝜃
• 𝜙 →𝜋−𝜙
z
𝜙
𝜙
y


# Page. 44

![Page Image](https://bcdn.docswell.com/page/PJR24YD5E9.jpg)

Pゲート
1 0
•𝑃=
0 𝑒 *+
• PゲートはZ軸を中⼼に𝜙回転させる．
• このゲートを|+⟩に作⽤させると次のようになる．
&amp; 1
&amp;
&amp;
1×1 + 0×1
0 1
1
•𝑋+ = !
= !
= ! *+
*+
*+
1
𝑒
0 𝑒
0×1 + 𝑒 ×1
Pゲート
|+⟩
𝑃 𝜋/4 +


# Page. 45

![Page Image](https://bcdn.docswell.com/page/PEXD2G1X7X.jpg)

I，S，Tゲート
• Iゲート
1 0
0 1
• 何もしないゲート．単位⾏列になっている．
• 𝐼=
• Sゲート
• 𝑆=
1
0
%&amp;
$
，
𝑆!
，
𝑇!
=
1
0
%&amp;
&quot;$
0 𝑒
0 𝑒
• 𝜙 = 𝜋/2のPゲート
1 0 1 0
1 0
1 0
%&amp;
%&amp;
• 𝑆𝑆 𝑞 =
𝑞 =
𝑞
=
𝑞 =𝑍𝑞
#$
0
−1
0
𝑒
0 𝑒$ 0 𝑒$
• Tゲート
• 𝑇=
1
0
%&amp;
&#039;
=
0 𝑒
• 𝜙 = 𝜋/4のPゲート
• 𝑇𝑇𝑇𝑇 𝑞 = 𝑍 𝑞
1
0
0 𝑒
&quot;&#039;
%&amp;


# Page. 46

![Page Image](https://bcdn.docswell.com/page/3EKXM4297D.jpg)

⼀般的な 𝑈7 ゲート
• 𝑈5 𝜃, 𝜙, 𝜆 =
cos
,
!
,
*6
−𝑒 sin !
,
*67*+
𝑒
cos !
,
*+
𝑒 sin !
• 全てのゲートは 𝑈5 𝜃, 𝜙, 𝜆 で表すことができる．
• 𝑈5 𝜋/2, 𝜙, 𝜆 = 𝑈! =
&amp;
!
1
𝑒 *+
1 0
• 𝑈5 0,0, 𝜆 = 𝑈&amp; =
0 𝑒 *6
−𝑒 *6
𝑒 *67*+


# Page. 47

![Page Image](https://bcdn.docswell.com/page/L735YL49E5.jpg)

複数量⼦ビットとゲード


# Page. 48

![Page Image](https://bcdn.docswell.com/page/87DD5NQ87G.jpg)

2量⼦ビット
• 量⼦ビットを２つに増やすと，それぞれの量⼦ビットが０か１の状態
をとれるので，2! = 4状態表すことができる．
量⼦ビット𝑞!
0状態
1状態
1
0
0
1 =
1
0 =
量⼦ビット𝑞&#039;
0状態
1状態
1
0
0
1 =
1
0 =
量⼦ビット𝑞! 𝑞&#039;
00状態
01状態
10状態
11状態
00
01
10
11


# Page. 49

![Page Image](https://bcdn.docswell.com/page/VJPXG5LW78.jpg)

2量⼦ビットと⾏列
• 2量⼦ビット 𝑞!𝑞&amp; の状態はケットベクトルで次のように表される．
• 𝑞$𝑞6 = 𝑞$ ⊗ 𝑞6
• ⊗はテンソル積を表す．
1
1
• 例えば，𝑞! = 0 =
， 𝑞&amp; = 0 =
のとき
0
0
1
1
00状態 00
1×
0 = 0
01状態 01
• 0 ⊗ 0=
1
0
10状態 10
0×
0
11状態 11
0
対応関係
• となる．
• 上記のようにベクトルと量⼦ビットの状態が関係しており， 1, 0, 0, 0
なら量⼦ビットが00状態であることを意味する．
8


# Page. 50

![Page Image](https://bcdn.docswell.com/page/2EVL6PQ9JQ.jpg)

複数ビットの式
• 2つの量⼦ビットの状態を説明するには4つの複素振幅が必要である．
• よって量⼦ビットの状態は次のように書ける．
𝑞99
𝑞9&amp;
• 𝑞 = 𝑞99 00 + 𝑞9&amp; 01 + 𝑞&amp;9 10 + 𝑞&amp;&amp; 11 = 𝑞
&amp;9
𝑞&amp;&amp;
• 00が出る確率は
• 𝑝 00
= 00 𝑞
!
= 𝑞99
!
• さらに規格化条件が成り⽴つ．
• 𝑞99
!
+ 𝑞9&amp;
!
+ 𝑞&amp;9
!
+ 𝑞&amp;&amp;
!
=1


# Page. 51

![Page Image](https://bcdn.docswell.com/page/57GXNPW4EL.jpg)

2つの分離された量⼦ビットsの状態
• 2つの分離された量⼦ビットがある場合，2 量⼦ビットの状態は次のよ
うに書ける．
𝑎9
𝑏9
• 𝑎 = 𝑎 , 𝑏 =
𝑏&amp;
&amp;
𝑏9𝑎9
𝑎9
𝑏9× 𝑎
𝑏9𝑎&amp;
&amp;
• 𝑏𝑎 = 𝑏 ⨂ 𝑎 =
𝑎9 = 𝑏&amp;𝑎9
𝑏&amp;× 𝑎
テンソル積
&amp;
𝑏&amp;𝑎&amp;
• このように，複数ビットの状態は，各ビットの状態のテンソル積で計
算できる．


# Page. 52

![Page Image](https://bcdn.docswell.com/page/4EQ8Q23RJP.jpg)

複数の量⼦ビットとゲート


# Page. 53

![Page Image](https://bcdn.docswell.com/page/KJ42NL1QE1.jpg)

複数の量⼦ビットにアダマールゲートを作⽤させる
• 3つの量⼦ビット（状態は 0 ）にそれぞれアダマールゲートを作⽤させ
る．
&amp; 1
&amp; 1
1 1
• 𝑞9 = 𝐻 0 = !
= !
= |+⟩
1 −1 0
1
• 𝑞9 = + ， 𝑞&amp; = + ， 𝑞! = +
• 𝑞!𝑞&amp;𝑞9 = ++ +
𝑞$ 𝑞&amp; 𝑞&#039; = 𝑞$ ⊗ 𝑞&amp; ⊗ 𝑞&#039;
1 1
1
1
1
1
2 1
=
⊗ 𝑞$ =
⊗ 𝑞$
2 1
2 1 1
1
2 1
1 1
1
2 1
1
1 1
1
1 2 1
1 1
=
=
2 1 1
8 1
1
2 1
1
1 1
1
2 1


# Page. 54

![Page Image](https://bcdn.docswell.com/page/LE1M5LGL7G.jpg)

複数ビットとゲート
• 2つの量⼦ビットにそれぞれ，アダマールゲートとXゲートを作⽤させ
る．
• 𝑋 𝑞&amp; ⊗ 𝐻 𝑞9 = 𝑋 ⊗ 𝐻 𝑞&amp;𝑞9
0 1
• 𝑋⊗𝐻 =
⊗
1 0
&amp;
!
0 0
0 0
1 1
1 −1
&amp;
!
1 1
=
1 −1
1 1
1 −1
0
=
0 0
𝐻
0 0
𝐻
0
&amp;
!
0
1 1
1 −1
1 1
1 −1
0
=


# Page. 55

![Page Image](https://bcdn.docswell.com/page/GEW35VKQE2.jpg)

CNOTゲート


# Page. 56

![Page Image](https://bcdn.docswell.com/page/47ZVN4Z3E3.jpg)

CNOT（controled-NOT）ゲート
• 量⼦ビットが 0 と 1 の重ね合わせでない場合，右の真理値表で表すこ
とができる．
1 0 0
0 0 0
• CNOT =
0 0 1
0 1 0
𝑎99
𝑎9&amp;
• 𝑎 = 𝑎 , CNOT
&amp;9
𝑎&amp;&amp;
0
1
0
0
𝑎99
𝑎&amp;&amp;
𝑎 = 𝑎
&amp;9
𝑎9&amp;
回路図
1
0
⽂献やライブラリによっては，CNOT =
0
0
0
1
0
0
0
0
0
1
Input(t, c)
Output (t, c)
00
00
01
11
10
10
11
01
0
0
のときもある．その都度注意する必要がある．
1
0


# Page. 57

![Page Image](https://bcdn.docswell.com/page/YJ6583ZZ7V.jpg)

CNOTゲート：1つの量⼦ビットが 0 と 1 の重ね合わせの場合
• 1つの量⼦ビット𝑞7 を|+⟩状態にする．
• |+⟩ は重ね合わせ状態である．
• |0⟩ にアダマールゲートを作⽤させると重ね合わせ状態（ |+⟩ ）を作れる．
• もう１つの量⼦ビットを 0 状態にする．
• つまり，量⼦ビットは |0+⟩状態である．
1
𝑞 は0と決まっているが，𝑞 は|+⟩状態なの
6 1
6 1
1
• 0+ = 0 ⨂ + =
⊗
=
で，0と1が等確率で出る．
$
$
0
0
1
0
• これにCNOTゲートを作⽤させると次のようになる．
&amp;
• CNOT 0 + =
6
$
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
=
0
0
6
$
1
0
0
1
&#039;


# Page. 58

![Page Image](https://bcdn.docswell.com/page/GJ5Y9LW9J4.jpg)

CNOTゲート：1つの量⼦ビットが 0 と 1 の重ね合わせの場合
1
&amp; 0
• CNOT 0 + = !
なので，
0
1
• 00 と 11 状態が同じ確率で出現することが分かる．
• ⾯⽩いのは，⽚⽅の量⼦ビットを観測すると，必ずもう⽚⽅の量⼦ビ
ットも観測した量⼦ビットと同じ状態になるところである．
• CNOTゲートにより𝑞6も0か1の状態が等確率に⽣じるようになってしまっ
たが， 𝑞6，𝑞7のどちらかを観測すると，もう⽚⽅の量⼦ビットの状態が確
定する．
• この状態をもつれ状態という．


# Page. 59

![Page Image](https://bcdn.docswell.com/page/LE35YL42J5.jpg)

CNOTゲート：２つの量⼦ビットが 0 と 1 の重ね合わせの場合
• 2つの量⼦ビットにアダマールゲートを作⽤させ，更にCNOTゲートを
作⽤させる．
• 𝑞&amp;𝑞9 = 𝐻 0 ⊗ 𝐻 0 = 𝐻⊗! 00 = + +
1 0 0 0 1
&amp; 0 0 0 1 1
&amp;
• CNOT 𝑞&amp;𝑞9 = !
=!
0 0 1 0 1
0 1 0 0 1
• 全ての状態が等確率で⽣じる．
1
&amp;
1
= ! (|00⟩ + |01⟩ + |10⟩ + |11⟩)
1
1


# Page. 60

![Page Image](https://bcdn.docswell.com/page/8EDD5NQ6EG.jpg)

CNOTによる振幅のスワップ
• 2つの量⼦ビット𝑞9，𝑞&amp;があり，𝑞9にアダマールゲートを作⽤させ，𝑞&amp;
にXゲートとアダマールゲートを作⽤させる．
• 𝑞9 = 𝐻 0 = |+⟩
&amp; 1
1 1 0 1 1
1 0
• 𝑞&amp; = 𝐻𝑋 0 =
= !
= −
1 −1 1 0 0
1 −1 1
1
&amp;
&amp; 1
&amp; 1
&amp;
1
• −+ = !
⊗ !
=!
= ! 00 + 01 − 10 − 11
−1
1
−1
−1
&amp;
!


# Page. 61

![Page Image](https://bcdn.docswell.com/page/V7PXG5GZE8.jpg)

CNOTによる振幅のスワップ
• − + にCNOTゲートを作⽤させる．
1 0 0 0 1
&amp; 0 0 0 1
&amp;
1
• CNOT − + = !
=!
0 0 1 0 −1
0 1 0 0 −1
11 ) = | − −⟩
1
&amp;
−1
= ! ( 00 − 01 − 10 +
−1
1
• 𝑞&amp;には影響はないが，𝑞9の振幅がスワップされる．


# Page. 62

![Page Image](https://bcdn.docswell.com/page/2JVL6P6M7Q.jpg)

CNOTをアダマールゲートでラップする
• 両⽅の量⼦ビットにアダマールゲートを，次にCNOTゲートを，さらに
両⽅の量⼦ビットにアダマールゲートを作⽤させる．
1 1
1
1
&amp; 1 −1
1 −1
• 𝐻 ⊗ 𝐻 𝐶𝑁𝑂𝑇 𝐻 ⊗ 𝐻 = ;
1 1 −1 −1
1 −1 −1 1
4 0 0 0
1 0 0 0
&amp; 0 4 0 0
0 1 0 0
=
; 0 0 0 4
0 0 0 1
0 0 4 0
0 0 1 0
• これは逆の向きのCNOTゲートである。
1 1
1
1
1 −1 −1 1
=
1 1 −1 −1
1 −1 1 −1
=
• つまりCNOTゲートの⼊出⼒にアダマールゲートを作⽤させると向
きが逆になる。


# Page. 63

![Page Image](https://bcdn.docswell.com/page/5EGXNPNXJL.jpg)

CZゲート


# Page. 64

![Page Image](https://bcdn.docswell.com/page/4JQ8Q2Q57P.jpg)

CZゲート（Controled-Z）ゲート
• CZ（Controled-Z）ゲート
1 0 0 0
0 1 0 0
• 𝐶𝑍 =
0 0 1 0
0 0 0 −1


# Page. 65

![Page Image](https://bcdn.docswell.com/page/K742NLNVJ1.jpg)

CZゲート（Controled-Z）ゲート
• CZゲートは次の回路と等価である．
• 𝐶𝑍 = 𝐻 ⊗ 𝐼 𝐶𝑁𝑂𝑇 𝐻 ⊗ 𝐼 =
1 0 1
0 1 0 0
&amp; 0 1
0
1 0 0 0
! 1 0 −1
0 0 0 1
0 1 0 −1 0 1 0
1 0 1
0 1 0 1
0 1 0
1 0 1 0
1 0 −1 0 1 0 −1
0 1 0 −1 0 1 0
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 −1
0 1 0
1 0 1
0 1 0
0 0 1
0
&amp;
−1
=!
0
1
1
0
−1
0
2 0
0 2
0 0
0 0
0
1
0
−1
0
0
2
0
=
=
0
0
=
0
−2


# Page. 66

![Page Image](https://bcdn.docswell.com/page/LJ1M5L54EG.jpg)

SWAPゲート


# Page. 67

![Page Image](https://bcdn.docswell.com/page/GJW35V5ZJ2.jpg)

SWAPゲート
1
0
• 𝐶𝑁𝑂𝑇 𝑖𝑛𝑣𝑒𝑟𝑠𝑒 − 𝐶𝑁𝑂𝑇 =
0
0
• 例えば，𝑞7 が 0 状態， 𝑞6 が 1
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
状態とすると
0
1
0
0
0
0
0
1
0
1
0
0
=
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1 0 0 0 0
0
0 0 1 0 0
1
• 𝐶𝑁𝑂𝑇 𝑖𝑛𝑣𝑒𝑟𝑠𝑒 − 𝐶𝑁𝑂𝑇 10 =
=
= 01
0 0 0 1 1
0
0 1 0 0 0
0
• よって𝐶𝑁𝑂𝑇 𝑖𝑛𝑣𝑒𝑟𝑠𝑒 − 𝐶𝑁𝑂𝑇 は状態を⼊れ替えるSWAPゲートになってい
る．
=


# Page. 68

![Page Image](https://bcdn.docswell.com/page/4EZVN4NLJ3.jpg)

Toffoli（CCNOT）ゲート


# Page. 69

![Page Image](https://bcdn.docswell.com/page/Y765838MEV.jpg)

Toffoli（CCNOT）ゲート
• 次のようなゲートをToffoli（CCNOT）ゲートと呼ぶ．
1
0
⋱
0
8×8の⾏列，ほぼ対⾓⾏列だが，最後の２⾏が⼊れ替わっている．
• 𝐶𝐶𝑁𝑂𝑇 = 0
1 0
0
1
0
1 0


# Page. 70

![Page Image](https://bcdn.docswell.com/page/G75Y9L9Q74.jpg)

Toffoliゲート
• 3つの量⼦ビットにToffoliゲートを適⽤する．
• 𝐶𝐶𝑁𝑂𝑇 𝑞6𝑞$𝑞8
• 𝑞&amp;𝑞! を⼊⼒とし，𝑞5の初期状態を1に固定しゲートを作⽤させた後の出
⼒とみなすと， 𝐶𝐶𝑁𝑂𝑇 𝑞&amp;𝑞!𝑞5 はNANDとして動作する．
• 𝐶𝐶𝑁𝑂𝑇 001 = 001
• 𝐶𝐶𝑁𝑂𝑇 001 = |011⟩
• 𝐶𝐶𝑁𝑂𝑇 011 = |101⟩
• 𝐶𝐶𝑁𝑂𝑇 111 = |110⟩
NANDの真理値表
𝑞&amp; 𝑞$ 𝑞(
0 0 1
0 1 1
1 0 1
1 1 0
3ビットの全パターン
000
001
010
CCNOT回路
011
で最後の２つ
100
の状態（⻩⾊
101
と⽔⾊）が⼊
110
れ替わる．
111
• NANDが実現できれば古典計算機は理論上実現できるので，この例か
ら，量⼦ゲートで使い古典計算機を実現できること分かる．


# Page. 71

![Page Image](https://bcdn.docswell.com/page/9J2G2L2WJR.jpg)

まとめ


# Page. 72

![Page Image](https://bcdn.docswell.com/page/DEYVYQY9EM.jpg)

まとめ
• 量⼦計算では，量⼦ビットを使う．
• 量⼦ビットは，０か１かの状態を確率的にとる．
• 量⼦回路により量⼦ビットの状態を変えることが出来る．
• 量⼦ビットに計算結果をのせるように 量⼦回路を組み合わせる．
• 量⼦回路の使い⽅は，量⼦アルゴリズムを学び⾝につける．


