Vous souhaiterez peut-être remplir un certain tableau avec une valeur appropriée. Ou vous pouvez créer une valeur aléatoire pour vos données de test. Voici quelques conseils que vous pouvez utiliser dans de tels cas.
Rand () / rand_r () est fourni comme une fonction pour générer des nombres aléatoires.
#include <stdlib.h>
int rand(void);
int rand_r(unsigned int *seedp);
Cependant, la fonction ci-dessus utilise des nombres aléatoires entre 0 et RAND_MAX ** (* 1) **, donc si vous souhaitez générer des nombres aléatoires de 0 à UCHAR_MAX (255), vous ne pouvez pas l'utiliser tel quel. ..
** (* 1) ** Dans mon environnement, il a été défini dans stdlib.h
comme suit
/* The largest number rand will return (same as INT_MAX). */
#define RAND_MAX 2147483647
Si vous préparez la fonction wrapper suivante, vous pouvez spécifier la plage de valeurs minimum / maximum (0 à RAND_MAX).
#include <stdlib.h>
int getrand(unsigned int* seed, int min, int max)
{
return min + (int)(rand_r(seed) * (max - min + 1.0) / (1.0 + RAND_MAX));
}
DEMO
Voici un exemple de programme simple. Veuillez l'utiliser pour vérifier le fonctionnement.
https://github.com/ydah/specified_range_rand_r
Recommended Posts