Unsorting(randomizing) a sequence
Tim Peters
tim_one at email.msn.com
Tue Aug 17 20:04:18 EDT 1999
[Jeremy Hylton]
> I've rather fond of the following approach:
>
> import random
>
> def randomize(a, b):
> return random.choice([-1, 0, 1])
> ...
> No idea how fast this is, though not very I expect.
def test(N):
d = {}
for i in xrange(N * 6):
x = range(3)
x.sort(randomize)
t = tuple(x)
d[t] = d.get(t, 0) + 1
print N, d
test(1000)
1000 {(2, 1, 0): 68,
(0, 2, 1): 625,
(0, 1, 2): 4443,
(2, 0, 1): 289,
(1, 2, 0): 155,
(1, 0, 2): 420}
With a chi square busting distribution like that, I'm not sure speed is the
first thing you should be worried about <wink>.
a-random-decision-may-not-yield-a-random-outcome-ly y'rs - tim
More information about the Python-list
mailing list