首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C语言中重复且可预测的RNG值

C语言中重复且可预测的RNG值
EN

Stack Overflow用户
提问于 2018-06-11 07:39:37
回答 2查看 61关注 0票数 0

我试图在C中连续生成10,000个随机数,但使用伪RNG无法获得随机甚至随机的结果。我以一种我认为应该创建一致性的方式使用了模数,它确实如此,但当在另一个调用RNG(4)的函数中循环运行时,结果等同于0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3等。

代码语言:javascript
运行
复制
int RNG(int n) {
    int range = RAND_MAX - (RAND_MAX % n);
    srand(time(NULL));
    int x = rand();
    while (x > range) {
        x = rand();
    }
    return x % n;
}

任何让它更接近1,3,2,0,2,3,1,0,0,3,2,0,1等的方法都将不胜感激!

谢谢!

编辑:感谢大家的回复!将种子移动到调用RNG的函数的开头,现在一切都很棒了!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50788970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档