In questo argomento impareremo la funzione casuale e come possiamo generare il numero casuale nel linguaggio di programmazione C. Come sappiamo, la funzione casuale viene utilizzata per trovare il numero casuale tra due numeri definiti. Nel linguaggio di programmazione C, la funzione casuale ha due funzioni integrate: la funzione rand() e la funzione srand(). Comprendiamo queste funzioni nel linguaggio C.
funzione rand()
Nel Linguaggio di programmazione C , la funzione rand() è una funzione di libreria che genera il numero casuale nell'intervallo [0, RAND_MAX]. Quando utilizziamo la funzione rand() in un programma, dobbiamo implementare il file stdlib.h file di intestazione perché la funzione rand() è definita nel file di intestazione stdlib. Non contiene alcun numero di seme. Pertanto, quando eseguiamo più e più volte lo stesso programma, restituisce gli stessi valori.
Nota: se i numeri casuali vengono generati con la funzione rand() senza chiamare la funzione srand(), restituisce le stesse sequenze di numeri ogni volta che viene eseguito il programma.
Sintassi
int rand (void)
La funzione rand() restituisce gli interi casuali il cui intervallo va da 0 a RAND_MAX. RAND_MAX è una costante simbolica che definisce nel file di intestazione stdlib.h, il cui valore è maggiore ma minore di 32767 a seconda delle librerie C.
Genera i numeri casuali utilizzando la funzione rand()
Scriviamo un programma per ottenere il numero casuale utilizzando la funzione rand().
ssh in formato completo
se
#include #include #include void main() { // use rand() function to generate the number printf (' The random number is: %d', rand()); printf (' The random number is: %d', rand()); printf (' The random number is: %d', rand()); printf (' The random number is: %d', rand()); getch(); }
Produzione
The random number is: 41 The random number is: 18467 The random number is: 6334 The random number is: 26500
Genera 5 numeri casuali utilizzando la funzione rand()
Consideriamo un programma per generare 5 numeri casuali utilizzando la funzione rand() nel linguaggio di programmazione C.
casuale.c
#include #include int main() { int i; /* It returns the same sequence of random number on every execution of the program. */ printf(' Random Numbers are: '); for (i = 0; i <5; i++) { printf(' %d', rand()); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Random Numbers are: 41 18467 6334 26500 19169 </pre> <p> <strong>2nd execution of the program:</strong> </p> <pre> Random Numbers are: 41 18467 6334 26500 19169 </pre> <p> <strong>3rd execution of the program</strong> </p> <pre> Random Numbers are: 41 18467 6334 26500 19169 </pre> <p>As we can see in the above output, it returns the same sequence of random numbers on every execution of the programming code.</p> <h3>Generate 10 random numbers from 1 to 100 using rand() function</h3> <p>Let's consider a program to find the random number in C using rand() function.</p> <p> <strong>rand_num.c</strong> </p> <pre> #include #include #include int main() { // declare the local variables int i, num; printf (' Program to get the random number from 1 to 100 '); for (i = 1; i <= 100 10; i++) { num="rand()" % + 1; use rand() function to get the random number printf (' %d ', num); getch(); } < pre> <p> <strong>Output</strong> </p> <pre> Program to get the random number from 1 to 100 42 68 35 1 70 25 79 59 63 65 </pre> <h2>srand() function</h2> <p>The srand() function is a C library function that determines the initial point to generate different series of pseudo-random numbers. A srand() function cannot be used without using a rand() function. The srand() function is required to set the value of the seed only once in a program to generate the different results of random integers before calling the rand() function.</p> <h3>Syntax</h3> <pre> int srand (unsigned int seed) </pre> <p> <strong>seed</strong> : It is an integer value that contains a seed for a new sequence of pseudo-random numbers.</p> <h3>Generate the random numbers using srand() function</h3> <p>Let's write a program to get the random numbers using srand() function in C.</p> <p> <strong>srandNum.c</strong> </p> <pre> #include #include #include // use time.h header file to use time int main() { int num, i; time_t t1; // declare time variable printf(' Enter a number to set the limit for a random number '); scanf (' %d', &num); /* define the random number generator */ srand ( (unsigned) time (&t1)); // pass the srand() parameter printf(' '); // print the space /* generate random number between 0 to 50 */ for (i = 0; i <num; i++) { printf( '%d ', rand() % 50); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a number to set the limit for a random number 10 44 32 23 35 6 33 1 4 22 18 </pre> <p> <strong>2nd execution of the program:</strong> </p> <pre> Enter a number to set the limit for a random number 15 13 30 24 27 4 30 28 35 36 13 44 39 21 5 7 </pre> <p>As we can see in the above Output, it returns different sequences of random numbers on every execution of the programming code.</p> <h3>Generate the random numbers using srand() and time() function</h3> <p>Let's write a program to get the random numbers using srand() with time() function.</p> <p> <strong>srand_time.c</strong> </p> <pre> #include #include int main() { int random = rand(); // assign the rand() function to random variable srand( time(0)); printf( ' Seed = %d', time(0)); printf( ' Random number = %d', random); return 0; } </pre> <p> <strong>Output</strong> </p> <pre> Seed = 1619450091 Random number = 41 </pre> <h3>Get a seeding value and print the random numbers using srand() function</h3> <p>Let's write a program to get the seed value and random numbers using srand() function.</p> <p> <strong>srand_time.c</strong> </p> <pre> #include #include int main() { int count; unsigned int seed; // use for randomize number printf(' Enter the Seeding value: '); scanf(' %u', &seed); srand (seed); // pass parameter // generate random number between 1 to 6 for (count = 1; count <= 1 5="=" 10; ++count) { printf(' %5d', + (rand () % 6)); if (count 0) print the number in next line puts(' '); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter the Seeding value: 10 6 4 3 3 6 3 3 1 3 4 </pre> <p> <strong>2nd execution of the program:</strong> </p> <pre> Enter the Seeding value: 20 2 4 2 4 5 4 3 5 1 4 </pre> <p> <strong>3rd execution of the program:</strong> </p> <pre> Enter the Seeding value: 25 1 6 1 6 4 4 1 4 1 3 </pre> <p>As we can see in the above Output, when we executed the same program again and again with different seeds values, it displays the different sequences of a random number from 1 to 6.</p> <h3>Generate the random number using the random function</h3> <p>Let's create a program to use stadlib header file to get the random number using random function in C.</p> <p> <strong>func.c</strong> </p> <pre> #include #include #include int main() { int i, num, max, temp; printf (' Enter a number to set the limit of random numbers '); scanf ('%d', num); printf (' Enter the maximum number from you want to get the random number: '); scanf ('%d', max); printf (' %d random number from 0 to %d number are: ', num, max); randomize(); for (i = 1; i <= num; i++) { temp="random(max)" * use random() function to get the random number printf (' %d ', temp); print } getch(); < pre> <p> <strong>Output</strong> </p> <pre> Enter a number to set the limit of random numbers 17 Enter the maximum number from you want to get the random number: 100 15 random number from 0 to 100 number are: 42 68 35 1 70 25 79 59 63 28 75 89 90 43 7 4 65 </pre> <h2>Program to generate float random numbers</h2> <p>Let's consider a program to print the float random numbers in C.</p> <p> <strong>random1.c</strong> </p> <pre> #include #include #include int main() { srand( (unsigned int) time(NULL)); float f1 = 5.0; int i; printf(?Float random numbers are: ?); for (i = 0; i<10; i++) { printf('%f', ((float) rand() rand_max) * f1); printf(' '); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Float random numbers are: 1.208075 1.658376 4.645070 2.298807 3.117161 0.961486 4.115573 4.336223 2.894833 2.249825 </pre> <hr></10;></pre></=></pre></=></pre></num;></pre></=></pre></5;>
2a esecuzione del programma:
Random Numbers are: 41 18467 6334 26500 19169
3a esecuzione del programma
javatable
Random Numbers are: 41 18467 6334 26500 19169
Come possiamo vedere nell'output sopra, restituisce la stessa sequenza di numeri casuali ad ogni esecuzione del codice di programmazione.
Genera 10 numeri casuali da 1 a 100 utilizzando la funzione rand()
Consideriamo un programma per trovare il numero casuale in C utilizzando la funzione rand().
rand_num.c
#include #include #include int main() { // declare the local variables int i, num; printf (' Program to get the random number from 1 to 100 '); for (i = 1; i <= 100 10; i++) { num="rand()" % + 1; use rand() function to get the random number printf (\' %d \', num); getch(); } < pre> <p> <strong>Output</strong> </p> <pre> Program to get the random number from 1 to 100 42 68 35 1 70 25 79 59 63 65 </pre> <h2>srand() function</h2> <p>The srand() function is a C library function that determines the initial point to generate different series of pseudo-random numbers. A srand() function cannot be used without using a rand() function. The srand() function is required to set the value of the seed only once in a program to generate the different results of random integers before calling the rand() function.</p> <h3>Syntax</h3> <pre> int srand (unsigned int seed) </pre> <p> <strong>seed</strong> : It is an integer value that contains a seed for a new sequence of pseudo-random numbers.</p> <h3>Generate the random numbers using srand() function</h3> <p>Let's write a program to get the random numbers using srand() function in C.</p> <p> <strong>srandNum.c</strong> </p> <pre> #include #include #include // use time.h header file to use time int main() { int num, i; time_t t1; // declare time variable printf(' Enter a number to set the limit for a random number '); scanf (' %d', &num); /* define the random number generator */ srand ( (unsigned) time (&t1)); // pass the srand() parameter printf(' '); // print the space /* generate random number between 0 to 50 */ for (i = 0; i <num; i++) { printf( \'%d \', rand() % 50); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a number to set the limit for a random number 10 44 32 23 35 6 33 1 4 22 18 </pre> <p> <strong>2nd execution of the program:</strong> </p> <pre> Enter a number to set the limit for a random number 15 13 30 24 27 4 30 28 35 36 13 44 39 21 5 7 </pre> <p>As we can see in the above Output, it returns different sequences of random numbers on every execution of the programming code.</p> <h3>Generate the random numbers using srand() and time() function</h3> <p>Let's write a program to get the random numbers using srand() with time() function.</p> <p> <strong>srand_time.c</strong> </p> <pre> #include #include int main() { int random = rand(); // assign the rand() function to random variable srand( time(0)); printf( ' Seed = %d', time(0)); printf( ' Random number = %d', random); return 0; } </pre> <p> <strong>Output</strong> </p> <pre> Seed = 1619450091 Random number = 41 </pre> <h3>Get a seeding value and print the random numbers using srand() function</h3> <p>Let's write a program to get the seed value and random numbers using srand() function.</p> <p> <strong>srand_time.c</strong> </p> <pre> #include #include int main() { int count; unsigned int seed; // use for randomize number printf(' Enter the Seeding value: '); scanf(' %u', &seed); srand (seed); // pass parameter // generate random number between 1 to 6 for (count = 1; count <= 1 5="=" 10; ++count) { printf(\' %5d\', + (rand () % 6)); if (count 0) print the number in next line puts(\' \'); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter the Seeding value: 10 6 4 3 3 6 3 3 1 3 4 </pre> <p> <strong>2nd execution of the program:</strong> </p> <pre> Enter the Seeding value: 20 2 4 2 4 5 4 3 5 1 4 </pre> <p> <strong>3rd execution of the program:</strong> </p> <pre> Enter the Seeding value: 25 1 6 1 6 4 4 1 4 1 3 </pre> <p>As we can see in the above Output, when we executed the same program again and again with different seeds values, it displays the different sequences of a random number from 1 to 6.</p> <h3>Generate the random number using the random function</h3> <p>Let's create a program to use stadlib header file to get the random number using random function in C.</p> <p> <strong>func.c</strong> </p> <pre> #include #include #include int main() { int i, num, max, temp; printf (' Enter a number to set the limit of random numbers '); scanf ('%d', num); printf (' Enter the maximum number from you want to get the random number: '); scanf ('%d', max); printf (' %d random number from 0 to %d number are: ', num, max); randomize(); for (i = 1; i <= num; i++) { temp="random(max)" * use random() function to get the random number printf (\' %d \', temp); print } getch(); < pre> <p> <strong>Output</strong> </p> <pre> Enter a number to set the limit of random numbers 17 Enter the maximum number from you want to get the random number: 100 15 random number from 0 to 100 number are: 42 68 35 1 70 25 79 59 63 28 75 89 90 43 7 4 65 </pre> <h2>Program to generate float random numbers</h2> <p>Let's consider a program to print the float random numbers in C.</p> <p> <strong>random1.c</strong> </p> <pre> #include #include #include int main() { srand( (unsigned int) time(NULL)); float f1 = 5.0; int i; printf(?Float random numbers are: ?); for (i = 0; i<10; i++) { printf(\'%f\', ((float) rand() rand_max) * f1); printf(\' \'); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Float random numbers are: 1.208075 1.658376 4.645070 2.298807 3.117161 0.961486 4.115573 4.336223 2.894833 2.249825 </pre> <hr></10;></pre></=></pre></=></pre></num;></pre></=>
funzione srand()
La funzione srand() è una funzione della libreria C che determina il punto iniziale per generare diverse serie di numeri pseudo-casuali. Una funzione srand() non può essere utilizzata senza utilizzare una funzione rand(). La funzione srand() è necessaria per impostare il valore del seme solo una volta in un programma per generare i diversi risultati degli interi casuali prima di chiamare la funzione rand().
Sintassi
int srand (unsigned int seed)
seme : È un valore intero che contiene un seme per una nuova sequenza di numeri pseudo-casuali.
Genera i numeri casuali utilizzando la funzione srand()
Scriviamo un programma per ottenere i numeri casuali utilizzando la funzione srand() in C.
srandNum.c
#include #include #include // use time.h header file to use time int main() { int num, i; time_t t1; // declare time variable printf(' Enter a number to set the limit for a random number '); scanf (' %d', &num); /* define the random number generator */ srand ( (unsigned) time (&t1)); // pass the srand() parameter printf(' '); // print the space /* generate random number between 0 to 50 */ for (i = 0; i <num; i++) { printf( \'%d \', rand() % 50); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a number to set the limit for a random number 10 44 32 23 35 6 33 1 4 22 18 </pre> <p> <strong>2nd execution of the program:</strong> </p> <pre> Enter a number to set the limit for a random number 15 13 30 24 27 4 30 28 35 36 13 44 39 21 5 7 </pre> <p>As we can see in the above Output, it returns different sequences of random numbers on every execution of the programming code.</p> <h3>Generate the random numbers using srand() and time() function</h3> <p>Let's write a program to get the random numbers using srand() with time() function.</p> <p> <strong>srand_time.c</strong> </p> <pre> #include #include int main() { int random = rand(); // assign the rand() function to random variable srand( time(0)); printf( ' Seed = %d', time(0)); printf( ' Random number = %d', random); return 0; } </pre> <p> <strong>Output</strong> </p> <pre> Seed = 1619450091 Random number = 41 </pre> <h3>Get a seeding value and print the random numbers using srand() function</h3> <p>Let's write a program to get the seed value and random numbers using srand() function.</p> <p> <strong>srand_time.c</strong> </p> <pre> #include #include int main() { int count; unsigned int seed; // use for randomize number printf(' Enter the Seeding value: '); scanf(' %u', &seed); srand (seed); // pass parameter // generate random number between 1 to 6 for (count = 1; count <= 1 5="=" 10; ++count) { printf(\' %5d\', + (rand () % 6)); if (count 0) print the number in next line puts(\' \'); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter the Seeding value: 10 6 4 3 3 6 3 3 1 3 4 </pre> <p> <strong>2nd execution of the program:</strong> </p> <pre> Enter the Seeding value: 20 2 4 2 4 5 4 3 5 1 4 </pre> <p> <strong>3rd execution of the program:</strong> </p> <pre> Enter the Seeding value: 25 1 6 1 6 4 4 1 4 1 3 </pre> <p>As we can see in the above Output, when we executed the same program again and again with different seeds values, it displays the different sequences of a random number from 1 to 6.</p> <h3>Generate the random number using the random function</h3> <p>Let's create a program to use stadlib header file to get the random number using random function in C.</p> <p> <strong>func.c</strong> </p> <pre> #include #include #include int main() { int i, num, max, temp; printf (' Enter a number to set the limit of random numbers '); scanf ('%d', num); printf (' Enter the maximum number from you want to get the random number: '); scanf ('%d', max); printf (' %d random number from 0 to %d number are: ', num, max); randomize(); for (i = 1; i <= num; i++) { temp="random(max)" * use random() function to get the random number printf (\' %d \', temp); print } getch(); < pre> <p> <strong>Output</strong> </p> <pre> Enter a number to set the limit of random numbers 17 Enter the maximum number from you want to get the random number: 100 15 random number from 0 to 100 number are: 42 68 35 1 70 25 79 59 63 28 75 89 90 43 7 4 65 </pre> <h2>Program to generate float random numbers</h2> <p>Let's consider a program to print the float random numbers in C.</p> <p> <strong>random1.c</strong> </p> <pre> #include #include #include int main() { srand( (unsigned int) time(NULL)); float f1 = 5.0; int i; printf(?Float random numbers are: ?); for (i = 0; i<10; i++) { printf(\'%f\', ((float) rand() rand_max) * f1); printf(\' \'); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Float random numbers are: 1.208075 1.658376 4.645070 2.298807 3.117161 0.961486 4.115573 4.336223 2.894833 2.249825 </pre> <hr></10;></pre></=></pre></=></pre></num;>
2a esecuzione del programma:
Enter a number to set the limit for a random number 15 13 30 24 27 4 30 28 35 36 13 44 39 21 5 7
Come possiamo vedere nell'output sopra, restituisce diverse sequenze di numeri casuali ad ogni esecuzione del codice di programmazione.
Genera i numeri casuali utilizzando la funzione srand() e time()
Scriviamo un programma per ottenere i numeri casuali utilizzando srand() con la funzione time().
Android può giocare a GamePigeon
srand_time.c
#include #include int main() { int random = rand(); // assign the rand() function to random variable srand( time(0)); printf( ' Seed = %d', time(0)); printf( ' Random number = %d', random); return 0; }
Produzione
Seed = 1619450091 Random number = 41
Ottieni un valore di seeding e stampa i numeri casuali utilizzando la funzione srand()
Scriviamo un programma per ottenere il valore seed e i numeri casuali utilizzando la funzione srand().
srand_time.c
#include #include int main() { int count; unsigned int seed; // use for randomize number printf(' Enter the Seeding value: '); scanf(' %u', &seed); srand (seed); // pass parameter // generate random number between 1 to 6 for (count = 1; count <= 1 5="=" 10; ++count) { printf(\' %5d\', + (rand () % 6)); if (count 0) print the number in next line puts(\' \'); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter the Seeding value: 10 6 4 3 3 6 3 3 1 3 4 </pre> <p> <strong>2nd execution of the program:</strong> </p> <pre> Enter the Seeding value: 20 2 4 2 4 5 4 3 5 1 4 </pre> <p> <strong>3rd execution of the program:</strong> </p> <pre> Enter the Seeding value: 25 1 6 1 6 4 4 1 4 1 3 </pre> <p>As we can see in the above Output, when we executed the same program again and again with different seeds values, it displays the different sequences of a random number from 1 to 6.</p> <h3>Generate the random number using the random function</h3> <p>Let's create a program to use stadlib header file to get the random number using random function in C.</p> <p> <strong>func.c</strong> </p> <pre> #include #include #include int main() { int i, num, max, temp; printf (' Enter a number to set the limit of random numbers '); scanf ('%d', num); printf (' Enter the maximum number from you want to get the random number: '); scanf ('%d', max); printf (' %d random number from 0 to %d number are: ', num, max); randomize(); for (i = 1; i <= num; i++) { temp="random(max)" * use random() function to get the random number printf (\' %d \', temp); print } getch(); < pre> <p> <strong>Output</strong> </p> <pre> Enter a number to set the limit of random numbers 17 Enter the maximum number from you want to get the random number: 100 15 random number from 0 to 100 number are: 42 68 35 1 70 25 79 59 63 28 75 89 90 43 7 4 65 </pre> <h2>Program to generate float random numbers</h2> <p>Let's consider a program to print the float random numbers in C.</p> <p> <strong>random1.c</strong> </p> <pre> #include #include #include int main() { srand( (unsigned int) time(NULL)); float f1 = 5.0; int i; printf(?Float random numbers are: ?); for (i = 0; i<10; i++) { printf(\'%f\', ((float) rand() rand_max) * f1); printf(\' \'); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Float random numbers are: 1.208075 1.658376 4.645070 2.298807 3.117161 0.961486 4.115573 4.336223 2.894833 2.249825 </pre> <hr></10;></pre></=></pre></=>
2a esecuzione del programma:
ottenere la connessione
Enter the Seeding value: 20 2 4 2 4 5 4 3 5 1 4
3a esecuzione del programma:
Enter the Seeding value: 25 1 6 1 6 4 4 1 4 1 3
Come possiamo vedere nell'output sopra, quando eseguiamo ripetutamente lo stesso programma con valori seed diversi, vengono visualizzate le diverse sequenze di un numero casuale da 1 a 6.
Genera il numero casuale utilizzando la funzione casuale
Creiamo un programma per utilizzare il file di intestazione stadlib per ottenere il numero casuale utilizzando la funzione casuale in C.
funz.c
#include #include #include int main() { int i, num, max, temp; printf (' Enter a number to set the limit of random numbers '); scanf ('%d', num); printf (' Enter the maximum number from you want to get the random number: '); scanf ('%d', max); printf (' %d random number from 0 to %d number are: ', num, max); randomize(); for (i = 1; i <= num; i++) { temp="random(max)" * use random() function to get the random number printf (\' %d \', temp); print } getch(); < pre> <p> <strong>Output</strong> </p> <pre> Enter a number to set the limit of random numbers 17 Enter the maximum number from you want to get the random number: 100 15 random number from 0 to 100 number are: 42 68 35 1 70 25 79 59 63 28 75 89 90 43 7 4 65 </pre> <h2>Program to generate float random numbers</h2> <p>Let's consider a program to print the float random numbers in C.</p> <p> <strong>random1.c</strong> </p> <pre> #include #include #include int main() { srand( (unsigned int) time(NULL)); float f1 = 5.0; int i; printf(?Float random numbers are: ?); for (i = 0; i<10; i++) { printf(\'%f\', ((float) rand() rand_max) * f1); printf(\' \'); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Float random numbers are: 1.208075 1.658376 4.645070 2.298807 3.117161 0.961486 4.115573 4.336223 2.894833 2.249825 </pre> <hr></10;></pre></=>
Programma per generare numeri casuali in virgola mobile
Consideriamo un programma per stampare i numeri casuali in virgola mobile in C.
casuale1.c
#include #include #include int main() { srand( (unsigned int) time(NULL)); float f1 = 5.0; int i; printf(?Float random numbers are: ?); for (i = 0; i<10; i++) { printf(\\'%f\\', ((float) rand() rand_max) * f1); printf(\\' \\'); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Float random numbers are: 1.208075 1.658376 4.645070 2.298807 3.117161 0.961486 4.115573 4.336223 2.894833 2.249825 </pre> <hr></10;>
10;>=>=>=>5;>