はじめに
前回は1量子ビットの計算の概要を見ました。今回は2量子ビットを見てみます。
前回まで
「blueqat cloudで始める無料量子コンピュータプログラミング01(1量子ビットの計算)」
まずは手始めに簡単な回路
まずはblueqatを書き始めましょう。1行で読み込めます。次にcx回路を書いて、測定をして、実行をします。
from blueqat import Circuit
Circuit().cx[0,1].m[:].run(shots=1)
Counter({'00': 1})
これを実行すると、
Counter({'00': 1})
00という答えが出ました。CX回路は最初に指定したビットをコントロールビット、後に指定したビットをターゲットビットと呼び、コントロールビットが1の時に、CXの場合にはターゲットビットにXゲートを適用します。今回は初期化してそのままCXゲートを作用させました。0番目の量子ビットは0のままCXゲートを実行するとCXを行なっても何も起きません。
次に最初の量子ビットを1にしてからCXをやってみる
Circuit().x[0].cx[0,1].m[:].run(shots=1)
Counter({'11': 1})
結果として先ほどと異なる11が出ました。
Counter({'11': 1})
これは、最初の量子ビットを1にしてからCXを行うと、もう一つの量子ビットにXゲートが適用されて、0から1になりました。両方の量子ビットが1なので11がでます。
応用3量子ビット
3つ量子ビットがあった時はどうなるでしょうか?
Circuit(3).x[0].cx[0,1].m[:].run(shots=1)
Counter({'110': 1})
blueqatでは最初にCircuit()のなかに量子ビット数を指定することができます。その後回路を実行すると、、、
Counter({'110': 1})
このように最後の量子ビットは利用されず0のまま出てきました。
まとめ
今回は2量子ビットの回路を見てみました。CX回路の他に色々な回路がありますので、そのうち確認したいと思います。以上です。