Każda klasyczna jednobitowa funkcja gdzie x ∈ { 0 , 1 } n jest wejściem n -bitowym, a y ∈ { 0 , 1 } jest wyjściem n- bitowym, można zapisać jako obliczenie odwracalne,
f r : ( x , y ) ↦ ( x , y ⊕ f ( x ) )
(Zauważ, że dowolna funkcja mfa: x ↦ yx ∈ { 0 , 1 }nny∈ { 0 , 1 }n
far: ( x , y) ↦ ( x , y⊕ f( x ) )
mwyjścia można zapisać jako tylko
oddzielnych funkcji 1-bitowych.)
m
Bramka kwantowa realizująca to jest w zasadzie tylko bramką kwantową odpowiadającą ocenie funkcji odwracalnej. Jeśli po prostu wypiszesz tabelę prawdy funkcji, każdy wiersz odpowiada rzędowi macierzy jednolitej, a wynik mówi, która pozycja kolumny zawiera 1 (wszystkie inne pozycje zawierają 0).
W przypadku XNOR mamy standardową tabelę prawdy i odwracalną tabelę prawdy funkcji
x00011011f(x)1001(x,y)000001010011100101110111(x,y⊕f(x))001000010011100101111110
U=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜0100000010000000001000000001000000001000000001000000000100000010⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟.
f(x)f(x)
xa,ba∈{0,1}n−1b∈{0,1}af(a,b)b
f:(a,b)↦(a,f(a,b)).
ab00011011f(a,b)1001
a=01,0a=1ab00011011af(a,b)01001011
U=⎛⎝⎜⎜⎜0100100000100001⎞⎠⎟⎟⎟
cNOT⋅(1⊗X)