-
Notifications
You must be signed in to change notification settings - Fork 60
Expand file tree
/
Copy pathmt-rand.xml
More file actions
203 lines (196 loc) · 6.17 KB
/
mt-rand.xml
File metadata and controls
203 lines (196 loc) · 6.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: d6dc2be3c5c70e4a1c3d13f788643ea232747c19 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.mt-rand" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>mt_rand</refname>
<refpurpose>Genera un valor aleatorio mediante el generador de números aleatorios Mersenne Twister</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>mt_rand</methodname>
<void/>
</methodsynopsis>
<methodsynopsis>
<type>int</type><methodname>mt_rand</methodname>
<methodparam><type>int</type><parameter>min</parameter></methodparam>
<methodparam><type>int</type><parameter>max</parameter></methodparam>
</methodsynopsis>
<simpara>
Muchos generadores de números aleatorios
provenientes de viejas bibliotecas libcs tienen comportamientos
dudosos y son muy lentos. <function>mt_rand</function> es una
función de reemplazo para <function>rand</function>. Utiliza un
generador de números aleatorios de característica
conocida, el " <link xlink:href="&url.mersenne;">Mersenne Twister</link> " que
es 4 veces más rápido que la función estándar libc.
</simpara>
<simpara>
Llamada sin los argumentos opcionales <parameter>min</parameter> y
<parameter>max</parameter>, <function>mt_rand</function> devuelve un número
pseudoaleatorio, entre 0 y <function>mt_getrandmax</function>.
Para obtener un número entre 5 y 15 inclusive, se debe utilizar
<literal>mt_rand(5,15)</literal>.
</simpara>
&caution.cryptographically-insecure;
&caution.mt19937-global-state;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>min</parameter></term>
<listitem>
<para>
Valor más bajo que puede ser devuelto (por omisión: 0)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>max</parameter></term>
<listitem>
<para>
Valor más alto que puede ser devuelto (por omisión: <function>mt_getrandmax</function>).
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Un &integer; aleatorio comprendido entre <parameter>min</parameter> (o 0)
y <parameter>max</parameter> (o <function>mt_getrandmax</function>, inclusivo).
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<itemizedlist>
<listitem>
<simpara>
Si <parameter>max</parameter> es inferior a <parameter>min</parameter>,
se lanzará una excepción <classname>ValueError</classname>.
</simpara>
</listitem>
</itemizedlist>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
Se lanzará una excepción <classname>ValueError</classname> si <parameter>max</parameter> es inferior a <parameter>min</parameter>;
anteriormente, se emitía un <constant>E_WARNING</constant> y la función devolvía &false;.
</entry>
</row>
<row>
<entry>7.2.0</entry>
<entry>
<function>mt_rand</function> <link linkend="migration72.incompatible.rand-mt_rand-output">recibió una corrección de error</link> para un bug de polarización módulo. Esto significa que las secuencias generadas con un valor de inicialización específico pueden diferir de PHP 7.1 en máquinas de 64 bits.
</entry>
</row>
<row>
<entry>7.1.0</entry>
<entry>
<function>rand</function> <link linkend="migration71.incompatible.rand-srand-aliases">se convirtió</link> en un alias de <function>mt_rand</function>.
</entry>
</row>
<row>
<entry>7.1.0</entry>
<entry>
<function>mt_rand</function>
<link linkend="migration71.incompatible.fixes-to-mt_rand-algorithm">fue actualizado</link>
para utilizar la versión corregida, correcta, del algoritmo Twister
Mersenne. Para volver al comportamiento anterior, utilice
<function>mt_srand</function> con <constant>MT_RAND_PHP</constant>
como segundo parámetro.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo con <function>mt_rand</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo mt_rand(), "\n";
echo mt_rand(), "\n";
echo mt_rand(5, 15), "\n";
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
1604716014
1478613278
6
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning>
<para>
El rango <parameter>min</parameter> <parameter>max</parameter> debe estar
dentro del rango <function>mt_getrandmax</function>. es decir,
(<parameter>max</parameter> - <parameter>min</parameter>) <=
<function>mt_getrandmax</function> de lo contrario, <function>mt_rand</function> puede
devolver números aleatorios de menor calidad de lo que debería.
</para>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>mt_srand</function></member>
<member><function>mt_getrandmax</function></member>
<member><function>random_int</function></member>
<member><function>random_bytes</function></member>
</simplelist>
</para>
</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:"~/.phpdoc/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
-->