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> ».