Fitxer de capçalera:
stdlib.h
Sintaxi:
int rand (buit)
Retorna els valors:
Aquesta funció retorna el següent número pseudo-aleatori de la sèrie. El valor de l'interval de la sèrie numèrica està entre 0 i RAND_MAX. RAND_MAX és una macro definida a stdlib.h fitxer de capçalera, el valor del qual és el valor màxim, que pot retornar mitjançant la funció rand (). El valor de RAND_MAX és major, però no inferior a 32767, segons les biblioteques C.
//Example1.c
#incloure
#incloure
intprincipal()
{
intjo;
printf ('10 nombres aleatoris => n');
per(jo=0;jo<10;jo++)
{
printf ('% d', fila ());
}
printf (' n');
tornar 0;
}
A Example1.c, anomenem la funció rand () en cada iteració de for loop i imprimim el valor de retorn de la funció. La seqüència de valors de la funció rand () és la mateixa cada vegada que executem el programa. Per defecte, la llavor de la funció rand està establerta a 1.
Podem configurar la llavor per a la funció rand mitjançant el fitxer srand () funció. La llavor només es pot establir una vegada i abans de la primera vegada fila () trucada de funció.
funció srand ():
Fitxer de capçalera:
stdlib.h
Sintaxi:
int srand (llavor int sense signar)
Arguments:
Aquesta funció té 1 argument
llavor: Valor enter utilitzat com a llavor per a una nova sèrie de nombres pseudo-aleatoris.
Retorna els valors:
Cap
//Example2.c#incloure
#incloure
#incloure
intprincipal()
{
intjo;
srand ( temps (0));
printf ('10 nombres aleatoris => n');
per(jo=0;jo<10;jo++)
{
printf ('% d', fila ());
}
printf (' n');
tornar 0;
}
A Example2.c, hem utilitzat la funció srand () per establir la llavor inicial de la seqüència de nombres aleatoris generada per la funció rand (). Cada vegada que s’executa el programa, es genera una seqüència diferent. A srand (), funció time (0) (declarada a temps.h fitxer de capçalera) s’utilitza com a llavor. Aquesta funció de temps (0) retorna el nombre de segons transcorreguts des de l'època (00:00:00, 1 de gener de 1970). Això encara pot produir les mateixes seqüències si executeu el programa en el mateix segon.
#incloure
#incloure
#incloure
intprincipal()
{
intjo;
srand ( temps (0));
printf ('10 Nombres aleatoris entre 1 i 10 => n');
per(jo=0;jo<10;jo++)
{
printf ('% d',( fila () %10) + 1);
}
printf (' n');
tornar 0;
}
A l'Exemple3.c hem vist com es poden generar nombres aleatoris entre 1 i 10.
#incloure
#incloure
#incloure
intprincipal()
{
intjo,màx,mín;
printf ('Introduïu el valor mínim =>');
scanf ('% d', &mín);
printf ('Introduïu el valor màxim =>');
scanf ('% d', &màx);
si(mín>màx)
{
printf ('El valor mínim és superior al valor màxim n');
tornar 0;
}
srand ( temps (0));
printf ('10 Nombres aleatoris entre% d i% d => n',mín,màx);
per(jo=0;jo<10;jo++)
{
printf ('% d',( fila () % (màx-mín+1)) +mín);
}
printf (' n');
tornar 0;
}
A Example4.c hem pres l’interval de l’usuari i hem generat un número aleatori dins d’aquest interval. La fórmula és: rand ()% (max - min +1)) + min
#incloure
#incloure
#incloure
intprincipal()
{
intjo;
srand ( temps (0));
printf ('10 Nombres aleatoris entre 0,0 i 1,0 => n');
per(jo=0;jo<10;jo++)
{
printf ('% f',((surar) fila () /RAND_MAX));
}
printf (' n');
tornar 0;
}
A l’exemple 5.c, hem vist com podem generar nombres aleatoris entre el flotant 0,0 i 1,0 La fórmula és: (float) rand () / RAND_MAX)
#incloure
#incloure
#incloure
intprincipal()
{
intjo;
surarmàx,mín;
printf ('Introduïu el valor mínim =>');
scanf ('% f', &mín);
printf ('Introduïu el valor màxim =>');
scanf ('% f', &màx);
si(mín>màx)
{
printf ('El valor mínim és superior al valor màxim n');
tornar 0;
}
srand ( temps (0));
printf ('10 Nombres aleatoris entre% f i% f => n',mín,màx);
per(jo=0;jo<10;jo++)
{
printf ('% f',mín+ ((surar) fila () /(RAND_MAX/(màx-mín))));
}
printf (' n');
tornar 0;
}
A Example6.c, hem pres l’interval de l’usuari i hem generat un número aleatori dins d’aquest interval (tots dos inclosos). La fórmula és: min + ((float) rand () / (RAND_MAX / (max - min)))
Conclusió:
En aquest article, hem après com es poden generar nombres aleatoris mitjançant fila () i srand () funció. No hi ha garanties sobre la qualitat dels números aleatoris generats per la funció rand, però és prou bo per a ús casual.