C语言产生随机数是一个常见的编程功能任务,当然这个也不难,调用两三个函数就出来了,但是你知道这些函数具体是起到怎样的作用,并且是它们是如何产生随机数的吗?

几个概念

随机数:数学上产生的都是伪随机数,真正的随机数使用物理方法产生的。

随机数种子:随机数的产生是由算术规则产生的,srand(seed)的随机数种子不同,rand()的随机数值就不同,倘若每次的随机数种子一样,则rand()的值就一样。所以要产生随机数,则srand(seed)的随机数种子必须也要随机的。

用srand()产生随机数种子

原型:void srand ( unsigned int seed );

作用是设置好随机数种子,为了让随机数种子是随机的,通常用time(NULL)的值来当seed。

用rand()产生随机数

原型:int rand ( void );

作用是产生一个随机数,当然随机数是有范围的,为0~RAND_MAX之间,随机数与随机数种子有关。具体来说是,在产生随机数 rand()被调用的时候,它会这样执行:

如果用户之前调用过 srand(seed)的话,他会重新调用一遍 srand(seed)以产生随机数种子;

如果发现没有调用过 srand(seed)的话,会自动调用 srand(1)一次。

如果调用srand(seed)产生的随机数种子是一样的话(即seed的值相同),rand()产生的随机数也相同。

所以,如果希望rand()每次调用产生的值都不一样,就需要每次调用srand(seed)一次,而且seed不能相同。这里就是经常采用time(NULL)产生随机数种子的原因。

time()用于随机数种子

函数原型:time_t time ( time_t * timer );

time()函数表示返回1970-1-1 00:00:00 到当前时间的秒数。

用的时候这样:srand(unsigned(time(NULL)));例如产生1~10之间的随机整数

#include

#include

int main()

{

srand(time(NULL));

for(int i=0;i < 10;i++)

{

int randValue=rand()%10;

}

}

上面的程序中要注意srand是在for循环外面的,如果把srand放到for循环里面,则每次产生的随机数都相同。

编程c语言随机函数,C语言产生随机数需要了解的几个函数相关推荐

  1. c语言设置随机函数,C语言随机函数(c语言随机函数rand怎么用)

    就像是楼上写的 通常随机函数rand() 带有时间种子的随机函数srand(time(0))在用rand()实现.记住加相关头文件 它的返回值就是求取随机的值,所以如果没有对数有要求,直接这样定:pr ...

  2. c语言如何初始化随机数种子,关于随机数函数rand和其种子初始化

    原文链接 随机数.随机数种子 在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器. 有关如何产生随机数的理论有 ...

  3. 0 1随机数C语言程序,C语言产生随机数的方法

    C语言产生随机数的方法 C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.那么C语言产生随机数的方法都有哪些呢?以下仅供参考! ...

  4. c语言 随机函数详解

    在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公 ...

  5. 随机数c 语言代码,C 语言产生随机数的方法

    C 语言产生随机数的方法 随机数的使用,是不少在学C语言过程中进行一些小功能开发的同学的一个技术问题,下面小编给大家介绍C 语言产生随机数的方法,欢迎阅读! C 语言产生随机数的方法 在 C 语言中, ...

  6. c语言随机字符rand,c语言随机函数rand()怎么使用

    原发布者:gw_210用c语言产生随机数rand()     在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某 ...

  7. R语言使用random包生成随机数或者随机字符串实战:randomNumbers函数创建随机整数的数据集(包含重复项)、randomSequence函数创建不含重复项的随机序列数据集、创建随机字符串

    R语言使用random包生成随机数或者随机字符串实战:randomNumbers函数创建随机整数的数据集(包含重复项).randomSequence函数创建不含重复项的随机序列数据集.创建随机字符串 ...

  8. 自学编程是从python语言还是c语言开始-非计算机专业大学生想自学编程应该学C语言还是学Python?...

    之前总结的文章,分享过来,希望对你有帮助.windliang:到底学哪一门编程语言​zhuanlan.zhihu.com 发展进程 学哪一门编程语言,我们不妨先梳理一下语言的发展过程. 机器语言 计算 ...

  9. python简单编程-编程中最简单的语言Python,这样学或许更容易

    最近微信小程序上面出了一个跳一跳的小游戏 大家有没有玩呀? 编程中最简单的语言Python,这样学或许更容易 分享之前我还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Py ...

最新文章

  1. 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(1)...
  2. 阿里一道Java并发面试题 (详细分析篇)
  3. 创建原生JS insertafter()方法实现
  4. 牛客网(剑指offer) 第八题 跳台阶
  5. jvm--3.内存管理
  6. 计算机的硬件技能,计算机的最基础——软硬件
  7. python绘图函数返回_python – Matplotlib返回一个绘图对象
  8. linux 服务编程,Linux高性能服务编程(I/O复用)
  9. 基于Delphi7的木马程序的查杀设计与实现
  10. windows 下安装 sns 学习研究
  11. 免费又好用怎么把文字转换成语音呢?分享我常用的3个配音神器
  12. 面试自我介绍3分钟通用计算机专业,面试自我介绍3分钟
  13. 我心中的超短系统之人气、情绪、大局观、仓控
  14. 模电_第七章_正弦波振荡电路
  15. 机械硬盘和固态硬盘之间的区别
  16. 沉淀近900万+营销资产,天攻智投户外营销助力网易有道实现“品效双赢”
  17. java编写定义圆类和圆柱体类,Java程序基础编程基础
  18. 第四十九回 七星坛诸葛祭风  三江口周瑜纵火
  19. 2719 sheldon数
  20. ..\Src\INA226.c(142): error: #20: identifier “GPIO_IDR_IDR9“ is undefined

热门文章

  1. imx8的源码开发方式非yocto方式(三)——基于imx8的firmware-imx固件包下载与解压
  2. dz论坛附件在服务器中的位置,discuz x3 如何将头像和帖内等附件分离到远程服务器?...
  3. mysql cast 和 pgsql cast
  4. 计算机实训报告思路,计算机实训报告优秀范文
  5. w500 安装 gentoo相关优化
  6. Linux 安装node.js 16
  7. 前端代码规范,vue 代码规范
  8. office2021、Excel2021设置密码
  9. 无法创建文件夹或文件问题的解决的方法
  10. jsonNode转化为jsonObject