--- layout: page title: MEASUREMENT (測定) 命令 description: 量子ビットから 0 または 1 を読み出す ---
MEASUREMENT (測定) 命令は量子ビットから 0 または 1 の値を読み出します。
たとえば以下のように量子ビット状態が {% include ket.html label="0" %} または {% include ket.html
label="1" %} の状態にある場合、測定するとそのまま同じ {% include ket.html label="0" %} と {%
include ket.html label="1" %} が返されます。
量子ビットが重ね合わせ状態にある場合、0 と 1 が出る確率は {% include
ket.html label="0" %} と {% include ket.html label="1" %} の確率 (青い円の面積 = 振幅の大きさの 2
乗) に応じて決まります。 つまり、測定の結果にはランダム性があります。
測定によって量子ビットの振幅の大きさと位相の情報は破壊されるので、MEASUREMENT 命令は WRITE 命令と同じく逆演算を持ちません。 また、位相と振幅の大きさは互いに独立したパラメータなので、位相の値は測定結果にまったく何の影響も及ぼしません。
MEASUREMENT 命令とこれまでに学んだ WRITE 命令、H
ゲートを組合わせることで、最初の量子アプリケーション「量子乱数ジェネレータ」を作ることができます。
WRITE で {% include ket.html label="0" %} に初期化した量子ビットを H
ゲートで重ね合わせ状態にし、MEASUREMENT 命令で測定することで 0 または
1 をランダムに得ることができます。
重ね合わせ状態を測定して得られる量子乱数は、従来のコンピュータで計算的に生成する疑似乱数と異なり、原理的にまったく予測できない完璧な乱数です。 単なる乱数生成と言ってもその用途は広く、セキュリティ分野での安全な暗号鍵の生成はもちろん、モンテカルロ法といった乱数を使ったアルゴリズムの速度や精度向上にもつながります。 実際に、量子乱数の生成はすでにサービス化もされています。