Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #54913

Re: card dealer

Date 2013-09-27 17:40 -0400
From Ned Batchelder <ned@nedbatchelder.com>
Subject Re: card dealer
References <0617088e-5aa3-4c5d-b660-22040ee858a1@googlegroups.com> <l23q0r$u27$1@ger.gmane.org> <mailman.380.1380283737.18130.python-list@python.org> <l24am7$j2k$2@dont-email.me>
Newsgroups comp.lang.python
Message-ID <mailman.394.1380318056.18130.python-list@python.org> (permalink)

Show all headers | View raw


On 9/27/13 12:10 PM, Denis McMahon wrote:
> On Fri, 27 Sep 2013 12:08:33 +0000, Dave Angel wrote:
>
>> i recall
>> writing a shuffle function in C decades ago, which took an array of (52)
>> unique items and put them in random order.
> Whenever I tried to write shuffles I came up against a fairly fundamental
> limit:
>
> 52! > prng states
>
> Granted prngs seem to be better on the importing entropy from elsewhere
> front these days.
>

Python's PRNG holds plenty of state to handle card shuffling. Python's 
random number generator has a period of 2**19337-1, so it has that many 
states.  That is much larger than 52!, about 10**5933 times larger.  
(Unless I've botched the math...)

The other variable is how many states the initial seed can have.  If 
os.urandom is available, then it seeds with 16 bytes of OS-supplied 
randomness.  But 52! is about 2**226, so the 128 bits of seed isn't 
enough to make all shuffles possible.

You could seed a Random yourself with more bits if you really wanted to.

--Ned.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

card dealer markotaht@gmail.com - 2013-09-27 03:24 -0700
  Re: card dealer Dave Angel <davea@davea.name> - 2013-09-27 11:26 +0000
  Re: card dealer MRAB <python@mrabarnett.plus.com> - 2013-09-27 12:27 +0100
  Re: card dealer Alister <alister.ware@ntlworld.com> - 2013-09-27 11:41 +0000
  Re: card dealer Dave Angel <davea@davea.name> - 2013-09-27 12:08 +0000
    Re: card dealer Denis McMahon <denismfmcmahon@gmail.com> - 2013-09-27 16:10 +0000
      Re: card dealer Dave Angel <davea@davea.name> - 2013-09-27 21:00 +0000
      Re: card dealer Ned Batchelder <ned@nedbatchelder.com> - 2013-09-27 17:40 -0400
        Re: card dealer Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-28 06:01 +0000
          Re: card dealer Ned Batchelder <ned@nedbatchelder.com> - 2013-09-28 06:31 -0400
          Re: card dealer Dave Angel <davea@davea.name> - 2013-09-28 12:56 +0000
          Re: card dealer Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-28 16:49 +0200
            Re: card dealer Tim Roberts <timr@probo.com> - 2013-09-28 17:04 -0700

csiph-web