Neden varsayılan yolu karma birleştirmek için XOR mi?
H(A)
H(B)
ve bunları birleştirmek istiyorum iki sağlamalarının var. İki karma birleştirmek için iyi bir yol 3 ** onlara, örneğin XOR( H(A), H(B) )
için olduğunu okudum.
Bulduğum en iyi açıklama kısaca hash function guidelines Bu burada dokundu
Kabaca rastgele dağıtım ile yazılmış bir oyun programı iki sayı kabaca rastgele dağıtım hala başka bir dizi sonuç şimdi iki değerlere bağlı* ama.XOR hash fonksiyonları birleştiren varsayılan işlem için neden arkasında sezgi ve/veya matematik (yerine YA da vb.) açıklayabilir misiniz?
CEVAP
Tekdüze rasgele (1-bit) giriş VE çıkış fonksiyonu olasılık dağılım varsayarak 75% 0
25% 1
. Tersine, VEYA % 0
75% 1
.
XOR fonksiyonu uniform olasılık dağılımları birleştirmek için iyi, 50% 0
50% 1
, Bu nedenle.
Bu doğruluk tabloları yazmak suretiyle görülebilir:
a | b | a AND b
--- --- --------
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1
a | b | a OR b
--- --- --------
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1
a | b | a XOR b
--- --- --------
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0
Kaç adet 1-bit giriş a
b
mantıksal fonksiyonlar bu üniforma çıktı dağıtım var mı? egzersiz: Neden amacı söz konusu ifade için en uygun XOR mi?
Git bir şube birleştirmek için en iyi ...
Neden dize türü için varsayılan değer ...
Neden't bir yapı için varsayılan ...
Ruby bir karma için bir dizi dönüştürm...
Neden Yolu yok.Path ile başlayan düzgü...