Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Plně kvalifikovaný název: Std.StatePreparation.PrepareUniformSuperposition
operation PrepareUniformSuperposition(nStates : Int, qubits : Qubit[]) : Unit is Adj + Ctl
Shrnutí
Připraví jednotnou superpozici stavů, které reprezentují celá čísla 0 až nStates - 1
v registru little-endian qubits
.
Popis
Pro daný vstupní stav $\ket{0\cdots 0}$ tato operace připraví jednotnou superpozici všech číselných stavů $0$ na $M-1$. Jinými slovy, $$ \begin{align} \ket{0} \mapsto \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$
Operace je adjunktovatelná, ale vyžaduje, aby qubits
registr byl v jednotné superpozici nad prvními nStates
základními státy v takovém případě.
Vstup
nstavů
Počet stavů v jednotné superpozici, které mají být připraveny.
Registrace
Registr qubitů little-endian pro uložení připraveného stavu. Předpokládá se, že je inicializován v nulovém stavu $\ket{0\cdots 0}$. Tento registr musí být dostatečně dlouhý, aby bylo možné uložit číslo $M-1$, což znamená, že $2^{Length(qubits)} >= M$.
Příklad
use qs = Qubit[4];
PrepareUniformSuperposition(3, qs);
DumpRegister(qs); // The state is (|0000>+|0100>+|1000>)/√3
ResetAll(qs);