【问题标题】:Why does C use modulus for random numbers?为什么 C 对随机数使用模数?
【发布时间】:2014-09-15 02:42:06
【问题描述】:

C:

rand() % (max - min) 

假设随机数在 0-10 之间..

rand() % 10

0.567 % 10 = 同一个数字。 (0.567)。它并没有真正做任何事情。 rand() 总是介于 0-1 之间,只要 max-min 总是 >= 1,它什么都不做。

你不会只使用乘法而不是模数吗?

int rand = rand() * (max - min) + 1

【问题讨论】:

  • rand() 总是在 0-1 之间 - 这对 C 来说是不正确的。

标签: c random numbers


【解决方案1】:

rand() 返回一个介于0RAND_MAX 之间的数字。然后,您将使用模数将其限制在某个范围内。因此,如果您想要一个介于 0 和 10 之间的数字,您可以使用 rand() % 10

【讨论】:

  • 哦..也许我在混淆我的语言..我认为 rand() 是一个介于 0 和 1 之间的数字。
  • @thisguy 我认为你在考虑 Java。
猜你喜欢
  • 2021-08-26
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 2013-09-26
  • 1970-01-01
  • 2023-04-10
  • 2013-02-06
  • 1970-01-01
相关资源
最近更新 更多