Bagikan melalui


Operasi PreparePureStateD

Nama yang sepenuhnya memenuhi syarat: Std.StatePreparation.PreparePureStateD

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

Ringkasan

Mengingat satu set koefisien dan register kuantum big-endian, menyiapkan status pada register yang dijelaskan oleh koefisien yang diberikan.

Deskripsi

Operasi ini menyiapkan status kuantum arbitrer |ψ⟩ dengan koefisien aj dari status basis komputasi n-kubit |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} $$

Masukan

Koefisien

Array hingga 2ⁿ koefisien nyata. Koefisien j-th mengindeks status angka |j⟩ dikodekan dalam format big-endian.

qubit

Qubit mendaftarkan status nomor pengodean dalam format big-endian. Ini diharapkan diinisialisasi dalam status dasar komputasi |0...0⟩.

Komentar

coefficients akan dinormalisasi dan diisi dengan elemen aj = 0,0 jika kurang dari 2ⁿ ditentukan.

Contoh

Cuplikan berikut menyiapkan status kuantum |ψ⟩=√(1/8)|0⟩+√(7/8)|2⟩=√(1/8)|00⟩+√(7/8)|10⟩ di register qubit qubits.

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

Referensi

  • arXiv:quant-ph/0406176 "Sintesis Sirkuit Logika Kuantum", Vivek V. Shende, Stephen S. Bullock, Igor L. Markov

Lihat Juga

  • Std.StatePreparation.ApproximatelyPreparePureStateCP