📜  c 获取随机浮点数 - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:29:45.133000             🧑  作者: Mango

以'C'获取随机浮点数

在C编程语言中,可以使用标准库中的 rand() 函数来生成伪随机数,但是它只能生成整数,我们需要通过一些技巧来获取随机的浮点数。

1. 使用基本类型转换

我们可以利用强制类型转换将随机生成的整数转换为浮点数。具体实现如下:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(NULL));
    int random_int = rand(); // 获取随机整数
    float random_float = (float)random_int / RAND_MAX; // 随机整数转浮点数
    printf("生成的随机浮点数为:%f\n", random_float);
    return 0;
}

上述代码中,我们先通过 rand() 函数获取一个随机整数,然后将其转换为浮点数,并除以 RAND_MAXrand() 函数生成的最大整数值)来得到 0 到 1 之间的随机浮点数。

2. 使用自定义函数

另一种方法是自定义生成随机浮点数的函数。具体实现如下:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

float random_float(float min, float max) {
    float random = (float)rand() / (float)RAND_MAX;
    return min + (random * (max - min));
}

int main() {
    srand(time(NULL));
    float random_number = random_float(0.0, 1.0);
    printf("生成的随机浮点数为:%f\n", random_number);
    return 0;
}

上述代码中,我们自定义了 random_float() 函数,该函数接收两个参数 minmax,代表随机数的最小值和最大值。通过调用 rand() 函数得到一个 0 到 1 之间的随机数,再加上 min 乘以 max - min(随机数的取值范围)即可得到所需的随机浮点数。

3. 封装为库函数

如果我们需要经常使用随机浮点数,我们可以将上述方法封装为库函数,方便重用。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

float random_float(float min, float max) {
    float random = (float)rand() / (float)RAND_MAX;
    return min + (random * (max - min));
}

上述代码中的 random_float() 函数即为所需的随机浮点数库函数。

  • 示例代码:
#include <stdio.h>
#include "random_float.h"

int main() {
    srand(time(NULL));
    float random_number = random_float(0.0, 1.0);
    printf("生成的随机浮点数为:%f\n", random_number);
    return 0;
}

上述代码中,我们先导入 random_float.h 头文件,然后调用 random_float() 函数来生成随机浮点数。

通过以上三种方法,我们可以轻松的获取随机浮点数,实现代码的灵活多样。