Heh you got me there. I guess I do it because there's not really any
drawback to it, better be safe than sorry, even if only every 10,000 years.
On 16/10/2015 15:21, Álvaro Begué wrote:
That sounds kind of obsessive. I think the probability of having a 0 or
repeated numbers in the table is about 3.18*10^-15 (someone else please
check my math). To generate some intuition for how small this number is, if
you did this a thousand times per second, the expected time to finding a
problematic table is about 10,000 years.
Álvaro.
On Fri, Oct 16, 2015 at 9:59 AM, Gonçalo Mendes Ferreira <go...@sapo.pt>
wrote:
I'm currently using random numbers ensuring they are not 0 or repeated in
the table, for obvious reasons. I suspect the next step for those
interested would be ensuring each bit has a similar ratio of occurrences,
or bruteforcing it.
On 16/10/2015 14:51, Álvaro Begué wrote:
Btw does anyone have a good initialization vector for the Zobrist table?
The obvious thing to try is random numbers. Another idea is turning your
Zobrist key into CRC64, which I think is what you get if you generate your
numbers like this:
#include <cstdio>
int main() {
unsigned long long const P = 0x42F0E1EBA9EA3693ull;
unsigned long long h = P;
for (int i = 0; i < 1000; ++i) { // Or as many as you need
std::printf("%016llx\n", h);
h = (h & 0x8000000000000000ull) ? (h << 1) ^ P : (h << 1);
}
}
Álvaro.
_______________________________________________
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go
_______________________________________________
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go
_______________________________________________
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go