إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
اسم مؤهل بالكامل: Std.Canon.Relabel
operation Relabel(current : Qubit[], updated : Qubit[]) : Unit is Adj
ملخص
إعادة تسمية البتات الكمومية في صفيف current مع qubits في صفيف updated. يجب أن يكون الصفيف updated تباديل صالحا للصفيف current.
الادخال
حالي
صفيف من البتات الكمومية المراد إعادة تسميةها.
تحديث
صفيف qubits لإعادة تسمية صفيف current به.
ملاحظات
هذه العملية مفيدة عندما تحتاج إلى إعادة تسمية qubits بطريقة لا تتحمل أي عمليات كمومية.
لاحظ أنه عند التحويل البرمجي للتنفيذ على الأجهزة ذات اتصال qubit محدود، قد لا تؤدي هذه العملية إلى أي تغييرات في تجاور qubit وقد تظل هناك حاجة إلى بوابة SWAP واحدة أو أكثر.
مثل
يوضح المثال التالي كيفية إعادة تسمية qubits في سجل:
use qubits = Qubit[3];
let newOrder = [qubits[2], qubits[0], qubits[1]];
Relabel(qubits, newOrder);
بعد هذه العملية، سيشير أي استخدام qubits[0] إلى البت الكمومي الذي كان في الأصل qubits[2]، وما إلى ذلك.
لتبادل التسميات على اثنين من qubits، المكافئ الظاهري لبوابة SWAP، يمكنك استخدام التعليمات البرمجية التالية:
use (q0, q1) = (Qubit(), Qubit());
Relabel([q0, q1], [q1, q0]);
لاحظ أن ربط هذه العملية يغير ترتيب الوسيطات بشكل فعال، بحيث يكون Adjoint Relabel(qubits, newOrder) مكافئا Relabel(newOrder, qubits).