Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nome completo: Std.StatePreparation.PrepareUniformSuperposition
operation PrepareUniformSuperposition(nStates : Int, qubits : Qubit[]) : Unit is Adj + Ctl
Riassunto
Prepara una sovrapposizione uniforme di stati che rappresentano numeri interi da 0 a nStates - 1 in un registro little-endian qubits .
Descrizione
Dato uno stato di input $\ket{0\cdots 0}$, questa operazione prepara una sovrapposizione uniforme di tutti gli stati numerici da $0$ a $M-1$. In altre parole, $$ \begin{align} \ket{0} \mapsto \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$
L'operazione è aggregabile, ma richiede che qubits il registro sia in una sovrapposizione uniforme sui primi nStates stati di base in quel caso.
Inserimento
nStati
Il numero di stati nella sovrapposizione uniforme da preparare.
registro
Registro qubit little-endian per archiviare lo stato preparato. Si presume che sia inizializzato nello stato zero $\ket{0\cdots 0}$. Questo registro deve essere sufficientemente lungo da memorizzare il numero $M-1$, il che significa che $2^{Length(qubits)} >= M$.
Esempio
use qs = Qubit[4];
PrepareUniformSuperposition(3, qs);
DumpRegister(qs); // The state is (|0000>+|0100>+|1000>)/√3
ResetAll(qs);