Nombres pseudo-aléatoires (Optionnel)

Durée estimée: 45 minutes

Version textuelle

Présentation

Comme nous l'avons vu dans l'application 'PileOuFace', App Inventor dispose de blocs qui génèrent des nombres aléatoires. Nous utilisons ensuite ces nombres pour simuler des évènements du monde réel.
Mais comment fait App Inventor pour générer ces nombres ?
Comment un ordinateur fait-il pour simuler un processus aléatoire ?

Cette vidéo de la Khan Academy par Brit Cruise nous donne une bonne idée de la notion de pseudo aléatoire et de ce qui l'écarte d'un processus purement aléatoire. Le type de générateur de nombres pseudo aléatoires qui est décrit dans la vidéo est différent de celui décrit dans la leçon précédente, mais le principe est le même.

Processus informatique aléatoire

Il est difficile pour un odinateur de créer des évènements réellement aléatoires. Les ordinateurs utilisent donc une forme que l'on appelle pseudo-aléatoire -- c'est à dire qui simule un processus aléatoire.

Un évènement pseudo-aléatoire a l'air aléatoire, mais il est entièrement prédictible ! Nous disons déterministe parce que son contenu peut être connu par une personne qui sait comment ce évènement a été programmé. Ce qui a l'air aléatoire pour l'utilisateur est en fait le résultat d'un algorithme mathématique complètement prédictible.

Comment marche un PRNG (Générateur de nombres pseudo-aléatoires) ?


Auto-contrôle

Not yet started
1 point
Faites l'hypothèse que votre PRNG utilise la formule suivante :

Xi+1 = Xi * 2 + 1

et que X1 vaut 12.  Quelle sera la valeur de   X2 ?

Not yet started
1 point
Faites l'hypothèse que votre PRNG utilise la formule suivante :

Xi+1 = Xi * 2 + 1

Et que X1 vaut 10.  Quels seront les trois nombres suivants donnés par la formule ?   
Entrez votre réponse en séparant les nombres par une virgule (et une seule).

L'arithmétique des horloges ou l'arithmétique modulaire

Auto-contrôle

Not yet started
1 point
Evaluez ll'expression suivante puis entrez votre réponse dans la case.

33 modulo 5
Not yet started
1 point
Suppose your PRNG uses the following formula:

                X i+1  = (X i  * 2 + 1)   mod   13

What would the next number be if the current number is 10?

Not yet started
1 point
Faites l'hypothèse que votre PRNG utilise la formule suivante :

                Xi+1 = (Xi * 2 + 1)  mod 13

Quel sera le nombre suivant si le nombre actuel vaut 10 ?

Si vous voulez vous exercer à l'artithmétique modulaire, avant de continuer, voici quelques If you want to practice your modular arithmetic before moving on, here are some exercices, avec des liens vers les réponses.

Un générateur PRNG amélioré


Comment marche une machine à sous

Les machines à sous sont des ordinateurs spacialisés qui contiennent un composant générateur de nombres aléatoires. Cette vidéo (no-nonsense) explique comment ils marchent et chasse queleques uns des mythes autour de ces machines. Au final : quelle est la seule anière de gagner contre ces machines ?



Auto-contrôle

Ci-dessous un tableau des nouveaux termes techniques utilisés dans cette leçon. Passez la souris au dessus pour voir leur définition.
déterministe
PRNG
arithmétique modulaire

En savoir plus ?

Voir Wikipedia sur les générateurs linéaires congruentiels.

pour votre Portfolio

Créez une page nommée : PRNGs dans la catégorie "Réflexions " de votre portfolio, puis répondez aux questions suivantes :

  1. Dans cette BD de Dilbert, serait-il possible qu'un PRNG sorte 6 fois le NEUF à la suite ?
  2. Les machines à sous sont-elles équitables ? en quoi oui et en quoi non ?
  3. Est-il possible de concevoir une machine qui permettrait de gagner régulièrement avec une machine à sous ?