量子コンピュータプログラミング(2)

前回につづいてQPU シミュレータ Qniをつかってプログラミングしてみます。

https://qniapp.github.io/qni/addition_circuit.html

今回は上記サイトの足し算回路について理解を深めてみます。
a = a + b という計算で、aは1と5の重ね合わせ状態、b=3、結果は4と8の重ね合わせ状態になります。


結果は52と56の重ね合わせ状態ですが、上位3ビットはbを表していますので無視(マイナス48(0110000))します。
これだけの説明ではわかりにくいので補足として下記のプログラムを動かしてみます。
まず桁繰り上がりでつかわれているCNOTですが、ここでは2ビットとも1の場合1となることを確認します。101が111になる。

次にb=3の部分の確認です。

最後に1と5の重ね合わせの部分です。

ちなみに1,3,5,7の重ね合わせ状態です。

このように分解して考えると理解が進みます。
結構このツール気にいっています。(このブログにもなじみが良いし・・)