diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1997-07-30 19:15:18 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1997-07-30 19:15:18 -0300 |
commit | caa987faad6191a2abaf9d2741216ba619359fdb (patch) | |
tree | ce14080b8ed31afc2f9207d10c41f8df40b70816 | |
parent | 0892f0e5b75c51f1fee07276a3ba13301b83409e (diff) | |
download | lua-github-caa987faad6191a2abaf9d2741216ba619359fdb.tar.gz |
"random" accepts an 'n' to return between 1 and 'n'.
-rw-r--r-- | manual.tex | 10 | ||||
-rw-r--r-- | mathlib.c | 8 |
2 files changed, 12 insertions, 6 deletions
@@ -1,4 +1,4 @@ -% $Id: manual.tex,v 2.10 1997/07/02 17:09:48 roberto Exp roberto $ +% $Id: manual.tex,v 2.11 1997/07/04 22:35:38 roberto Exp roberto $ \documentstyle[fullpage,11pt,bnf]{article} @@ -38,7 +38,7 @@ Waldemar Celes \tecgraf\ --- Computer Science Department --- PUC-Rio } -\date{\small \verb$Date: 1997/07/02 17:09:48 $} +\date{\small \verb$Date: 1997/07/04 22:35:38 $} \maketitle @@ -2085,8 +2085,10 @@ Both can be used with an unlimited number of arguments. The functions \verb|random| and \verb|randomseed| are interfaces to the simple random generator functions \verb|rand| and \verb|srand|, provided by ANSI C. -The function \verb|random| returns pseudo-random numbers in the -range \Math{[0,1)}. +The function \verb|random|, when called without arguments, +returns a pseudo-random real number in the range \Math{[0,1)}. +When called with a number \Math{n}, +returns a pseudo-random integer in the range \Math{[1,n]}. \subsection{I/O Facilities} \label{libio} @@ -3,7 +3,7 @@ ** Mathematics library to LUA */ -char *rcs_mathlib="$Id: mathlib.c,v 1.24 1997/06/09 17:30:10 roberto Exp roberto $"; +char *rcs_mathlib="$Id: mathlib.c,v 1.25 1997/06/19 18:03:04 roberto Exp roberto $"; #include <stdlib.h> #include <math.h> @@ -171,7 +171,11 @@ static void math_rad (void) static void math_random (void) { - lua_pushnumber((double)(rand()%RAND_MAX) / (double)RAND_MAX); + double r = (double)(rand()%RAND_MAX) / (double)RAND_MAX; + if (lua_getparam(1) == LUA_NOOBJECT) + lua_pushnumber(r); + else + lua_pushnumber((int)(r*luaL_check_number(1)) + 1); } static void math_randomseed (void) |