C语言产生随机数

本文介绍了C语言中如何生成随机数,强调了在使用rand()函数前需要先调用srand()设置随机数种子。如果省略srand(),程序将每次生成相同的随机数序列。文中给出了rand()函数的返回值范围,并建议使用srand(unsigned(time(NULL)))来获取不可预见的随机序列,以避免重复。同时,文章提醒读者srand()应置于循环外部以确保生成不同的随机数。
摘要由CSDN通过智能技术生成

先来一个例子:
这里写图片描述

备注:如果把第九行【srand((int)time(NULL))】注释掉,那么程序可以无错误的运行,但是每次出来的15个数都是和之前出来的15个数是一样的!所以必须把srand((int)time(NULL))加上!

头文件: #include
定义函数 :int rand(void)
函数说明 :
因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。
返回值:
返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最少是在32767之间(int),即双字节(16位数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。
0~RAND_MAX每个数字被选中的机率是相同的。
范例:

#include <stdlib.h>
main()
{
   int i,j;
   for(i=0;i<10;i++)
   {
   j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
   printf("%d ",j);
   }
}

执行:
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6 //再次执行仍然

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxnsirius

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值