Freigeben über


PreparePureStateD-Vorgang

Vollqualifizierter Name: Std.StatePreparation.PreparePureStateD

operation PreparePureStateD(coefficients : Double[], qubits : Qubit[]) : Unit is Adj + Ctl

Zusammenfassung

Bei einer Reihe von Koeffizienten und einem Big-End-Quantenregister wird ein Zustand auf diesem Register vorbereitet, das durch die angegebenen Koeffizienten beschrieben wird.

BESCHREIBUNG

Dieser Vorgang bereitet einen beliebigen Quantenzustand |ψ⟩ mit Koeffizienten aj aus dem n-Qubit-Berechnungszustand |0...0⟩ vor.

Die Aktion von U für den Zustand "Alle Nullen" wird durch $$ \begin{align} U \ket{0\cdots 0} = \ket{\psi} = \frac{\sum_{j=0}^{{2^n-1}\alpha_j \ket{j}}{\sqrt{\sum_{j=0}^{2^n-1}|\alpha_j|^2}}. \end{ausrichten} $$

Eingabe

Koeffizienten

Array von bis zu 2ⁿ Realkoeffizienten. Der j-th-Koeffizienten indiziert den Zahlenzustand |j⟩ im Big-End-Format codiert.

Qubits

Qubit registriert die Codierung von Zahlenzuständen in einem Big-Endian-Format. Dies wird voraussichtlich im Berechnungsbasiszustand |0...0⟩ initialisiert.

Bemerkungen

coefficients werden normalisiert und mit Elementen aufgefüllt aj = 0,0, wenn weniger als 2ⁿ angegeben sind.

Beispiel

Der folgende Codeausschnitt bereitet den Quantenzustand |ψ⟩=√(1/8)|0⟩+√(7/8)|2⟩=√(1/8)|00⟩+√(7/8)|10⟩ im Qubit-Register qubitsvor.

let amplitudes = [Sqrt(0.125), 0.0, Sqrt(0.875), 0.0];
use qubits = Qubit[2];
PreparePureStateD(amplitudes, qubits);

Referenzen

  • arXiv:quant-ph/0406176 "Synthese quantenlogischer Schaltkreise", Vivek V. Shende, Stephen S. Bullock, Igor L. Markov

Siehe auch

  • Std.StatePreparation.UngefährVorbereitenPureStateCP