Difference between revisions of "Seedable PRNG"

From Second Life Wiki
Jump to navigation Jump to search
(update on periodicity)
Line 1: Line 1:
It's not the fastest thing but it doesn't seem to have much if any output skew, and I couldn't detect any periodicity in the first few thousand outputs.  I'm doing extended periodicity testing now.  
It's not the fastest thing but it doesn't seem to have much if any output skew, and I couldn't detect any periodicity in the first 100,000 cycles.


<pre>
<pre>

Revision as of 11:36, 19 March 2007

It's not the fastest thing but it doesn't seem to have much if any output skew, and I couldn't detect any periodicity in the first 100,000 cycles.


//new md5 based seedable PRNG
//By: Gigs Taggart
//Released under BSD License.
//http://www.opensource.org/licenses/bsd-license.php

integer gSeed=0; 
string gLastHash;

prng_seed(integer seed)
{
    gSeed=seed;
}


integer prng_get()
{
    gLastHash=llMD5String(gLastHash, gSeed);
    return (integer)("0x" + llGetSubString(gLastHash, 0, 7)) & 0x7FFFFFFF;  //the bitwise thingy gets rid of negative numbers
}