HippopotameLe 10/11/2008 à 13:14
Donc l'idée est très proche de l'algorithme de Zobrist, on remplace juste XOR par OR et on met pas trop de bits pour que ça puisse marcher.
Bon par contre une différence c'est que Zobrist permet de hacher non seulement les chaînes, mais aussi la position globale du plateau.
Il suffit d'avoir deux fonctions f_noir et f_blanc et de faire le XOR des f_noir(i) pour toute pierre noire i et f_blanc(j) pour toute pierre blanche j.
On pourrait faire ça aussi avec Bloom, mais ça parait moins crédible, j'ai l'intuition qu'il faut vraiment augmenter m pour éviter les collisions/faux positifs. Ca vaut quand même le coup de lire l'étude théorique de wikipedo, ça serait grassouille de n'avoir à calculer qu'un hash au lieu de deux.
Un truc emmerdant, quand même, c'est de ne pas pouvoir simplement enlever d'élément. Ca interdit la mise à jour incrémentale du hash lors d'une capture de pierres (évènement rare, mais tout de même...)