关于c语言随机数的代码
int main(){
srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样
for (int i=0; i<10; i++)
{
int number = rand() % 12 + 1;//产生1-13的随机数
printf("%d\n", number);
}
return 0;
}
用时间做种是什么意思呢?
int number = rand() % 12 + 1; 这句%12 + 1又是什么意思呢? 用时间做种是什么意思呢?
每个随机数都需要一个起点,如果不设置种子的话,每次程序运行得到的随机数都会是一样的
用时间做种的意思就是将程序运行的时刻作为一个种子点,这种可以保证绝大多数情况下运行程序生成的随机数都不一样
int number = rand() % 12 + 1; 这句%12 + 1又是什么意思呢?
rand() 表示生成一个随机数
rand() % 12 将这个随机数取余,得到的是0~11
rand() % 12 + 1 最后再加1,最终得到一个1~12之间的随机数 BngThea 发表于 2017-11-13 13:36
用时间做种是什么意思呢?
每个随机数都需要一个起点,如果不设置种子的话,每次程序运行得到的随机数都会 ...
我明白了,谢谢 BngThea 发表于 2017-11-13 13:36
用时间做种是什么意思呢?
每个随机数都需要一个起点,如果不设置种子的话,每次程序运行得到的随机数都会 ...
srand((unsigned) time(NULL))
这句我还是有点不太理解,能不能解释一下呢?{:10_266:} 御笔剑客 发表于 2017-11-13 13:45
srand((unsigned) time(NULL))
这句我还是有点不太理解,能不能解释一下呢?
这是一个随机库的函数而已,里面传递一个种子
其实没必要弄清楚,你只要知道生成随机数要用到它就行了
如果一定要搞清楚,请百度看看相关文章,要解释起来得长篇大论了 BngThea 发表于 2017-11-13 13:50
这是一个随机库的函数而已,里面传递一个种子
其实没必要弄清楚,你只要知道生成随机数要用到它就行了
...
好的,谢谢了
页:
[1]