量子ゲート 

数学知らない人も理解するの良いと思うから行列で表現するの好きじゃないけどまずやってみる

量子ゲートは
量子力学、
ユニタリ行列（ 複素正方行列 ＋ エルミート（随伴）転置 ＋ 可逆行列 ＋ 単位行列 ）
を計算するためいるようなものだ
#行列
##行列の使い
かけさん

条件：**左行列**の**横の長さ**×**右行列**の**縦の長さ**は**同じにする**
結果として、**横l×縦n**の行列が作られる
**SIZE(横l×縦m)×SIZE(横m×縦n)=SIZE(横l×縦n)**
縦計算(筆算、こんな感じの![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/9a6fd9d6-4ae6-f011-410a-5730ec678d72.png))
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/779d2b32-c7d1-527b-3d66-22a6f3904d8a.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/ca82d31b-28b2-99f2-42b9-0641021fb5d3.png)
１×１は自分１×0はゼロ**つまりPauli行列は行列で回転するってやつ**
#転置

ユニタリ行列
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/839e95f6-cde7-bebb-a262-c3d032694dc3.png)
U＝ユニタリ行列
U*＝Uの可逆行列であり、Uのエルミート転置
I＝単位行列

エルミート転置（もしくは**随伴行列**）とは
複素数成分を持つm×n 行列 A 。転置行列と複素共軛（実部はそのままで虚部の符号を反転する）する
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/2740a7ab-0aa6-ef9e-d0c0-e37b2214043c.png)
行列Aとその**転置行列**A*であるエルミート転置
　
転置行列
![image.png](https://upload.wikimedia.org/wikipedia/commons/e/e4/Matrix_transpose.gif)
まん中の中点で回転反転おｋ

　
それと
bitは１と０使うし結果も表紙するけど
Qubitは![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/78532fd8-74dc-402a-6a70-9c50e4e4e4fa.png)と![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/dab69c12-00ab-4e03-4911-a5d3e6314572.png)と![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/9dd46430-f7b4-a198-dcc6-c5d01ad68691.png)
と![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/ee30c758-b01d-9bb7-4361-e9d106b41272.png)と![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/7d7ad088-5364-de43-77bd-57be3ce494d9.png)と![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/7b3cf508-b9ff-1ad1-06a8-f273ff3d9abb.png)
などなどいて、使うし結果も表紙する
１縦だけど表現できる使える情報は使いによるが無限大（多分）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/83ca9463-b225-14e7-5baf-b121962e171a.png)
理解に良い感じに表現するとこんな形であろう
　
　
　　
　
　
　

**量子ビットは単位行列同時、ユニタリ行列だ**

　
　

#量子ゲート
普通のNOTとかORとか見たいに別になくても良いんだが、概念的になんかゲート作ったらしい
パソコンも１と０でなってるだけだがor,and,not(ゲート)を作ったことと似てるよなものだ
いずれせよ行列そのものを利用してね！（勉強してね!）とだろうと思うから、特に耳にしなくて良いゲートの話するね



ブロッホ球上
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/2af57397-1f77-7ca0-9411-3b4974698681.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/fd7238d9-2a51-eea0-70f2-654f3f6182fb.png)
変化なし（IDENTITY,イコール、同じ）
X＝![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/955c43db-97b5-7d50-ef9e-eb3c46cd7ab3.png)　　　　![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/1e9c6dea-427b-0898-8049-adfb5c952333.png)

計算
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/1e92bdbe-e055-0105-35c0-b3933960fd96.png)

Xゲート
ブロッホ球上の X 軸の回転できる
Y=![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/e3332418-5001-84fd-183c-bea0d0225335.png)
Yゲート
ブロッホ球上の Y 軸の回転できる
Z=![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/c621aa9e-5be9-0811-b8af-727f0f270478.png)
Zゲート
ブロッホ球上の Z 軸の回転できる
ここまではただのPauli matrices![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/e7b68160-dff2-f061-2bcd-876180a326ee.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/5b62244f-9ab7-90ca-26cb-d5de0a9c05dd.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/fed7f662-5033-f877-021f-5d64d6cddb31.png)


![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/1d7abdee-1b71-6707-1210-2592b0692161.png)
Hadamardゲート（Hadamardという人の名前から作った）
重ね合わせ状態を表現することができる
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/9e800371-a516-73cf-39a0-06365944183e.png)
####hadamardの意味
歴史的に普通のパソコンのhadamardゲートはFFTの元になる
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/80962b60-05f7-c156-d8fc-6f5dcd81843d.png)
ようするにこれが量子のもつれと似てるから量子hadamardゲートなどがhadamardゲートと呼ばれいるよになったわけだ。
色んな形で使える、量子本来確率という問題があってhadamardでFFTを変わりにすると問題になる。（やりにくい、例えばひたずら細かくすると成功率がひくくなる）


