Génération aléatoire d’un labyrinthe de cavernes et de tunnels

Comment générer aléatoirement un labyrinthe à base de tunnels et de cavernes en creusant tant qu'il est possible un surface ? Le résultat doit ressembler à cette sorte de gruyère (la partie praticable est en gris) :
Labyrinthe aléatoire avec murs droits
Continuer la lecture de "Génération aléatoire d’un labyrinthe de cavernes et de tunnels"
Génération aléatoire d’un labyrinthe de cavernes et de tunnels

Tri aléatoire des éléments d’un tableau

Comment tirer aléatoirement, l'un après l'autre jusqu'à épuisement, les éléments d'un tableau ? La solution qui vient spontanément à l'esprit n'est pas efficace : elle consiste à générer un indice aléatoire, vérifier si l'élément figurant à cet indice a déjà été tiré, et si tel est le cas, recommencer.
A ce petit jeu, il est probable que le temps pris pour tirer un élément s'allonge tandis que le nombre d'éléments tirés s'accroit.
Ne peut-on procéder plus efficacement ?

Continuer la lecture de "Tri aléatoire des éléments d’un tableau"

Tri aléatoire des éléments d’un tableau

Génération aléatoire d’un nombre entier compris dans un intervalle

Comment générer aléatoirement un nombre entier compris dans un intervalle, c'est-à-dire entre des valeurs minimale et maximale ? La solution qui vient spontanément à l'esprit (min + Math.round ((max -1) * Math.random ())) n'est pas correcte, car elle n'assure pas la représentativité statistique équitable (équiprobabilité) de tous les entiers possibles.
Par exemple, la répétition de 1 000 tirages d'une valeur dans l'intervalle [3, 9] permet de dégager les probabilités d'occurrence par valeur suivantes :
Génération aléaoitre d'un entier compris dans un intervalle (mauvais)
Pourquoi ce problème, et comment y remédier ?

Continuer la lecture de "Génération aléatoire d’un nombre entier compris dans un intervalle"

Génération aléatoire d’un nombre entier compris dans un intervalle