John Machin wrote:

> You don't need to use random sampling. Paul Rubin has shown how it can
> be done deterministically. The following is a generalisation of his
> code; it generates all possible assemblies of size n from a list of
> parts. Is this helpful?
>
> def all_size_n_knickers(rqd_size, pieces):
>      npieces = len(pieces)
>      knicker_count = npieces ** rqd_size
>      austen = [npieces ** (rqd_size-k-1) for k in xrange(rqd_size)]
>      for i in xrange(knicker_count):
>          knicker = [pieces[j] for j in [(i // d) % npieces for d in austen]]
>          yield knicker
>
> for alist in all_size_n_knickers(4, 'abc'):
>      print ''.join(alist)
>
> print
> print list(all_size_n_knickers(2, [1, 42, 666]))

Just testing out my ELCH JythonConsole :-)

def unint(i,symbols):
        res = []
        radix = len(symbols)
        while i:
                i,r = divmod(i,radix)
                res.append(symbols[r])
        return res[::-1]

start = int('10000',3)
finish = int('20000',3)
for i in range(start,finish):
        print ''.join(unint(i,'abc')[1:])

This makes me wonder why we still don't have something like the unint
function above in the standard distribution.

Anton

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to