تطبيق عمليةControlledOnBitString

اسم مؤهل بالكامل: Std.Canon.ApplyControlledOnBitString

operation ApplyControlledOnBitString<'T>(bits : Bool[], oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl

ملخص

ينطبق oracle على target عندما يكون controlRegister في الحالة المحددة بواسطة bits.

وصف

يطبق عملية وحدة oracle على target، يتم التحكم فيها على حالة محددة بواسطة قناع بت معين bits. البت في bits[i] يتوافق مع qubit في controlRegister[i]. قد يكون النمط الذي يقدمه bits أقصر من controlRegister، وفي هذه الحالة يتم تجاهل qubits تحكم إضافية (أي لا يتم التحكم في |0⟩ ولا |1⟩). إذا كان bits أطول من controlRegister، يتم رفع خطأ.

الادخال

بت

سلسلة البت للتحكم في العملية الوحدة المحددة.

اوراكل

العملية الموحدة التي سيتم تطبيقها على الهدف.

هدف

الهدف الذي سيتم تمريره إلى oracle كمدخل.

controlRegister

سجل كمومي يتحكم في تطبيق oracle.

مثل

// 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.