Issue1817
Created on 2011-11-16.15:01:18 by fdb, last changed 2014-05-22.00:01:27 by zyasoft.
File name |
Uploaded |
Description |
Edit |
Remove |
random-seed.py
|
fdb,
2011-11-16.15:05:53
|
Random seed example file. |
|
|
msg6721 (view) |
Author: Frederik De Bleser (fdb) |
Date: 2011-11-16.15:05:53 |
|
Take the following code:
from random import seed, choice
for i in range(1000):
seed(i)
print choice("abcdef"),
In Jython 2.5.2, this produces only letter "e"'s, 1000 after each other.
In Python 2.7.1, this produces a random variation for every seed.
In Jython, higher seeds do work, so using
seed(math.pow(i, 5))
would generate "better" random variations.
|
msg7962 (view) |
Author: Santoso Wijaya (santa4nt) |
Date: 2013-03-22.23:57:52 |
|
That sounds like an abuse of an PRNG. AFAIK, a PRNG is only supposed to output a pseudo-random bit string of length N, given a seed s.
It is NOT supposed to guarantee to output the set of bit strings {b1[0:n], b2[0:n], ... for small n} given a set of seeds {s1, s2, ...}.
To clarify, here is the underlying behavior:
>>> from random import seed, random
>>> for i in range(1000):
... seed(i); print random()
...
0.730967788633
0.730878197405
0.731146941285
0.731057364959
0.730609460976
0.730519869749
0.730788621079
0.730699037303
0.73025113332
0.730161549544
0.730430293423
0.730340717097
0.729892805664
0.729803221888
0.730071965767
0.729982389441
0.732401084355
0.732311508029
0.732580251909
0.732490660682
[...]
Note the similarities in the one-tenth and one-hundredth places.
In other words, what you are doing seem to be asking for a higher order randomness for which the base PRNG is not suited.
|
msg7963 (view) |
Author: Frederik De Bleser (fdb) |
Date: 2013-03-23.00:45:45 |
|
As you probably are aware, CPython returns totally different values for the same code:
0.844421851525
0.134364244112
0.956034271889
0.237964627092
0.236048089737
0.62290169489
...
I'm not sugesting each random seed should return the same value in Jython and CPython. However, code depending on CPython's random behaviour will return skewed results: I've been bitten by this bug myself.
BTW how do we get something that resembles CPython's random behaviour in Jython?
|
msg8512 (view) |
Author: Jim Baker (zyasoft) |
Date: 2014-05-22.00:01:27 |
|
We are not going to reproduce this implementation dependent behavior on Jython. There are far better ways of getting more entropy in the system.
|
|
Date |
User |
Action |
Args |
2014-05-22 00:01:27 | zyasoft | set | status: open -> closed resolution: wont fix messages:
+ msg8512 nosy:
+ zyasoft |
2013-03-23 00:45:46 | fdb | set | messages:
+ msg7963 |
2013-03-22 23:57:52 | santa4nt | set | nosy:
+ santa4nt messages:
+ msg7962 versions:
+ Jython 2.7, - Jython 2.5 |
2013-02-25 19:30:00 | fwierzbicki | set | priority: normal nosy:
+ fwierzbicki versions:
+ Jython 2.5, - 2.5.2 |
2011-11-16 15:05:53 | fdb | set | files:
+ random-seed.py messages:
+ msg6721 |
2011-11-16 15:01:18 | fdb | create | |
|