Author: Uri Blass
Date: 07:47:17 05/30/04
Go up one level in this thread
On May 30, 2004 at 10:40:39, Uri Blass wrote: >On May 30, 2004 at 09:56:39, Tom Likens wrote: > >>On May 30, 2004 at 06:44:55, Uri Blass wrote: >> >>>I have the following function to initialize my random numbers >>> >>>typedef unsigned __int64 BitBoard; >>> >>>BitBoard rand64() >>>{ >>> __int64 r = rand(); >>> r ^= (__int64)rand() << 15; >>> r ^= (__int64)rand() << 30; >>> r ^= (__int64)rand() << 45; >>> r ^= (__int64)rand() << 60; >>> return r; >>>} >>> >>>void initializezobarray() >>>{ >>> //starting zobrist keys >>> char zobnum[128]; >>> int fil,i,j; >>> srand(0); >>> for (fil=0;fil<6;fil++) >>> for (i=0;i<2;i++) >>> for (j=0;j<64;j++) >>> zobrist[fil][i][j]=rand64(); >>> >>> >>>} >>> >>>My first question is if I can be sure that I will get the same random numbers in >>>every computer(I get the same in my computer but if I do not get the same in >>>every computer than I may consider to rewrite it because I plan to use hash keys >>>for my book and I do not want to have a problem that the program will not be >>>able to use my book in another computer). >>> >>>I also see that Crafty is using a table of random numbers from a book and does >>>not trust rand() >>> >>>My second question is if there is an advantage in doing it. >>> >>>Uri >> >>Hey Uri, >> >>The big advantage I've found from maintaining an internal table of random >>numbers is that I don't have to worry about the opening book (and now >>position and book learning) not working from compiler to compiler or even >>OS to OS. The program is able to read its opening book regardless if I'm >>running a Linux version, Windows version etc. It's just one less thing >>to worry about, which is always nice. >> >>And of course, if you want to start playing with the Hamming distance >>it's easy. Of course, there is no real consensus (as far as I can tell) >>on wheter numbers with a larger Hamming distance are better or not- so, >>as always you should experiment and see what works best for movei. >> >>regards, >>--tom > >I think to add a file so people will be able to change this random number but I >have now a second question how to get btboard from 2 32 bits integers correctly. > > >I have the following code when everything is unsigned. > >r1,r2 32 bits integers when r and zobrist[] 64 bit integers. > >r1=(unsigned)zobrist[fil][i][j]&4294967295; >r2=(unsigned)zobrist[fil][i][j]>>32; >r=r1 | (BitBoard) (r2<<32); > > >I do not understand why > >r!=zobrist[fil][i][j] > >4294957295 is exactly 2^32-1 > >r>>32 is sometimes 0 and sometimes 4294967295 > >Uri I changed to the code in crafty but it does not help much. r=r1 | (BitBoard) r2<<32 r>>32 is still sometimes 4294967295 Uri
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.