最近看的问题都很简单,所以写的都是一些小细节,希望日后记住。
今天的主题:
产生随机数:
- rand()和srand()
- 在初学C语言的时候,知道了有个产生随机数的函数,叫rand(),我们用它来产生伪随机数,当时我理解了它的意思,后来长时间没用,忘了一部分,后来又重新回顾。
rand()
使用起来很简单:
还是先记着,它来自于#include<stdlib.h>
cout<<rand();
它产生一个0到RAND_MAX的随机整数,不需要花里胡哨的参数,直接用就行。
但是我们一般用不到这么大的数,所以要学会控制范围。
网上有很多各种公式啊啥的,我最讨厌这些,死记下来,有用吗?
理解很简单,不需要看什rand()%xxxxx
cout<<rand()%10;
产生一个0到9的数,很简单,一个随机整数除以10,它的余数必定在10以内,所以就得到0到9的随机数。
这个例子改变了数的终点,改变起点更加简单:
cout<<rand()%11+5;
产生了5到10的整数,整数end.
小数呢?
除以一个数不就行了(记得这就不是int了)
但是这些随机数在你程序编译一遍后重复执行,是一直不会变的,所以这就是它叫伪随机数的原因。因此就有了srand()。
然后我们来说说srand()
srand()
srand()是用来初始化rand()种子的,它也是#include<stdlib.h>它们家的。
它是有参数的,它相当于一个工具,你给它一个种子,他帮你去办事:就是去初始化rand()。
它的原型:
void srand(unsigned seed)
很明显这个参数就是个种子。
一般来说我们在这使用的参数都是时间time,因为时间是不停的在动的。
PS:要用到的time是#include<time.h>里面的,它是从1970年0秒到现在的时间的秒数,很大很大。
#include<iostream>
#include<stdlib.h>
#include<time.h>
int num;
srand((unsigned)time(NULL))
num = rand()%101+1;
cout<<num;
产生了1到100 的随机数
你会发现每次运行产生的数都是随机的,这就是真正的随机数了。
本文深入探讨了C语言中rand()和srand()函数的使用,解释了如何通过这两个函数生成不同范围内的随机整数和小数,以及如何利用时间戳作为种子实现真正的随机数生成。
8799

被折叠的 条评论
为什么被折叠?



