I stand corrected.

Arthur

----- Original Message -----
From: Álvaro Begué <[EMAIL PROTECTED]>
Date: Thursday, December 20, 2007 4:37 pm
Subject: Re: [computer-go] rotate board
To: computer-go <[email protected]>

> On Dec 20, 2007 11:23 AM, Arthur W Cater <[EMAIL PROTECTED]> wrote:
> 
> > I think that would be worse. There are lots of sets of 8 numbers 
> that sum
> > the same,
> > far more than there are sets of 8 with the same minimum element.
> >
> > Arthur
> >
> > ----- Original Message -----
> > From: Álvaro Begué <[EMAIL PROTECTED]>
> > Date: Thursday, December 20, 2007 4:08 pm
> > Subject: Re: [computer-go] rotate board
> > To: computer-go <[email protected]>
> >
> > > On Dec 20, 2007 10:19 AM, Jason House 
> <[EMAIL PROTECTED]>> > wrote:
> > > >
> > > >
> > > > On Dec 20, 2007 10:15 AM, Arthur Cater <[EMAIL PROTECTED]> 
> wrote:> > >
> > > > > With 8 hashes per position, the chance of two different boards
> > > > > producing a different set of hashes but
> > > > > the same canonical hash is greater than 1/2^64, because there
> > > will be
> > > > > a bias in the choice of canonical
> > > > > hashes - toward numerically lower numbers, for instance.
> > > > >
> > > > > I think.
> > > >
> > > >
> > > > More importantly, how does it differ from 8/2^64 = 1/2^61?
> > > >
> > >
> > > If you are going to compute all 8 hash keys, you can just add them
> > > up at the
> > > end instead of picking the minimum. Wouldn't that be better?
> >
> 
> That can't possibly be true... Think about it. Sums of random 
> numbers are
> uniformly distributed (remember we are working in the ring of integers
> modulo 2^64), while the minimum is very biased towards small numbers.
> 
> These two Unix commands show the number of different sums and the 
> number of
> different minimums among 10,000 sets of 8 random integers. I did it 
> with 16
> bits instead of 64:
> 
> alvaro-begue-aguados-computer:~ alvaro$ perl -e 'for $x 
> (1..10000){$s=0;for$y (1..8){$s+=int(rand(65536));}print 
> "".($s%65536)."\n";}' | sort -u | wc
> -l
>    9294
> alvaro-begue-aguados-computer:~ alvaro$ perl -e 'for $x
> (1..10000){$s=9999999;for $y (1..8){$t=int(rand(65536)); $s=$t if
> $t<$s;}print "$s\n";}' | sort -u | wc -l
>    7476
>
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to