~ubuntu-branches/ubuntu/utopic/glib2.0/utopic

« back to all changes in this revision

Viewing changes to docs/reference/glib/html/glib-Random-Numbers.html

Tags: upstream-2.12.12
ImportĀ upstreamĀ versionĀ 2.12.12

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
2
<html>
 
3
<head>
 
4
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 
5
<title>Random Numbers</title>
 
6
<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 
7
<link rel="start" href="index.html" title="GLib Reference Manual">
 
8
<link rel="up" href="glib-utilities.html" title="GLib Utilities">
 
9
<link rel="prev" href="glib-Date-and-Time-Functions.html" title="Date and Time Functions">
 
10
<link rel="next" href="glib-Hook-Functions.html" title="Hook Functions">
 
11
<meta name="generator" content="GTK-Doc V1.7 (XML mode)">
 
12
<link rel="stylesheet" href="style.css" type="text/css">
 
13
<link rel="chapter" href="glib.html" title="GLib Overview">
 
14
<link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
 
15
<link rel="chapter" href="glib-core.html" title="GLib Core Application Support">
 
16
<link rel="chapter" href="glib-utilities.html" title="GLib Utilities">
 
17
<link rel="chapter" href="glib-data-types.html" title="GLib Data Types">
 
18
<link rel="chapter" href="tools.html" title="GLib Tools">
 
19
<link rel="index" href="ix01.html" title="Index">
 
20
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
 
21
<link rel="index" href="ix03.html" title="Index of new symbols in 2.2">
 
22
<link rel="index" href="ix04.html" title="Index of new symbols in 2.4">
 
23
<link rel="index" href="ix05.html" title="Index of new symbols in 2.6">
 
24
<link rel="index" href="ix06.html" title="Index of new symbols in 2.8">
 
25
<link rel="index" href="ix07.html" title="Index of new symbols in 2.10">
 
26
<link rel="index" href="ix08.html" title="Index of new symbols in 2.12">
 
27
</head>
 
28
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 
29
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 
30
<tr valign="middle">
 
31
<td><a accesskey="p" href="glib-Date-and-Time-Functions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 
32
<td><a accesskey="u" href="glib-utilities.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 
33
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 
34
<th width="100%" align="center">GLib Reference Manual</th>
 
35
<td><a accesskey="n" href="glib-Hook-Functions.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 
36
</tr>
 
37
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2900839" class="shortcut">Top</a>
 
38
                  &#160;|&#160;
 
39
                  <a href="#id2901301" class="shortcut">Description</a></nobr></td></tr>
 
40
</table>
 
41
<div class="refentry" lang="en">
 
42
<a name="glib-Random-Numbers"></a><div class="titlepage"></div>
 
43
<div class="refnamediv"><table width="100%"><tr>
 
44
<td valign="top">
 
45
<h2>
 
46
<a name="id2900839"></a><span class="refentrytitle">Random Numbers</span>
 
47
</h2>
 
48
<p>Random Numbers &#8212; pseudo-random number generator.</p>
 
49
</td>
 
50
<td valign="top" align="right"></td>
 
51
</tr></table></div>
 
52
<div class="refsynopsisdiv">
 
53
<h2>Synopsis</h2>
 
54
<pre class="synopsis">
 
55
 
 
56
#include &lt;glib.h&gt;
 
57
 
 
58
 
 
59
                    <a href="glib-Random-Numbers.html#GRand">GRand</a>;
 
60
<a href="glib-Random-Numbers.html#GRand">GRand</a>*              <a href="glib-Random-Numbers.html#g-rand-new-with-seed">g_rand_new_with_seed</a>                (<a href="glib-Basic-Types.html#guint32">guint32</a> seed);
 
61
<a href="glib-Random-Numbers.html#GRand">GRand</a>*              <a href="glib-Random-Numbers.html#g-rand-new-with-seed-array">g_rand_new_with_seed_array</a>          (const <a href="glib-Basic-Types.html#guint32">guint32</a> *seed,
 
62
                                                         <a href="glib-Basic-Types.html#guint">guint</a> seed_length);
 
