作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图找到一个生成 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/
我是一名优秀的程序员,十分优秀!