Computer Chess Club Archives


Search

Terms

Messages

Subject: Questions about hash table implementation?

Author: Pham Minh Tri

Date: 05:03:51 05/22/01


Hi all,

I implemented my hash table by learning from some documents and old posts. It
was a mixture of 32 and 64 bit. It worked but was not good performance. I have
revised it and found some problems, as well as some misunderstands and lack of
knowledge. Now I want to rewrite it in 64 bit. My questions are:

1) It is necessary to have both hash key and hash signature 64 bit? Could one of
them be 32 bit?

2) How to generate a 64 bit random number? (I use ran()*ran(). Is it OK?).

3) Which set of random numbers is "bad" for chess? How to generate a "good" set
of random numbers? Is it necessary to filter (prune) some "bad" numbers?

4) To start, I usually use the command srand((unsigned)time(NULL)) - is it good
or dangerous? Should I use a "good" const?

5) How to map hash key into hash entries (which the number of hash entries is
not 2^N)? (I use the operation %, but wonder if there is a better way).

6) I use the operation addition for making new hash key. Certainly, it is slower
than XOR, but anything else? (I heard one time about it, but forgot).

7) How to measure the "collision" (I little confuse about the dividend)? And
other measurements?

Many thanks for any help and suggestion.
Pham



This page took 0.01 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.