63
<a href="glib-Random-Numbers.html#GRand">GRand</a>*              <a href="glib-Random-Numbers.html#g-rand-new">g_rand_new</a>                          (void);
 
64
<a href="glib-Random-Numbers.html#GRand">GRand</a>*              <a href="glib-Random-Numbers.html#g-rand-copy">g_rand_copy</a>                         (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_);
 
65
void                <a href="glib-Random-Numbers.html#g-rand-free">g_rand_free</a>                         (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_);
 
66
void                <a href="glib-Random-Numbers.html#g-rand-set-seed">g_rand_set_seed</a>                     (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_,
 
67
                                                         <a href="glib-Basic-Types.html#guint32">guint32</a> seed);
 
68
void                <a href="glib-Random-Numbers.html#g-rand-set-seed-array">g_rand_set_seed_array</a>               (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_,
 
69
                                                         const <a href="glib-Basic-Types.html#guint32">guint32</a> *seed,
 
70
                                                         <a href="glib-Basic-Types.html#guint">guint</a> seed_length);
 
71
#define             <a href="glib-Random-Numbers.html#g-rand-boolean">g_rand_boolean</a>                      (rand_)
 
72
<a href="glib-Basic-Types.html#guint32">guint32</a>             <a href="glib-Random-Numbers.html#g-rand-int">g_rand_int</a>                          (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_);
 
73
<a href="glib-Basic-Types.html#gint32">gint32</a>              <a href="glib-Random-Numbers.html#g-rand-int-range">g_rand_int_range</a>                    (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_,
 
74
                                                         <a href="glib-Basic-Types.html#gint32">gint32</a> begin,
 
75
                                                         <a href="glib-Basic-Types.html#gint32">gint32</a> end);
 
76
<a href="glib-Basic-Types.html#gdouble">gdouble</a>             <a href="glib-Random-Numbers.html#g-rand-double">g_rand_double</a>                       (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_);
 
77
<a href="glib-Basic-Types.html#gdouble">gdouble</a>             <a href="glib-Random-Numbers.html#g-rand-double-range">g_rand_double_range</a>                 (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_,
 
78
                                                         <a href="glib-Basic-Types.html#gdouble">gdouble</a> begin,
 
79
                                                         <a href="glib-Basic-Types.html#gdouble">gdouble</a> end);
 
80
void                <a href="glib-Random-Numbers.html#g-random-set-seed">g_random_set_seed</a>                   (<a href="glib-Basic-Types.html#guint32">guint32</a> seed);
 
81
#define             <a href="glib-Random-Numbers.html#g-random-boolean">g_random_boolean</a>                    ()
 
82
<a href="glib-Basic-Types.html#guint32">guint32</a>             <a href="glib-Random-Numbers.html#g-random-int">g_random_int</a>                        (void);
 
83
<a href="glib-Basic-Types.html#gint32">gint32</a>              <a href="glib-Random-Numbers.html#g-random-int-range">g_random_int_range</a>                  (<a href="glib-Basic-Types.html#gint32">gint32</a> begin,
 
84
                                                         <a href="glib-Basic-Types.html#gint32">gint32</a> end);
 
85
<a href="glib-Basic-Types.html#gdouble">gdouble</a>             <a href="glib-Random-Numbers.html#g-random-double">g_random_double</a>                     (void);
 
86
<a href="glib-Basic-Types.html#gdouble">gdouble</a>             <a href="glib-Random-Numbers.html#g-random-double-range">g_random_double_range</a>               (<a href="glib-Basic-Types.html#gdouble">gdouble</a> begin,
 
87
                                                         <a href="glib-Basic-Types.html#gdouble">gdouble</a> end);
 
88
</pre>
 
89
</div>
 
90
<div class="refsect1" lang="en">
 
91
<a name="id2901301"></a><h2>Description</h2>
 
92
<p>
 
93
The following functions allow you to use a portable, fast and good
 
94
pseudo-random number generator (PRNG). It uses the Mersenne Twister
 
