c语言中的随机函数为rand(),但是rand生成的值得大小主要相对一个变量才产生的一定有含义的数,这个相对的变量我们可以再srand()函数中进行设置,srand函数是void类型,内部含一个无符号整形
定义如下
如果我们不定义的话
重复执行下面的代码产生的效果可能是同一个数
但是如果在srand()中设置一个随时改变的参照量,那么每次执行产生的rand值就不会痛,我们知道有一个函数time(),这个值是不断的改变的,我们可以将其嵌入在srand中,那么每次产生rand值就会是不同的time()的返回是一个_int64 类型的数,time的定义是 time——t time(time_t timer)我们在定义的时候可以不使用返回类型time_t,我们只是调用time(time_t timer)那么我们的产生的随机值就存放在了timer里面,后面我们可以通过只用指针timer来调用我们产生的值其中time产生的值就是unix的时间戳,产生的值是以秒为单位来进行计算的,时间的计算就是目前的时间与1970年1月1日0时0分0秒之间的决定值只不过是用秒来表示,同时里面的参数可以不为*timer,可以为NULL,也可以直接用0来代替,srand()是void类型,我们在srand()里面嵌套不断变化的函数time(0),那么我们产生的随机数每时每刻的相对值都是不同的,所以产生的随机数也就是不同的rand()函数是有返回值的,,至于要求产生多大范围内的数需要自己控制;————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-—————————华丽的分割线如果上面的理解了,下面是比较官方的解释方法——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————rand()函数是产生随机数的一个随机函数。C语言里还有 srand()函数等。(1)使用该函数首先应在开头包含头文件stdlib.h#include
1 /* This program generates and prints ten random integers between 1 and RAND_MAX*/
2 #include <stdio.h>
3 #include <stdlib.h>
4 int main()
5 {
6 unsigned int seed; /*申明初始化器的种子,注意是unsigned int 型的*/
7 int k;
8 printf("Enter a positive integer seed value: n");
9 scanf("%u",&seed);
10 srand(seed);
11 printf("Random Numbers are:n");
12 for(k = 1; k <= 10; k++)
13 {
14 printf("%i",rand());
15 printf("n");
16 }
17 return 0;
18 }
当种子为1的时候,我们可以不使用srand,因为系统默认·的种子为1
在stdlib.h 中这两个函数的原型是:int rand();void srand (unsigned int);srand(time(0)); i=rand();或者srand(time(NULL));这样就是一个伪随机数。rand()产生伪随机数,srand函数提供种子,种子不同产生的随机数序列也不同,所以通常先调用srand函数 time()返回的是系统的时间(从1970.1.1午夜算起),单位:秒,种子不同当然产生的随机数相同几率就很小了。用rand()随机生成在[x,y]内的整数int k;k=x+rand()%(y-x+1)/k即为所求范围内随机生成的数,rand()%a的结果最大为a-1/原文链接: https://www.cnblogs.com/13224ACMer/p/5556962.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/234504
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!