rand()和srand()函数在C语言中的应用

本文通过示例介绍rand()函数和srand()函数在C语言中的用法;

使用rand()函数生成随机数

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    int num;
    for (int i=0;i<10;i++){
        num = rand();
        printf("%d\n", num);
    }
    return 0;
}

这段代码有个问题,当重复运行这个程序会发现,每次生成的十个随机数都相同;

因为rand()函数生成的随机数是伪随机数;它是通过一个固定算法生成的,其随机种子与生成的随机值存在映射关系;

使用srand()函数

srand()函数是随机数发生器的初始化函数,通常传入一个随机种子(初始值);

要想每次运行程序得到的随机数都不一样,就需要传入一个每次都不一样的随机种子;

系统的当前时间戳、进程识别码(每次运行程序,进程标识码都不一样)都可以作为一个简单的随机种子;

示例代码如下:

#include <time.h>
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    int num;

    //将当前时间戳与进程标识码相加 作为随机种子
    srand((unsigned int) time(0) + getpid());

    for (int i=0;i<10;i++){
        num = rand();
        printf("%d\n", num);
    }
    return 0;
}

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/rand-srand-functions-in-c.html

分类: 计算机技术
推荐阅读:
Python zip()函数 zip() 函数用于将多个可迭代对象中的元素按顺序一一对应打包成一个个元组,返回一个可迭代的 zip 对象。
Python help()函数 在 Python 中,help() 函数可以用于获取帮助信息。help() 函数的作用是打印出指定对象的帮助文档。如果不指定任何参数,则进入交互式帮助模式。
C语言isblank()函数:判断字符是否为空白字符 isblank()函数是C语言中的一个标准库函数,用于判断一个字符是否为标准空白字符(即空格' '和水平制表符'\t');如果参数c是一个标准空白字符,则返回true,否则返回false;
Golang多个返回值有什么作用 在 Go 语言中,函数可以返回多个值,这是一项非常实用的特性,其作用如下:
使用python求解极限 要使用Python求解一个极限,可以使用Python中的SymPy库;
使用PyInstaller打包PyQt5程序发生ImportError错误的解决办法 ImportError: unable to find Qt5Core.dll on PATH ,Failed to execute script main