Updated March 16, 2023
Introduction to Random Number Generator in C
In order to generate the expected output, the program must need the proper input. Usually, the inputs are provided by the user but sometimes the program has to pick the input by itself. For instance, to get the current timestamp the application uses an inbuilt function to fetch it from the system. In the same way, sometimes we need to have the application generate any random number which could be processed further to get the supposed output. Though it looks random to the user the programming language offers us the mechanism to define the range of the random number. In this article, we will see the program implementation of random numbers generated using the C programming language. We will be focusing on the inbuilt function that is provided by C in order to generate a random number.
What is Random Number Generator Functions in C?
There are several approaches to generate the random number using any of the programming languages. One can define the function of their own way to estimate or generate the random number while there are inbuilt functions in any of the programming language that generates the random number. In the C programming language, we have a function called rand, which helps in generating the random number. This function comes predefined in C and can be implemented in the program using stdlib.h header file. The developer needs to mention the stdlib.h header file in the beginning of the program in order to leverage the rand function. Every time this function is called, it generates a totally random number. Based on the requirement one can generate the number belongs to integer, float or double data type. It can be simply used in the program using rand() function.
Though the rand function is supposed to generate the random value, it stuck to generate the same value every time the program is executed and it may happen due to the constant seed value. If the requirement is to have the new random number generated every time the program executes than we have to make sure that the seed should change whenever the program runs. Time is something that keeps on changing and can also be considered as something that can help in getting a random seed value every time and to use time in the program we have to use time.h header file.
Generating Integers
The rand() function is used to generate a random number. Every time it is called, it gives a random number. If the developers add some logic with it, they can generate the random number within a defined range and if the range is not defined explicitly, it will return a totally random integer value. The rand() function in C could be used in order to generate the random number and the generated number is totally deleting seed. A seed is a value that is used by rand function to generate the random value. If the seed value is kept on changing, the number generated will new every time the program is compiled else it will return the same value every time that was generated when the program was executed first. In order to generate the Below is the program to generate the integer random number.
Program
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int rand_num;
srand(time(0));
printf("The randomly generated number is");
rand_num = rand();
printf("%d\n", rand_num);
}
Output:
In this program, we have used time.h header file which is used to leverage the system time in generating the random number. As the time changes every time, the value of seed will change every time the program will be executed, helping us to generate a random number every time the program is executed. Rand_num is the variable that is used to store a randomly generated number. The function rand() generates a random number which is assigned to the variable rand_num. As we didn’t define the return value of the random number explicitly, it will give us an integer number.
Generating Float Point Numbers
The approach to generating the random float value is similar to the approach for generating the integer number. The only difference is, we will need to explicitly define that the value we are expecting from the rand function should be a float. The float value usually consumes more space in storage as compared to the short int. The program that we have written in the above for random integer value generation will be the same as we are going to write here. The only difference will be an explicit data type definition. Similar to the last program, we have used time.h header file here as well to let it contribute in random float number generation. If this header file is not included in the program, it will give the same value every time the program. Is executed. Below is the program for random float value generation.
Program
#include
#include
#include
int main()
{
float rand_num;
srand(time(0));
printf("The randomly generated float number is ");
rand_num = (float) rand();
printf("%f", rand_num);
}
Output:
In this program, we have used (float) which is used to explicitly define that the value returned from the rand function should be float in nature. As the ran_num variable is also defined with a float data type, it will be able to handle the float number which usually has six digits after the decimal point when generated in the C programming language. While printing the float value, we have used %f as it is something that has to be taken care of while printing the float value.
Conclusion
To enhance the randomness of the number, one can leverage mathematical expressions. Also, using logic one can also define the range of numbers under which they want the number to be generated randomly. The feature to generate random rubber is provided by all of the programming languages and used in the actual application based on the requirement. In order to ensure the strong randomness of the number, we have to make sure that the seed that rand function is used to generate the random value should be very random and new every time the program runs.
Recommended Articles
This is a guide to Random Number Generator in C. Here we discuss the function, generation integers, and generating float point numbers in C. You can also go through our other suggested articles to learn more –