Siapkan SeragamOperasi Superposisi

Nama yang memenuhi syarat penuh: Std.StatePreparation.PrepareUniformSuperposition

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

Ringkasan

Menyiapkan superposisi seragam dari keadaan yang mewakili bilangan bulat 0 melalui nStates - 1 dalam register little-endian qubits .

Deskripsi

Mengingat status input $\ket{0\cdots 0}$, operasi ini menyiapkan superposisi seragam dari semua status bilangan $0$ hingga $M-1$. Dengan kata lain, $$ \begin{align} \ket \mapsto{0} \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$

Operasi ini dapat digabungkan, tetapi mengharuskan register berada qubits dalam superposisi yang seragam di atas keadaan dasar pertama nStates dalam kasus itu.

Masukan

nNegara bagian

Jumlah negara bagian dalam superposisi seragam yang harus disiapkan.

Daftar

Daftar qubit little-endian untuk menyimpan keadaan yang disiapkan. Ini diasumsikan diinisialisasi dalam keadaan nol $\ket{0\cdots 0}$. Register ini harus cukup panjang untuk menyimpan angka $M-1$, yang berarti bahwa $2^{Length(qubits)} >= M$.

Contoh

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