#はじめに
量子コンピュータを勉強するのに使った教材等の自分用メモです。
#量子コンピュータプログラムの基本
-
スーパーポジション(量子重ね合わせの状態)
→測定するまで0でもあり1でもある状態
→測定すると0または1に固定される -
量子のもつれ(entanglement/エンタングルメント)
→別名「双子の量子」
→2つペアのスーパーポジションの量子ビットのこと
→どちらかを測定すると片方も最初に測定した結果と同じ値になる -
ベル状態(Bell state)
→エンタングルメントになった状態のこと -
量子ゲート(Q#でのoperation)
→量子のベクトルを操作するオペレーターの名前
→Microsoft.Quantum.Primitive -
回転ゲート(X(), Y(), Z())
→X軸を回転させるオペレーター
→NOTと同じ -
Xゲート
→0と1を反転 -
Zゲート
→0か1はそのままで符号だけ反転 -
量子アダーマルゲート(H())
→Z軸とX軸の間の軸を中心に180度回転させるオペレーター
→0と1が等しいスーパーポジションになる -
制御NOTゲート(CNOT())
→2つの量子ビットを量子のもつれ(entanglement/エンタングルメント)の状態にする
→IBMではCX() -
CCNOTゲート(CCNOT())
→3つの量子を使うゲート -
量子の測定(M())
→量子は測定してみるまで0なのか1なのかはっきりしない
→0または1を使う場合は初期化が必要
#チュートリアル
はじめよう「Q#」で量子コンピューティング
Microsoft Quantum Development Kit Samples and Libraries
IBM Quantum Computing で計算してみよう
概念
ショアのアルゴリズム(素因数分解のアルゴリズム)
量子コンピュータで因数分解が高速に解ける?〜 ショアのアルゴリズム 〜
→量子コンピュータだけでは素因数分解ができないという解説がわかりやすい
#開発環境
- VisualStadio 20017
- Q#