Operasi CompareUsingRippleCarry
Peringatan
Dokumentasi ini mengacu pada QDK Klasik, yang telah digantikan oleh Modern QDK.
Silakan lihat https://aka.ms/qdk.api dokumentasi API untuk QDK Modern.
Namespace: Microsoft.Quantum.Arithmetic
Paket: Microsoft.Quantum.Standard
Operasi ini menguji apakah bilangan bulat yang diwakili oleh daftar kubit lebih besar dari bilangan bulat lain, menerapkan XOR hasil ke kubit output.
operation CompareUsingRippleCarry (x : Microsoft.Quantum.Arithmetic.LittleEndian, y : Microsoft.Quantum.Arithmetic.LittleEndian, output : Qubit) : Unit is Adj + Ctl
Deskripsi
Mengingat dua bilangan x
bulat dan y
disimpan dalam register qubit ukuran yang sama, operasi ini memeriksa apakah mereka memenuhi x > y
. Jika true, 1 adalah XORed ke dalam qubit output. Jika tidak, 0 adalah XORed ke dalam qubit output.
Dengan kata lain, operasi ini dapat diwakili oleh unitary $$ \begin{align} U\ket{x}\ket{y}\ket{z} = \ket{x}\ket{y}\ket{z\oplus (x>y)}.
\end{align} $$
Input
x : LittleEndian
Angka pertama yang akan dibandingkan disimpan dalam LittleEndian
format dalam daftar qubit.
y : LittleEndian
Angka kedua yang akan dibandingkan disimpan dalam LittleEndian
format dalam daftar qubit.
output : Qubit
Qubit yang menyimpan hasil perbandingan $x>y$.
Output : Unit
Referensi
- Sirkuit tambahan quantum ripple-carry baru Steven A. Cuccaro, Thomas G. Draper, Samuel A. Kutin, David Petrie Moulton https://arxiv.org/abs/quant-ph/0410184