
198
10
章 量子探索
// Use mirror to convert the flipped phase
boxes.Grover();
// Read and interpret the result!
!
var result = boxes.read();
var catA = result & 1 ? 'kitten' : 'tiger';
var catB = result & 2 ? 'kitten' : 'tiger';
qc.print('Box A contains a ' + catA + '\n');
qc.print('Box B contains a ' + catB + '\n');
例10-2で
QPU
プログラムを
1
回実行すると、なぞなぞを解くことができます。例 10-1と同様に、最
後の演算まで大きさを使った論理演算を行います。最後の部分では、位相論理演算を用います。
回路の出力は、子猫が欲しいなら、誕生日を迎えた王女が開けるべきなのは箱
B
であることを明確に
(そして
100 %
の確率で)示しています。例10-2の位相論理演算サブルーチンは、振幅増幅の反復の中
で
flip
の代わりになります。したがって、もともと例 6-1で定義されているように、
mirror
のサブルー
チンが反転操作の後に続きます。
6
章で議論したように、完全な振幅増幅の反復を行うのに必要な回数は、含まれるキュビットの数に
依存します。幸い、今