自学内容网 自学内容网

介绍一下如何生成随机数(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。


原文地址:https://blog.csdn.net/lb3636363636/article/details/143532425

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!