Delen via


VoorbereidenUniformSuperpositie-operatie

Volledig gekwalificeerde naam: Std.StatePreparation.PrepareUniformSuperposition

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

Samenvatting

Bereidt een uniforme superpositie voor van toestanden die gehele getallen 0 tot en met nStates - 1 vertegenwoordigen in een little-endian qubits register.

Beschrijving

Gegeven een invoertoestand $\ket{0\cdots 0}$ bereidt deze bewerking een uniforme superpositie voor van alle getaltoestanden $0$ tot $M-1$. Met andere woorden, $$ \begin{align} \ket{0} \mapsto \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$

De bewerking is adjointable, maar vereist dat qubits het register in dat geval in een uniforme superpositie staat ten opzichte van de eerste nStates basistoestanden.

Invoer

Verenigde Staten

Het aantal staten in de uniforme superpositie dat moet worden voorbereid.

registreren

De little-endian qubit registreert zich om de voorbereide toestand op te slaan. Er wordt aangenomen dat het is geïnitialiseerd in de nultoestand $\ket{0\cdots 0}$. Dit register moet lang genoeg zijn om het getal $M-1$ op te slaan, wat betekent dat $2^{Length(qubits)} >= M$.

Voorbeeld

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