Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Fullständigt kvalificerat namn: Std.Canon.ApplyControlledOnBitString
operation ApplyControlledOnBitString<'T>(bits : Bool[], oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl
Sammanfattning
Tillämpar oracle på target när controlRegister är i det tillstånd som anges av bits.
Beskrivning
Utför en enhetlig åtgärd oracle på target, som styrs av ett tillstånd som anges av en viss bitmask bits.
Biten vid bits[i] motsvarar qubit vid controlRegister[i].
Mönstret som anges av bits kan vara kortare än controlRegister, och i så fall ignoreras ytterligare kontrollkvabitar (d.a.s. varken kontrolleras på |0⟩ eller |1⟩).
Om bits är längre än controlRegisterutlöses ett fel.
Inmatning
Bitar
Bitsträngen som ska styra den angivna enhetsåtgärden på.
orakel
Den enhetsåtgärd som ska tillämpas på målet.
mål
Målet som ska skickas till oracle som indata.
controlRegister
Ett kvantregister som styr tillämpningen av oracle.
Exempel
// 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.