Difference between revisions of "Seedable PRNG"
Jump to navigation
Jump to search
Huney Jewell (talk | contribs) m (Avoid line overflow) |
m (link with: llFrand, llListRandomize, Pseudo-random_Number_Generator) |
||
Line 1: | Line 1: | ||
{{LSL Header}} | {{LSL Header}} | ||
See also: [[llFrand]], [[llListRandomize]], [[Pseudo-random_Number_Generator]] | |||
== md5 based seedable PRNG == | == md5 based seedable PRNG == |
Revision as of 19:08, 2 October 2007
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
See also: llFrand, llListRandomize, Pseudo-random_Number_Generator
md5 based seedable PRNG
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); //the bitwise thingy gets rid of negative numbers return (integer)("0x" + llGetSubString(gLastHash, 0, 7)) & 0x7FFFFFFF; }