## Re: [xsl] generating unique random numbers

 Subject: Re: [xsl] generating unique random numbers From: Michael Ludwig Date: Mon, 22 Feb 2010 23:59:46 +0100
```a kusa schrieb am 22.02.2010 um 11:14:11 (-0600):

> What I did was to call math:random() twice and adding the results each
> time around.

I don't think addition significantly lowers the likelihood of getting
two equal numbers. Imagine rolling dice, there is a chance of 1:6 of
getting two equal numbers. Now take two dice, and try to match the sum
of the first round in the second round: the probability will depend on
the result of the first round and will be bell-curved, meaning higher
probability for values in the middle and a value-space from 2 to 12.

Now imagine multiplying the results: The value-space becomes largesr,
sparser, and hence less prone to duplicates.

Do the Perl:

perl -lwe 'for \$x(1..6) {for \$y(1..6){print\$x+\$y}}' | sort -n | uniq -c
1 2
2 3
3 4
4 5
5 6
6 7
5 8
4 9
3 10
2 11
1 12

perl -lwe 'for \$x(1..6) {for \$y(1..6){print\$x*\$y}}' | sort -n | uniq -c
1 1
2 2
2 3
3 4
2 5
4 6
2 8
1 9
2 10
4 12
2 15
1 16
2 18
2 20
2 24
1 25
2 30
1 36

That's not a proof, of course, it's just the helpless expression of what
I think is the case here. More knowledgeable mathematical assessments
appreciated!

> And I used distinct-values() everytime.

How do you use it?

--
Michael Ludwig

```