Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Volledig gekwalificeerde naam: Std.Canon.ApplyControlledOnBitString
operation ApplyControlledOnBitString<'T>(bits : Bool[], oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl
Samenvatting
Past oracle toe op target wanneer controlRegister de status heeft die is opgegeven door bits.
Beschrijving
Hiermee past u een eenheidsbewerking toe oracle op de target, die wordt beheerd op een toestand die is opgegeven door een bepaald bitmasker bits.
De bit op bits[i] komt overeen met qubit op controlRegister[i].
Het patroon dat door bits wordt gegeven, kan korter zijn dan controlRegister, in welk geval extra controle-qubits worden genegeerd (dat wil gezegd, noch beheerd op |0⟩ noch |1⟩).
Als bits langer is dan controlRegister, wordt er een fout gegenereerd.
Invoer
stukjes
De bittekenreeks waarop de opgegeven eenheidsbewerking moet worden bepaald.
orakel
De eenheidsbewerking die moet worden toegepast op het doel.
doel
Het doel dat moet worden doorgegeven aan oracle als invoer.
controleRegistreren
Een kwantumregister waarmee de toepassing van oraclewordt gecontroleerd.
Voorbeeld
// 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.