-
Notifications
You must be signed in to change notification settings - Fork 39
/
lcg-value.xml
90 lines (85 loc) · 2.92 KB
/
lcg-value.xml
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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 67f40681074b41ddac0e11b6675df3d628a0da62 Maintainer: hholzgra Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: 2166824858a40ea664c558f2930b63b8f4fd89c6 Reviewer: samesch -->
<refentry xml:id="function.lcg-value" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>lcg_value</refname>
<refpurpose>Kongruenzgenerator für Pseudozufallszahlen</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>float</type><methodname>lcg_value</methodname>
<void/>
</methodsynopsis>
<para>
<function>lcg_value</function> gibt eine Pseudozufallszahl zwischen Null
und Eins (inklusive) zurück. Die Funktion kombiniert zwei gemischte
kongruente Kongruenzgeneratoren mit den Perioden 2^31 - 85 und 2^31 - 249.
Die Periode der von dieser Funktion generierten Pseudozufallsfolge
entspricht dem Produkt dieser beiden Primzahlen.
</para>
&caution.cryptographically-insecure;
<caution>
<para>
Wenn der Rückgabewert durch Multiplikation oder Addition auf ein anderes
Intervall skaliert wird (eine sogenannte affine Transformation), kann dies
zu einer Verzerrung des resultierenden Wertes führen, weil Gleitkommazahlen
auf der Zahlengeraden nicht gleichmäßig dicht sind. Da nicht alle Werte
exakt durch eine Gleitkommazahl dargestellt werden können, kann das Ergebnis
der affinen Transformation auch zu Werten außerhalb des gewünschten
Intervalls führen.
</para>
<para>
Um einen zufälligen Gleitkommawert innerhalb eines beliebigen Intervalls
zu erzeugen, kann <methodname>Random\Randomizer::getFloat</methodname>
verwendet werden. Mit <methodname>Random\Randomizer::getInt</methodname>
kann eine zufällige Ganzzahl innerhalb eines beliebigen Intervalls
erzeugt werden.
</para>
</caution>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Eine Pseudozufallszahl zwischen 0.0 und 1.0 (inklusive) als
<type>float</type>.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>Random\Randomizer::getFloat</methodname></member>
<member><methodname>Random\Randomizer::getInt</methodname></member>
<member><function>random_int</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
-->