php-doc-en/reference/math/functions/mt-rand.xml
2002-06-03 15:06:16 +00:00

81 lines
3 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.4 $ -->
<!-- splitted from ./en/functions/math.xml, last change in rev 1.2 -->
<refentry id="function.mt-rand">
<refnamediv>
<refname>mt_rand</refname>
<refpurpose>Generate a better random value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>int</type><methodname>mt_rand</methodname>
<methodparam choice="opt"><type>int</type><parameter>min</parameter></methodparam>
<methodparam><type>int</type><parameter>max</parameter></methodparam>
</methodsynopsis>
<simpara>
Many random number generators of older libcs have dubious or
unknown characteristics and are slow. By default, PHP uses the
libc random number generator with the <function>rand</function>
function. <function>mt_rand</function> function is a drop-in
replacement for this. It uses a random number generator with
known characteristics, the Mersenne Twister, which will produce
random numbers that should be suitable for seeding some kinds
of cryptography (see the home pages for details) and is four
times faster than what the average libc provides. The Homepage
of the Mersenne Twister can be found at
<ulink url="&url.mersenne;">&url.mersenne;</ulink>, and an
optimized version of the MT source is available from
<ulink url="&url.mersenne.twister;">&url.mersenne.twister;
</ulink>.
</simpara>
<simpara>
If called without the optional <parameter>min</parameter>,
<parameter>max</parameter> arguments <function>mt_rand</function>
returns a pseudo-random value between 0 and
<constant>RAND_MAX</constant>. If you want a random number
between 5 and 15 (inclusive), for example, use <literal>mt_rand
(5, 15)</literal>.
</simpara>
<simpara>
In older versions of PHP, you had to seed the random number generator
before use with <function>mt_srand</function>. Since 4.2.0 this is no
longer necessary.
</simpara>
<note>
<para>
In versions before 3.0.7 the meaning of
<parameter>max</parameter> was <parameter>range</parameter>. To
get the same results in these versions the short example should
be <literal>mt_rand (5, 11)</literal> to get a random number
between 5 and 15.
</para>
</note>
<simpara>
See also <function>mt_srand</function>,
<function>mt_getrandmax</function> and
<function>rand</function>.
</simpara>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->