SlideShare une entreprise Scribd logo
1  sur  19
Générateur de Nombres
Aléatoires
2eme année master RISR
Module : Modélisation et Simulation Réseaux
Présenter par: - Meddah Kamar
- Kafi Abderrahmane
Enseignant du module : Mme Yehlali
1
Ministère de l’Enseignement Supérieur et de la Recherche
Scientifique
Université Dr Tahar Moulay de Saïda
Faculté de Technologie
Département d’informatique
2018-2019
Le Plan :
I. Introduction
II. Générateur de Nombres Aléatoires
1. Midsquare method (méthode Midsquare)
2. Générateurs Congruentiels Linéaires
3. Générateurs congruentiels multiplicatifs
4. Générateurs congruentiels additifs
III. Conclusion
IV. Références
2
I. Introduction :
Pour mettre au point un modèle de simulation, il faut générer des nombres
aléatoires pour obtenir des observations aléatoires répondant à une distribution
de probabilité.
Plusieurs tables de nombres aléatoires ont déjà été générées par des
mécanismes physiques comme la roulette, mais maintenant nous pouvons
utiliser l'ordinateur pour les réaliser.
Plusieurs "software packages" permettent de générer des nombres aléatoires.
3
II. Générateur de Nombres Aléatoires
Il est important de pouvoir générer efficacement des variables aléatoires
indépendantes à partir de la distribution uniforme sur (0; 1) , puisque:
 Des variables aléatoires de toutes les autres distributions peuvent être
obtenues en transformant des variables aléatoires uniformes.
 Les simulations nécessitent de nombreux nombres aléatoires.
4
II. Générateur de Nombres Aléatoires
Un "bon" générateur de nombres aléatoires devrait posséder les propriétés
suivantes:
• Uniformité: les nombres générés semblent être répartis uniformément sur (0;
1);
• Indépendance: les nombres générés ne montrent aucune corrélation entre eux;
• Réplication: les numéros doivent pouvoir être répliqués (par exemple, pour le
débogage ou la comparaison de différents systèmes).
• Durée du cycle: il faut attendre longtemps avant que les chiffres commencent
à se répéter;
• Vitesse: le générateur devrait être rapide;
• Utilisation de la mémoire: le générateur ne devrait pas nécessiter beaucoup
de stockage.
5
II. Générateur de Nombres Aléatoires
La plupart des générateurs de nombres aléatoires sont de la forme :
Commencez par Z0 (seed)
Pour n = 1; 2; ..... Produire
Zn = f (Zn - 1)
Et
Un = g(Zn)
f est le générateur pseudo-aléatoire
g est la fonction de sortie
{U0; U1; ......} est la suite de nombres aléatoires uniformes sur l'intervalle (0; 1)
6
Les Méthodes Générations de
Nombres Aléatoires
7
1. Midsquare method (méthode Midsquare)
 Commencez avec un nombre à 4 chiffres Z0 (seed)
 Faites un carré pour obtenir 8 chiffres (si nécessaire, ajoutez des zéros à
gauche)
 Prenez les 4 chiffres du milieu pour obtenir le nombre suivant à 4 chiffres
Z1; puis placez Z1 et prenez à nouveau les 4 chiffres du milieu et ainsi de
suite.
 Nous obtenons un nombre aléatoire uniforme en plaçant le point décimal à la
