Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: zobrist key table questions

Author: James Swafford

Date: 04:13:33 05/30/04

Go up one level in this thread


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 would definitely NOT assume you'd get the same 'random'
numbers between machines.  Different implementations of
the language may use entirely different formulas, resulting
in different results (even if you use the same seed).




>
>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



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.