【问题标题】:srandom( time( NULL ) )随机(时间(空))
【发布时间】:2011-01-19 15:22:59
【问题描述】:

我可以知道它的含义或什至如何阅读:

srandom( time( NULL ) )?

【问题讨论】:

  • 您使用种子初始化 random() 函数。在这种情况下,种子是当前时间。
  • 它可能意味着任何东西,因为在 C 语言中没有称为“srandom”的函数。 (我相信它是一个 POSIX 函数?)标准函数称为srand

标签: c random


【解决方案1】:
NULL

空指针。零。什么都没有。

time(NULL)

time 函数以整数形式返回当前时间戳。它接受一个输入参数。如果参数不为空,则存储当前时间。

srandom(time(NULL))

s 的意思是“种子”。 srandom 表示“随机数生成器的种子”。它以一个整数作为输入,重置输入导出的PRNG的内部状态,以根据它生成一个随机数序列。种子有时用于确保 2 个随机数序列相同,以重现等效的测试条件。

通常,您只需在其中放置一些始终变化的值,以避免每次启动程序时都具有相同的序列。当前时间戳是一个很好的值,所以time(NULL) 被用作输入。

【讨论】:

  • 基于时间的播种是否是一个好主意取决于应用程序 - 尽管可能只有安全类型会严重反对,而且我猜他们不会使用标准库随机数。
  • time() 总是返回当前时间。如果参数不为 NULL,则当前时间也将存储在该指针中。由于它总是返回,所以 time(NULL) 形式很常见。不过很好的解释:)
【解决方案2】:

srandom 是一个初始化随机数生成器的函数。

它需要一个种子值,在这段代码中是time(NULL),也就是当前时间。

读作“随机 of 时间 of null”。

【讨论】:

    【解决方案3】:

    意思是用当前时间初始化随机种子。 time(NULL) 返回当前时间。 srandom() 初始化随机种子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-10-07
      • 2013-08-15
      • 2014-01-28
      相关资源
      最近更新 更多