![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/12d7479f-f4e6-8338-9679-1b59b2b149ab.png)
Phase Shift（位相（Phase）偏移変調）ゲート
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/93eeaffb-3e68-3017-5c5d-3a0453ce7c7a.png)
位相移動

　
　
　
#量子ビット
**量子ビット**とは
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/78532fd8-74dc-402a-6a70-9c50e4e4e4fa.png)×![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/fd7238d9-2a51-eea0-70f2-654f3f6182fb.png)![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/7b3cf508-b9ff-1ad1-06a8-f273ff3d9abb.png)・・・![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/18f5977c-283b-3b22-1f6a-acc8b099e381.png)
=![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/78532fd8-74dc-402a-6a70-9c50e4e4e4fa.png)OR![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/dab69c12-00ab-4e03-4911-a5d3e6314572.png)
のｍ×１単位行列の
線形ベクトル(a,b)（ほかの表記ketbra＜a｜b＞）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/78532fd8-74dc-402a-6a70-9c50e4e4e4fa.png)＋![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/78532fd8-74dc-402a-6a70-9c50e4e4e4fa.png)＝![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/435ec979-4066-97dd-20b0-dc4338268f6f.png)
OR・・・
の集まりがqubit。
#ibm Q Experience
量子パソコンを今出来るよにするサイトの一つ

#qiskit
QISKITはIBMのQパソコンをスクリプトで使えるようにしたりするのを作ったりする

##言語（読まなくて良い）
https://qiskit.org/documentation/ja/_autodoc/qiskit.html
###主な、QISKit public functionality
###Submodules
**backends**	バックエンドを使用するためのユーティリティ。
**dagcircuit**	DAG回線用モジュールｎ
**extensions**	量子回路への拡張。
**mapper**	マッピングのためのUtils。
**qasm**	QASMのためのツール。
**unroll**	QASMとさまざまなバックエンドをアンロールします。
**wrapper**	簡略化されたQISKitの使用のためのヘルパーモジュール。
###Classes
**ClassicalRegister**	古典的なレジスタを実装する。
**CompositeGate**	コンポジットゲート、ユニタリゲートのシーケンス。
**Gate**	ユニタリーゲート。
**Instruction**	一般的な量子コンピュータ命令。
**InstructionSet**	命令のコレクション。
**Measure**	計算ベースの量子測定。
**QuantumCircuit**	これまでの周り。
**QuantumJob**	量子回路ジョブを作成します。
**QuantumProgram**	量子プログラムクラス。
**QuantumRegister**	量子レジスタを実装する。
**Reset**	Qubitをリセットします。
**Result**	結果クラス。
###Exceptions
**QISKitError**	QISKit SDKによって生成されたエラーの基本クラス。
###Functions
**available_backends**	SDKで利用可能なバックエンドを返します。必要に応じてその機能に基づいてフィルタリングします。
**compile**	回路のリストをqobjにコンパイルします。
**execute**	一連の回路を実行します。
**get_backend**	その名前識別子からバックエンドオブジェクトのインスタンスを返します。
**load_qasm_file**	qasm表現（ファイル）から量子回路を構築する。
**load_qasm_string**	qasm表現（文字列）から量子回路を構築する。
**register**	オンラインバックエンドプロバイダに対して認証を行います。
##コミュー
公式ホーム
https://qiskit.org/
QISKit Algorithms and Circuits for QUantum Applications(QISKit ACQUA)
https://qiskit.org/acqua?language=ja (library github https://github.com/QISKit/qiskit-acqua)
github
https://github.com/QISKit
medium
https://medium.com/@qiskit
youtube
https://www.youtube.com/channel/UCPng8PUDVMAukVKeFppFMzw/featured
##binder
https://hub.mybinder.org
###binderってなに？jupyterをオンラインで使用できる
dockerが関係します
##binder qiskit 
https://mybinder.org/v2/gh/QISKit/qiskit-tutorial/master?filepath=index.ipynb

#最後に
結構面白いですね

#参考にすると良いと思われるもの
https://qiita.com/ogyogugige/items/11a7d04c746d02fa5122 量子コンピュータと量子計算のまとめ
tensor product![image.png](https://qiita-image-store.s3.amazonaws.com/0/258501/94d50fb3-d05e-50ce-fac8-3c973e9729f9.png)
https://ja.wikipedia.org/wiki/%E5%8D%98%E4%BD%8D%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB 単位ベクトル