Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Nom complet : Std.StatePreparation.PrepareUniformSuperposition
operation PrepareUniformSuperposition(nStates : Int, qubits : Qubit[]) : Unit is Adj + Ctl
Résumé
Prépare une superposition uniforme d’états qui représentent des entiers de 0 à dans nStates - 1 un registre petit-boutiste qubits .
Descriptif
Étant donné un état d’entrée $\ket{0\cdots 0}$, cette opération prépare une superposition uniforme de tous les états numériques $0$ à $M-1$. En d’autres termes, $$ \begin{align} \ket{0} \mapsto \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$
L’opération est adjointable, mais exige que qubits le registre soit dans une superposition uniforme sur les premiers nStates états de base dans ce cas.
Entrée
nÉtats
Le nombre d’états dans la superposition uniforme à préparer.
registre
Le registre des qubits little-endian pour stocker l’état préparé. Il est supposé être initialisé dans l’état zéro $\ket{0\cdots 0}$. Ce registre doit être suffisamment long pour stocker le nombre $M-1$, ce qui signifie que $2^{Length(qubits)} >= M$.
Exemple :
use qs = Qubit[4];
PrepareUniformSuperposition(3, qs);
DumpRegister(qs); // The state is (|0000>+|0100>+|1000>)/√3
ResetAll(qs);