Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Vollständig qualifizierter Name: Std.StatePreparation.PrepareUniformSuperposition
operation PrepareUniformSuperposition(nStates : Int, qubits : Qubit[]) : Unit is Adj + Ctl
Zusammenfassung
Bereitet eine einheitliche Überlagerung von Zuständen vor, die ganze Zahlen von 0 bis nStates - 1 in einem Little-Endian-Register qubits darstellen.
BESCHREIBUNG
Bei einem gegebenen Eingabezustand $\ket{0\cdots 0}$ bereitet diese Operation eine gleichmäßige Überlagerung aller Zahlenzustände $0$ auf $M-1$ vor. Mit anderen Worten, $$ \begin{align} \ket{0} \mapsto \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$
Die Operation ist adjungierbar, erfordert aber, dass qubits sich das Register in diesem Fall in einer einheitlichen Überlagerung über den ersten nStates Basiszuständen befindet.
Eingabe
nBundesstaaten
Die Anzahl der Zustände in der einheitlichen Überlagerung, die vorbereitet werden sollen.
registrieren
Das Little-Endian-Qubit-Register zum Speichern des vorbereiteten Zustands. Es wird davon ausgegangen, dass es im Nullzustand $\ket{0\cdots 0}$ initialisiert wird. Dieses Register muss lang genug sein, um die Zahl $M-1$ zu speichern, was bedeutet, dass $2^{Length(qubits)} >= M$ ist.
Beispiel
use qs = Qubit[4];
PrepareUniformSuperposition(3, qs);
DumpRegister(qs); // The state is (|0000>+|0100>+|1000>)/√3
ResetAll(qs);