Retourner au contenu associé (entrée de forum : fonction de hashage de chaine de characteres)
Posté par ecyrbe le 15 juin 2008 à 10:17. En réponse au message fonction de hashage de chaine de characteres. Évalué à 5.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# modulo
Posté par ecyrbe . En réponse au message fonction de hashage de chaine de characteres. Évalué à 5.
hash(a) ≡ a [2^N] (formule 1)
hash(b) ≡ b [2^N] (formule 2)
hors tu sais que :
ab = a*2^(8*taille_en_octets(b))+b (formule 3)
et si on note :
decal(b) = 2^(8*taille_en_octets(b))
la formule 3 se réecrit en :
ab = a*decal(b)+b (formule 4)
d'ou :
hash(ab) ≡ a*decal(b)+b [2^N] (formule 5)
rappelons que (théorème 1) :
si a1 ≡ b1 [n] et a2 ≡ b2 [n] => a1+a2 ≡ b1+b2 [n] et a1*a2 ≡ b1*b2 [n]
et posons alors :
hash(decal(b)) ≡ decal(b) [2^N] (formule 6)
ce qui donne en multipliant la formule 1 et 6 à l'aide du théorème 1 :
hash(a)*hash(decal(b)) ≡ a*decal(b) [2^N] (formule 7)
en recomposant la formule 7 avec la formule 2 on obtient alors :
hash(a)*hash(decal(b))+hash(b) ≡ a*decal(b)+b [2^N]
on reconnait dans la partie de droite la formule 5, on en déduit imédiatement que :
hash(ab) ≡ hash(a)*hash(decal(b))+hash(b) [2^N]
j'espère que ça pourrra t'aider!