【问题标题】:Why use srand when rand() generates all random numbers in C [duplicate]为什么在 rand() 在 C 中生成所有随机数时使用 srand [重复]
【发布时间】:2015-05-06 01:54:41
【问题描述】:

我正在生成随机数,有人告诉我使用 srand。我搜索了 srand,发现它在 rand() 之上使用。但我不明白为什么不只使用 rand() ,因为我在下面的代码中得到了随机数:

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

int main(){

    int i=0;

    for(i=0;i<5;i++){
        printf("random number is %d\n",rand());
    }
}

我得到一组 5 个随机数。所以 rand() 确实给出了随机数。那为什么我们还需要 srand 呢?

【问题讨论】:

标签: c


【解决方案1】:

如果您只是使用 rand() 并多次运行您的代码,您会注意到您倾向于每次都获得相同的随机数序列。

srand 用于播种随机数生成器。这允许您生成不同的序列。我建议你阅读the manual page for srand.

【讨论】:

  • 您使用srand 生成带有seedsemi-random 数字以生成可重现 随机集以允许调试等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 1970-01-01
  • 2020-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多