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

Reply via email to