Man page - setstate(3)

Packages contains this manual

Available languages:

en fr pl ja ru ro de

Manual

random

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
ATTRIBUTS
STANDARDS
HISTORIQUE
NOTES
AVERTISSEMENTS
BOGUES
VOIR AUSSI
TRADUCTION

NOM

random, srandom, initstate, setstate - Générateur de nombres aléatoires

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <stdlib.h>

long random(void);
void srandom(unsigned int
graine );

char *initstate(unsigned int graine , char état , size_t n );
char *setstate(char *
état );

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros (7)) :

random (), srandom (), initstate (), setstate ():
_XOPEN_SOURCE >= 500
|| /* glibc >= 2.19 : */ _DEFAULT_SOURCE
|| /* glibc <= 2.19 : */ _SVID_SOURCE || _BSD_SOURCE

DESCRIPTION

La fonction random () utilise un générateur de nombre aléatoire non linéaire (« non-linear additive feedback random number generator ») utilisant une table par défaut de 31 entiers longs pour renvoyer successivement des nombres pseudoaléatoires entre 0 et 2^31 - 1. La période de ce générateur est trÚs grande, approximativement 16 * ((2^31) - 1) .

La fonction srandom () utilise son argument comme « graine » pour engendrer une nouvelle sĂ©quence de nombres pseudoalĂ©atoires qui seront fournis lors des appels Ă  random (). Ces sĂ©quences sont reproductibles en invoquant srandom () avec la mĂȘme graine. Si aucune graine n’est fournie, aa fonction random () utilise automatiquement une graine originale de valeur 1 .

La fonction initstate () permet d’initialiser une table d’états state pour l’utiliser avec random (). La taille n de la table est utilisĂ©e par initstate () pour dĂ©terminer le niveau de sophistication du gĂ©nĂ©rateur de nombres alĂ©atoires. Plus grande est la table d’états, meilleurs seront les nombres alĂ©atoires. Les valeurs « optimales » pour la taille de la table d’états n sont 8 , 32 , 64 , 128 et 256 octets ; les autres montants seront arrondis au montant connu le plus proche. Utiliser moins de huit octets provoque une erreur. graine est la graine utilise pour l’initialisation, indiquant un point de dĂ©part pour la sĂ©quence de nombres alĂ©atoires, et permet de redĂ©marrer au mĂȘme endroit.

La fonction setstate () modifie la table d’états utilisĂ©e par la fonction random (). La table d’états Ă©tat est alors utilise comme gĂ©nĂ©rateur de nombres alĂ©atoires jusqu’au prochain appel de initstate () ou setstate (). Ă©tat doit d’abord ĂȘtre initialisĂ©e avec initstate () ou ĂȘtre le rĂ©sultat d’un appel prĂ©cĂ©dent Ă  setstate ().

VALEUR RENVOYÉE

La fonction random () renvoie une valeur entre 0 et (2^31) - 1 . La fonction srandom () ne renvoie pas de valeur.

La fonction initstate () renvoie un pointeur sur la table d’états prĂ©cĂ©dente. En cas d’échec, elle renvoie NULL et errno contient le code d’erreur.

La fonction setstate () renvoie un pointeur sur la table d’états prĂ©cĂ©dente. En cas d’échec, NULL est renvoyĂ© et errno est dĂ©fini pour indiquer l’erreur.

ERREURS

EINVAL

Le paramÚtre état de setstate () était NULL.

EINVAL

Une table d’états de moins de 8 octets a Ă©tĂ© fournie Ă  initstate ().

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3888033-1.png

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001, 4.3BSD.

NOTES

La génération de nombres aléatoires est un sujet complexe. Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling ; New York : Cambridge University Press, 2007, 3e éd.) fournit une excellente discussion sur les problÚmes pratiques de génération de noms aléatoires dans le chapitre 7 (Random Numbers).

Pour une discussion plus thĂ©orique, qui aborde Ă©galement en profondeur d’autres domaines, voir le chapitre 3 (Random Numbers) du livre de Donald E. Knuth The Art of Computer Programming , volume 2 (Seminumerical Algorithms), 2e Ă©d. ; Reading, Massachusetts : Addison-Wesley Publishing Company, 1981.

AVERTISSEMENTS

La fonction random () ne doit pas ĂȘtre utilisĂ©e dans des programmes multithreadĂ©s oĂč le comportement doit ĂȘtre reproductible. Utilisez random_r (3) dans ce cas.

BOGUES

D’aprĂšs POSIX, initstate () devrait renvoyer NULL en cas d’erreur. Dans la mise en Ɠuvre de la glibc, errno est renseignĂ© en cas d’erreur comme spĂ©cifiĂ©, mais la fonction ne renvoie pas NULL .

VOIR AUSSI

getrandom (2), drand48 (3), rand (3), random_r (3), srand (3)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et bubu <bubub@no-log.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .