Operasi PrepareArbitraryStateD
Peringatan
Dokumentasi ini mengacu pada QDK Klasik, yang telah digantikan oleh Modern QDK.
Silakan lihat https://aka.ms/qdk.api dokumentasi API untuk QDK Modern.
Namespace: Microsoft.Quantum.Preparation
Paket: Microsoft.Quantum.Standard
Mengingat satu set koefisien dan register kuantum yang dikodekan little-endian, menyiapkan status pada register yang dijelaskan oleh koefisien yang diberikan.
operation PrepareArbitraryStateD (coefficients : Double[], qubits : Microsoft.Quantum.Arithmetic.LittleEndian) : Unit is Adj + Ctl
Deskripsi
Operasi ini menyiapkan status kuantum arbitrer $\ket{\psi}$ dengan koefisien positif $\alpha_j\ge 0$ dari status dasar komputasi $$-qubit $n $\ket{0...0}$.
Tindakan U pada status all-zeros diberikan oleh $$ \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{align} $$
Input
koefisien : Double[]
Array hingga $2^n$ koefisien nyata. Koefisien $j$th mengindeks status angka $\ket{j}$ yang dikodekan dalam format little-endian.
qubits : LittleEndian
Qubit mendaftarkan status nomor pengodean dalam format little-endian. Ini diharapkan diinisialisasi dalam status dasar komputasi $\ket{0...0}$.
Output : Unit
Contoh
Cuplikan berikut menyiapkan status kuantum $\ket{\psi}=\sqrt{1/8}\ket{0}+\sqrt{7/8}\ket{2}$ dalam register qubitsLE
qubit .
let amplitudes = [Sqrt(0.125), 0.0, Sqrt(0.875), 0.0];
use qubits = Qubit[2];
let qubitsLE = LittleEndian(qubits);
PrepareArbitraryStateD(amplitudes, qubitsLE);
Keterangan
Koefisien input negatif $\alpha_j < 0$ akan diperlakukan seolah-olah positif dengan nilai $|\alpha_j|$. coefficients
akan diisi dengan elemen $\alpha_j = 0,0$ jika kurang dari $2^n$ ditentukan.
Referensi
- Sintesis Sirkuit Logika Kuantum Vivek V. Shende, Stephen S. Bullock, Igor L. Markov https://arxiv.org/abs/quant-ph/0406176