BERKIOSDocs
Modules

Bibliothèque randomy (clone de random de Python) — v1.0.0

30 commandes pour BERKIOS CODE qui reprennent le module random de Python : seed, randint, randrange, choice, choices, sample, shuffle, uniform, les lois de probabilité (gauss, normalvariate, gammavariate, betavariate, binomialvariate…), getrandbits, randbytes, getstate / setstate. Chaque commande existe sous son nom Python, en français, en espagnol et en swahili ; la forme qualifiée randomy.<nom> fonctionne aussi. Aucune permission n'est demandée. Les commandes sont de simples macros vers les 50 commandes intégrées de la catégorie « Génération aléatoire » (voir la leçon formation/08) : le moteur est dans studio/src/model/random-engine.ts.

Même graine, mêmes tirages qu'en Python

Le moteur est un Mersenne Twister MT19937 qui suit les algorithmes de CPython 3.12/3.13. Avec la même graine, les suites sont identiques :

quand clic
  randomy.seed 42
  randomy.random "$a"        # 0.6394267984578837, comme random.seed(42); random.random()
  seed 5
  randint "$de" 1 6          # 5, 3, 6, 3, 6, 6… comme random.seed(5); [random.randint(1, 6) …]
  seed 9
  shuffle "$liste"           # mélange identique à random.shuffle après random.seed(9)

Vérifié contre CPython 3.13 (studio/tests/random-commands.test.ts, library-randomy.test.ts) pour : random, getrandbits, randbytes, randint, randrange, choice, choices (avec poids), sample, shuffle, gauss, binomialvariate, graines entières, négatives, très grandes et textuelles (SHA-512).

