CompareUsingRippleCarry işlemi
Uyarı
Bu belge, Modern QDK ile değiştirilen Klasik QDK'yi ifade eder.
Lütfen Modern QDK için API belgelerine bakın https://aka.ms/qdk.api .
Ad Alanı: Microsoft.Quantum.Arithmetic
Paket: Microsoft.Quantum.Standard
Bu işlem, kubitlerin bir yazmaç tarafından temsil edilen bir tamsayının başka bir tamsayıdan büyük olup olmadığını test eder ve sonucun XOR değerini bir çıkış kubitine uygular.
operation CompareUsingRippleCarry (x : Microsoft.Quantum.Arithmetic.LittleEndian, y : Microsoft.Quantum.Arithmetic.LittleEndian, output : Qubit) : Unit is Adj + Ctl
Description
İki tamsayı x
y
verilip eşit boyutlu kubit kayıtlarında depolandığında, bu işlem bunların öğesini karşılayıp karşılamadıklarını x > y
denetler. Doğruysa, 1 bir çıkış kubitine XORed olarak eklenir. Aksi takdirde, 0 bir çıkış kubitine XORed olur.
Başka bir deyişle, bu işlem birim $$ \begin{align} U\ket{x}\ket{y}\ket{z} = \ket{x}\ket{y}\ket{z\oplus (x>y)} ile temsil edilebilir.
\end{align} $$
Giriş
x : LittleEndian
Bir kubit yazmaçta LittleEndian
biçimde depolanan karşılaştırılacak ilk sayı.
y : LittleEndian
Bir kubit yazmaçta LittleEndian
biçimde depolanacak ikinci sayı.
output : Qubit
Karşılaştırma sonucunu y$ $x>depolayan Qubit.
Çıkış : Birim
Başvurular
- Yeni kuantum dalga taşımalı ekleme devresi Steven A. Cuccaro, Thomas G. Draper, Samuel A. Kutin, David Petrie Moulton https://arxiv.org/abs/quant-ph/0410184