[SciPy-dev] Re: [Numpy-discussion] Release of scipy corebetawillhappen next week.
Robert Kern
rkern at ucsd.edu
Tue Sep 27 22:42:32 EDT 2005
Charles Harris wrote:
> Robert Kern wrote:
>
>>times as you like with different states (another benefit of the
>>/dev/urandom seeding over seeding with the time; there's no real chance
>
> I like /dev/urandom, but is it portable?
Lots of UNIX-like systems have it now. I don't think any OS has a
/dev/urandom that *isn't* an uninterruptable stream of random bits.
> What is the windows equivalent?
Here's the snippet from RandomKit:
/* Windows crypto */
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0400
#endif
#include <windows.h>
#include <wincrypt.h>
#endif
...
HCRYPTPROV hCryptProv;
BOOL done;
if (!CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT) || !hCryptProv)
return RK_ENODEV;
done = CryptGenRandom(hCryptProv, size, (unsigned char *)buffer);
CryptReleaseContext(hCryptProv, 0);
if (done)
return RK_NOERR;
> I've been wondering, as I run linux and /dev/urandom is always handy.
>
> I also think some provision for setting a simple seed, perhaps just a long,
> is useful for testing when it is nice to have a repeatable sequences.
Way ahead of you. :-)
def seed(self, seed=None):
"""Seed the generator.
seed(seed=None)
seed can be an integer, an array (or other sequence) of integers
of any
length, or None. If seed is None, then RandomState will try to
read data
from /dev/urandom (or the Windows analogue) if available or seed
from
the clock otherwise.
"""
--
Robert Kern
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the SciPy-Dev
mailing list