問題タブ [quantum-computing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
quantum-computing - 3つのキュービットの結合された(おそらくエンタングルされた)状態の1つのキュービットに対するSゲートの効果
3 キュービットのレジスタ (qs) があるとします (最初の 2 つは制御のみに使用され、最後の 1 つは入力です)。最初の 2 つの制御量子ビットは|+>
状態にあり、3 番目の入力の状態は不明です。ましょうa|0> + b|1>
。
今、私は CCNOT(qs[0],qs[1],qs[2]) を適用するので、結合された状態0.5(a,b,a,b,a,b,b,a)
は転置行列形式になります [ここで間違っている場合は修正してください] 。次に、変換する 3 番目のキュービットに S-gate を適用します|1> -> i|1>
。
現在、「qs」の結合状態の状態を推測することはできません。
私が思ったこと:
- 1 つのロジックは
|XY1>
、結合された状態が0.5(a,ib,a,ib,a,ib,b,ia) [Transposed]
(I x I x S)
もう 1 つのロジックは、最初の 2 つのキュービットを変更していないため、テンソル積を見つけることです。0.5(a,b,a,b,ia,ib,ib,ia) [Transposed]
これを実行すると、 [繰り返しますが、間違っていたら訂正してください]という別の結果が得られます。
S-gate を通過した後の正しい出力はどれですか (ある場合)?
quantum-computing - Q# はどのようにして量子ビットの状態を破壊せずに読み取ることができますか?
最初の Q# コード例は、次のように記述されたメソッド "Set" を提供します(リンク) :
このメソッドは、量子ビットを目的の値に設定します。そうするために、キュービット値が測定され、値が予想と異なる場合、キュービット状態は「スワップ」されます。
しかし、量子物理学では、粒子を破壊せずに測定することはできません。これは、本「量子計算と量子情報」の引用です。
... 測定は、量子ビットの状態を変更し、|0> と |1> の重ね合わせから、測定結果と一致する特定の状態に折りたたみます。たとえば、|+> の測定値が 0 の場合、キュービットの測定後の状態は |0> になります。
ただし、Q# を使用すると、量子ビットを測定して、引き続き使用できます。
現実には不可能な操作を Q# 言語で実現できるのはなぜですか?
回答ありがとうございます。