2018年7月31日0件のコメントGMOアドマーケティング(株)のK.Aです。詳しい内容は、下記にリンクされている記事を参照して下さい。環境構築から始める無償の量子コンピューティングでは、今回はサンプルコードを元に、その内容を検証したい。サンプルコードを見るダウンロードしたサンプルでは、Q#(TeleportationSample.qs)で記述した量子プログラムをシミュレーションし、量子ビットにテレポートするようになっている。Q#(TeleportationSample.qs)を見てみることにする。Teleport5行目:関数の定義。Q#のoperationは同名の.NETクラスにコンパイルされ、RUNメソッドにシミュレータと引数を渡すことで実行できる。6行目:bodyに関数の内容を記述する。8行目:1キュービットの作成。この場合register[0]が生成される。逆に可変変数を定義する場合はmutableを使用する。ここでは、先ほど生成した1キュービットを不変変数hereに割り当てる。14,15行目:ここからが本番。1キュービット上における量子現象でHゲート(重ね合わせ(superposition))。)と量子ビットに量子ゲートを作用させる。H(msg)と量子ビットに量子ゲートを作用させる。22行目:ここは普通に条件分岐。M(msg)でmsgの値を測定し、値がOne(1)だったら引数thereに対しZゲートを作用させ位相反転(-1をかける)させる。hereを測定し、値がOneだったら引数thereに対しXゲートを作用させ値を反転させる。26行目:不変変数hereをリセット。