MtRand
Script function

world.MtRand

DOC_scripting Read about scripting

Type

Method

Summary

Returns pseudo-random number using the Mersenne Twister algorithm

Prototype

double MtRand();

DOC_data_types 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

DOC_scripting Scripting
DOC_utils Utilities

Functions

FNC_Base64Decode Base64Decode (Takes a base-64 encoded string and decodes it.)
FNC_Base64Encode Base64Encode (Encodes a string using base-64 encoding.)
FNC_ChangeDir ChangeDir (Changes the MUSHclient working directory)
FNC_CreateGUID CreateGUID (Creates a GUID - Global Unique Identifier)
FNC_EditDistance EditDistance (Returns the Levenshtein Edit Distance between two words)
FNC_ErrorDesc ErrorDesc (Converts a MUSHclient script error code into an human-readable description)
FNC_ExportXML ExportXML (Exports a world item in XML format)
FNC_FixupEscapeSequences FixupEscapeSequences (Converts "escape sequences" like &#x5C;t to their equivalent codes.)
FNC_FixupHTML FixupHTML (Fixes up text for writing as HTML)
FNC_GenerateName GenerateName (Generates a random character name)
FNC_GetClipboard GetClipboard (Gets the clipboard contents)
FNC_GetScriptTime GetScriptTime (Returns the amount of time spent in script routines)
FNC_GetUniqueID GetUniqueID (Creates a unique ID for general use, or for making Plugin IDs)
FNC_GetUniqueNumber GetUniqueNumber (Returns a unique number)
FNC_Hash Hash (Produces a hash (checksum) of a specified piece of text)
FNC_Help Help (Shows help for a script function, or a list of functions)
FNC_ImportXML ImportXML (Imports configuration data in XML format)
FNC_Metaphone Metaphone (Returns the metaphone code for the supplied word)
FNC_MtSrand MtSrand (Seed the Mersenne Twister pseudo-random number generator)
FNC_ReadNamesFile ReadNamesFile (Loads in a file for generating character names)
FNC_Replace Replace (Replaces one substring with another)
FNC_SetClipboard SetClipboard (Sets the clipboard contents)
FNC_SetStatus SetStatus (Sets the status line text)
FNC_Simulate Simulate (Simulate input from the MUD, for debugging purposes)
FNC_Sound Sound (Plays a sound)
FNC_StripANSI StripANSI (Strips ANSI colour sequences from a string)
FNC_Trace Trace (Trace mode property)
FNC_TraceOut TraceOut (Outputs the supplied message to the world Trace)
FNC_TranslateGerman TranslateGerman (Translate German umluat sequences)
FNC_Transparency Transparency (Sets the transparency of the main MUSHclient window under Windows XP)
FNC_Trim Trim (Trims leading and trailing spaces from a string)

(Help topic: function=MtRand)

DOC_contents Documentation contents page