Nov 25, 2024

Wiki

Python

Aide

edit SideBar

Search

Random


Le module de base random permet de faire des probabilités basiques en python.

Tirages de base

Nombre aléatoire entre 0 et 1

Pour obtenir un nombre entre 0 et 1, faire simplement :

  >>> from random import random
  >>> random()

Entier aléatoire entre a et b

  >>> from random import randint
  >>> randint(1,10)
  4

randrange

Pour tirer un nombre pair inférieur à 100 :

  >>> randrange(2,100,2)

On va donc tirer aléatoirement un élément de range(2,100,2). Le pas (dernier argument) est facultatif.

Tirer un échantillon

Tirer un élément d'une liste

Pour tirer aléatoirement un élément dans une liste L :

  >>> L=[1,4,5,2,78]
  >>> choice(L)

Tirer k éléments d'une liste

Pour tirer k éléments distincts dans une liste L :

  >>> L=[1,4,5,2,78]
  >>> sample(L,k)

Par exemple :

  >>> import random
  >>> L=range(10)
  >>> random.sample(L,5)
  [7, 0, 4, 3, 1]

Ce tirage s'effectue sans répétition.

Fixer la graine

Les générations de nombres pseudo-aléatoires se basent fréquemment sur l’itération d’une fonction à partir d’une valeur initiale.

Ce procédé est déterministe : deux mêmes valeurs initiales (deux mêmes « graines ») fournissent deux « suites aléatoires » identiques.

En python, la graine est automatiquement basée sur la date et l’heure. Seulement, on peut souhaiter tirer plusieurs fois la même succession de nombres aléatoires...

Pour réinitialiser la graine à partir de l'heure actuelle :

  >>> from random import random, seed
  >>> seed()
  >>> random()

Pour générer une suite pseudo-aléatoire à partir d’une valeur bien précise, par exemple de la chaîne toto :

  >>> seed('toto')
  >>> random()

Dans ce cas, Python utilisera la valeur hachée du paramètre pour graine.

Ainsi, si l'on fait deux fois de suite les commandes suivantes :

  >>> from random import *
  >>> seed('toto')
  >>> random()
  0.3064397088538271
  >>> seed('toto')
  >>> random()
  0.3064397088538271

Alors on trouvera deux fois le même nombre « aléatoire », et on générera deux fois la même suite.

Page Actions

Recent Changes

Group & Page

Back Links