gauche de chaque Zi (c'est-à-dire, diviser par 10 000).
8
1. Midsquare method (méthode Midsquare)
Exemple :
 Pour Z0 = 1234, on obtient 0,1234, 0,5227, 0,3215, 0,3362, 0,3030, 0,1809,
0,2724, 0,4201, 0,6484, 0,0422, 0,1780, 0,1684, 0,8361, 0,8561, 0,2907, ..
 Pour Z0 = 2345, on obtient 0,2345, 0,4990, 0,9001, 0,0180, 0,0324, 0,1049,
0,1004, 0,0080, 0,0064, 0,0040, ... Deux zéros successifs derrière la
décimale ne disparaîtront jamais.
 Pour Z0 = 2100, nous obtenons 0.2100, 0.4100, 0.8100, 0.6100, 0.2100,
0.4100, ... Déjà après quatre chiffres, la séquence commence à se répéter.
9
2. Générateurs Congruentiels Linéaires
La plupart des générateurs de nombres aléatoires utilisés de nos jours sont des
générateurs congruentiels linéaires. Ils produisent une suite d’entiers comprise
entre 0 et m -1 en fonction de :
Zn =(aZn-1 +c) mod m ; n = 1; 2; .....
a est le multiplicateur, c l'incrément et m le module.
Pour obtenir des nombres aléatoires uniformes sur (0; 1) on prend
Un = Zn/ m
Un bon choix de a, c et m est très important.
10
2. Générateurs Congruentiels Linéaires
Un générateur congruentiel linéaire a une période complète (la longueur du
cycle est m) si et seulement si les conditions suivantes sont remplies:
 Le seul entier positif qui divise exactement m et c est égal à 1;
 Si q est un nombre premier qui divise m, alors q divise a-1;
 Si 4 divise m, alors 4 divise a-1.
11
2. Générateurs Congruentiels Linéaires
Exemples:
 Pour (a; c; m ) = (1; 5; 13 ) et Z0 = 1 on obtient la séquence 1; 6; 11; 3; 8; 0;
5; 10; 2; 7; 12; 4; 9; 1; …. qui a période complète (sur 13).
 Pour (a; c; m ) = (2; 5; 13 ) et Z0 = 1 on obtient la séquence 1; 7; 6; 4; 0; 5; 2;
9; 10; 12; 3; 11; 1; ….. qui a un période de 12. Si nous prenons Z0 = 8, on
obtient la séquence 8; 8; 8; …… (période de 1).
12
2. Générateurs Congruentiels Linéaires
Conversion des nombres entiers aléatoires en des nombres uniformes aléatoires
avec la formule:
13
3. Générateurs congruentiels multiplicatifs
Ces générateurs produisent une séquence d’entiers comprise entre 0 et m-1
selon
Zn = a.Zn-1 mod m ; n = 1; 2; .....
Donc, ce sont des générateurs congruentiels linéaires avec c = 0.
Ils ne peuvent pas avoir de période complète, mais il est possible d’obtenir la
période m-1 (donc chaque entier 1, ..., m-1 est obtenu exactement une fois par
cycle) si a et m sont choisis avec soin. Par exemple, sous la forme a =
630360016 et m = 2^ (31) -1.
14
4. Générateurs congruentiels additifs
Ces générateurs produisent des entiers selon
Zn = (Zn-1 + Zn-k) mod m ; n = 1; 2; ……
où k> = 2. Des nombres aléatoires uniformes peuvent à nouveau être obtenus
auprès de
Un = Zn / m
Ces générateurs peuvent durer jusqu’à m^(k).
15
4. Générateurs congruentiels additifs
Désavantage:
Considérons le cas k = 2 (le générateur de Fibonacci). Si nous prenons trois
nombres consécutifs Un-2, Un-1 et Un, alors il n'arrivera jamais que
Un-2 < Un < Un-1 ou Un-1 < Un < Un-2
alors que pour les vraies variables uniformes, ces deux ordres se produisent
avec une probabilité de 1/6.
16
III. Conclusion :
Un générateur de nombres aléatoires est un algorithme qui produit des
suites de nombres qui ont l'apparence d'être aléatoires.
les nombres aléatoire générés par ordinateur sont plutôt des nombres
pseudo-aléatoire parce que qu'ils sont prévisibles et qu'ils peuvent être
reproduits de nouveau.
17
IV. Réferences :
• https://www.win.tue.nl/~marko/2WB05/lecture5.pdf
• http://www-
labs.iro.umontreal.ca/~ferland/ift6575/contenu_cours/5_Simulation/Simulation.
pdf
18
Merci
pour
votre attention
19

Contenu connexe

Tendances

Les différentes méthodes pédagogiques
Les différentes méthodes pédagogiquesLes différentes méthodes pédagogiques
Les différentes méthodes pédagogiquesmichel_parratte
 
Séance 2 économie monétaire - la création monétaire
Séance 2   économie monétaire - la création monétaireSéance 2   économie monétaire - la création monétaire
Séance 2 économie monétaire - la création monétaireEsteban Giner
 
Agilité et conduite du changement
Agilité et conduite du changementAgilité et conduite du changement
Agilité et conduite du changementRuth K. Dido
 
Le résistance au changement et les phases de préoccupations du destinataire
Le résistance au changement et les phases de préoccupations du destinataireLe résistance au changement et les phases de préoccupations du destinataire
Le résistance au changement et les phases de préoccupations du destinatairestratjdc
 
Cours gpec
Cours gpec Cours gpec
Cours gpec Ayoub BA
 
110627 soutenance memoire
110627 soutenance memoire110627 soutenance memoire
110627 soutenance memoireJeenuuke
 
jeu gestion de projet agile 2015
jeu gestion de projet agile 2015jeu gestion de projet agile 2015
jeu gestion de projet agile 2015CIPE
 
Conduite du changement : les bases
Conduite du changement : les basesConduite du changement : les bases
Conduite du changement : les basesPascal Ponty
 
Planification de projet.pdf
Planification de projet.pdfPlanification de projet.pdf
Planification de projet.pdfYasushiTsubakik
 
Formation de formateurs - Les bases pédagogiques
Formation de formateurs - Les bases pédagogiquesFormation de formateurs - Les bases pédagogiques
Formation de formateurs - Les bases pédagogiquesIPSYS Conseil & Formation
 
Processus d'apprentissage et Processus d'enseignement
Processus d'apprentissage et Processus d'enseignement Processus d'apprentissage et Processus d'enseignement
Processus d'apprentissage et Processus d'enseignement philip61
 
Support Formation PPT Réseau Formateurs Internes
Support Formation PPT Réseau Formateurs InternesSupport Formation PPT Réseau Formateurs Internes
Support Formation PPT Réseau Formateurs InternesArnaud Liegeois
 
Adaptation au changement
Adaptation au changementAdaptation au changement
Adaptation au changementADHERE RH
 

Tendances (20)

Les différentes méthodes pédagogiques
Les différentes méthodes pédagogiquesLes différentes méthodes pédagogiques
Les différentes méthodes pédagogiques
 
Conduire le changement
Conduire le changementConduire le changement
Conduire le changement
 
Séance 2 économie monétaire - la création monétaire
Séance 2   économie monétaire - la création monétaireSéance 2   économie monétaire - la création monétaire
Séance 2 économie monétaire - la création monétaire
 
Agilité et conduite du changement
Agilité et conduite du changementAgilité et conduite du changement
Agilité et conduite du changement
 
Briefing
BriefingBriefing
Briefing
 
Le résistance au changement et les phases de préoccupations du destinataire
Le résistance au changement et les phases de préoccupations du destinataireLe résistance au changement et les phases de préoccupations du destinataire
Le résistance au changement et les phases de préoccupations du destinataire
 
Cours gpec
Cours gpec Cours gpec
Cours gpec
 
110627 soutenance memoire
110627 soutenance memoire110627 soutenance memoire
110627 soutenance memoire
 
jeu gestion de projet agile 2015
jeu gestion de projet agile 2015jeu gestion de projet agile 2015
jeu gestion de projet agile 2015
 
Conduite du changement : les bases
Conduite du changement : les basesConduite du changement : les bases
Conduite du changement : les bases
 
Gpec.
Gpec.Gpec.
Gpec.
 
Planification de projet.pdf
Planification de projet.pdfPlanification de projet.pdf
Planification de projet.pdf
 
Formation de formateurs - Les bases pédagogiques
Formation de formateurs - Les bases pédagogiquesFormation de formateurs - Les bases pédagogiques
Formation de formateurs - Les bases pédagogiques
 
Processus d'apprentissage et Processus d'enseignement
Processus d'apprentissage et Processus d'enseignement Processus d'apprentissage et Processus d'enseignement
Processus d'apprentissage et Processus d'enseignement
 
Support Formation PPT Réseau Formateurs Internes
Support Formation PPT Réseau Formateurs InternesSupport Formation PPT Réseau Formateurs Internes
Support Formation PPT Réseau Formateurs Internes
 
Système MRP
Système MRPSystème MRP
Système MRP
 
Formation Gestion de projet
Formation Gestion de projetFormation Gestion de projet
Formation Gestion de projet
 
PNL Présentation.ppt
PNL Présentation.pptPNL Présentation.ppt
PNL Présentation.ppt
 
Atelier gestion de projet : Trello
Atelier gestion de projet : TrelloAtelier gestion de projet : Trello
Atelier gestion de projet : Trello
 
Adaptation au changement
Adaptation au changementAdaptation au changement
Adaptation au changement
 

Plus de kamar MEDDAH

Algorithme Colonie de fourmis
Algorithme Colonie de fourmisAlgorithme Colonie de fourmis
Algorithme Colonie de fourmiskamar MEDDAH
 
Etude comparative entre les grilles, cloud et p2p
Etude comparative entre les grilles, cloud et p2pEtude comparative entre les grilles, cloud et p2p
Etude comparative entre les grilles, cloud et p2pkamar MEDDAH
 
Base de données distribuée
Base de données distribuéeBase de données distribuée
Base de données distribuéekamar MEDDAH
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQLkamar MEDDAH
 
Porter stemming algorithm
Porter stemming algorithmPorter stemming algorithm
Porter stemming algorithmkamar MEDDAH
 

Plus de kamar MEDDAH (13)

Intro to web dev
Intro to web devIntro to web dev
Intro to web dev
 
Algorithme Colonie de fourmis
Algorithme Colonie de fourmisAlgorithme Colonie de fourmis
Algorithme Colonie de fourmis
 
Routage rip
Routage ripRoutage rip
Routage rip
 
Etude comparative entre les grilles, cloud et p2p
Etude comparative entre les grilles, cloud et p2pEtude comparative entre les grilles, cloud et p2p
Etude comparative entre les grilles, cloud et p2p
 
Base de données distribuée
Base de données distribuéeBase de données distribuée
Base de données distribuée
 
Branch and bound
Branch and boundBranch and bound
Branch and bound
 
Active directory
Active directoryActive directory
Active directory
 
Wwan
WwanWwan
Wwan
 
Hadoop
HadoopHadoop
Hadoop
 
Erlang
ErlangErlang
Erlang
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
 
Porter stemming algorithm
Porter stemming algorithmPorter stemming algorithm
Porter stemming algorithm
 
Javascript
JavascriptJavascript
Javascript
 

Random number generator

  • 1. Générateur de Nombres Aléatoires 2eme année master RISR Module : Modélisation et Simulation Réseaux Présenter par: - Meddah Kamar - Kafi Abderrahmane Enseignant du module : Mme Yehlali 1 Ministère de l’Enseignement Supérieur et de la Recherche Scientifique Université Dr Tahar Moulay de Saïda Faculté de Technologie Département d’informatique 2018-2019
  • 2. Le Plan : I. Introduction II. Générateur de Nombres Aléatoires 1. Midsquare method (méthode Midsquare) 2. Générateurs Congruentiels Linéaires 3. Générateurs congruentiels multiplicatifs 4. Générateurs congruentiels additifs III. Conclusion IV. Références 2
  • 3. I. Introduction : Pour mettre au point un modèle de simulation, il faut générer des nombres aléatoires pour obtenir des observations aléatoires répondant à une distribution de probabilité. Plusieurs tables de nombres aléatoires ont déjà été générées par des mécanismes physiques comme la roulette, mais maintenant nous pouvons utiliser l'ordinateur pour les réaliser. Plusieurs "software packages" permettent de générer des nombres aléatoires. 3
  • 4. II. Générateur de Nombres Aléatoires Il est important de pouvoir générer efficacement des variables aléatoires indépendantes à partir de la distribution uniforme sur (0; 1) , puisque:  Des variables aléatoires de toutes les autres distributions peuvent être obtenues en transformant des variables aléatoires uniformes.  Les simulations nécessitent de nombreux nombres aléatoires. 4
  • 5. II. Générateur de Nombres Aléatoires Un "bon" générateur de nombres aléatoires devrait posséder les propriétés suivantes: • Uniformité: les nombres générés semblent être répartis uniformément sur (0; 1); • Indépendance: les nombres générés ne montrent aucune corrélation entre eux; • Réplication: les numéros doivent pouvoir être répliqués (par exemple, pour le débogage ou la comparaison de différents systèmes). • Durée du cycle: il faut attendre longtemps avant que les chiffres commencent à se répéter; • Vitesse: le générateur devrait être rapide; • Utilisation de la mémoire: le générateur ne devrait pas nécessiter beaucoup de stockage. 5
  • 6. II. Générateur de Nombres Aléatoires La plupart des générateurs de nombres aléatoires sont de la forme : Commencez par Z0 (seed) Pour n = 1; 2; ..... Produire Zn = f (Zn - 1) Et Un = g(Zn) f est le générateur pseudo-aléatoire g est la fonction de sortie {U0; U1; ......} est la suite de nombres aléatoires uniformes sur l'intervalle (0; 1) 6
  • 7. Les Méthodes Générations de Nombres Aléatoires 7
  • 8. 1. Midsquare method (méthode Midsquare)  Commencez avec un nombre à 4 chiffres Z0 (seed)  Faites un carré pour obtenir 8 chiffres (si nécessaire, ajoutez des zéros à gauche)  Prenez les 4 chiffres du milieu pour obtenir le nombre suivant à 4 chiffres Z1; puis placez Z1 et prenez à nouveau les 4 chiffres du milieu et ainsi de suite.  Nous obtenons un nombre aléatoire uniforme en plaçant le point décimal à la gauche de chaque Zi (c'est-à-dire, diviser par 10 000). 8
  • 9. 1. Midsquare method (méthode Midsquare) Exemple :  Pour Z0 = 1234, on obtient 0,1234, 0,5227, 0,3215, 0,3362, 0,3030, 0,1809, 0,2724, 0,4201, 0,6484, 0,0422, 0,1780, 0,1684, 0,8361, 0,8561, 0,2907, ..  Pour Z0 = 2345, on obtient 0,2345, 0,4990, 0,9001, 0,0180, 0,0324, 0,1049, 0,1004, 0,0080, 0,0064, 0,0040, ... Deux zéros successifs derrière la décimale ne disparaîtront jamais.  Pour Z0 = 2100, nous obtenons 0.2100, 0.4100, 0.8100, 0.6100, 0.2100, 0.4100, ... Déjà après quatre chiffres, la séquence commence à se répéter. 9
  • 10. 2. Générateurs Congruentiels Linéaires La plupart des générateurs de nombres aléatoires utilisés de nos jours sont des générateurs congruentiels linéaires. Ils produisent une suite d’entiers comprise entre 0 et m -1 en fonction de : Zn =(aZn-1 +c) mod m ; n = 1; 2; ..... a est le multiplicateur, c l'incrément et m le module. Pour obtenir des nombres aléatoires uniformes sur (0; 1) on prend Un = Zn/ m Un bon choix de a, c et m est très important. 10
  • 11. 2. Générateurs Congruentiels Linéaires Un générateur congruentiel linéaire a une période complète (la longueur du cycle est m) si et seulement si les conditions suivantes sont remplies:  Le seul entier positif qui divise exactement m et c est égal à 1;  Si q est un nombre premier qui divise m, alors q divise a-1;  Si 4 divise m, alors 4 divise a-1. 11
  • 12. 2. Générateurs Congruentiels Linéaires Exemples:  Pour (a; c; m ) = (1; 5; 13 ) et Z0 = 1 on obtient la séquence 1; 6; 11; 3; 8; 0; 5; 10; 2; 7; 12; 4; 9; 1; …. qui a période complète (sur 13).  Pour (a; c; m ) = (2; 5; 13 ) et Z0 = 1 on obtient la séquence 1; 7; 6; 4; 0; 5; 2; 9; 10; 12; 3; 11; 1; ….. qui a un période de 12. Si nous prenons Z0 = 8, on obtient la séquence 8; 8; 8; …… (période de 1). 12
  • 13. 2. Générateurs Congruentiels Linéaires Conversion des nombres entiers aléatoires en des nombres uniformes aléatoires avec la formule: 13
  • 14. 3. Générateurs congruentiels multiplicatifs Ces générateurs produisent une séquence d’entiers comprise entre 0 et m-1 selon Zn = a.Zn-1 mod m ; n = 1; 2; ..... Donc, ce sont des générateurs congruentiels linéaires avec c = 0. Ils ne peuvent pas avoir de période complète, mais il est possible d’obtenir la période m-1 (donc chaque entier 1, ..., m-1 est obtenu exactement une fois par cycle) si a et m sont choisis avec soin. Par exemple, sous la forme a = 630360016 et m = 2^ (31) -1. 14
  • 15. 4. Générateurs congruentiels additifs Ces générateurs produisent des entiers selon Zn = (Zn-1 + Zn-k) mod m ; n = 1; 2; …… où k> = 2. Des nombres aléatoires uniformes peuvent à nouveau être obtenus auprès de Un = Zn / m Ces générateurs peuvent durer jusqu’à m^(k). 15
  • 16. 4. Générateurs congruentiels additifs Désavantage: Considérons le cas k = 2 (le générateur de Fibonacci). Si nous prenons trois nombres consécutifs Un-2, Un-1 et Un, alors il n'arrivera jamais que Un-2 < Un < Un-1 ou Un-1 < Un < Un-2 alors que pour les vraies variables uniformes, ces deux ordres se produisent avec une probabilité de 1/6. 16
  • 17. III. Conclusion : Un générateur de nombres aléatoires est un algorithme qui produit des suites de nombres qui ont l'apparence d'être aléatoires. les nombres aléatoire générés par ordinateur sont plutôt des nombres pseudo-aléatoire parce que qu'ils sont prévisibles et qu'ils peuvent être reproduits de nouveau. 17
  • 18. IV. Réferences : • https://www.win.tue.nl/~marko/2WB05/lecture5.pdf • http://www- labs.iro.umontreal.ca/~ferland/ift6575/contenu_cours/5_Simulation/Simulation. pdf 18

Notes de l'éditeur

  1. les nombres aléatoire générés par ordinateur sont plutôt des nombres pseudo-aléatoire parce que qu'ils sont prévisibles et qu'ils peuvent être reproduits de nouveau,
  2. Cryptographiquement sécurisé
  3. Clairement, les générateurs de nombres aléatoires impliquent beaucoup plus que de faire «quelque chose d’étrange» à un nombre pour obtenir le suivant.
  4. Spécifier des nombres entiers a , c et m tels que a<m et c<m.
  5. Méthode de congruents multiplicative ≡ Méthode de congruents mixte où c= 0.
  6. Méthode de congruents additive ≡ Méthode de congruents mixte où a=1 et c =Z n−k. xn+1 :=(xn +xn−1 ) ( modulo m).
  7. Quel est le degré de sécurité (cryptographique) des nombres pseudo-aléatoires? Propriétés souhaitables:   * étant donné que seul un nombre produit par le générateur, il est impossible de prédire les nombres précédents et futurs; * les nombres produits ne contiennent aucun biais connu; * le générateur a une grande période; * le générateur peut se semer n'importe où dans cette période avec une probabilité égale. Par exemple, lorsque vous utilisez le générateur pour générer un identifiant de session sur un serveur Web: nous ne voulons pas que l’utilisateur n prédise l’ID de session de l’utilisateur n = 1.