量子回路:量子加算機
ここでは実際にこれまでに構成してきたuniversalな素子を組み合わせてなにかつくってみましょう。計算機といえば、何はともあれまず足し算くらいできなくてはいけません。1ビットの数 a と b の足し算は一般的には2ビットで、それを(c1 c0)と書くと、c1 = a .and. b 、c0 = a .xor. bです。
まず、制御否定からという具合に状態の転写もできる事を見ておきます。
|
|
|
これを使えば、結果の下位キュビット c0 を作るための a、b のセットと、上位キュビット c1 を作るための a、b のセットとを別々に用意できます。上位ビットの方はCCNを使って .and. を作り、下位ビットはCNをそのまま使って .xor. でいいです。
わかりやすいように回路図を使って結果を書くと、次のような回路で足し算が実現できます。
この結果を拡張して、2つの n キュビットの足し算というのも簡単に作れそうですね。ためしに2キュビットの加算機の回路を自分で設計してみてください!
また、今の構成法は5つもキュビット使ってますが、冗長性(リダンダンシー)が多いのも事実で、簡略化して3キュビットでも加算機を作れます。これも良い練習になりますので読者自身で試してみてください。
|