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