95
PRNG, which was originally developed by Makoto Matsumoto and Takuji
 
96
Nishimura. Further information can be found at <a href="http://www.math.keio.ac.jp/~matumoto/emt.html" target="_top">www.math.keio.ac.jp/~matumoto/emt.html</a>.
 
97
</p>
 
98
<p>
 
99
If you just need a random number, you simply call the 
 
100
<code class="function">g_random_*</code> functions, which will create a globally 
 
101
used <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a> and use the according <code class="function">g_rand_*</code> functions 
 
102
internally. Whenever you need a stream of reproducible random numbers, you 
 
103
better create a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a> yourself and use the <code class="function">g_rand_*</code> 
 
104
functions directly, which will also be slightly faster. Initializing a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a> 
 
105
with a certain seed will produce exactly the same series of random numbers 
 
106
on all platforms. This can thus be used as a seed for e.g. games.
 
107
</p>
 
108
<p>
 
109
The <code class="function">g_rand*_range</code> functions will return high quality
 
110
equally distributed random numbers, whereas for example the
 
111
<code class="literal">(<a href="glib-Random-Numbers.html#g-random-int"><code class="function">g_random_int()</code></a>%max)</code> approach often doesn't
 
112
yield equally distributed numbers.
 
113
</p>
 
114
<p>
 
115
GLib changed the seeding algorithm for the pseudo-random number
 
116
generator Mersenne Twister, as used by <span class="structname">GRand</span>
 
117
and <span class="structname">GRandom</span>. This was necessary, because some
 
118
seeds would yield very bad pseudo-random streams.  Also the
 
119
pseudo-random integers generated by
 
120
<code class="function">g_rand*<code class="function">_int_range()</code></code> will have a
 
121
slightly better equal distribution with the new version of GLib.
 
122
</p>
 
123
<p>
 
124
The original seeding and generation algorithms, as found in GLib 2.0.x,
 
125
can be used instead of the new ones by setting the environment variable
 
126
<code class="envar">G_RANDOM_VERSION</code> to the value of '2.0'. Use the
 
127
GLib-2.0 algorithms only if you have sequences of numbers generated
 
128
with Glib-2.0 that you need to reproduce exactly.
 
129
</p>
 
130
</div>
 
131
<div class="refsect1" lang="en">
 
132
<a name="id2901452"></a><h2>Details</h2>
 
133
<div class="refsect2" lang="en">
 
134
<a name="id2901462"></a><h3>
 
135
<a name="GRand"></a>GRand</h3>
 
136
<a class="indexterm" name="id2901474"></a><pre class="programlisting">typedef struct _GRand GRand;</pre>
 
137
<p>
 
138
The <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a> struct is an opaque data structure. It should only be
 
139
accessed through the <code class="function">g_rand_*</code> functions.
 
140
</p>
 
141
</div>
 
142
<hr>
 
143
<div class="refsect2" lang="en">
 
144
<a name="id2901505"></a><h3>
 
145
<a name="g-rand-new-with-seed"></a>g_rand_new_with_seed ()</h3>
 
146
<a class="indexterm" name="id2901519"></a><pre class="programlisting"><a href="glib-Random-Numbers.html#GRand">GRand</a>*              g_rand_new_with_seed                (<a href="glib-Basic-Types.html#guint32">guint32</a> seed);</pre>
 
147
<p>
 
148
Creates a new random number generator initialized with <em class="parameter"><code>seed</code></em>.</p>
 
149
<div class="variablelist"><table border="0">
 
150
<col align="left" valign="top">
 
151
<tbody>
 
152
<tr>
 
153
<td><span class="term"><em class="parameter"><code>seed</code></em>&#160;:</span></td>
 
154
<td> a value to initialize the random number generator.
 
155
</td>
 
156
</tr>
 
157
<tr>
 
158
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
159
<td> the new <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
160
</td>
 
161
</tr>
 
162
</tbody>
 
163
</table></div>
 
164
</div>
 
165
<hr>
 
