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 derandom.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 utiliseraithash(1.5)). Écart connu. seedsans 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émorisezgetstate(avecstocker) puissetstate.
Conventions BERKIOS
- Le résultat est le premier argument :
randint "$r" 1 6au lieu der = random.randint(1, 6). - Une liste s'écrit
a, b, c(éléments séparés par des virgules) ;choicesaccepte des poids dans le même format :choices "$r" "a, b, c" 5 "1, 2, 7". - Les erreurs correspondent aux
ValueErrorde Python (intervalle vide, échantillon plus grand que la population, poids invalides…) et arrêtent le script avec un message. randomest déjà une commande intégrée de BERKIOS CODE (entier de 1 à 100). Pour lerandom()de Python, écrivezrandomy.random "$r"ou son nom françaishasard.
Commandes
| Noms (python · fr · es · sw) | Syntaxe | Effet |
|---|---|---|
seed · graine · semilla · mbegu | seed ["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-hali | getstate "Résultat" | Écrit l'état complet du générateur (random.getstate) pour le restaurer avec setstate. |
setstate · fixer-etat · fijar-estado · weka-hali | setstate "Etat" | Restaure un état produit par getstate (random.setstate) : les tirages suivants sont rejoués à l'identique. |
random · hasard · aleatorio · nasibu | randomy.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-nasibu | getrandbits "Résultat" k | Entier de k bits aléatoires, 1 ≤ k ≤ 8192 (random.getrandbits). |
randbytes · octets-hasard · bytes-aleatorios · baiti-nasibu | randbytes "Résultat" n | n octets aléatoires écrits en hexadécimal (random.randbytes). |
randint · entier-hasard · entero-aleatorio · kamili-nasibu | randint "Résultat" a b | Entier de a à b, bornes incluses (random.randint). |
randrange · plage-hasard · rango-aleatorio · masafa-nasibu | randrange "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-nasibu | randbelow "Résultat" n | Entier de 0 à n − 1 (comme secrets.randbelow, mais reproductible avec seed). |
choice · choix · elegir · chagua | choice "Résultat" "a, b, c" | Un élément de la liste, au hasard (random.choice). |
choices · choix-plusieurs · elegir-varios · chagua-nyingi | choices "Résultat" "a, b, c" k ["poids"] | k éléments tirés avec remise, poids facultatifs (random.choices). |
sample · echantillon · muestra · sampuli | sample "Résultat" "a, b, c" k | k éléments distincts de la liste (random.sample). |
shuffle · melanger · barajar · changanya | shuffle "Liste" | Mélange la liste en place (random.shuffle). |
uniform · uniforme · uniforme-aleatorio · sawia | uniform "Résultat" a b | Nombre décimal entre a et b (random.uniform). |
triangular · triangulaire · triangular-aleatorio · pembetatu | triangular "Résultat" [bas] [haut] [mode] | Loi triangulaire (random.triangular). |
gauss · gaussienne · gaussiana · gauss-nasibu | gauss "Résultat" [mu] [sigma] | Loi normale par Box-Muller (random.gauss). |
normalvariate · loi-normale · normal-aleatoria · kawaida-nasibu | normalvariate "Résultat" [mu] [sigma] | Loi normale par Kinderman-Monahan (random.normalvariate). |
lognormvariate · loi-lognormale · lognormal-aleatoria · lognormal-nasibu | lognormvariate "Résultat" mu sigma | Loi log-normale (random.lognormvariate). |
expovariate · loi-exponentielle · exponencial-aleatoria · kielelezo-nasibu | expovariate "Résultat" [lambda] | Loi exponentielle (random.expovariate). |
gammavariate · loi-gamma · gamma-aleatoria · gamma-nasibu | gammavariate "Résultat" alpha beta | Loi gamma (random.gammavariate). |
betavariate · loi-beta · beta-aleatoria · beta-nasibu | betavariate "Résultat" alpha beta | Loi bêta (random.betavariate). |
paretovariate · loi-pareto · pareto-aleatoria · pareto-nasibu | paretovariate "Résultat" alpha | Loi de Pareto (random.paretovariate). |
weibullvariate · loi-weibull · weibull-aleatoria · weibull-nasibu | weibullvariate "Résultat" alpha beta | Loi de Weibull (random.weibullvariate). |
vonmisesvariate · loi-vonmises · vonmises-aleatoria · vonmises-nasibu | vonmisesvariate "Résultat" mu kappa | Loi de von Mises (random.vonmisesvariate). |
binomialvariate · loi-binomiale · binomial-aleatoria · binomu-nasibu | binomialvariate "Résultat" [n] [p] | Nombre de succès sur n essais (random.binomialvariate, Python 3.12). |
token_hex · jeton-hex · token-hexadecimal · tokeni-hex | token_hex "Résultat" [octets] | Jeton hexadécimal cryptographique (secrets.token_hex), non reproductible. |
randlist · liste-hasard · lista-aleatoria · orodha-nasibu | randlist "Résultat" n a b | Liste de n entiers entre a et b : [randint(a, b) for _ in range(n)]. |
permutation · permuter · permutar · badilisha-mpangilio | permutation "Résultat" n | Les entiers de 1 à n dans un ordre aléatoire : sample(range(1, n + 1), n). |
roll · lancer · lanzar · rusha | roll "Résultat" "2d6+3" | Lance des dés en notation NdF±M et écrit le total. |
coinflip · pile-face · cara-o-cruz · sarafu | coinflip "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. binomialvariatesuppose Python ≥ 3.12 ;gaussetexpovariatesuivent la version 3.12 (le paramètrelambdd'expovariateest facultatif, valeur 1).
Cette page en Markdown · llms.txt · documentation complète pour les IA