在C中生成[0,n]范围内的随机数?

时间:2009-04-19 20:13:02

标签: c random numbers

希望在C中制作一个非常简单的随机数生成器方法。数字应该在0到24之间,例如可以是14.5f。

任何帮助都会很棒,谢谢!

4 个答案:

答案 0 :(得分:7)

float getRand() {
  float rnd = rand();
  rnd /= RAND_MAX;
  return rnd * 24.0f;
}

确保在使用之前使用srand为随机数生成器播种。

答案 1 :(得分:4)

Mersenne_twister不仅非常简单,而且非常强大。

请参阅链接上的代码。

但是,如果您可以使用GPL License,请使用The GNU Scientific Library (GSL)特定支票Random-Number-Generator-Examples 来自Random-Number-Generation part of the manual

有很多东西,从简单的统一随机数到其他分布。

答案 2 :(得分:3)

看看linear congruential generators,即使我的数学知识不足,它们也很容易实现。

看起来我误解了原来的问题,我以为你想要推出自己的发电机(做作业,有趣等等)

答案 3 :(得分:3)

你可以使用C的内置随机数生成器来获得0到3万之间的整数:

`srand(time(NULL));
    int x= rand();`

您只需要进行一些除法以获得十进制数而不是整数。