量子コンピュータが話題ですね。量子アニーリングとか量子ゲートとか、全然わからないのですが、何となく文系の量子コンピューティングの本を読んで分かった気分になりました。
- 作者: 西森秀稔,大関真之
- 出版社/メーカー: 日経BP社
- 発売日: 2016/12/09
- メディア: 単行本
- この商品を含むブログ (5件) を見る
この本を手に取った一つの理由として、Microsoft の新言語 「Q#」を使ってみたかったから、というのがあります。 早速やってみよう。
Microsoft Visual Studio に Q#のSDKをインストール
以下のQiitaの記事の通りに進めると、簡単にインストールできる。おすすめ。
最近のGitHubは、Visual Studio向けにオープンすることもできるので非常に便利だ。
さっそく実行してみると、何となくうまく行った。成功だ。
さて肝心の内部動作だが、やはりQiitaのページがめっちゃ分かりやすい。
[https://qiita.com/pandaman64/items/60dee22452684f6780ca:embed:cite]
ふーん、この ”teleportation" というサンプルプログラムは、ある量子ビットから別の量子ビットに転送を行うプログラムらしい。 量子コンピューティングはビットの転送だけでもこんなに必要なのか?
operation Teleport(msg : Qubit, there : Qubit) : () { body { using (register = Qubit[1]) { // Ask for an auxillary qubit that we can use to prepare // for teleportation. let here = register[0]; // Create some entanglement that we can use to send our message. H(here); CNOT(here, there); // Move our message into the entangled pair. CNOT(msg, here); H(msg); // Measure out the entanglement. if (M(msg) == One) { Z(there); } if (M(here) == One) { X(there); } // Reset our "here" qubit before releasing it. Reset(here); }
なんで量子ビットの転送をするだけでこんなに必要なのかわからない。量子ビットの位相の概念(Z
操作?)もさっぱりだ。
ちゃんとした資料を読んでしっかり勉強したほうが良さそうだ。