1.基本函数

在C语言中取随机数所需要的函数是:

int rand(void);
void srand(unsigned int n);

rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件:  #include<stdlib.h>

2.使用方法

rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。

srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。

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

每次运行都将输出:1 7 4 0 9 4 8 8 2 4

srand(1);
for (int i=0; i<10; i++)
{printf("%d ", rand()%10);
}

每次运行都将输出:1 7 4 0 9 4 8 8 2 4

例2的输出结果与例1是完全一样的。

srand(8);
for (int i=0; i<10; i++)
{printf("%d ", rand()%10);
}

每次运行都将输出:4 0 1 3 5 3 7 7 1 5

该程序取得的随机值也是在[0,10)之间,与srand(1)所取得的值不同,但是每次运行程序的结果都相同。

srand((unsigned)time(NULL));
for (int i=0; i<10; i++)
{printf("%d ", rand()%10);
}

因为每次启动程序的时间都不同。另外需要注意的是,使用time()函数前必须包含头文件time.h。

3. 注意事项

求一定范围内的随机数。  如要取[0,10)之间的随机整数,需将rand()的返回值与10求模。

randnumber = rand() % 10;

那么,如果取的值不是从0开始呢?你只需要记住一个通用的公式。要取[a,b)之间的随机整数(包括a,但不包括b),

使用:  (rand()% (b - a)) + a

伪随机浮点数。 要取得0~1之间的浮点数,可以用:

     rand()/ (double)(RAND_MAX)

如果想取更大范围的随机浮点数,比如0~100,可以采用如下方法:

 rand()/((double)(RAND_MAX)/100)

其他情况,以此类推,这里不作详细说明。当然,本文取伪随机浮点数的方法只是用来说明函数的使用办法,你可以采用更好的方法来实现。

转载于:https://www.cnblogs.com/cpoint/p/3367361.html

C语言如何产生随机数相关推荐

  1. c语言输出字母随机数,你好,怎样用c语言输出一个1到100的随机数

    你好,怎样用c语言输出一个1到100的随机数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 你好,怎样用c语言输出一个1 ...

  2. c语言中有关随机数的程序,C语言中随机数相关问题

    用C语言产生随机数重要用到rand函数.srand函数.及宏RAND_MAX(32767),它们均在stdlib.h中进行了声明. int rand(void);//生成一个随机数 voidsrand ...

  3. C语言:生成随机数(并非固定的随机数)——rand()、srand()

    C语言:生成随机数 1.rand() 函数 2.srand() 函数 3.生成一定范围内的随机数 在实际编程中,我们经常需要生成随机数. 1.rand() 函数 在C语言中,我们一般使用 <st ...

  4. *C语言如何使用随机数?

    C语言如何使用随机数? 功能介绍 推送一些C语言方面的知识,提供C语言/C++语言资料,讨论和学习C语言/C++编程知识.给学习C语言的同学们一些帮助. 随机数的使用,是不少在学C语言过程中进行一些小 ...

  5. C语言中生成随机数函数

    文章目录 前言 一.产生随机数 二.具体分析 1.rand函数 (1)范围 (2)对应头文件 2.srand函数 3.整合 总结 前言 本文主要详细介绍如何在C语言中生成随机数. 一.产生随机数 我们 ...

  6. c分布 的程序设计语言,#2020学习打卡##C程序设计语言# C语言中的随机数函数解析...

    在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器. 有关如何产生随机数的理论有许多,如果要详细地讨论,需要厚 ...

  7. 单片机c语言随机数,单片机C语言如何产生随机数

    随机数在单片机的应用中也是很多的,当然产生随机数的方法有很多,当中有一个就是利用单片机定时器,取出未知的定时器THX和TLX的值,再加以运算得到一个规定范围内的随机数值.这做法也是可行的.或者预先写好 ...

  8. c语言微秒级延迟程序,C语言中生产随机数及计算运行时间(微秒级)

    java中要生产随机数的 话 直接 new一个 Random就 可以 了 ,c语言中的话会稍微麻烦一点点. 计算运行时间 在比较算法运行效率中 要 用到 . #include #include #in ...

  9. C语言如何设计随机数

    如果你想学会设计0~100之间这样简单的随机整数的话我想你来对了地方 通用公式是:a+rand()%n a是起始值 n是整数范围 如下图 有几个需要注意的点 用到了随机函数所以在头文件里加上 #inc ...

最新文章

  1. [导入]ZT笑到内伤:史上最雷,最爆寒的电影字幕
  2. 全球充电最快手机:5分钟回血50%;华为未发布新手机 | MWC 2022
  3. C#常用控件的属性以及方法(转载)
  4. 安装python3.7.0的步骤_python 3.7.0 安装配置方法图文教程
  5. Entity Framework5.0运行时错误ObjectStateManager 中已存在具有同一键的对象
  6. Object类中的toString方法
  7. Shell:dos新建sh脚本在linux下执行报错“/bin/sh^M”
  8. stm32读取驾驶模拟器数据 stm32F407读取joystick数据
  9. python 进程池阻塞和非阻塞_Python协程还不理解?请收下这份超详细的异步编程教程!还没学会来找我!...
  10. 以太网驱动详解之 MAC、MII、PHY 详解
  11. win10linux系统双系统,win10安装linux双系统的方法是什么_win10装linux双系统的方法...
  12. GC问题排查实战三-Parallel Scavenge和Parallel Old日志分析
  13. Promise学习-手写一个promise
  14. linux卡住重启_linux df -h 命令卡住 解决方法
  15. [论文阅读]Road Mapping and Localization using Sparse Semantic Visual Features
  16. Python项目分析:预测双色球福利彩票中奖号码
  17. 阿里云视频点播(上传视频)服务最新版本使用方法(解决部分依赖无法下载或不存在问题)
  18. 量化交易入门阶段:好事要成双——双均线策略
  19. 人工智能知识图谱研究
  20. AWK用法示例 awk命令

热门文章

  1. 使用kubectl delete pods xxx删除对应的pod,提示删除成功,但是立马又会生成一个。为何?
  2. 总结:ps aux指令
  3. 三刷进博 | 跨界直播,组团参展,施耐德电气有备而来!
  4. 浅谈5G机房配套那些事
  5. 高低压验电笔应用口诀及使用方法
  6. 使用DCIM软件确保数据中心符合DCOI
  7. 数据中心安全的六条黄金规则
  8. string替换_GEE数据类型—String,Number
  9. ML:MLOps系列讲解之《CRISP-ML (Q)ML生命周期过程—了解机器学习开发的标准过程模型—业务和数据理解→数据工程(数据准备)→ML模型工程→评估ML模型→模型部署→模型监控和维护》解读
  10. ML之LiR2PolyR4PolyR:使用线性回归LiR、二次多项式回归2PolyR、四次多项式回归4PolyR模型在披萨数据集上拟合(train)、价格回归预测(test)