HazırlaÜniformaSüperpozisyon işlemi

Tam ad: Std.StatePreparation.PrepareUniformSuperposition

operation PrepareUniformSuperposition(nStates : Int, qubits : Qubit[]) : Unit is Adj + Ctl

Özet

Little-endian yazmakta 0 ile nStates - 1 kadar olan tamsayıları temsil eden durumların tekdüze bir süperpozisyonunu qubits hazırlar.

Açıklama

$\ket{0\cdots 0}$ giriş durumu verildiğinde, bu işlem $0$ ile $M-1$ arasındaki tüm sayı durumlarının tekdüze bir süperpozisyonunu hazırlar. Başka bir deyişle, $$ \begin{align} \ket{0} \mapsto \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$

İşlem birleştirilebilir, ancak bu durumda kaydın qubits ilk nStates temel durumlar üzerinde tekdüze bir süperpozisyonda olmasını gerektirir.

Veri Girişi

nDevletler

Hazırlanacak tek tip süperpozisyondaki durum sayısı.

kayıt

Hazırlanan durumu depolamak için little-endian kübit kaydı. Sıfır durumunda $\ket{0\cdots 0}$ başlatıldığı varsayılır. Bu kayıt, $M-1$ sayısını depolayacak kadar uzun olmalıdır, yani $2^{Uzunluk(kübit)} >= M$.

Örnek

   use qs = Qubit[4];
   PrepareUniformSuperposition(3, qs);
   DumpRegister(qs); // The state is (|0000>+|0100>+|1000>)/√3
   ResetAll(qs);