获取随机数c - 随机或rand函数打印相同的值,即使在不同的机器上




获取随机数c++ (2)

srand()函数将其参数设置为由rand()返回的新随机整数序列的种子。 通过使用相同的种子值调用srand()可以重复这些序列。

如果没有提供种子值,则rand()函数将自动播种,值为1。

所以这里有一个简单的例子:

#include <stdio.h>
#include <stdlib.h>

#define RSEED 2

int main (int argc, char *argv[]) {
  srand(RSEED);
  printf("The random value is %d\n", rand());
  return 0;
}

我想打印1到6范围内的随机数。我有以下代码。

printf("The random value is %d \n",random(6));

每次运行代码时都会打印1804289383。 即使在不同的机器上。 我也试过兰特(6)仍然输出是一样的。 即使我删除了6,输出不会改变。 请建议如何解决它

提前致谢

SANKET


你应该在rand() srand()之前有srand()来每次生成新的数字。 此代码将显示如何做到这一点:

# include <time.h>
# include <stdlib.h>
# inlcude <stdio.h>

int main()
{
    srand(time(0));
    printf("The random value is %d\n", 1 + rand() % 6);
    return 0;
}




random