166
<div class="refsect2" lang="en">
 
167
<a name="id2901592"></a><h3>
 
168
<a name="g-rand-new-with-seed-array"></a>g_rand_new_with_seed_array ()</h3>
 
169
<a class="indexterm" name="id2901608"></a><pre class="programlisting"><a href="glib-Random-Numbers.html#GRand">GRand</a>*              g_rand_new_with_seed_array          (const <a href="glib-Basic-Types.html#guint32">guint32</a> *seed,
 
170
                                                         <a href="glib-Basic-Types.html#guint">guint</a> seed_length);</pre>
 
171
<p>
 
172
Creates a new random number generator initialized with <em class="parameter"><code>seed</code></em>.</p>
 
173
<p>
 
174
 
 
175
</p>
 
176
<div class="variablelist"><table border="0">
 
177
<col align="left" valign="top">
 
178
<tbody>
 
179
<tr>
 
180
<td><span class="term"><em class="parameter"><code>seed</code></em>&#160;:</span></td>
 
181
<td> an array of seeds to initialize the random number generator.
 
182
</td>
 
183
</tr>
 
184
<tr>
 
185
<td><span class="term"><em class="parameter"><code>seed_length</code></em>&#160;:</span></td>
 
186
<td> an array of seeds to initialize the random number generator.
 
187
</td>
 
188
</tr>
 
189
<tr>
 
190
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
191
<td> the new <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
192
 
 
193
</td>
 
194
</tr>
 
195
</tbody>
 
196
</table></div>
 
197
<p class="since">Since  2.4
 
198
</p>
 
199
</div>
 
200
<hr>
 
201
<div class="refsect2" lang="en">
 
202
<a name="id2901713"></a><h3>
 
203
<a name="g-rand-new"></a>g_rand_new ()</h3>
 
204
<a class="indexterm" name="id2901725"></a><pre class="programlisting"><a href="glib-Random-Numbers.html#GRand">GRand</a>*              g_rand_new                          (void);</pre>
 
205
<p>
 
206
Creates a new random number generator initialized with a seed taken
 
207
either from <code class="filename">/dev/urandom</code> (if existing) or from 
 
208
the current time (as a fallback).</p>
 
209
<div class="variablelist"><table border="0">
 
210
<col align="left" valign="top">
 
211
<tbody><tr>
 
212
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
213
<td> the new <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
214
</td>
 
215
</tr></tbody>
 
216
</table></div>
 
217
</div>
 
218
<hr>
 
219
<div class="refsect2" lang="en">
 
220
<a name="id2901778"></a><h3>
 
221
<a name="g-rand-copy"></a>g_rand_copy ()</h3>
 
222
<a class="indexterm" name="id2901793"></a><pre class="programlisting"><a href="glib-Random-Numbers.html#GRand">GRand</a>*              g_rand_copy                         (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_);</pre>
 
223
<p>
 
224
Copies a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a> into a new one with the same exact state as before.
 
225
This way you can take a snapshot of the random number generator for
 
226
replaying later.</p>
 
227
<p>
 
228
 
 
229
</p>
 
230
<div class="variablelist"><table border="0">
 
231
<col align="left" valign="top">
 
232
<tbody>
 
233
<tr>
 
234
<td><span class="term"><em class="parameter"><code>rand_</code></em>&#160;:</span></td>
 
235
<td> a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
236
</td>
 
237
</tr>
 
238
<tr>
 
239
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
240
<td> the new <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
241
 
 
242
</td>
 
243
</tr>
 
244
</tbody>
 
245
</table></div>
 
246
<p class="since">Since  2.4
 
247
</p>
 
248
</div>
 
249
<hr>
 
250
<div class="refsect2" lang="en">
 
251
<a name="id2901886"></a><h3>
 
252
<a name="g-rand-free"></a>g_rand_free ()</h3>
 
253
<a class="indexterm" name="id2901898"></a><pre class="programlisting">void                g_rand_free                         (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_);</pre>
 
254
<p>
 
255
Frees the memory allocated for the <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.</p>
 
