Man page - lcong48(3)

Packages contains this manual

Available languages:

en fr pt_BR es pl ja ro

Manual

drand48

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
ATTRIBUTS
STANDARDS
HISTORIQUE
VOIR AUSSI
TRADUCTION

NOM

drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - Générer des nombres pseudoaléatoires uniformément distribués

BIBLIOTHÈQUE

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

SYNOPSIS

#include <stdlib.h>

double drand48(void);
double erand48(unsigned short
xsubi [3]);

long lrand48(void);
long nrand48(unsigned short
xsubi [3]);

long mrand48(void);
long jrand48(unsigned short
xsubi [3]);

void srand48(long valeur_graine );
unsigned short *seed48(unsigned short
graine_16v [3]);
void lcong48(unsigned short
param [7]);

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

Pour toutes les fonctions ci-dessus :
_XOPEN_SOURCE
|| /* glibc >= 2.19 : */ _DEFAULT_SOURCE
|| /* glibc <= 2.19 : */ _SVID_SOURCE

DESCRIPTION

Ces fonctions génÚrent des nombres pseudoaléatoires en utilisant un algorithme de congruence linéaire et une arithmétique entiÚre sur 48 bits.

Les fonctions drand48 () et erand48 () renvoient des valeurs positives en virgule flottante double prĂ©cision uniformĂ©ment distribuĂ©es dans l’intervalle [0.0 ; 1.0[.

Les fonctions lrand48 () et nrand48 () renvoient des entiers longs positifs, uniformĂ©ment distribuĂ©s dans l’intervalle [0 ; 2^31[.

Les fonctions mrand48 () et jrand48 () renvoient des entiers longs signĂ©s, uniformĂ©ment distribuĂ©s dans l’intervalle [-2^31 ; 2^31[.

Les fonctions srand48 (), seed48 () et lcong48 () sont des fonctions d’initialisation. L’une d’entre elles doit ĂȘtre appelĂ©e avant d’utiliser les fonctions drand48 (), lrand48 () ou mrand48 (). Les fonctions erand48 (), nrand48 () et jrand48 () ne nĂ©cessitent pas de fonction d’initialisation.

Toutes ces fonctions engendrent une sĂ©quence d’entiers Xi sur 48 bits suivant la formule de congruence linĂ©aire :

Xn+1 = (aXn + c) mod m, avec n >= 0

Le paramĂštre m vaut 2^48, ainsi l’arithmĂ©tique entiĂšre sur 48 bits est respectĂ©e. Sauf si lcong48 () est appelĂ©e, a et c valent :

a = 0x5DEECE66D
c = 0xB

Les valeurs renvoyĂ©es par les fonctions drand48 (), erand48 (), lrand48 (), nrand48 (), mrand48 () ou jrand48 () sont calculĂ©es en gĂ©nĂ©rant tout d’abord le Xi suivant sur 48 bits dans la sĂ©quence. Ensuite, le nombre de bits appropriĂ© au type de la valeur de retour est copiĂ© en partant des bits de poids fort de Xi et converti dans la valeur renvoyĂ©e.

Les fonctions drand48 (), lrand48 () et mrand48 () mĂ©morisent le dernier Xi sur 48 bits créé dans un tampon interne. Les fonctions erand48 (), nrand48 () et jrand48 () nĂ©cessitent que le programme appelant fournisse un emplacement de stockage pour les valeurs successives de Xi . Cet emplacement est le tableau correspondant Ă  l’argument xsubi . Ces fonctions sont initialisĂ©es en plaçant la valeur initiale de Xi dans le tableau avant le premier appel de la fonction.

La fonction d’initialisation srand48 () dĂ©finit les 32 bits de poids fort de Xi avec l’argument valeur_graine . Les 16 bits de poids faible sont initialisĂ©s avec la valeur arbitraire 0x330E.

La fonction d’initialisation seed48 () dĂ©finit la valeur de Xi avec la valeur sur 48 bits spĂ©cifiĂ©e dans l’argument seed16v . La valeur prĂ©cĂ©dente de Xi est copiĂ©e dans un tampon interne et un pointeur vers ce tampon est renvoyĂ© par seed48 ().

La fonction d’initialisation lcong48 () permet Ă  l’utilisateur de dĂ©finir des valeurs initiales de Xi , a et c . Dans le tableau param , les Ă©lĂ©ments param[0-2] spĂ©cifient Xi , param[3-5] spĂ©cifient a et param[6] spĂ©cifie c . AprĂšs un appel Ă  lcong48 (), un appel ultĂ©rieur Ă  srand48 () ou Ă  seed48 () rĂ©tablira les valeurs normales de a et c .

ATTRIBUTS

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

Image grohtml-3877649-1.png

Les fonctions ci-dessus enregistrent globalement l’état du gĂ©nĂ©rateur de nombre alĂ©atoire. Elles ne sont donc pas sĂ»res dans un contexte multithread.

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001, SVr4.

VOIR AUSSI

rand (3), random (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 Lucien Gentis <lucien.gentis@waika9.com>

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 .