Operasi MultiplyByModularInteger
Peringatan
Dokumentasi ini mengacu pada QDK Klasik, yang telah digantikan oleh QDK Modern.
Silakan lihat https://aka.ms/qdk.api dokumentasi API untuk QDK Modern.
Namespace: Microsoft.Quantum.Arithmetic
Paket: Microsoft.Quantum.Standard
Melakukan perkalian modular dengan konstanta bilangan bulat pada register qubit.
operation MultiplyByModularInteger (constMultiplier : Int, modulus : Int, multiplicand : Microsoft.Quantum.Arithmetic.LittleEndian) : Unit is Adj + Ctl
Deskripsi
Mari kita tunjukkan modulus
dengan $N$ dan constMultiplier
dengan $a$.
Kemudian operasi ini mengimplementasikan operasi unitaris yang ditentukan oleh peta berikut berdasarkan komputasi: $$ \begin{align} \ket{y} \mapsto \ket{(a \cdot y) \operatorname{mod} N} \end{align} $$ untuk semua $y$ antara $0$ dan $N - 1$.
Input
constMultiplier : Int
Konstanta di mana multiplicand sedang dikalikan. Harus ko-prime ke modulus.
modulus : Int
Operasi perkalian dilakukan modulo modulus
.
multiplicand : LittleEndian
Angka yang dikalikan dengan konstanta. Ini adalah array qubit yang mengodekan bilangan bulat dalam format little-endian.
Output : Unit
Keterangan
- Untuk diagram dan penjelasan sirkuit, lihat Gambar 7 di Halaman 8 arXiv:quant-ph/0205095v3
- Operasi ini sesuai dengan Uₐ di arXiv:quant-ph/0205095v3