Fungsi StatePreparationComplexCoefficients
Peringatan
Dokumentasi ini mengacu pada QDK Klasik, yang telah digantikan oleh QDK Modern.
Silakan lihat https://aka.ms/qdk.api dokumentasi API untuk QDK Modern.
Namespace: Microsoft.Quantum.Preparation
Paket: Microsoft.Quantum.Standard
Peringatan
StatePreparationComplexCoefficients tidak digunakan lagi. Silakan gunakan operasi PrepareArbitraryStateCP sebagai gantinya.
Mengembalikan operasi yang menyiapkan status kuantum tertentu.
Operasi yang dikembalikan $U$ menyiapkan status kuantum arbitrer $\ket{\psi}$ dengan koefisien kompleks $r_j e^{i t_j}$ dari status dasar komputasi $n$-qubit $\ket{0...0}$.
Tindakan U pada register yang baru dialokasikan diberikan oleh $$ \begin{align} U\ket{0...0}=\ket{\psi}=\frac{\sum_{j=0}^{2^n-1}r_j e^{i t_j}\ket{j}}{\sqrt{\sum_{j=0}^{2^n-1}|r_j|^2}}. \end{align} $$
function StatePreparationComplexCoefficients (coefficients : Microsoft.Quantum.Math.ComplexPolar[]) : (Microsoft.Quantum.Arithmetic.LittleEndian => Unit is Adj + Ctl)
Input
koefisien : ComplexPolar[]
Array koefisien kompleks hingga $2^n$ yang diwakili oleh nilai absolut dan fasenya $(r_j, t_j)$. Koefisien $j$th mengindeks status angka $\ket{j}$ yang dikodekan dalam format little-endian.
Output : LittleEndian =>Unit adalah Adj + Ctl
Operasi uniter persiapan status $U$.
Contoh
Cuplikan berikut menyiapkan status kuantum $\ket{\psi}=e^{i 0.1}\sqrt{1/8}\ket{0}+\sqrt{7/8}\ket{2}$ di register qubitsLE
qubit .
let amplitudes = [Sqrt(0.125), 0.0, Sqrt(0.875), 0.0];
let phases = [0.1, 0.0, 0.0, 0.0];
mutable complexNumbers = new ComplexPolar[4];
for (idx in 0..3) {
set complexNumbers[idx] = ComplexPolar(amplitudes[idx], phases[idx]);
}
let op = StatePreparationComplexCoefficients(complexNumbers);
using (qubits = Qubit[2]) {
let qubitsLE = LittleEndian(qubits);
op(qubitsLE);
}
Keterangan
Koefisien input negatif $r_j < 0$ akan diperlakukan seolah-olah positif dengan nilai $|r_j|$. coefficients
akan diisi dengan elemen $(r_j, t_j) = (0,0, 0,0)$ jika kurang dari $2^n$ ditentukan.