# number generator

Dick Moores rdm at rcblue.com
Wed Mar 14 01:53:41 CET 2007

```At 05:47 PM 3/10/2007, Paul Rubin 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])]

=================================
M = 50
N = 4
def sumRndIntRubin(M, N):
import random
t = sorted(random.sample(xrange(1,M), N-1))
lst = [(j-i) for i,j in zip([0]+t, t+[M])]

print t
print t + [M]
print [0] + t
print lst
print sum(lst)

sumRndIntRubin(M, N)
====================================
[6, 20, 31]
[6, 20, 31, 50]
[0, 6, 20, 31]
[6, 14, 11, 19]
50

I understand what zip() and random.sample() are doing, and the above
helps me get inside the fencepost method, but I don't understand WHY
it works, or how in the world anyone could have devised it. It is
truly magical to me!

BTW I did see this in this thread, "Suppose you have a fixed
telegraph pole at N and a fixed telegraph pole at M, and you're given
5 more telegraph poles..." (Gerard Flanagan), but even now I can't
take it anywhere. I guess I'm just a dim bulb. (I thought I was a
fairly smart guy until I took up Python.)

Dick Moores

```