中易网

再问关于计算机RAND函数的使用方法

答案:3  悬赏:40  
解决时间 2021-01-17 15:13
  • 提问者网友:刺鸟
  • 2021-01-17 04:41
再问关于计算机RAND函数的使用方法
最佳答案
  • 二级知识专家网友:七十二街
  • 2021-01-17 05:46
rand函数不是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 rand()会导致相同的随机数序列被生成。
        库函数中系统提供了两个函数用于产生随机数:srand()和rand()。 原型为:
函数一:int rand(void);
返回一个[0,RAND_MAX]间的随机整数。
函数二:void srand(unsigned seed);
参数seed是rand()的种子,用来初始化rand()的起始值。
        系统在调用rand()之前都会自动调用srand(),如果用户在rand()之前曾调用过srand()给参数seed指定了一个值,那么 rand()就会将seed的值作为产生伪随机数的初始值;而如果用户在rand()前没有调用过srand(),那么系统默认将1作为伪随机数的初始 值。如果给了一个定值,那么每次rand()产生的随机数序列都是一样的~~
        所以为了避免上述情况的发生我们通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))来 产生种子。如果仍然觉得时间间隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)后面乘上某个合适的整数。 例如,srand((unsigned)time(NULL)*10).
srand()、rand()用法举例:
#include
#include
#include
 
 
void main()
{
inti,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d",j);
}
}
全部回答
  • 1楼网友:七十二街
  • 2021-01-17 08:05
只用公式的话有点难度,回家再想想,最近脑袋实在转不动了
  • 2楼网友:行雁书
  • 2021-01-17 07:07
假设数据在A1:A25
先在A1输入1,A2输入2,选中A1和A2下拉至A25成1~25的自然数列。
再在B1输入:
=RAND()
向下复制公式至B25,再选中A和B列,以B列排序,删除B列即可。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息