Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.