gpt4 book ai didi

c - 随机发生器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:43:18 24 4
gpt4 key购买 nike

我试图找到一个生成 32 位随机/伪随机数并且可以重现的 c 函数。 (就像 rand/srand 函数)。我不能使用 urandom,因为我无法像使用 srand/rand 那样重现序列。我是否必须编写自己的函数,或者类似的东西是否已经存在?

谢谢

供日后引用,而其他人的建议都很好。我最终做了这样的事情:

uint32_t generateRandom (unsigned int randomSeed) {
uint32_t number = 0;
int randomNumber, x;

for (x=0; x<8;x++) {
randomNumber = rand_r(&randomSeed) % 16;
number |= (randomNumber<<(x*4));
randomSeed++;
}
return (number);
}

最佳答案

合并 2 个(或更多)rand() 结果以获得您需要的任意数量的数字。
不好的(因为它被夸大了)例子:

uint32_t bit0 = rand() & 1;
uint32_t bit1 = rand() & 1;
/* ... */
uint32_t bit31 = rand() & 1;

uint32_t whole = bit0 | (bit1 << 1) | ... | (bit31 << 31);

关于c - 随机发生器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10181685/

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