Rand (jazyk C): Rozdiel medzi revíziami
(Vytvorená stránka „ Funkcia rand () sa používa v jazyku C na generovanie náhodných čísel. Ak vygenerujeme sekvenciu náhodných čísel s funkciou rand (), vytvorí rovnakú sekvenci…“) |
d (→Príklad) |
||
| (8 medziľahlých úprav od 3 ďalších používateľov nie je zobrazených) | |||
| Riadok 1: | Riadok 1: | ||
| + | {{Funkcie jazyka c}} | ||
| + | __NOTOC__ | ||
| + | ==Funkcia rand== | ||
| + | <properties> | ||
| + | knižnica=stdlib.h | ||
| + | popis=Vygeneruje náhodné číslo. | ||
| + | </properties> | ||
| − | Funkcia | + | Úplný funkčný prototyp: |
| + | <source lang="c"> | ||
| + | int rand (void); | ||
| + | </source> | ||
| + | |||
| + | ==Podrobný popis funkcie== | ||
| + | Funkcia [[Rand (jazyk C)|rand]] sa používa v jazyku C na generovanie náhodných čísel. Ak vygenerujeme sekvenciu náhodných čísel pomocou funkcie [[Rand (jazyk C)|rand]], tak vytvorí rovnakú sekvenciu znova a znova pri každom spustení programu. Povedzme, že ak generujeme 5 náhodných čísel v C pomocou cyklu [[Rand (jazyk C)|rand]] v cykle, potom vždy, keď kompilujeme a spustíme program, náš výstup musí byť rovnakou sekvenciou čísel. Riešením je použiť funkciu [[Srand (jazyk C)|srand]], ktorá zmení ''seed'' generátoru. | ||
| + | |||
| + | ==Návratová hodnota== | ||
| + | Funkcia vráti celé číslo v rozmedzí 0 až ''RAND_MAX''.<ref>https://www.tutorialspoint.com/c_standard_library/c_function_rand.htm</ref> | ||
| + | |||
| + | ==Príklad== | ||
| + | <source lang="c" line> | ||
| + | #include <stdio.h> | ||
| + | #include <stdlib.h> | ||
| + | #include <time.h> | ||
| + | |||
| + | int random(int min, int max) { | ||
| + | return (rand() % (max - min + 1)) + min; | ||
| + | } | ||
| + | |||
| + | int main() { | ||
| + | time_t t; | ||
| + | int n = 5; //počet vypísaných čísel | ||
| + | |||
| + | srand((unsigned)time(&t)); //inicializuje generátor náhodných čísel podľa času | ||
| + | |||
| + | for (int i = 0; i < n; i++) { | ||
| + | printf("%d\n", random(1,50)); //vypíše náhodné číslo od 1 po 50 | ||
| + | } | ||
| + | |||
| + | return 0; | ||
| + | } | ||
| + | </source> | ||
| + | |||
| + | ''Výstup (môže sa líšiť):'' | ||
| + | 7 | ||
| + | 33 | ||
| + | 31 | ||
| + | 30 | ||
| + | 43 | ||
| + | |||
| + | ==Referencie== | ||
Aktuálna revízia z 22:20, 19. máj 2020
| <ctype.h> | <limits.h> | <stdio.h> | <stdlib.h> | <math.h> | <string.h> | <time.h> |
|---|---|---|---|---|---|---|
|
isalnum |
printf |
system |
Funkcia rand
knižnica | stdlib.h |
popis | Vygeneruje náhodné číslo. |
Úplný funkčný prototyp:
int rand (void);
Podrobný popis funkcie
Funkcia rand sa používa v jazyku C na generovanie náhodných čísel. Ak vygenerujeme sekvenciu náhodných čísel pomocou funkcie rand, tak vytvorí rovnakú sekvenciu znova a znova pri každom spustení programu. Povedzme, že ak generujeme 5 náhodných čísel v C pomocou cyklu rand v cykle, potom vždy, keď kompilujeme a spustíme program, náš výstup musí byť rovnakou sekvenciou čísel. Riešením je použiť funkciu srand, ktorá zmení seed generátoru.
Návratová hodnota
Funkcia vráti celé číslo v rozmedzí 0 až RAND_MAX.[1]
Príklad
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5 int random(int min, int max) {
6 return (rand() % (max - min + 1)) + min;
7 }
8
9 int main() {
10 time_t t;
11 int n = 5; //počet vypísaných čísel
12
13 srand((unsigned)time(&t)); //inicializuje generátor náhodných čísel podľa času
14
15 for (int i = 0; i < n; i++) {
16 printf("%d\n", random(1,50)); //vypíše náhodné číslo od 1 po 50
17 }
18
19 return 0;
20 }
Výstup (môže sa líšiť):
7 33 31 30 43