当前位置: 首页 > news >正文

介绍一下如何生成随机数(c基础)

适合对象 c语言初学者  总结语言用,个人强调用红色,注意为易错点,若有问题请告诉我谢谢。(建议通过目录观看)。一定要自己动手打代码

rand函数

是生成随机数的函数,但实则是伪随机数。(即是同一个值)

格式

#include<stdlib.h>

int a = rand();

控制rand的值可以采用改变种子值的方法。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{int a = rand();while (36){printf("%d\n", a);Sleep(1000);}return 0;
}

那么如何的到真随机数呢?

这时要用srand函数来改变rand的种子值

用法

#include<stdlib.h>

srand((unsigned int)time(NULL));

int a = rand();

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{/*int a = rand();while (36){printf("%d\n", a);Sleep(1000);}*/srand((unsigned int)time(NULL));while (36){int res = rand() % 100 + 1;printf("%d\n", res);Sleep(1000);}return 0;
}

知道代码如何写即可。

详细讲解:

rand()

即rand是int型且不需要参数。他有一个种子值,通过种子值用算法可以得到一个随机数(伪)

可以通过srand函数改变种子值,进而改变随机数。

而srand函数

格式

#include<stdlib.h>

srand((unsigned int seed);

也需要一个参数作为种子值给rand。

那么这个参数也要是变化的,才能得到随机数。

于是用时间戳(time(NULL);)因为时间一直变化。

time()是一个函数

格式

#include<time.h>

int a = time(NULL);(NILL表示空指针)

这时用srand去接受time(NULL)

因为srand参数是unsigned int 型,

所以用unsigned int 强制转换time(NULL)。

即得到真随机数。

#include<stdlib.h>

#include<time.h>

srand( (unsigned int) time(NULL) ) ;

int a = rand();

那么如何控制随机数的值呢?

int a = rand()% ( b - a + 1)  + a ;

值是  a~~b

常用 int  a = rand () % 100  +  1;

值是1~~100。

http://www.lryc.cn/news/477721.html

相关文章:

  • 24-11-1-读书笔记(三十一)-《契诃夫文集》(五)下([俄] 契诃夫 [译] 汝龙)生活乏味但不乏魅力。
  • 从“点”到“面”,热成像防爆手机如何为安全织就“透视网”?
  • 基于vue框架的的奶茶店预约订单系统3fb55(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 项目实战使用gitee
  • 数据结构--二叉树_链式(下)
  • unity游戏开发之--人物打怪爆材料--拾进背包的实现思路
  • AWTK文件系统适配器更新-支持RT-Thread DFS POSIX接口
  • C#如何快速获取P/Invoke方法签名
  • CqEngine添加联合索引和复合唯一索引
  • 基于matlab的SVPWM逆变器死区补偿算法仿真研究
  • 【网页设计】CSS 定位
  • scala的属性访问权限
  • QGIS:HCMGIS插件
  • Melty 主体流程图
  • 【图像与点云融合教程(五)】海康相机 ROS2 多机分布式实时通信功能包
  • 正则截取字符窜数字,字母,符号部分
  • 【ChatGPT】让ChatGPT生成跨语言翻译的精确提示
  • Vue3父传子
  • 使用VBA宏合并多个Excel文件的Sheet页
  • Anolis8防火墙安全设置
  • 标题:自动化运维:现代IT运维的革新力量
  • 无人机之姿态融合算法篇
  • Redis系列---数据管理
  • 【Linux系统编程】第四十二弹---多线程编程全攻略:涵盖线程创建、异常处理、用途、进程对比及线程控制
  • Rust 力扣 - 2379. 得到 K 个黑块的最少涂色次数
  • “单元测试”应该怎么写比较好
  • 腾讯开源首个文图生3D大模型Hunyuan3D-1.0
  • c语言简单编程练习10
  • 时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多步时间序列预测
  • 数据结构[2016]