<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.random.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'it',
  ),
  'this' => 
  array (
    0 => 'function.mt-rand.php',
    1 => 'mt_rand',
    2 => 'Generate a random value via the Mersenne Twister Random Number Generator',
  ),
  'up' => 
  array (
    0 => 'ref.random.php',
    1 => 'Random Funzioni',
  ),
  'prev' => 
  array (
    0 => 'function.mt-getrandmax.php',
    1 => 'mt_getrandmax',
  ),
  'next' => 
  array (
    0 => 'function.mt-srand.php',
    1 => 'mt_srand',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/random/functions/mt-rand.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.mt-rand" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">mt_rand</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">mt_rand</span> &mdash; <span class="dc-title">Generate a random value via the Mersenne Twister Random Number Generator</span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.mt-rand-description">
  <h3 class="title">Descrizione</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>mt_rand</strong></span>(): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>

  <div class="methodsynopsis dc-description"><span class="methodname"><strong>mt_rand</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$min</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$max</code></span>): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>

  <p class="simpara">
   Many random number generators of older libcs
   have dubious or unknown characteristics and are slow.
   The <span class="function"><strong>mt_rand()</strong></span> function is a drop-in replacement
   for the older <span class="function"><a href="function.rand.php" class="function">rand()</a></span>. It uses a random
   number generator with known characteristics using the
   <a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html" class="link external">&raquo;&nbsp;Mersenne Twister</a>, which
   will produce random numbers four times faster than what the average
   libc rand() provides.
  </p>
  <p class="simpara">
   If called without the optional <code class="parameter">min</code>,
   <code class="parameter">max</code> arguments <span class="function"><strong>mt_rand()</strong></span>
   returns a pseudo-random value between 0 and
   <span class="function"><a href="function.mt-getrandmax.php" class="function">mt_getrandmax()</a></span>.  If you want a random number
   between 5 and 15 (inclusive), for example, use <code class="literal">mt_rand(5,
   15)</code>.
  </p>
  <div class="caution"><strong class="caution">Attenzione</strong><p class="para">Questa funzione non genera valori crittograficamente sicuri, e non dovrebbe essere usata per scopi di crittografia. Se c&#039;è necessità di utilizzare un valore crittograficamente sicuro, si preferisca <span class="function"><a href="function.openssl-random-pseudo-bytes.php" class="function">openssl_random_pseudo_bytes()</a></span>.</p></div>
  <div class="caution"><strong class="caution">Attenzione</strong>
 <p class="simpara">
    This function uses the global Mt19937 (“Mersenne Twister”) instance as the source of randomness and thus shares its state with all other functions using the global Mt19937.
    Using any of these functions advances the sequence for <em>all</em> the other functions, regardless of scope.
  </p>
  <p class="simpara">
    Generating repeatable sequences by seeding <span class="function"><a href="function.mt-srand.php" class="function">mt_srand()</a></span> or <span class="function"><a href="function.srand.php" class="function">srand()</a></span> with a known value will also yield repeatable output from this function.
  </p>
  <p class="simpara">
    Prefer using <span class="classname"><a href="class.random-randomizer.php" class="classname">Random\Randomizer</a></span> methods in all newly written code.
 </p>
