
Comment implémenter la randomisation avec le module Python Random
à la randomisation
Dans notre vie de tous les jours, nous sommes confrontés à plusieurs phénomènes différents et totalement aléatoires. La météo est aléatoire : bien sûr, nous pouvons prévoir et prédire la météo, mais dans une certaine mesure seulement. La désintégration radioactive est également un processus aléatoire intéressant qui manque de schémas et de prévisibilité. Contrairement aux ordinateurs qui sont déterministes et fonctionnent comme ils sont programmés, la nature ne nécessite aucune programmation, condition ou boucle. Les choses se produisent de la manière la plus aléatoire et la plus imprévisible, et c’est le genre d’imprévisibilité dont nous avons parfois besoin dans nos ordinateurs et dans nos applications, comme les jeux.
Nous avons besoin de caractère aléatoire et d’imprévisibilité dans les jeux auxquels nous jouons afin de ne pas nous lasser des scénarios préprogrammés et des défis prévisibles. Nous avons également besoin de l’élément aléatoire pour simuler des scénarios du monde réel, tester des algorithmes ou générer des exemples d’ensembles de données.

Dans les langages de programmation, la randomisation fait référence à l’introduction d’imprévisibilité et de variabilité dans les résultats de l’ordinateur. Le caractère aléatoire est généré dans un programme via des nombres aléatoires.
Il existe plusieurs méthodes pour générer des nombres pseudo-aléatoires. Python utilise le Mersenne Twister pour le caractère aléatoire dans son module aléatoire. Bien qu’il soit largement utilisé comme générateur de nombres pseudo-aléatoires (PRNG), le Mersenne Twister possède des propriétés déterministes, ce qui le rend dangereux pour certaines tâches nécessitant en priorité la sécurité. En programmation, générer un nombre totalement aléatoire est assez difficile, c’est pourquoi nous utilisons le concept de génération de nombres pseudo-aléatoires, bien qu’ils soient reproductibles s’ils reçoivent une valeur de départ, comme on peut le voir plus loin.
Dans cet article, nous explorerons le concept de randomisation en utilisant le module aléatoire Python pour générer du caractère aléatoire dans les sorties de notre code.
Le module aléatoire Python
Examinons maintenant en profondeur le module aléatoire. Premièrement, nous savons que le caractère aléatoire de ce module est généré par le Mersenne Twister à l’aide de Mersenne Primes. Ce module intégré de Python nous permet de générer du caractère aléatoire dans notre code de différentes manières et offre une flexibilité lorsque nous travaillons avec différents types de données. Comprenons ses fonctions à travers des exemples. Vous pouvez accéder à la documentation officielle de ce module via le lien suivant :
random — Générer des nombres pseudo-aléatoires
Afin d’utiliser le module random, nous devons d’abord nous assurer de l’importer dans notre code :
import random
Valeur flottante aléatoire entre 0 et 1
La première tâche que nous apprendrons est de générer une valeur aléatoire comprise entre 0 et 1, 0 étant non inclusif et 1 inclus. Cela peut être fait avec le random() fonction.
random_value = random.random()
print(random_value)
Le code ci-dessus générera une valeur flottante aléatoire comprise entre 0 et 1. Si vous exécutez le code ci-dessus plusieurs fois, à chaque fois la valeur sera différente.
Valeur flottante aléatoire dans une plage spécifiée
Nous pouvons utiliser le uniform() fonction du module aléatoire afin de générer un nombre aléatoire dans une plage spécifique.
random_value = random.uniform(1,10)
print(random_value)
L’exécution du code ci-dessus plusieurs fois produirait des nombres compris dans la plage mentionnée entre parenthèses.
Valeur entière aléatoire dans une plage spécifique
Supposons que nous voulions une valeur aléatoire à partir d’un dé, comme cela est nécessaire dans de nombreux jeux, nous pouvons inclure cette fonctionnalité dans notre code en utilisant le randint() fonction. Cette fonction génère un entier aléatoire contrairement aux fonctions ci-dessus qui génèrent une valeur flottante.
random_value = random.randint(1,6)
print(random_value)
Notez qu’en exécutant le morceau de code ci-dessus, les 1 et 6 seront inclus dans les valeurs aléatoires générées.

