.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Sat Jul 24 19:46:03 1993 by Rik Faith (faith@cs.unc.edu) .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH drand48 3 "20 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 \- Générer des nombres pseudoaléatoires uniformément distribués .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBdouble drand48(void);\fP \fBdouble erand48(unsigned short\fP \fIxsubi\fP\fB[3]);\fP .PP \fBlong lrand48(void);\fP \fBlong nrand48(unsigned short\fP \fIxsubi\fP\fB[3]);\fP .PP \fBlong mrand48(void);\fP \fBlong jrand48(unsigned short\fP \fIxsubi\fP\fB[3]);\fP .PP \fBvoid srand48(long\fP \fIvaleur_graine\fP\fB);\fP \fBunsigned short *seed48(unsigned short\fP \fIgraine_16v\fP\fB[3]);\fP \fBvoid lcong48(unsigned short\fP \fIparam\fP\fB[7]);\fP .fi .PP .RS -4 Exigences de macros de test de fonctionnalités pour la glibc (consulter \fBfeature_test_macros\fP(7))\ : .RE .PP .\" .BR drand48 (), .\" .BR erand48 (), .\" .BR lrand48 (), .\" .BR nrand48 (), .\" .BR mrand48 (), .\" .BR jrand48 (), .\" .BR srand48 (), .\" .BR seed48 (), .\" .BR lcong48 (): Pour toutes les fonctions ci\-dessus\ : .nf _XOPEN_SOURCE || /* glibc >= 2.19 : */ _DEFAULT_SOURCE || /* glibc <= 2.19 : */ _SVID_SOURCE .fi .SH 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. .PP Les fonctions \fBdrand48\fP() et \fBerand48\fP() renvoient des valeurs positives en virgule flottante double précision uniformément distribuées dans l'intervalle [0.0\ ;\ 1.0[. .PP Les fonctions \fBlrand48\fP() et \fBnrand48\fP() renvoient des entiers longs positifs, uniformément distribués dans l'intervalle [0\ ;\ 2\[ha]31[. .PP Les fonctions \fBmrand48\fP() et \fBjrand48\fP() renvoient des entiers longs signés, uniformément distribués dans l'intervalle [\-2\[ha]31\ ;\ 2\[ha]31[. .PP Les fonctions \fBsrand48\fP(), \fBseed48\fP() et \fBlcong48\fP() sont des fonctions d'initialisation. L'une d'entre elles doit être appelée avant d'utiliser les fonctions \fBdrand48\fP(), \fBlrand48\fP() ou \fBmrand48\fP(). Les fonctions \fBerand48\fP(), \fBnrand48\fP() et \fBjrand48\fP() ne nécessitent pas de fonction d'initialisation. .PP Toutes ces fonctions engendrent une séquence d'entiers \fIXi\fP sur 48\ bits suivant la formule de congruence linéaire\ : .PP .in +4n .EX \fBXn+1 = (aXn + c) mod m, avec n >= 0\fP .EE .in .PP Le paramètre \fIm\fP vaut 2\[ha]48, ainsi l'arithmétique entière sur 48\ bits est respectée. Sauf si \fBlcong48\fP() est appelée, \fIa\fP et \fIc\fP valent\ : .PP .in +4n .EX \fBa = 0x5DEECE66D\fP \fBc = 0xB\fP .EE .in .PP Les valeurs renvoyées par les fonctions \fBdrand48\fP(), \fBerand48\fP(), \fBlrand48\fP(), \fBnrand48\fP(), \fBmrand48\fP() ou \fBjrand48\fP() sont calculées en générant tout d'abord le \fIXi\fP 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 \fIXi\fP et converti dans la valeur renvoyée. .PP Les fonctions \fBdrand48\fP(), \fBlrand48\fP() et \fBmrand48\fP() mémorisent le dernier \fIXi\fP sur 48\ bits créé dans un tampon interne. Les fonctions \fBerand48\fP(), \fBnrand48\fP() et \fBjrand48\fP() nécessitent que le programme appelant fournisse un emplacement de stockage pour les valeurs successives de \fIXi\fP. Cet emplacement est le tableau correspondant à l'argument \fIxsubi\fP. Ces fonctions sont initialisées en plaçant la valeur initiale de \fIXi\fP dans le tableau avant le premier appel de la fonction. .PP La fonction d'initialisation \fBsrand48\fP() définit les 32\ bits de poids fort de \fIXi\fP avec l'argument \fIvaleur_graine\fP. Les 16\ bits de poids faible sont initialisés avec la valeur arbitraire 0x330E. .PP La fonction d'initialisation \fBseed48\fP() définit la valeur de \fIXi\fP avec la valeur sur 48\ bits spécifiée dans l'argument \fIseed16v\fP. La valeur précédente de \fIXi\fP est copiée dans un tampon interne et un pointeur vers ce tampon est renvoyé par \fBseed48\fP(). .PP La fonction d'initialisation \fBlcong48\fP() permet à l'utilisateur de définir des valeurs initiales de \fIXi\fP, \fIa\fP et \fIc\fP. Dans le tableau \fIparam\fP, les éléments \fIparam[0\-2]\fP spécifient \fIXi\fP, \fIparam[3\-5]\fP spécifient \fIa\fP et \fIparam[6]\fP spécifie \fIc\fP. Après un appel à \fBlcong48\fP(), un appel ultérieur à \fBsrand48\fP() ou à \fBseed48\fP() rétablira les valeurs normales de \fIa\fP et \fIc\fP. .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ .na .nh \fBdrand48\fP(), \fBerand48\fP(), \fBlrand48\fP(), \fBnrand48\fP(), \fBmrand48\fP(), \fBjrand48\fP(), \fBsrand48\fP(), \fBseed48\fP(), \fBlcong48\fP() T} Sécurité des threads T{ .na .nh MT\-Unsafe race:drand48 T} .TE .sp 1 .PP 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. .SH STANDARDS POSIX.1\-2008. .SH HISTORIQUE POSIX.1\-2001, SVr4. .SH "VOIR AUSSI" \fBrand\fP(3), \fBrandom\fP(3) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Lucien Gentis . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .