Difference between revisions of "Rnd"

From MiniScript Wiki
Jump to navigation Jump to search
(Created page with "<c>rnd</c> Generates a pseudorandom number between 0 and 1 (including 0 but not including 1). === Arguments === {| class="wikitable" |- ! Parameter Name !! Default Value !!...")
 
(expanded usage notes and added example)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
<c>rnd</c> Generates a pseudorandom number between 0 and 1 (including 0 but not including 1).
+
<c>rnd</c> generates a pseudorandom number between 0 and 1 (including 0 but not including 1).
  
 
=== Arguments ===
 
=== Arguments ===
Line 5: Line 5:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Parameter Name !! Default Value !! Meaning
+
! Parameter Name !! Type !! Meaning
 
|-
 
|-
 
| ''seed'' || number, optional || if given, reset the sequence with this value.
 
| ''seed'' || number, optional || if given, reset the sequence with this value.
Line 15: Line 15:
 
of random numbers.  If you never specify a seed, then it is
 
of random numbers.  If you never specify a seed, then it is
 
initialized automatically, generating a unique sequence on each run.
 
initialized automatically, generating a unique sequence on each run.
 +
 +
Since the result of <c>rnd</c> is between 0 and 1, if you multiply it by some other number ''n'', you get a random value between 0 and ''n''.  This is often combined with [[floor]] or [[ceil]] to get a whole number in the range 0 to ''n''-1 or in the range 1 to ''n'', respectively.
 +
 +
 +
== Example ==
 +
 +
The following example simulates rolling three ordinary 6-sided dice, generating numbers from 1 to 6 inclusive.  `rnd * 6` returns a floating-point number between 0 and 6, and taking [[ceil]] of that rounds it up to a whole number from 1 to 6.
 +
 +
<ms>sum = 0
 +
for i in range(1, 3)
 +
    roll = ceil(rnd * 6)
 +
    print "You rolled a " + roll
 +
    sum = sum + roll
 +
end for
 +
print "Total: " + sum</ms>
  
 
[[Category:Intrinsic Functions]]
 
[[Category:Intrinsic Functions]]
 
[[Category:Numeric Functions]]
 
[[Category:Numeric Functions]]

Latest revision as of 20:15, 15 December 2020

rnd generates a pseudorandom number between 0 and 1 (including 0 but not including 1).

Arguments

Parameter Name Type Meaning
seed number, optional if given, reset the sequence with this value.

Usage Notes

If given a seed, then the generator is reset with that seed value, allowing you to create repeatable sequences of random numbers. If you never specify a seed, then it is initialized automatically, generating a unique sequence on each run.

Since the result of rnd is between 0 and 1, if you multiply it by some other number n, you get a random value between 0 and n. This is often combined with floor or ceil to get a whole number in the range 0 to n-1 or in the range 1 to n, respectively.


Example

The following example simulates rolling three ordinary 6-sided dice, generating numbers from 1 to 6 inclusive. `rnd * 6` returns a floating-point number between 0 and 6, and taking ceil of that rounds it up to a whole number from 1 to 6.

sum = 0
for i in range(1, 3)
    roll = ceil(rnd * 6)
    print "You rolled a " + roll
    sum = sum + roll
end for
print "Total: " + sum