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