C srand() Function | Seed the Random Number Generator

Introduction

The srand() function in C is a standard library function that initializes the random number generator used by the rand() function. It is part of the C standard library (stdlib.h). This function is commonly used to ensure that the sequence of random numbers generated by rand() is different each time the program is run.

srand() Function Syntax

The syntax for the srand() function is as follows:

void srand(unsigned int seed);

Parameters:

  • seed: An unsigned integer value used to seed the random number generator.

Returns:

  • The srand() function does not return a value.

Examples

Initializing the Random Number Generator with a Constant Seed

To demonstrate how to use srand() to initialize the random number generator with a constant seed, we will write a simple program.

Example

#include <stdio.h>
#include <stdlib.h>

int main() {
    // Initialize the random number generator with a constant seed
    srand(1234);

    // Generate a random number
    int random_number = rand();

    // Print the generated random number
    printf("Random number: %d\n", random_number);

    return 0;
}

Output:

Random number: [some random number]

Initializing the Random Number Generator with the Current Time

To ensure a different sequence of random numbers each time the program is run, you can initialize the random number generator with the current time.

Example

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    // Initialize the random number generator with the current time
    srand(time(NULL));

    // Generate a random number
    int random_number = rand();

    // Print the generated random number
    printf("Random number: %d\n", random_number);

    return 0;
}

Output:

Random number: [some random number]

Real-World Use Case

Generating Random Numbers for a Lottery System

In real-world applications, the srand() function can be used to generate random numbers for systems like lotteries, where it is essential to have a different sequence of numbers each time.

Example

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    // Initialize the random number generator with the current time
    srand(time(NULL));

    // Generate and print six random lottery numbers between 1 and 49
    printf("Lottery numbers: ");
    for (int i = 0; i < 6; i++) {
        int lottery_number = (rand() % 49) + 1;
        printf("%d ", lottery_number);
    }
    printf("\n");

    return 0;
}

Output:

Lottery numbers: [six random numbers between 1 and 49]

Conclusion

The srand() function is essential for initializing the random number generator used by the rand() function in C. By providing a seed value, you can control the sequence of random numbers generated. Using the current time as a seed value ensures a different sequence of random numbers each time the program is run, making it suitable for applications that require randomness.

Comments