Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W pełni kwalifikowana nazwa: Std.StatePreparation.PrepareUniformSuperposition
operation PrepareUniformSuperposition(nStates : Int, qubits : Qubit[]) : Unit is Adj + Ctl
Podsumowanie
Przygotowuje jednolitą superpozycję stanów, które reprezentują liczby całkowite od 0 do nStates - 1 w rejestrze little-endian qubits .
Opis
Biorąc pod uwagę stan wejściowy $\ket{0\cdots 0}$, ta operacja przygotowuje jednolitą superpozycję wszystkich stanów liczbowych od $0$ do $M-1$. Innymi słowy, $$ \begin{align} \ket{0} \mapsto \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$
W tym przypadku operacja jest sprzężona, ale wymaga, aby qubits rejestr znajdował się w jednolitej superpozycji nad pierwszymi nStates stanami bazowymi.
Dane wejściowe
nStates (Stany Zjednoczone)
Liczba stanów w jednolitej superpozycji, która ma zostać przygotowana.
zarejestruj
Rejestr kubitu little-endian do przechowywania przygotowanego stanu. Zakłada się, że jest inicjowany w stanie zerowym $\ket{0\cdots 0}$. Rejestr ten musi być wystarczająco długi, aby przechowywać liczbę $M-1$, co oznacza, że $2^{Length(qubits)} >= M$.
Przykład
use qs = Qubit[4];
PrepareUniformSuperposition(3, qs);
DumpRegister(qs); // The state is (|0000>+|0100>+|1000>)/√3
ResetAll(qs);