256
<div class="variablelist"><table border="0">
 
257
<col align="left" valign="top">
 
258
<tbody><tr>
 
259
<td><span class="term"><em class="parameter"><code>rand_</code></em>&#160;:</span></td>
 
260
<td> a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
261
</td>
 
262
</tr></tbody>
 
263
</table></div>
 
264
</div>
 
265
<hr>
 
266
<div class="refsect2" lang="en">
 
267
<a name="id2901962"></a><h3>
 
268
<a name="g-rand-set-seed"></a>g_rand_set_seed ()</h3>
 
269
<a class="indexterm" name="id2901974"></a><pre class="programlisting">void                g_rand_set_seed                     (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_,
 
270
                                                         <a href="glib-Basic-Types.html#guint32">guint32</a> seed);</pre>
 
271
<p>
 
272
Sets the seed for the random number generator <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a> to <em class="parameter"><code>seed</code></em>.</p>
 
273
<div class="variablelist"><table border="0">
 
274
<col align="left" valign="top">
 
275
<tbody>
 
276
<tr>
 
277
<td><span class="term"><em class="parameter"><code>rand_</code></em>&#160;:</span></td>
 
278
<td> a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
279
</td>
 
280
</tr>
 
281
<tr>
 
282
<td><span class="term"><em class="parameter"><code>seed</code></em>&#160;:</span></td>
 
283
<td> a value to reinitialize the random number generator.
 
284
</td>
 
285
</tr>
 
286
</tbody>
 
287
</table></div>
 
288
</div>
 
289
<hr>
 
290
<div class="refsect2" lang="en">
 
291
<a name="id2902066"></a><h3>
 
292
<a name="g-rand-set-seed-array"></a>g_rand_set_seed_array ()</h3>
 
293
<a class="indexterm" name="id2902082"></a><pre class="programlisting">void                g_rand_set_seed_array               (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_,
 
294
                                                         const <a href="glib-Basic-Types.html#guint32">guint32</a> *seed,
 
295
                                                         <a href="glib-Basic-Types.html#guint">guint</a> seed_length);</pre>
 
296
<p>
 
297
Initializes the random number generator by an array of
 
298
longs.  Array can be of arbitrary size, though only the
 
299
first 624 values are taken.  This function is useful
 
300
if you have many low entropy seeds, or if you require more then
 
301
32bits of actual entropy for your application.</p>
 
302
<p>
 
303
 
 
304
</p>
 
305
<div class="variablelist"><table border="0">
 
306
<col align="left" valign="top">
 
307
<tbody>
 
308
<tr>
 
309
<td><span class="term"><em class="parameter"><code>rand_</code></em>&#160;:</span></td>
 
310
<td> a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
311
</td>
 
312
</tr>
 
313
<tr>
 
314
<td><span class="term"><em class="parameter"><code>seed</code></em>&#160;:</span></td>
 
315
<td> array to initialize with
 
316
</td>
 
317
</tr>
 
318
<tr>
 
319
<td><span class="term"><em class="parameter"><code>seed_length</code></em>&#160;:</span></td>
 
320
<td> length of array
 
321
</td>
 
322
</tr>
 
323
</tbody>
 
324
</table></div>
 
325
<p class="since">Since  2.4
 
326
</p>
 
327
</div>
 
328
<hr>
 
329
<div class="refsect2" lang="en">
 
330
<a name="id2902194"></a><h3>
 
331
<a name="g-rand-boolean"></a>g_rand_boolean()</h3>
 
332
<a class="indexterm" name="id2902207"></a><pre class="programlisting">#define             g_rand_boolean(rand_)</pre>
 
333
<p>
 
334
Returns a random <a href="glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> from <em class="parameter"><code>rand_</code></em>. This corresponds to a unbiased
 
335
coin toss.
 
336
</p>
 
337
<div class="variablelist"><table border="0">
 
338
<col align="left" valign="top">
 
339
<tbody>
 
340
<tr>
 
341
<td><span class="term"><em class="parameter"><code>rand_</code></em>&#160;:</span></td>
 
