<?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
-->