c 语言中生成随机浮点数有三种方法:使用 rand():生成 [0.0, 1.0) 范围内的浮点数。使用 randf():直接生成 [0.0, 1.0) 范围内的浮点数。指定范围:通过线性变换或拒绝法生成指定范围内的浮点数。
C 语言生成随机浮点数的方法
在 C 语言中,可以通过使用标准库函数 rand() 和 randf() 来生成随机浮点数。
1. 使用 rand()
rand() 函数生成一个伪随机整数,范围为 [0, RAND_MAX]。通过将该值除以 RAND_MAX,即可获得一个浮点数,范围为 [0.0, 1.0)。
#include <stdlib.h>
double get_random_float() {
return (double) rand() / (double) RAND_MAX;
}</stdlib.h>
2. 使用 randf()
randf() 是 C99 标准中引入的,专门用于生成随机浮点数。它直接返回一个范围为 [0.0, 1.0) 的浮点数。
#include <math.h>
double get_random_float() {
return randf();
}</math.h>
3. 生成指定范围内的随机浮点数
可以通过两种方法在指定范围内生成随机浮点数:
- 扩展范围:对伪随机浮点数应用一个线性变换,将范围扩展到所需要的范围。
- 拒绝法:反复生成随机浮点数,直到其落在所需范围内。
例如,要在 [a, b] 范围内生成随机浮点数:
double get_random_float_in_range(double a, double b) {
return a + (b - a) * get_random_float();
}