Operasi PrepareUniformSuperposition

Peringatan

Dokumentasi ini mengacu pada QDK Klasik, yang telah digantikan oleh Modern QDK.

Silakan lihat https://aka.ms/qdk.api dokumentasi API untuk QDK Modern.

Namespace: Microsoft.Quantum.Preparation

Paket: Microsoft.Quantum.Standard

Membuat superposisi seragam atas status yang mengodekan 0 hingga nIndices - 1.

operation PrepareUniformSuperposition (nIndices : Int, indexRegister : Microsoft.Quantum.Arithmetic.LittleEndian) : Unit is Adj + Ctl

Deskripsi

Operasi ini dapat dijelaskan oleh matriks uniter $U$ yang membuat superposisi seragam atas semua status angka $0$ hingga $M-1$, mengingat status input $\ket{0\cdots 0}$. Dengan kata lain, $$ \begin{align} U \ket{0} = \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j}. \end{align} $$.

Input

nIndices : Int

Jumlah status yang diinginkan $M$ dalam superposisi seragam.

indexRegister : LittleEndian

Register qubit yang menyimpan status angka dalam LittleEndian format. Register ini harus dapat menyimpan angka $M-1$, dan diasumsikan diinisialisasi dalam status $\ket{0\cdots 0}$.

Output : Unit

Contoh

Contoh berikut menyiapkan status $\frac{1}{\sqrt{6}}\sum_{j=0}^{5}\ket{j}$ pada $3$ qubits.

let nIndices = 6;
using(indexRegister = Qubit[3]) {
    PrepareUniformSuperposition(nIndices, LittleEndian(indexRegister));
    // ...
}

Keterangan

Operasi ini berdampingan, tetapi mengharuskan yang indexRegister berada dalam superposisi seragam atas status dasar pertama nIndices dalam kasus itu.