Re: mt_rand() - the same forever?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Janek schreef:
> On Sun, Oct 5, 2008 at 10:05 PM, Ashley Sheridan
> <ash@xxxxxxxxxxxxxxxxxxxx> wrote:
>> On Sun, 2008-10-05 at 21:57 +0200, Janek wrote:
>>> I know, but I *want* to seed it. My goal is to have a fixed
>>> pseudorandom sequence for each integer (seed) and I don't want those
>>> sequences to change regarding PHP version.
>>>
>>> Janek
>>>
>>> On Sun, Oct 5, 2008 at 9:52 PM, Richard Heyes <richard@xxxxxxx> wrote:
>>>>> I wonder whether I can rely on the stability of mt_srand() and
>>>>> mt_rand(). I want them to generate the same sequence for a fixed seed,
>>>>> regardless of PHP version. Do you think I can trust it?
>>>>> Janek
>>>> Keep in mind (if you're not already) that mt_rand() doesn't
>>>> technically need to be seeded.
>>>>
>>>> --
>>>> Richard Heyes
>>>>
>>>> HTML5 Graphing for FF, Chrome, Opera and Safari:
>>>> http://www.phpguru.org/RGraph
>>>>
>> Doesn't it also rely on the system clock as well?
>>
>>
>> Ash
>> www.ashleysheridan.co.uk
>>
>>
> 
> No. When I give a fixed seed to mt_srand(), each time I get the same
> sequence of mt_rand()s. My question is wheather the actual algorithm
> behind these functions is likely to change in the next version of PHP
> or not.

not likely to change in the next version at all. but there is no guarantee that
somewhere down the road a new 'rand' algorythm won't be used either,
3 things to consider doing:

1. write your own php extension that copies the mt_srand() function as
it is now and use your extension's version of the function ... then you
can be sure it won't change.

2. ask the devs on internals@xxxxxxxxxxxxx what they think the likelyhood
is that the output may change in the future.

3. pre-generate the sequences and store them, then use those pre-generated
sequences instead of using mt_srand() (obviously this may not be viable at all)

> 
> Janek
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux