sách gpt4 ăn đã đi

c - 如何生成 _ _ _ 形式的随机数。 _ _ _ _(C语言)

In lại Tác giả: Walker 123 更新时间:2023-11-30 19:11:25 29 4
mua khóa gpt4 giày nike

过去几天我一直试图解决这个问题,但我做不到。我正在尝试生成 _ _ _ 形式的随机数。 _ _ _ _

小数点前 3 位,然后是 4 位小数。

非常感谢任何帮助。谢谢,

院长

câu trả lời hay nhất

您发布的代码有两个小问题。

首先是 rand() % 9999999 只能返回 0 到 9999998 之间的值。您可能想写 rand() % 10000000

另一个问题是 rand() % 10000000 会给你带来轻微偏差的结果。我会尝试解释原因。

rand() 函数返回 0 到 RAND_MAX 之间的值,大多数情况下其值为 0x7fffffff 或 2147483647。 (如果您使用的是 Visual Studio,那么它只是 0x7fff,但我们希望情况并非如此。)

由于 RAND_MAX 不是 10^7 的精确倍数,因此您选择高于 RAND_MAX % 10000000(即 7483647)的随机值的可能性会稍低一些。这意味着您的结果将稍微偏向 0-7483647 范围。

要解决此问题,请计算高于目标范围上限的 2 的下一个幂的 rand() 模,如果结果太高,则丢弃结果。计算开销可以忽略不计。

下面是一些解决问题的代码:

#include 
#include
#include

int main() {
int number;
double p;
srand(time(NULL));
while (1) {
number = rand() % 16777216; /* Next power of 2 higher than 10^7 */
if (number < 10000000) break;
}
p = number / 10000.0;
printf("%08.4f\n", p);
trả về 0;
}

关于c - 如何生成 _ _ _ 形式的随机数。 _ _ _ _(C语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40165106/

29 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress