Aleatorio#

Introducción#

La biblioteca estándar de C++ proporciona funciones para generar números pseudoaleatorios. Estos se pueden usar en VEXcode EXP para comportamientos que requieren variabilidad o azar.

Funciones#

La <cstdlib> biblioteca incluye las siguientes funciones:

  • rand — Devuelve un entero aleatorio.

  • srand — Establece la semilla aleatoria.

rand#

Devuelve un entero aleatorio entre 0 y 2,147,483,647.

Available Functions
int rand();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Devuelve un entero aleatorio entre 0 y 32767.

Notes
  • Para devolver un entero aleatorio dentro de un límite exclusivo, use el patrón rand() % max.

  • Para devolver un entero aleatorio dentro de un rango específico, use el patrón 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#

Establece la semilla que utilizará el generador de números pseudoaleatorios en la función rand.

Available Functions
void srand( unsigned int seed );

Parameters

Parámetro

Tipo

Descripción

seed

unsigned int

El valor inicial de la semilla.

Return Values

Esta función no devuelve un valor.

Notes
  • Llame a srand solo una vez, cerca del inicio de su proyecto, antes de llamar a rand. No es necesario llamarlo antes de cada rand.

  • Si nunca se llama a srand, el programa se comporta como si se usara srand(1). Esto significa que rand produce la misma secuencia de números cada vez que se ejecuta el proyecto.

  • Para obtener resultados diferentes cada vez que se ejecuta el proyecto, siembra con un valor que cambie entre ejecuciones, como el temporizador de Brain.

  • Para obtener los mismos resultados cada vez (útil para pruebas), sembrar con un número fijo como srand(1).

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