Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How to create a set of random integers for hashing?

Author: José de Jesús García Ruvalcaba

Date: 16:10:27 10/19/98

Go up one level in this thread


On October 18, 1998 at 10:15:54, Ed Schröder wrote:

>>>Since ages I use the following formula for creating a set of random
>>>integers for hashing at program start:
>
>>>#define LENGTH 64*12
>>>int random [LENGTH];
>>>int a,b,c,d,x;
>
>>>srand(9);                    // initialize prime number
>
>>>for (x=0; x<LENGTGH; x++)
>>> { a=rand(); b=rand(); if (b & 1) a=a | 0x8000;
>>>   c=rand(); d=rand(); if (d & 1) c=c | 0x8000;
>>>   random[x]=(a<<16)+c;
>>> }
>
>>>I wonder how good such a system is and how others do it.
>
>>>- Ed -
>
>>>From the definition of LENGTH I guess these are piece-square tables you are
>>generating.
>
>Yes.
>
>>I do the same, but I generate 48-bit numbers (actually only 45-bit, because I
>>don't bother completing the MSbit), not 32-bit as you do. I think it's
>>generally acknowledged that 32-bit is not enough ?
>
>Let me give an example with a 32-bit hash-key:
>
>Total positions searched    : 1,386,498
>Hash errors                 :       453
>
>These 453 errors are discovered checking the positions when a hash hit occurs
>so they are 100% examples the hash algorithm fails. I find this number quite
>(much too) high.
>
>When I increase the number of bits to 40 or 48 the number of errors drops to
>(say) 200 / 150. Still much to high IMO.
>
>So my suspect goes to random generator.
>
>- Ed -
>
>
>>Amir

	The random number generators supplied by the compilers are usually not very
good.
	You might have already seen these books by Donald E. Knuth:
The art of computer programming, vol. 2: seminumerical algorithms. This volume
has a detailed exposition about "random numbers".
The art of computer programming, vol. 3: searching and sorting. This one
explains hash tables.
	Both are highly recommended.



This page took 0 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.