Aléatoire#

Introduction#

La bibliothèque standard C++ fournit des fonctions permettant de générer des nombres pseudo-aléatoires. Ces derniers peuvent être utilisés dans VEXcode EXP pour des comportements nécessitant une certaine variabilité ou un caractère aléatoire.

Fonctions#

La bibliothèque <cstdlib> comprend les fonctions suivantes :

  • rand — Renvoie un entier aléatoire.

  • srand — Définit la graine aléatoire.

rand#

Renvoie un entier aléatoire compris entre 0 et 2 147 483 647.

Available Functions
int rand();

Parameters

Cette fonction n’accepte aucun paramètre.

Return Values

Renvoie un entier aléatoire compris entre 0 et 32767.

Notes
  • Pour renvoyer un entier aléatoire dans une limite exclusive, utilisez le modèle rand() % max.

  • Pour renvoyer un entier aléatoire dans une plage spécifique, utilisez le modèle rand() % (max - min + 1) + min.

Examples
// Display a random number
Brain.Screen.print("%d", rand());

// Display a random number between 0 and 100
Brain.Screen.print("%d", rand() % 101);

// Display a random number between 5 and 10
Brain.Screen.print("%d", rand() % (10 - 5 + 1) + 5);

srand#

Définit la graine à utiliser par le générateur de nombres pseudo-aléatoires dans la fonction rand.

Available Functions
void srand( unsigned int seed );

Parameters

Paramètre

Taper

Description

seed

unsigned int

La valeur initiale de la graine.

Return Values

Cette fonction ne renvoie aucune valeur.

Notes
  • Appelez rand une seule fois, au début de votre projet, avant d’appeler randVous n’avez pas besoin de l’appeler avant chaque srand.

  • Si srand n’est jamais appelée, le programme se comporte comme si srand(1) avait été utilisée. Cela signifie que rand produira la même séquence de nombres à chaque exécution du programme.

  • Pour obtenir des résultats différents à chaque exécution du projet, initialisez avec une valeur qui change entre les exécutions, comme le temps du cerveau.

  • Pour obtenir les mêmes résultats à chaque fois (utile pour les tests), initialisez avec un nombre fixe tel que srand(1).

Examples
// Use the same seed for random number
srand(5);
Brain.Screen.print("%d", rand() % 100);