Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Vollqualifizierter Name: Std.Canon.ApplyControlledOnBitString
operation ApplyControlledOnBitString<'T>(bits : Bool[], oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl
Zusammenfassung
Wendet oracle auf target an, wenn controlRegister sich im durch bitsangegebenen Zustand befindet.
Beschreibung
Wendet einen einheitlichen Vorgang oracle auf dem targetan, gesteuert auf einem Zustand, der durch eine bestimmte Bitmaske bitsangegeben wird.
Das Bit bei bits[i] entspricht qubit bei controlRegister[i].
Das von bits angegebene Muster kann kürzer als controlRegistersein, in diesem Fall werden zusätzliche Kontrollqubits ignoriert (d. a. weder auf |0⟩ noch |1⟩).
Wenn bits länger als controlRegisterist, wird ein Fehler ausgelöst.
Eingabe
Bits
Die Bitzeichenfolge zum Steuern des angegebenen Einheitsvorgangs.
Orakel
Der einheitliche Vorgang, der auf das Ziel angewendet werden soll.
Ziel
Das Ziel, das als Eingabe an oracle übergeben werden soll.
controlRegister
Ein Quantenregister, das die Anwendung von oraclesteuert.
Beispiel
// 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.