gpt4 book ai didi

c - 1 到 3 之间的随机数

转载 作者:行者123 更新时间:2023-11-30 18:41:07 25 4
gpt4 key购买 nike

如何生成 1 到 3 之间的随机数?使用这个函数我有时会得到 0(我只想有 1,2 或 3):

ziehen=rand() % 3 + 1;

为什么我必须在主程序中添加 srand(0) ?我已经添加了

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

去图书馆。这足够了还是我需要更多?

最佳答案

您绝对不能使用模数来减少 rand() 输出的周期性。原因?这是因为标准线性同余生成器的低阶位的随机性低于高阶位:模数会丢弃高阶位。

最好的办法是使用(3.0 * rand()/(RAND_MAX + 1.0)) + 1.0;。通过将输出分配给整型来隐式将其转换为 int

RAND_MAX 由 C 标准定义,其值取决于实现

关于c - 1 到 3 之间的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23127800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com