1.what
rand库函数是用来获取一个伪随机数。使用时需要添加头文件#include<stdlib.h>,然后调用该函数即可获取一个随机数。
2.why(原理)
rand产生随机数的原理:
3.how
problem
如果我们使用的时候,只调用了rand(),不改变种子,系统默认会设置种子的值为1即
srand(1),所以我们每次执行程序生成的随机数都是不变的。
如果我们要获取不同的随机数,则需要先设置不断变化的种子,需要设置srand((unsigned int)time(NULL)),通过每次获取系统的时间来获得一个
变化的种子。
#include<stdio.h> #include<stdlib.h> int main() { srand((unsigned int)getpid());/*getpid()获取进程的pid 作为种子,如果是同一个进程pid是相同的*/ //srand((unsigned int)time(NULL)*10);/*设置不同的种子,为了产生不同的随机数 time()获取系统得时间*/ //srand(1); /*默认得种子是1,获取的随机数是一样的*/ int ch = rand()%100+1;//获取随机数1-99 double f = (rand()%10)/10.0; //产生一个double类型随机数 printf("ch = %d, f= %.5lf\r\n",ch,f); return 0; }
参考链接
冲冲冲
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具