ID:               40724
 User updated by:  dave at dmorg dot org
 Reported By:      dave at dmorg dot org
 Status:           Bogus
 Bug Type:         Documentation problem
 Operating System: linux, windows
 PHP Version:      5.2.1
 New Comment:

When I reported this non-bug, I got the rather unhelpful (and, indeed,
inaccurate) reply that "Random numbers are random, so you can't expect
to get the same number out of a random number generator."

I did a bit of digging and got some generous feedback from Geoff
Kuenning (who has an implementation of the MT seed generation
algorithm).

Apparently, versions prior to 5.2.1 used an implementation written by
Shawn Cokus. But, in 2002, Matsumoto and Nishimura changed their
reference implementation of the random-seeding function (these are the
brains that came up with the Mersenne Twister). Version 5.2.1 uses a
newer implementation by Richard Wagner, which uses only the new method
and generates a different sequence of pseudo-random numbers. Keunning's
implementation, incidentally, "...kept both the old and new algorithms
precisely to avoid the sort of problem that you have encountered."
According to Keunning, we're unlikely to see another change in the
algorithm so results from 5.2.1 should remain constant in future
versions of php.

Dave


Previous Comments:
------------------------------------------------------------------------

[2007-03-21 16:18:30] [EMAIL PROTECTED]

>It's still a BC break.
Changing an error message from "Failed to get" to "Cannot get" is also
a "BC break", but you should not rely on it in the first place. 
And note that noone said that error messages would change.

"Known characteristics" have nothing to do with returning the same
value.
In 5.2.1 the mersenne twister implementation in PHP has been changed to
use faster and better licensed code.
Unfortunately, Dmitry did not add a NEWS entry about it, though I
really doubt it would help anybody.

Still no bug here, do not rely on these values.

------------------------------------------------------------------------

[2007-03-21 15:59:13] [EMAIL PROTECTED]

It's still a BC break. I know, from a maintainer's standpoint, how
infinitely annoying small changes like this are. But this change breaks
code, with no way to go back to the old behavior. The fact that no one
promised that the random number generator wouldn't change is a false
framing of the question - no one said that the random number generator
_would_ change either. In fact the docs for mt_rand specifically
encourage using it because, as compared to c library rand functions, it
has "known characteristics".

I think this should be reverted or somehow the old algorithm should be
made available, but at the very least this needs to have a changelog
entry, and http://php.net/mt-rand should be updated to note that you
can't rely on mt_srand() taking a seed consistently between PHP
versions. (I still think that defeats the "known characteristics"
statement also).

------------------------------------------------------------------------

[2007-03-21 14:47:12] [EMAIL PROTECTED]

>Mersenne Twister is still a psuedo-random system; 
>same seed should generate the same output.

And it does generate the same output.
Though nobody guranteed that in different PHP versions.

------------------------------------------------------------------------

[2007-03-21 14:36:17] [EMAIL PROTECTED]

Except that you can, if you pass it the same seed. Mersenne Twister is
still a psuedo-random system; same seed should generate the same output.
This is a subtle but non-trivial change for people generating
psuedo-cryptographic sequences.

(Ilia, don't tell me that MT isn't cryptographically secure, of course
it's not - that's not the point).

------------------------------------------------------------------------

[2007-03-05 23:57:53] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

Random numbers are random, so you can't expect to get the same number 
out of a random number generator.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/40724

-- 
Edit this bug report at http://bugs.php.net/?id=40724&edit=1

Reply via email to