Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tam ad: Std.Canon.ApplyControlledOnBitString
operation ApplyControlledOnBitString<'T>(bits : Bool[], oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl
Özet
oracle
targettarafından belirtilen durumda olduğunda controlRegisterbits uygular.
Açıklama
belirli bir bit maskesi oracletarafından belirtilen bir durumda denetlenen targetbits bir birim işlem uygular.
bits[i]'daki bit, controlRegister[i]'daki kubite karşılık gelir.
bits tarafından verilen desen controlRegister'den kısa olabilir; bu durumda ek denetim kubitleri yoksayılır (yani, |0⟩ veya |1⟩ üzerinde denetlenemez).
bits
controlRegister'den uzunsa bir hata oluşur.
Girdi
Bit
Verilen birim işlemini denetlemek için bit dizesi.
Oracle
Hedefe uygulanacak birim işlemi.
hedef
Giriş olarak oracle geçirilecek hedef.
controlRegister (Kontrol Et)
oracleuygulamasını denetleen bir kuantum yazmaç.
Örnek
// 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.