【问题标题】:C programming: Generating a random number (x) that is between -2,2 and then updating xC 编程:生成一个介于 -2,2 之间的随机数 (x),然后更新 x
【发布时间】:2019-02-24 23:25:01
【问题描述】:

我正在尝试编写一个程序来随机生成 [-2,2] 之间的数字(项 x)。然后我想使用 while 循环更新术语。

我知道如何使用 drand48() 和 srand(),但我知道我不能为此使用 drand48(),因为它只计算 0 到 1 之间的数字。

我只用了大约一个月的时间来使用 C,所以我仍然对这一切感到很困惑。 谢谢!

【问题讨论】:

  • 欢迎来到Stack Overflow ...您尝试过吗?提示:如果您有一个在 [0, 1] 之间随机生成的实数,您可以通过将最初生成的随机数乘以 4 将其扩展为 [0, 4] 之间的数字。
  • x = rand() % 5 - 2;

标签: c while-loop srand


【解决方案1】:

如果你调用drand48(),你会得到范围 [0.0, 1.0)。

(这是一个半开区间,因为 drand 不会返回 1.0,只会返回非常接近 1 的值。)

如果将返回值drand48() 乘以 4,则得到范围 [0.0, 4.0)。

如果从4*drand48() 中减去 2,则得到范围 [-2.0, 2.0)。

所以,因此:

4*drand48() - 2

PS:我假设您正在尝试生成一个实数,而不是整数。如果您尝试获取整数,请使用@WeatherVane 发布的rand() 解决方案。

【讨论】:

  • 好吧,这很有意义!那么,如果我想将范围从 -1,1 缩短,我会使用相同的方法吗?抱歉,如果这是一个明显的问题,我只知道 C 往往很挑剔
  • 是的,差不多。
猜你喜欢
  • 1970-01-01
  • 2012-04-18
  • 1970-01-01
  • 2011-03-19
  • 1970-01-01
  • 2012-01-12
  • 2012-11-03
  • 2017-07-31
  • 2014-08-25
相关资源
最近更新 更多