Bagikan melalui


Operasi ApplyControlledOnBitString

Nama yang sepenuhnya memenuhi syarat: Std.Canon.ApplyControlledOnBitString

operation ApplyControlledOnBitString<'T>(bits : Bool[], oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl

Ringkasan

Menerapkan oracle pada target ketika controlRegister berada dalam status yang ditentukan oleh bits.

Deskripsi

Menerapkan operasi uniter oracle pada target, dikontrol pada status yang ditentukan oleh masker bit tertentu bits. Bit pada bits[i] sesuai dengan qubit pada controlRegister[i]. Pola yang diberikan oleh bits mungkin lebih pendek dari controlRegister, dalam hal ini kubit kontrol tambahan diabaikan (yaitu, tidak dikontrol pada |0⟩ atau |1⟩). Jika bits lebih panjang dari controlRegister, kesalahan akan muncul.

Masukan

Bit

String bit untuk mengontrol operasi uniter yang diberikan.

Oracle

Operasi uniter yang akan diterapkan pada target.

Target

Target yang akan diteruskan ke oracle sebagai input.

kontrolDaftar

Register kuantum yang mengontrol aplikasi oracle.

Contoh

// When bits = [1,0,0] oracle is applied if and only if controlRegister
// is in the state |100⟩.
use t = Qubit();
use c = Qubit[3];
X(c[0]);
ApplyControlledOnBitString([true, false, false], X, c, t);
Message($"{M(t)}"); // Prints `One` since oracle `X` was applied.