Freigeben über


ApplyControlledOnInt-Vorgang

Vollqualifizierter Name: Std.Canon.ApplyControlledOnInt

operation ApplyControlledOnInt<'T>(numberState : Int, oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl

Zusammenfassung

Wendet einen einheitlichen Vorgang auf das Ziel an, wenn der Registerstatus des Steuerelements einer angegebenen nichtnegativen ganzen Zahl entspricht.

Eingabe

AnzahlStaat

Eine nicht negative ganze Zahl, auf der der Vorgang oracle gesteuert werden soll.

Orakel

Eine einheitliche Operation, die kontrolliert werden soll.

Ziel

Ein Ziel, auf das oracleangewendet werden soll.

controlRegister

Ein Quantenregister, das die Anwendung von oraclesteuert.

Bemerkungen

Der Wert von numberState wird mit einer kleinen endischen Codierung interpretiert.

numberState muss höchstens $2^\texttt{Length(controlRegister)} - 1$sein. Beispielsweise bedeutet numberState = 537, dass oracle nur angewendet wird, wenn sich controlRegister im Zustand $\ket{537}$ befindet.