Règles de graine

  • Une valeur entière (seed 42, seed "42") est lue comme l'entier Python ; tout autre texte (seed "bonjour") est lu comme une chaîne Python (version 2 de random.seed). Les deux n'ont pas la même suite, comme en Python.
  • Un nombre décimal (seed 1.5) est traité comme du texte (Python utiliserait hash(1.5)). Écart connu.
  • seed sans valeur prend de l'entropie du système.
  • Le générateur est global (comme l'instance cachée de random) : il est partagé par tous les composants d'une session d'aperçu et n'est pas enregistré dans le projet. Pour rejouer une suite plus tard, mémorisez getstate (avec stocker) puis setstate.

Conventions BERKIOS

  • Le résultat est le premier argument : randint "$r" 1 6 au lieu de r = random.randint(1, 6).
  • Une liste s'écrit a, b, c (éléments séparés par des virgules) ; choices accepte des poids dans le même format : choices "$r" "a, b, c" 5 "1, 2, 7".
  • Les erreurs correspondent aux ValueError de Python (intervalle vide, échantillon plus grand que la population, poids invalides…) et arrêtent le script avec un message.
  • random est déjà une commande intégrée de BERKIOS CODE (entier de 1 à 100). Pour le random() de Python, écrivez randomy.random "$r" ou son nom français hasard.

Commandes

Noms (python · fr · es · sw)SyntaxeEffet
seed · graine · semilla · mbeguseed ["valeur"]Fixe la graine : une même graine (entier ou texte) redonne la même suite de tirages, comme random.seed de Python. Sans valeur, graine du système.
getstate · lire-etat · obtener-estado · pata-haligetstate "Résultat"Écrit l'état complet du générateur (random.getstate) pour le restaurer avec setstate.
setstate · fixer-etat · fijar-estado · weka-halisetstate "Etat"Restaure un état produit par getstate (random.setstate) : les tirages suivants sont rejoués à l'identique.
random · hasard · aleatorio · nasiburandomy.random "Résultat"Nombre décimal dans [0, 1[ (random.random). « random » existe déjà dans BERKIOS CODE : écrivez randomy.random, ou utilisez hasard.
getrandbits · bits-hasard · bits-aleatorios · biti-nasibugetrandbits "Résultat" kEntier de k bits aléatoires, 1 ≤ k ≤ 8192 (random.getrandbits).
randbytes · octets-hasard · bytes-aleatorios · baiti-nasiburandbytes "Résultat" nn octets aléatoires écrits en hexadécimal (random.randbytes).
randint · entier-hasard · entero-aleatorio · kamili-nasiburandint "Résultat" a bEntier de a à b, bornes incluses (random.randint).
randrange · plage-hasard · rango-aleatorio · masafa-nasiburandrange "Résultat" fin | "Résultat" début fin [pas]Entier pris dans range(début, fin, pas), fin exclue (random.randrange).
randbelow · sous-hasard · menor-aleatorio · chini-nasiburandbelow "Résultat" nEntier de 0 à n − 1 (comme secrets.randbelow, mais reproductible avec seed).
choice · choix · elegir · chaguachoice "Résultat" "a, b, c"Un élément de la liste, au hasard (random.choice).
choices · choix-plusieurs · elegir-varios · chagua-nyingichoices "Résultat" "a, b, c" k ["poids"]k éléments tirés avec remise, poids facultatifs (random.choices).
sample · echantillon · muestra · sampulisample "Résultat" "a, b, c" kk éléments distincts de la liste (random.sample).
shuffle · melanger · barajar · changanyashuffle "Liste"Mélange la liste en place (random.shuffle).
uniform · uniforme · uniforme-aleatorio · sawiauniform "Résultat" a bNombre décimal entre a et b (random.uniform).
triangular · triangulaire · triangular-aleatorio · pembetatutriangular "Résultat" [bas] [haut] [mode]Loi triangulaire (random.triangular).
gauss · gaussienne · gaussiana · gauss-nasibugauss "Résultat" [mu] [sigma]Loi normale par Box-Muller (random.gauss).
normalvariate · loi-normale · normal-aleatoria · kawaida-nasibunormalvariate "Résultat" [mu] [sigma]Loi normale par Kinderman-Monahan (random.normalvariate).
lognormvariate · loi-lognormale · lognormal-aleatoria · lognormal-nasibulognormvariate "Résultat" mu sigmaLoi log-normale (random.lognormvariate).
expovariate · loi-exponentielle · exponencial-aleatoria · kielelezo-nasibuexpovariate "Résultat" [lambda]Loi exponentielle (random.expovariate).
gammavariate · loi-gamma · gamma-aleatoria · gamma-nasibugammavariate "Résultat" alpha betaLoi gamma (random.gammavariate).
betavariate · loi-beta · beta-aleatoria · beta-nasibubetavariate "Résultat" alpha betaLoi bêta (random.betavariate).
paretovariate · loi-pareto · pareto-aleatoria · pareto-nasibuparetovariate "Résultat" alphaLoi de Pareto (random.paretovariate).
weibullvariate · loi-weibull · weibull-aleatoria · weibull-nasibuweibullvariate "Résultat" alpha betaLoi de Weibull (random.weibullvariate).
vonmisesvariate · loi-vonmises · vonmises-aleatoria · vonmises-nasibuvonmisesvariate "Résultat" mu kappaLoi de von Mises (random.vonmisesvariate).
binomialvariate · loi-binomiale · binomial-aleatoria · binomu-nasibubinomialvariate "Résultat" [n] [p]Nombre de succès sur n essais (random.binomialvariate, Python 3.12).
token_hex · jeton-hex · token-hexadecimal · tokeni-hextoken_hex "Résultat" [octets]Jeton hexadécimal cryptographique (secrets.token_hex), non reproductible.
randlist · liste-hasard · lista-aleatoria · orodha-nasiburandlist "Résultat" n a bListe de n entiers entre a et b : [randint(a, b) for _ in range(n)].
permutation · permuter · permutar · badilisha-mpangiliopermutation "Résultat" nLes entiers de 1 à n dans un ordre aléatoire : sample(range(1, n + 1), n).
roll · lancer · lanzar · rusharoll "Résultat" "2d6+3"Lance des dés en notation NdF±M et écrit le total.
coinflip · pile-face · cara-o-cruz · sarafucoinflip "Résultat"« pile » ou « face » : choice(["pile", "face"]).

Sécurité

random de Python n'est pas cryptographique, et Randomy non plus : ne l'utilisez pas pour des mots de passe ni des jetons. token_hex est l'exception : il appelle le générateur cryptographique du système (comme le module secrets), jamais la graine. Même chose pour entier-securise, jeton-aleatoire et mot-de-passe-aleatoire parmi les commandes intégrées.

Limites

  • Traductions espagnoles et swahilies écrites sans relecture par des locuteurs natifs : à relire avant diffusion large.
  • Les dernières décimales des lois continues peuvent différer d'un ulp de CPython selon la bibliothèque mathématique de la plateforme (les tests tolèrent 1e-12).
  • Ces commandes tournent dans l'aperçu du Studio. Le port Dart (application Flutter générée) n'est pas fait : voir RELEASE_NOTES_v0.7.288_randomy_50_commandes_aleatoires.md.
  • binomialvariate suppose Python ≥ 3.12 ; gauss et expovariate suivent la version 3.12 (le paramètre lambd d'expovariate est facultatif, valeur 1).