Re: number generator
- From: "MonkeeSage" <MonkeeSage@xxxxxxxxx>
- Date: 10 Mar 2007 17:19:38 -0800
On Mar 10, 6:47 pm, Paul Rubin <http://phr...@xxxxxxxxxxxxxx> wrote:
The fencepost method still seems to be simplest:
t = sorted(random.sample(xrange(1,50), 4))
print [(j-i) for i,j in zip([0]+t, t+[50])]
Simpler, true, but I don't think it gives any better distribution...
import random
def cheat(n, m):
N, M = n, m
D = M/N
O = [D] * N
C = []
for i in O:
C.append(random.randint(1, D-1))
for i in range(0, len(O), 2):
O[i] -= C[i]
if i == len(O)-1:
O[random.randint(0, i-1)] += C[i]
else:
O[i+1] += C[i]
print 'CHEAT:'
print O
def fence(n, m):
t = sorted(random.sample(xrange(1,m), n-1))
print 'FENCE:'
print [(j-i) for i,j in zip([0]+t, t+[m])]
for i in range(10):
print 'Run: %d:' % (i+1)
cheat(10, 80)
fence(10, 80)
Output:
Run: 1:
CHEAT:
[1, 15, 1, 15, 5, 11, 5, 11, 1, 15]
FENCE:
[4, 9, 24, 7, 3, 9, 11, 7, 3, 3]
Run: 2:
CHEAT:
[1, 15, 5, 11, 5, 11, 1, 15, 7, 9]
FENCE:
[15, 12, 13, 7, 1, 4, 5, 6, 4, 13]
Run: 3:
CHEAT:
[1, 15, 3, 13, 3, 13, 2, 14, 7, 9]
FENCE:
[2, 9, 12, 15, 4, 5, 2, 3, 19, 9]
Run: 4:
CHEAT:
[7, 9, 2, 14, 5, 11, 4, 12, 3, 13]
FENCE:
[2, 2, 4, 7, 1, 11, 15, 13, 6, 19]
Run: 5:
CHEAT:
[5, 11, 3, 13, 5, 11, 7, 9, 4, 12]
FENCE:
[2, 4, 11, 10, 13, 16, 2, 18, 1, 3]
Run: 6:
CHEAT:
[5, 11, 3, 13, 2, 14, 6, 10, 1, 15]
FENCE:
[1, 4, 13, 5, 2, 26, 5, 4, 16, 4]
Run: 7:
CHEAT:
[4, 12, 4, 12, 4, 12, 4, 12, 5, 11]
FENCE:
[8, 3, 5, 15, 8, 15, 2, 3, 10, 11]
Run: 8:
CHEAT:
[3, 13, 5, 11, 6, 10, 1, 15, 2, 14]
FENCE:
[25, 15, 2, 5, 2, 10, 6, 1, 9, 5]
Run: 9:
CHEAT:
[6, 10, 3, 13, 2, 14, 1, 15, 5, 11]
FENCE:
[11, 9, 3, 3, 7, 4, 8, 28, 1, 6]
Run: 10:
CHEAT:
[2, 14, 3, 13, 6, 10, 2, 14, 2, 14]
FENCE:
[12, 5, 23, 2, 3, 4, 4, 11, 5, 11]
Granted, I'm just eyeballing it, but they look fairly equal in terms
of distribution.
Regards,
Jordan
.
- Follow-Ups:
- Re: number generator
- From: Steven D'Aprano
- Re: number generator
- References:
- number generator
- From: cesco
- Re: number generator
- From: Steven D'Aprano
- Re: number generator
- From: greg
- Re: number generator
- From: MonkeeSage
- Re: number generator
- From: Paul Rubin
- number generator
- Prev by Date: Re: convert time string in UTC to time in local time
- Next by Date: Re: Python 2.5 incompatible with Fedora Core 6 - packaging problems again
- Previous by thread: Re: number generator
- Next by thread: Re: number generator
- Index(es):
Relevant Pages
|