Functions > Math >


Random

Génère un nombre pseudo-aléatoire entier ou décimal.

Random ( [Min = 0 [, Max = 1 [, Flag = 0]]] )

Paramètres

Min [optionnel] Le plus petit nombre qui peut être généré. La valeur par défaut est 0.
Max [optionnel] Le plus grand nombre qui peut être généré. La valeur par défaut est 1.
Flag [optionnel] S'il est mis à 1, un résultat de type 'integer' sera retourné. Par défaut c'est un nombre de type 'float'.

Valeur de retour

Succès: Retourne un nombre pseudo-aléatoire entre Min et Max.
Échec: Définit @error <> 0.

Remarques

Si un seul argument est fourni, il est considéré comme le paramètre Max.

Le résultat sera dans l'intervalle de Min à Max, bornes INCLUSES lors de l'utilisation des résultats de type 'integer' (un peu moins du Max lorsqu'il s'agit de 'float').

Si Min et Max ont la même valeur alors Random() retournera cette valeur - le flag @error ne sera pas activé dans ce cas.

Lors de l'utilisation d'Integers, Min et Max doivent être inférieurs à 2^31.


Commentaires relatifs à l'origine de la source

Cette fonction utilise le générateur de nombre aléatoire Mersenne Twister, MT19937, écrit par Takuji Nishimura, Makoto Matsumoto, Shawn Cokus, Matthe Bellew et Isaku Wada.

Le Mersenne Twister est un algorithme de génération de nombres aléatoires. Il a été conçu en tenant compte des failles de divers autres générateurs. La période, 219937-1 et l'ordre de l'équidistribution, 623 dimensions, sont très grands. Le générateur est également rapide; il évite les multiplications et les divisions, et bénéficie de mémoire cache et de plusieurs canaux de traitement. Pour plus d'informations, voir la page web des inventeurs à http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html

Copyright © 1997 - 2002, Makoto Matsumoto et Takuji Nishimura, Tous droits réservés.

La redistribution et l'utilisation des codes source et binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient remplies :

1. Les redistributions du code source doivent conserver la notice de copyright ci-dessus, cette liste de conditions et la décharge suivante.

2. Les redistributions sous forme binaire doivent reproduire la notice de copyright ci-dessus, cette liste de conditions et la décharge suivante dans la documentation et/ou d'autres documents fournis avec la distribution.

3. Les noms de ses contributeurs ne peuvent être utilisés pour avaliser ou promouvoir des produits dérivés de ce logiciel sans autorisation écrite spécifique préalable.

CE LOGICIEL EST FOURNI PAR LES DÉTENTEURS DE DROITS D'AUTEURS ET LES CONTRIBUTEURS "TEL QUEL" ET TOUTE GARANTIE EXPLICITE OU IMPLICITE, Y COMPRIS MAIS SANS LIMITATION DE GARANTIE IMPLICITE DE VALEUR MARCHANDE ET D'ADAPTATION À UN USAGE PARTICULIER SONT RÉFUTÉS. EN AUCUN CAS LE PROPRIÉTAIRE DES DROITS D'AUTEUR OU LES CONTRIBUTEURS NE SAURAIENT ÊTRE TENUS RESPONSABLES DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, DOMMAGES ET INTÉRÊTS OU DOMMAGES CONSÉCUTIFS (Y COMPRIS MAIS SANS LIMITATION FOURNITURE DE MARCHANDISES OU SERVICES DE SUBSTITUTION ; PERTE DE JOUISSANCE, DE DONNÉES OU DE BÉNÉFICES ; NI INTERRUPTION D'ACTIVITÉ) QUELLES QUE SOIENT LEURS CAUSES ET QUEL QUE SOIT LE MOTIF JURIDIQUE INVOQUÉ, CONTRACTUEL, RESPONSABILITÉ CIVILE OU PÉNALE (Y COMPRIS NÉGLIGENCE OU AUTRE), SURVENANT DE QUELQUE MANIÈRE QUE CE SOIT SUITE À L'UTILISATION DU LOGICIEL, MÊME S'ILS ONT ÉTÉ AVISÉS DE LA POSSIBILITÉ DE TELS DOMMAGES.

En relation

Round, SRandom

Exemples

Exemple 1

#include <MsgBoxConstants.au3>

; Lancer d'une pièce.
Example()

Func Example()
    If Random(0, 1, 1) = 1 Then ; Retourne 0 ou 1.
        MsgBox($MB_SYSTEMMODAL, "", "Le coté de la pièce est: Face") ;Si le nombre aléatoire est 1 alors Face à été obtenu.
    Else
        MsgBox($MB_SYSTEMMODAL, "", "Le coté de la pièce est: Pile") ; Si le nombre aléatoire est 0, alors Pile a été obtenu.
    EndIf
EndFunc   ;==>Example


Exemple 2

#include <MsgBoxConstants.au3>

; Lancer d'un dé.

Example()

Func Example()
    MsgBox($MB_SYSTEMMODAL, "", "Le dé a donné " & Random(1, 6, 1) & ".") ; Retourne un nombre entier compris entre 1 et 6.
EndFunc   ;==>Example


Exemple 3

#include <MsgBoxConstants.au3>

; Crée une chaîne de texte aléatoire.

Example()

Func Example()
    Local $sText = ""
    For $i = 1 To Random(5, 20, 1) ; Retourne un nombre entier compris entre 5 et 20 pour déterminer la longueur de la chaîne.
        $sText &= Chr(Random(65, 122, 1)) ; Retourne un nombre entier compris entre 65 et 122 qui représentent les caractères ASCII entre 'a' (minuscule) à 'Z' (en majuscule).
    Next
    MsgBox($MB_SYSTEMMODAL, "", "La chaîne aléatoire est: " & $sText) ; Affiche la chaîne de texte.
EndFunc   ;==>Example


Exemple 4

#include <MsgBoxConstants.au3>

; Resultat lorsque Min et Max ont la même valeur.

Example()

Func Example()
    Local $iRandom = Random(10, 10)
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "", "Une erreur est survenue, dû au fait que les valeurs Min et Max sont les mêmes: " & $iRandom)
    EndIf
EndFunc   ;==>Example