342
<td>a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
343
</td>
 
344
</tr>
 
345
<tr>
 
346
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
347
<td>a random <a href="glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>.
 
348
 
 
349
 
 
350
</td>
 
351
</tr>
 
352
</tbody>
 
353
</table></div>
 
354
</div>
 
355
<hr>
 
356
<div class="refsect2" lang="en">
 
357
<a name="id2902281"></a><h3>
 
358
<a name="g-rand-int"></a>g_rand_int ()</h3>
 
359
<a class="indexterm" name="id2902294"></a><pre class="programlisting"><a href="glib-Basic-Types.html#guint32">guint32</a>             g_rand_int                          (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_);</pre>
 
360
<p>
 
361
Returns the next random <a href="glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> from <em class="parameter"><code>rand_</code></em> equally distributed over
 
362
the range [0..2^32-1].</p>
 
363
<div class="variablelist"><table border="0">
 
364
<col align="left" valign="top">
 
365
<tbody>
 
366
<tr>
 
367
<td><span class="term"><em class="parameter"><code>rand_</code></em>&#160;:</span></td>
 
368
<td> a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
369
</td>
 
370
</tr>
 
371
<tr>
 
372
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
373
<td> A random number.
 
374
</td>
 
375
</tr>
 
376
</tbody>
 
377
</table></div>
 
378
</div>
 
379
<hr>
 
380
<div class="refsect2" lang="en">
 
381
<a name="id2902374"></a><h3>
 
382
<a name="g-rand-int-range"></a>g_rand_int_range ()</h3>
 
383
<a class="indexterm" name="id2902387"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gint32">gint32</a>              g_rand_int_range                    (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_,
 
384
                                                         <a href="glib-Basic-Types.html#gint32">gint32</a> begin,
 
385
                                                         <a href="glib-Basic-Types.html#gint32">gint32</a> end);</pre>
 
386
<p>
 
387
Returns the next random <a href="glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> from <em class="parameter"><code>rand_</code></em> equally distributed over
 
388
the range [<em class="parameter"><code>begin</code></em>..<em class="parameter"><code>end</code></em>-1].</p>
 
389
<div class="variablelist"><table border="0">
 
390
<col align="left" valign="top">
 
391
<tbody>
 
392
<tr>
 
393
<td><span class="term"><em class="parameter"><code>rand_</code></em>&#160;:</span></td>
 
394
<td> a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
395
</td>
 
396
</tr>
 
397
<tr>
 
398
<td><span class="term"><em class="parameter"><code>begin</code></em>&#160;:</span></td>
 
399
<td> lower closed bound of the interval.
 
400
</td>
 
401
</tr>
 
402
<tr>
 
403
<td><span class="term"><em class="parameter"><code>end</code></em>&#160;:</span></td>
 
404
<td> upper open bound of the interval.
 
405
</td>
 
406
</tr>
 
407
<tr>
 
408
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
409
<td> A random number.
 
410
</td>
 
411
</tr>
 
412
</tbody>
 
413
</table></div>
 
414
</div>
 
415
<hr>
 
416
<div class="refsect2" lang="en">
 
417
<a name="id2902523"></a><h3>
 
418
<a name="g-rand-double"></a>g_rand_double ()</h3>
 
419
<a class="indexterm" name="id2902536"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gdouble">gdouble</a>             g_rand_double                       (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_);</pre>
 
420
<p>
 
421
Returns the next random <a href="glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> from <em class="parameter"><code>rand_</code></em> equally distributed over
 
422
the range [0..1).</p>
 
423
<div class="variablelist"><table border="0">
 
424
<col align="left" valign="top">
 
425
<tbody>
 
426
<tr>
 
427
<td><span class="term"><em class="parameter"><code>rand_</code></em>&#160;:</span></td>
 
428
<td> a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
429
</td>
 
430
</tr>
 
431
<tr>
 
432
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
433
<td> A random number.
 
434
</td>
 
435
</tr>
 
436
</tbody>
 
