mrand()
dans le script Python, alors que les fonctions en question existent déjà ?- Code: Select all
mrandmax=2147483647
mrand=0
def mseed(s):
global mrand
mrand=s%mrandmax
def mrandom():
mseed(mrand*16807)
return mrand/mrandmax
def muniform(mini,maxi):
return mrandom()*(maxi-mini)+mini
def mrandint(mini,maxi):
return round(muniform(mceil(mini),mfloor(maxi)))
mseed(42)
Une fois de plus pour vous mettre tous à égalité en générant exactement la même situation, sachant que c'est la première année où nous faisons concourir dans une même catégorie des participants équipés de marques/familles différentes !
Certes, les Micropython Casio Graph 90+E et NumWorks sortent la même chose :
Ce qui en passant permettrait de coder des jeux qui en plus d'être compatibles avec le deux machines, y auraient exactement le même comportement.
Mais voilà, la HP Prime quant à elle a 2 générateurs aléatoires qui produisent d'autres résultats malgré la même initialisation :
Et Khicas pour Graph 90+E sort encore autre chose :
D'où l'implémentation d'un moteur aléatoire de type Lehmer RNG : https://en.wikipedia.org/wiki/Lehmer_ra ... _generator
Ici avec les paramètres :
- n = 2 147 483 647 ; le 31ème nombre de Mersenne premier
- g = 16 807 ; racine primitive modulo n