Valeur aléatoire à partir d’une liste de valeurs
Nous verrons ensuite comment générer une valeur aléatoire à partir d’une liste de valeurs. Nous pouvons le faire en définissant d’abord une liste d’éléments Python, puis en utilisant la fonction choice() de la valeur aléatoire pour sortir un élément aléatoire de cette liste.
Pour cela, nous allons d’abord créer une liste puis utiliser le module random choice() fonction pour choisir au hasard un élément de ladite liste. Supposons que nous ayons une liste de nos chats et que nous devions en choisir un à qui offrir une friandise spéciale. Voici comment cela peut être fait :
my_cats = ["Jerry", "Tom", "Figaro", "Bella", "Simba"]
cat_chosen = random.choice(my_cats)
print(cat_chosen)
Notez que le code ci-dessus est aléatoire, ce qui signifie qu’il n’est pas nécessaire que tous les chats soient choisis (bien que cela soit hautement probable dans la mesure où nous exécutons le code), donc oui, ce n’est pas une façon équitable de choisir à qui donner la friandise spéciale !
De plus, nous pouvons également créer une liste de choix aléatoires en utilisant le choices() fonction. Cette fonction nous permet également de décider des poids de chaque élément de la liste, ce qui signifie que nous pouvons augmenter la probabilité que n’importe quel élément de la liste soit choisi au hasard :
mylist = ["apple", "banana", "cherry", "strawberry"]
print(random.choices(mylist, weights = [2, 1, 1, 1,], k = 8))

Dans le code ci-dessus, nous avons donné mylist comme séquence d’entrée au choice() fonction, ainsi que les poids de chaque élément de la liste ainsi que la longueur d’une liste de sortie avec des éléments sélectionnés au hasard que nous souhaitons. Notez le nombre de fois où le fruit « pomme » apparaît en raison de son poids accru.
Mélanger aléatoirement une liste d’éléments
Nous apprendrons ensuite à mélanger aléatoirement les éléments d’une liste. Nous pouvons utiliser le shuffle() fonction dans le module aléatoire à cet effet.
deck = list(range(1,53))
print(deck)
random.shuffle(deck)
print(deck)


Échantillon aléatoire et unique à partir d’une liste
Supposons que nous voulions obtenir 5 cartes aléatoires pour chacun des 4 joueurs. Nous ne pouvons pas utiliser le choice() fonction parce que nous voulons des cartes uniques du jeu, sans répétition de cartes. Nous utiliserons le sample() fonction à cet effet :
deck = list(range(1,53))
cards = random.sample(deck, 5)
print(cards)

Entier aléatoire d’une plage spécifique avec une taille de pas
Le randrange() La fonction peut être utilisée pour choisir au hasard un nombre dans une plage spécifique où les valeurs de démarrage et d’arrêt ainsi que les étapes sont définies.
random_number = random.randrange(0,10,2)
print(random_number)
Le bloc ci-dessus produira les nombres de 0 à 8 car 10 n’est pas inclus et nous avons défini 2 comme taille de pas.
Valeur des semences
Une fonctionnalité intéressante du module random en Python est la fonction seed(). Cette valeur de départ est utilisée comme point de départ pour la génération de nombres aléatoires et constitue une caractéristique majeure pour tracer la reproductibilité et le modèle. Chaque fois que nous utilisons la valeur aléatoire pour générer un nombre aléatoire, cela le génère en fait à partir d’une valeur de départ aléatoire, mais nous pouvons également définir la valeur de départ nous-mêmes via le seed() fonction.
random.seed(22)
random_number = random.randrange(0,10,2)
print(random_number)
Le code ci-dessus générera toujours le nombre aléatoire « 2 » en raison d’une valeur de départ définie « 22 ». Si nous donnons à la valeur de départ « 55 », cela vous donnera « 0 » encore et encore.
Applications du module aléatoire
Bien qu’il y ait plus de fonctions dans le module aléatoire et beaucoup plus d’implémentations, les fonctions ci-dessus sont parmi les plus couramment utilisées. Le module aléatoire de Python peut être utilisé de plusieurs manières, principalement dans les jeux et les simulations du monde réel. Nous pouvons utiliser le module aléatoire dans des jeux qui impliquent de lancer des dés comme cela a été exploré ci-dessus, dans un jeu de tirage au sort et même comme générateur de mot de passe aléatoire. On peut aussi simuler le jeu Pierre, Feuille, Ciseaux avec le module aléatoire avec un peu de conditions et de boucles !




