C++ C++;-rand()函数不工作,数字不超过32000

C++ C++;-rand()函数不工作,数字不超过32000,c++,random,C++,Random,我试图创建从0到200000左右的随机数,但是值不会超过33000。即使我尝试不同的值,它们仍然不会超过33k。我试着播种,但还是一无所获。当我学习这个函数时,我错过了什么吗?谢谢 srand(time(0)); for (int count = 190000; count < 200000; count++) cout << rand() % 200001 << " "; srand(时间(0)); 用于(整数计数=190000;计数 RANDMAX 只

我试图创建从0到200000左右的随机数,但是值不会超过33000。即使我尝试不同的值,它们仍然不会超过33k。我试着播种,但还是一无所获。当我学习这个函数时,我错过了什么吗?谢谢

srand(time(0));
for (int count = 190000; count < 200000; count++)
    cout << rand() % 200001 << " ";
srand(时间(0));
用于(整数计数=190000;计数<200000;计数++)

cout使您的值范围独立于值范围
rand()
returns

int getMyRandomNumber()
{
    static int MY_RANGE_MAX = 200001;
    return (1.0*rand()/RAND_MAX)*MY_RANGE_MAX;
}
并将其用作:

for (int count = 190000; count < 200000; count++)
    cout << getMyRandomNumber() << " ";
for(int count=190000;count<200000;count++)

cout
rand
返回介于0和rand_MAX之间的值。rand_MAX是什么?啊,rand MAX是32767。只需编写代码即可完成所需操作。不要期望
rand()
了解您的需求。实际上,不要使用<代码> RAND 。现在我得到它了。考虑使用而不是<代码> RAND >如果代码> RANDMAX 只有32767,这不会在200000个数字之间选择,只有32767个!再次阅读代码,@Dithermaster。请特别注意
MY_RANGE_MAX
@user4581301:但是,由于只有32768个可能的值,因此它不会给出200000个不同的值,只有32768个不同的值。它们确实将分布在0到200000之间,但基本上每个值都只有可能值的六分之一可用。这可能是好的,也可能不是,这取决于要求是什么。这样看,我站了下来。向@Dithermaster道歉。感谢@MatstPeterson的明确解释,并感谢用户4581301的道歉。随机数比大多数人意识到的要难。