随机数问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 15:30:22
#include<iostream>
using namespace std;
int main()
{
float com;
srand(time(NULL));
com=rand();
cout<<com;
cout<<endl<<rand();
return 0;
}

为什么运行结果是:
1661
26892

为什么两个输入不一样?而且位数也不一样?rand()不是产生0-1之间的数吗?为什么会是4位或5位呢?
请赐教!
那如果我确定要输入一个1000--9999之间的数呢?

的确,rand()是产生一个0到一个很大的数之间的数,不过这个过程还是可以有约束的,例如你你用“rand()%10”,就会产生0到9之间的数,其实也就是产生一个任意数后对%后面的数求模。
如果你要产生1000--9999之间的数的数的话就再进行约束,“com=rand()%9000+1000; ”这样就可以了。

rand()不是产生0-1之间的数,而是产生一个1到一个很大的数之间的数
所以,是4位,5位,3位,2位,1位都可能的

补充:
可以这样的啊:
n=(rand()%(10000-1000))+1000;

rand()就是取随机数,当然不一样啦。

返回值是整数,在0-32767之间