Portál AbcLinuxu, 3. prosince 2025 02:49
int X()
{
srand(time(NULL));
int i = rand() % 5;
return i;
}
int main()
{
for(int i = 0; i < 20; i++)
std::cout << X() << std::endl;
return 0;
}Pokud toto zkompiluji a spustim tak mi vytiskne 20x stejne cislo. Delsi dobu mi to vrtalo v hlave az jsem prisel na banalni vec - premistit inicializaci generovace do main() a pak uz mi haze seznam 20 nahodnych cisel (v rozsahu, kterem chci). Ja bych se spise chtel zeptat, proc se to takto deje?
... ) {
std::cout << X() << std::endl;
sleep(1);
}
int random_int(int min, int max){
/*returns random number from min to max
(INCLUDING MIN AND MAX)*/
int diffp1 = max - min + 1; /*difference plus one */
int bucket_size = RAND_MAX/diffp1;
int a;
do{
a = rand() / bucket_size;
}while (a >= diffp1);
return a + min;
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.