</div>
 </div>

 <div class="refsect1 parameters" id="refsect1-function.mt-rand-parameters">
  <h3 class="title">Elenco dei parametri</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">min</code></dt>
     <dd>
      <p class="para">
       Optional lowest value to be returned (default: 0)
      </p>
     </dd>
    
    
     <dt><code class="parameter">max</code></dt>
     <dd>
      <p class="para">
       Optional highest value to be returned (default: <span class="function"><a href="function.mt-getrandmax.php" class="function">mt_getrandmax()</a></span>)
      </p>
     </dd>
    
   </dl>
  </p>
 </div>

 <div class="refsect1 returnvalues" id="refsect1-function.mt-rand-returnvalues">
  <h3 class="title">Valori restituiti</h3>
  <p class="para">
   A random integer value between <code class="parameter">min</code> (or 0)
   and <code class="parameter">max</code> (or <span class="function"><a href="function.mt-getrandmax.php" class="function">mt_getrandmax()</a></span>, inclusive).
  </p>
 </div>

 <div class="refsect1 errors" id="refsect1-function.mt-rand-errors">
  <h3 class="title">Errori/Eccezioni</h3>
  <ul class="itemizedlist">
   <li class="listitem">
    <span class="simpara">
     If <code class="parameter">max</code> is less than <code class="parameter">min</code>, a
     <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span> will be thrown.
    </span>
   </li>
  </ul>
 </div>

 <div class="refsect1 changelog" id="refsect1-function.mt-rand-changelog">
  <h3 class="title">Log delle modifiche</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versione</th>
       <th>Descrizione</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
      <td>8.0.0</td>
      <td>
       A <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span> will be thrown if <code class="parameter">max</code> is less than <code class="parameter">min</code>;
       previously an <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> was raised, and the function returned <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
      </td>
     </tr>

      <tr>
       <td>7.2.0</td>
       <td>
        <span class="function"><strong>mt_rand()</strong></span> <a href="migration72.incompatible.php#migration72.incompatible.rand-mt_rand-output" class="link">has received a bug fix</a> for a modulo bias bug. This means that sequences generated with a specific seed may differ from PHP 7.1 on 64-bit machines.
       </td>
      </tr>

      <tr>
       <td>7.1.0</td>
       <td>
        <span class="function"><a href="function.rand.php" class="function">rand()</a></span> <a href="migration71.incompatible.php#migration71.incompatible.rand-srand-aliases" class="link">has been made</a> an alias of <span class="function"><strong>mt_rand()</strong></span>.
       </td>
      </tr>

      <tr>
       <td>7.1.0</td>
       <td>
        <span class="function"><strong>mt_rand()</strong></span> <a href="migration71.incompatible.php#migration71.incompatible.fixes-to-mt_rand-algorithm" class="link">has been updated</a> to use the fixed, correct, version of
         the Mersenne Twister algorithm. To fall back to the old behaviour, use <span class="function"><a href="function.mt-srand.php" class="function">mt_srand()</a></span> with <strong><code><a href="random.constants.php#constant.mt-rand-php">MT_RAND_PHP</a></code></strong> as the second parameter.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>

 <div class="refsect1 examples" id="refsect1-function.mt-rand-examples">
  <h3 class="title">Esempi</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Example #1 <span class="function"><strong>mt_rand()</strong></span> example</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">mt_rand</span><span style="color: #007700">(), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">mt_rand</span><span style="color: #007700">(), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">mt_rand</span><span style="color: #007700">(</span><span style="color: #0000BB">5</span><span style="color: #007700">, </span><span style="color: #0000BB">15</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Il precedente esempio visualizzerà
qualcosa simile a:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">1604716014
1478613278
6</pre>
</div>
    </div>
   </div>
  </p>
 </div>

 <div class="refsect1 notes" id="refsect1-function.mt-rand-notes">
  <h3 class="title">Note</h3>
  <div class="warning"><strong class="warning">Avviso</strong>
   <p class="para">
    <code class="parameter">min</code> <code class="parameter">max</code> range must
    be within the range <span class="function"><a href="function.mt-getrandmax.php" class="function">mt_getrandmax()</a></span>. i.e. (<code class="parameter">max</code> -
    <code class="parameter">min</code>) &lt;= <span class="function"><a href="function.mt-getrandmax.php" class="function">mt_getrandmax()</a></span>
    Otherwise, <span class="function"><strong>mt_rand()</strong></span> may return poorer random numbers
    than it should.
   </p>
  </div>
 </div>

 <div class="refsect1 seealso" id="refsect1-function.mt-rand-seealso">
  <h3 class="title">Vedere anche:</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.mt-srand.php" class="function" rel="rdfs-seeAlso">mt_srand()</a> - Seeds the Mersenne Twister Random Number Generator</span></li>
    <li><span class="function"><a href="function.mt-getrandmax.php" class="function" rel="rdfs-seeAlso">mt_getrandmax()</a> - Show largest possible random value</span></li>
    <li><span class="function"><a href="function.random-int.php" class="function" rel="rdfs-seeAlso">random_int()</a> - Get a cryptographically secure, uniformly selected integer</span></li>
    <li><span class="function"><a href="function.random-bytes.php" class="function" rel="rdfs-seeAlso">random_bytes()</a> - Get cryptographically secure random bytes</span></li>
   </ul>
  </p>
 </div>

</div><?php manual_footer($setup); ?>