第一次调用没有seed()的rand() - >相同的号码?

时间:2015-01-31 18:17:15

标签: c random

我正在查看可用于多个操作系统的c程序,并在平台之间为完全相同的数据产生不一致的结果。看,因为我缺少一些库来编译和调试它在我的系统上。

我注意到它在初始化期间调用rand()而不调用srand(),可能是因为它只需要1个随机值。 现在,我想知道rand()在这种情况下是如何表现的?是否需要随机库的操作系统初始值? 我目前希望这可以解释每个平台的不同结果,但我缺乏rand()的背景知识,如果没有srand()调用会发生什么。

如果它总是返回OS的default-init值,它将解释为什么不同的平台会产生不同的结果。

对于任何输入感兴趣并且抱歉理论问题 - 没有代码^^。

1 个答案:

答案 0 :(得分:2)

来自rand()的联系方式:

  

如果未提供种子值,则自动执行rand()函数   种子值为1。

因此,在给定的系统中,它总是会给你相同的序列。然而,即使种子是相同的,不同的平台也可能实现不同的随机生成器,从而产生不同的序列。