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.