Author: Ed Schröder
Date: 07:15:54 10/18/98
Go up one level in this thread
>>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
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.