24 Haziran 2013 Pazartesi

xor ile güzel şeyler

https://eksisozluk.com/xor--31896?p=2

x ^ y = z dogru ise, x, y ve z'nin her siralamasinda 1.si ^ 2.si = 3.su olur. yani:

y ^ x = z
x ^ z = y
z ^ x = y
y ^ z = x
z ^ y = x dir.

bunun nedeni x ^ y = z demenin aslinda x, y ve z'den cift sayida (0 yada 2) tanesi 1 demekle denk olmasidir. siralarini degistirseniz de kac tanesinin 1 oldugunu degistirmeyeceginiz icin her siralamada dogru olur.
bu sayede and ve or'un tersine, isleme sokulanlardan birini ve sonucu biliyorsaniz, diger elemanin ne oldugunu her durumda kesin olarak hesaplayabilirsiniz basitce.

hatta aslinda 3 elemanla kisitli degildir bu kural. yani istediginiz kadar eleman olsun,
x1 ^ x2 ^ ... ^ xn = x(n+1) ^ x(n+2) ^ ... ^ x(m) ise (0<=n<=m tabiki), m'den kucuk esit bir k sayisi secin, verilen denklemdeki x'lerden istediginiz k tanesini istediginiz sirada xor'layin, geri kalanlarin herhangi bir sirada xor'lanmasina esit olacaktir bu. denklemin herhangi bir tarafinda eleman yoksa o tarafi 0 olarak dusunmeniz gerekir.
bunun ispati da yuzeysel olarak su sekilde anlatilabilir: once x1 ^ x2 = x2 ^ x1 tespitinden yola cikarak herhangi n elemanin xor'lanma sirasinin aslinda sonucu degistirmedigi ispatlanir. sonra st'nin bana mesaj atarak belirttigi gibi:
(x1 ^ x2 ^ ...) ^ y = z ise, iki tarafi da y ile xor'layarak:
(x1 ^ x2 ^ ...) ^ (y ^ y) = z ^ y,
(x1 ^ x2 ^ ...) = z ^ y gorulur. bu demektir ki sirf xorlardan olusan bir denklemde esitligin herhangi bir tarafinda en son xorlanan degisken esitligin diger tarafina istenildigi gibi alinabilir. ayrica onceden ispatlandigi gibi xor'lamanin sirasi da farketmedigi icin her eleman istenilen tarafa, istenilen sirada yazilabilir.
aslinda muhtemelen bu ispat tumevarimla, sadece xor islemi kullanan tum denklemlerde cift sayida 1 olmasi gerektigi ve cift sayida 1 ve istenilen sayida 0'in xorlanmasi ile olusturulmus tum denklemlerin dogru oldugu gosterilerek cok daha temiz bir sekilde yapilabilir.

sonuc olarak boylelikle birlesme ozelligine apayri bir boyut kazandirir xor.
(bkz: baldan tatli)

Hiç yorum yok:

Yorum Gönder