MtRand
Script function world.MtRand Read about scripting Type Method Summary Returns pseudo-random number using the Mersenne Twister algorithm Prototype `double MtRand();` View list of data type meanings Description `This returns a pseudo-random number in the range 0 to 1 (however excluding 1) as a "double" (floating-point number). Thus you can generate a number in any range by multiplying the result by the range you want. eg. print (math.floor (MtRand () * 5)) - returns 0 to 4 See below in the Lua section for an example of doing coin flips. Note that the MT generator is "global" to all of MUSHclient. If you are trying to reproduce a sequence, then you cannot rely on a sequence staying stable from one script call to another (since another script, or another world or plugin, might also use random numbers). This (Lua) script here, for example, would generate a million random numbers, and put them into a table for later use: nums = {} -- empty table MtSrand (1234567) -- start with a known seed for j = 1, 1000000 do table.insert (nums, MtRand ()) end This took about a second to execute on my PC. Over a run of 10,000,000 coins flips it seemed pretty accurate, giving 5,000,625 heads and 4,999,375 tails (in other words, around 50.00625% heads). Example (in Lua) of rolling a 6-sided die: for i = 1, 100 do Tell (math.floor (MtRand () * 6) + 1, " ") end In the above example, multiplying by 6 gives a number in the range 0 to 5, and then we add 1 to make it 1 to 6. For more details about the Mersenne Twister see: http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html` VBscript example
    Note MtRand
Jscript example
    Note (MtRand ())
Lua example
    heads = 0
    tails = 0

    for j = 1, 1000000 do
      i = math.floor (MtRand () * 2)
      if i == 0 then
        heads = heads + 1
      else
        tails = tails + 1
      end  -- if
    end  -- for

    print ("heads = ", heads) --> 498893
    print ("tails = ", tails) --> 501107
Return value
    A pseudo-random number in the range [0 to 1). In other words, zero might be returned, however 1 will not be.

    To put it another way, the returned number is:

    >= 0 and < 1
See Also ... Topics Scripting Utilities Functions Base64Decode (Takes a base-64 encoded string and decodes it.) Base64Encode (Encodes a string using base-64 encoding.) ChangeDir (Changes the MUSHclient working directory) CreateGUID (Creates a GUID - Global Unique Identifier) EditDistance (Returns the Levenshtein Edit Distance between two words) ErrorDesc (Converts a MUSHclient script error code into an human-readable description) ExportXML (Exports a world item in XML format) FixupEscapeSequences (Converts "escape sequences" like &#x5C;t to their equivalent codes.) FixupHTML (Fixes up text for writing as HTML) GenerateName (Generates a random character name) GetClipboard (Gets the clipboard contents) GetScriptTime (Returns the amount of time spent in script routines) GetUniqueID (Creates a unique ID for general use, or for making Plugin IDs) GetUniqueNumber (Returns a unique number) Hash (Produces a hash (checksum) of a specified piece of text) Help (Shows help for a script function, or a list of functions) ImportXML (Imports configuration data in XML format) Metaphone (Returns the metaphone code for the supplied word) MtSrand (Seed the Mersenne Twister pseudo-random number generator) ReadNamesFile (Loads in a file for generating character names) Replace (Replaces one substring with another) SetClipboard (Sets the clipboard contents) SetStatus (Sets the status line text) Simulate (Simulate input from the MUD, for debugging purposes) Sound (Plays a sound) StripANSI (Strips ANSI colour sequences from a string) Trace (Trace mode property) TraceOut (Outputs the supplied message to the world Trace) TranslateGerman (Translate German umluat sequences) Transparency (Sets the transparency of the main MUSHclient window under Windows XP) Trim (Trims leading and trailing spaces from a string) (Help topic: function=MtRand) Documentation contents page