En este tema, aprenderemos sobre la función aleatoria y cómo podemos generar el número aleatorio en el lenguaje de programación C. Como sabemos, la función aleatoria se utiliza para encontrar el número aleatorio entre dos números definidos. En el lenguaje de programación C, la función aleatoria tiene dos funciones incorporadas: función rand() y srand(). Entendamos estas funciones en el lenguaje C.
función rand()
En el lenguaje de programación c , la función rand() es una función de biblioteca que genera el número aleatorio en el rango [0, RAND_MAX]. Cuando usamos la función rand() en un programa, necesitamos implementar la stdlib.h archivo de encabezado porque la función rand() está definida en el archivo de encabezado stdlib. No contiene ningún número de semilla. Por tanto, cuando ejecutamos el mismo programa una y otra vez, devuelve los mismos valores.
Nota: Si los números aleatorios se generan con la función rand() sin llamar a la función srand(), devuelve las mismas secuencias de números cada vez que se ejecuta el programa.
Sintaxis
int rand (void)
La función rand() devuelve los números enteros aleatorios cuyo rango es de 0 a RAND_MAX. RAND_MAX es una constante simbólica que se define en el archivo de encabezado stdlib.h, cuyo valor es mayor pero menor que 32767 dependiendo de las bibliotecas C.
Genere los números aleatorios usando la función rand()
Escribamos un programa para obtener el número aleatorio usando la función rand().
si
#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(); }
Producción
The random number is: 41 The random number is: 18467 The random number is: 6334 The random number is: 26500
Genere 5 números aleatorios usando la función rand()
Consideremos un programa para generar 5 números aleatorios usando la función rand() en el lenguaje de programación C.
aleatorio.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;>
2da ejecución del programa:
Random Numbers are: 41 18467 6334 26500 19169
3ra ejecución del programa
Random Numbers are: 41 18467 6334 26500 19169
Como podemos ver en el resultado anterior, devuelve la misma secuencia de números aleatorios en cada ejecución del código de programación.
Genere 10 números aleatorios del 1 al 100 usando la función rand()
Consideremos un programa para encontrar el número aleatorio en C usando la función rand().
c booleano
núm_rand.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></=>
función srand()
La función srand() es una función de la biblioteca C que determina el punto inicial para generar diferentes series de números pseudoaleatorios. Una función srand() no se puede utilizar sin utilizar una función rand(). La función srand() es necesaria para establecer el valor de la semilla solo una vez en un programa para generar los diferentes resultados de números enteros aleatorios antes de llamar a la función rand().
Sintaxis
int srand (unsigned int seed)
semilla : Es un valor entero que contiene una semilla para una nueva secuencia de números pseudoaleatorios.
Genere los números aleatorios usando la función srand()
Escribamos un programa para obtener números aleatorios usando la función srand() en C.
¿Qué es el envío de directorio?
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;>
2da ejecución del programa:
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
Como podemos ver en el resultado anterior, devuelve diferentes secuencias de números aleatorios en cada ejecución del código de programación.
Genere los números aleatorios usando la función srand() y time()
Escribamos un programa para obtener números aleatorios usando srand() con la función time().
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; }
Producción
Seed = 1619450091 Random number = 41
Obtenga un valor inicial e imprima los números aleatorios usando la función srand()
Escribamos un programa para obtener el valor inicial y los números aleatorios usando la función 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></=>
2da ejecución del programa:
Enter the Seeding value: 20 2 4 2 4 5 4 3 5 1 4
3ª ejecución del programa:
Enter the Seeding value: 25 1 6 1 6 4 4 1 4 1 3
Como podemos ver en el resultado anterior, cuando ejecutamos el mismo programa una y otra vez con diferentes valores de semillas, muestra las diferentes secuencias de un número aleatorio del 1 al 6.
Genera el número aleatorio usando la función aleatoria.
Creemos un programa para usar el archivo de encabezado stadlib para obtener el número aleatorio usando la función aleatoria en C.
func.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></=>
Programa para generar números aleatorios flotantes.
Consideremos un programa para imprimir los números aleatorios flotantes en C.
aleatorio1.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;>