创建在两个参数C之间生成随机数的函数

时间:2015-11-06 16:35:15

标签: c

如何在C中创建函数,它会在集合参数之间生成随机数}(类型为double)?在许多语言中它只是

function randomnumber(min, max) {
  return Math.random() * (max - min + 1) + min;
}

但是我没有找到任何关于c中的double类型的好解决方案。

2 个答案:

答案 0 :(得分:1)

有几种方法。上面的答案1对于min是最好的,max是双倍的。要记住rand()的重要一点是,它会返回0RAND_MAX之间的随机整数。 RAND_MAX至少2^15,但在大多数系统2^31上。如果min和max是整数且它们的差异小于RAND_MAX,那么一个非常简单的方法是:

delta = max - min;
r  = rand() % delta + min;

答案 1 :(得分:0)

#include <stdlib.h> /* rand(), srand(), RAND_MAX */

double randd(double min, double max) {
    int r = rand();
    double delta = max - min; /* assume max > min */
    double tmp = r / (RAND_MAX + 1.0); /* generate up to but excluding max */
    return tmp * delta + min;
}