Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

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

SYNOPSIS

       #include <stdlib.h>

       long int random(void);

       void srandom(unsigned int seed);

       char *initstate(unsigned int seed, char *state, size_t n);
       char *setstate(char *state);

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

       random(), srandom(), initstate(), setstate() :
           _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

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 RAND_MAX. 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
       nombre  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, La 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  nombre  aléatoires.  Plus  grande  est  la  table  d'état,  meilleurs  seront les nombres
       aléatoires. seed est la graine utilisée pour l'initialisation, indiquant  un  point  de  départ  pour  la
       séquence de nombres, 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'état state
       est alors utilisée comme générateur de nombres aléatoires  jusqu'au  prochain  appel  de  initstate()  ou
       setstate(). state 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 RAND_MAX. 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,  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 contient le code d'erreur.

ERREURS

       EINVAL Le paramètre state de setstate() était NULL.

       EINVAL Une table d'états de moins de 8 octets a été fournie à initstate().

ATTRIBUTS

   Multithreading (voir pthreads(7))
       Les fonctions random(), srandom(), initstate() et setstate() sont sûre dans un contexte multithread.

CONFORMITÉ

       BSD 4.3, POSIX.1-2001.

NOTES

       Actuellement, les valeurs optimales n, pour la taille de la  table  d'états  sont  8,  32,  64,  128,  et
       256 octets.  Les  autres valeurs seront arrondies à la taille la plus proche. Essayer d'utiliser moins de
       8 octets déclenche une erreur.

       Cette fonction ne devrait pas être utilisée si plusieurs threads utilisent random() et si le comportement
       doit être reproductible. Utilisez random_r(3) dans ce cas.

       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, 3rd ed.) 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), 2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing Company, 1981.

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

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

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
       instructions    pour    signaler    des    anomalies    peuvent     être     trouvées     à     l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe       Blaess       <http://www.blaess.fr/christophe/>      (1996-2003),      Alain      Portal
       <http://manpagesfr.free.fr/> (2003-2006). Nicolas François  et  l'équipe  francophone  de  traduction  de
       Debian (2006-2009).

       Veuillez  signaler  toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

GNU                                               25 mars 2014                                         RANDOM(3)