437
</table></div>
 
438
</div>
 
439
<hr>
 
440
<div class="refsect2" lang="en">
 
441
<a name="id2902616"></a><h3>
 
442
<a name="g-rand-double-range"></a>g_rand_double_range ()</h3>
 
443
<a class="indexterm" name="id2902630"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gdouble">gdouble</a>             g_rand_double_range                 (<a href="glib-Random-Numbers.html#GRand">GRand</a> *rand_,
 
444
                                                         <a href="glib-Basic-Types.html#gdouble">gdouble</a> begin,
 
445
                                                         <a href="glib-Basic-Types.html#gdouble">gdouble</a> end);</pre>
 
446
<p>
 
447
Returns the next random <a href="glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> from <em class="parameter"><code>rand_</code></em> equally distributed over
 
448
the range [<em class="parameter"><code>begin</code></em>..<em class="parameter"><code>end</code></em>).</p>
 
449
<div class="variablelist"><table border="0">
 
450
<col align="left" valign="top">
 
451
<tbody>
 
452
<tr>
 
453
<td><span class="term"><em class="parameter"><code>rand_</code></em>&#160;:</span></td>
 
454
<td> a <a href="glib-Random-Numbers.html#GRand"><span class="type">GRand</span></a>.
 
455
</td>
 
456
</tr>
 
457
<tr>
 
458
<td><span class="term"><em class="parameter"><code>begin</code></em>&#160;:</span></td>
 
459
<td> lower closed bound of the interval.
 
460
</td>
 
461
</tr>
 
462
<tr>
 
463
<td><span class="term"><em class="parameter"><code>end</code></em>&#160;:</span></td>
 
464
<td> upper open bound of the interval.
 
465
</td>
 
466
</tr>
 
467
<tr>
 
468
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
469
<td> A random number.
 
470
</td>
 
471
</tr>
 
472
</tbody>
 
473
</table></div>
 
474
</div>
 
475
<hr>
 
476
<div class="refsect2" lang="en">
 
477
<a name="id2902765"></a><h3>
 
478
<a name="g-random-set-seed"></a>g_random_set_seed ()</h3>
 
479
<a class="indexterm" name="id2902778"></a><pre class="programlisting">void                g_random_set_seed                   (<a href="glib-Basic-Types.html#guint32">guint32</a> seed);</pre>
 
480
<p>
 
481
Sets the seed for the global random number generator, which is used
 
482
by the <code class="function">g_random_*</code> functions, to <em class="parameter"><code>seed</code></em>.</p>
 
483
<div class="variablelist"><table border="0">
 
484
<col align="left" valign="top">
 
485
<tbody><tr>
 
486
<td><span class="term"><em class="parameter"><code>seed</code></em>&#160;:</span></td>
 
487
<td> a value to reinitialize the global random number generator.
 
488
</td>
 
489
</tr></tbody>
 
490
</table></div>
 
491
</div>
 
492
<hr>
 
493
<div class="refsect2" lang="en">
 
494
<a name="id2902840"></a><h3>
 
495
<a name="g-random-boolean"></a>g_random_boolean()</h3>
 
496
<a class="indexterm" name="id2902853"></a><pre class="programlisting">#define             g_random_boolean()</pre>
 
497
<p>
 
498
Returns a random <a href="glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>. This corresponds to a unbiased coin toss.
 
499
</p>
 
500
<div class="variablelist"><table border="0">
 
501
<col align="left" valign="top">
 
502
<tbody><tr>
 
503
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
504
<td>a random <a href="glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>.
 
505
 
 
506
 
 
507
</td>
 
508
</tr></tbody>
 
509
</table></div>
 
510
</div>
 
511
<hr>
 
512
<div class="refsect2" lang="en">
 
513
<a name="id2902900"></a><h3>
 
514
<a name="g-random-int"></a>g_random_int ()</h3>
 
515
<a class="indexterm" name="id2902913"></a><pre class="programlisting"><a href="glib-Basic-Types.html#guint32">guint32</a>             g_random_int                        (void);</pre>
 
516
<p>
 
517
Return a random <a href="glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> equally distributed over the range
 
518
[0..2^32-1].</p>
 
519
<div class="variablelist"><table border="0">
 
520
<col align="left" valign="top">
 
521
<tbody><tr>
 
522
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
523
<td> A random number.
 
524
</td>
 
525
</tr></tbody>
 
526
</table></div>
 
527
</div>
 
528
<hr>
 
529
<div class="refsect2" lang="en">
 
530
<a name="id2902959"></a><h3>
 
531
<a name="g-random-int-range"></a>g_random_int_range ()</h3>
 
532
<a class="indexterm" name="id2902973"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gint32">gint32</a>              g_random_int_range                  (<a href="glib-Basic-Types.html#gint32">gint32</a> begin,
 
533
                                                         <a href="glib-Basic-Types.html#gint32">gint32</a> end);</pre>
 
534
<p>
 
535
Returns a random <a href="glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> equally distributed over the range
 
536
[<em class="parameter"><code>begin</code></em>..<em class="parameter"><code>end</code></em>-1].</p>
 
537
<div class="variablelist"><table border="0">
 
538
<col align="left" valign="top">
 
539
<tbody>
 
540
<tr>
 
541
<td><span class="term"><em class="parameter"><code>begin</code></em>&#160;:</span></td>
 
542
<td> lower closed bound of the interval.
 
543
</td>
 
544
</tr>
 
545
<tr>
 
546
<td><span class="term"><em class="parameter"><code>end</code></em>&#160;:</span></td>
 
547
<td> upper open bound of the interval.
 
548
</td>
 
549
</tr>
 
550
<tr>
 
551
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
552
<td> A random number.
 
553
</td>
 
554
</tr>
 
555
</tbody>
 
556
</table></div>
 
557
</div>
 
558
<hr>
 
559
<div class="refsect2" lang="en">
 
560
<a name="id2903073"></a><h3>
 
561
<a name="g-random-double"></a>g_random_double ()</h3>
 
562
<a class="indexterm" name="id2903086"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gdouble">gdouble</a>             g_random_double                     (void);</pre>
 
563
<p>
 
564
Returns a random <a href="glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> equally distributed over the range [0..1).</p>
 
565
<div class="variablelist"><table border="0">
 
566
<col align="left" valign="top">
 
567
<tbody><tr>
 
568
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
569
<td> A random number.
 
570
</td>
 
571
</tr></tbody>
 
572
</table></div>
 
573
</div>
 
574
<hr>
 
575
<div class="refsect2" lang="en">
 
576
<a name="id2903132"></a><h3>
 
577
<a name="g-random-double-range"></a>g_random_double_range ()</h3>
 
578
<a class="indexterm" name="id2903146"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gdouble">gdouble</a>             g_random_double_range               (<a href="glib-Basic-Types.html#gdouble">gdouble</a> begin,
 
579
                                                         <a href="glib-Basic-Types.html#gdouble">gdouble</a> end);</pre>
 
580
<p>
 
581
Returns a random <a href="glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> equally distributed over the range [<em class="parameter"><code>begin</code></em>..<em class="parameter"><code>end</code></em>).</p>
 
582
<div class="variablelist"><table border="0">
 
583
<col align="left" valign="top">
 
584
<tbody>
 
585
<tr>
 
586
<td><span class="term"><em class="parameter"><code>begin</code></em>&#160;:</span></td>
 
587
<td> lower closed bound of the interval.
 
588
</td>
 
589
</tr>
 
590
<tr>
 
591
<td><span class="term"><em class="parameter"><code>end</code></em>&#160;:</span></td>
 
592
<td> upper open bound of the interval.
 
593
</td>
 
594
</tr>
 
595
<tr>
 
596
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
597
<td> A random number.
 
598
</td>
 
599
</tr>
 
600
</tbody>
 
601
</table></div>
 
602
</div>
 
603
</div>
 
604
</div>
 
605
</body>
 
606
</html>