从C标准(和目标C是C顶部的薄层,所以这应该仍然保持):
如果随后使用相同的种子值调用srand,则应重复伪随机数序列.
有没有保证,不同的实现(甚至不同版本的同一个执行)会给基于种子一致的序列.如果您真的想要保证这一点,您可以编写自己的线性同余生成器,例如标准本身中的示例:
// RAND_MAX assumed to be 32767.
static unsigned long int next = 1;
void srand(unsigned int seed) { next = seed; }
int rand(void) {
next = next * 1103515245 + 12345;
return (unsigned int)(next/65536) % 32768;
}
Run Code Online (Sandbox Code Playgroud)
并且,尽管周围有更好的发生器,但简单的线性同余通常绰绰有余,除非你是统计学家或密码学家.
| 归档时间: |
|
| 查看次数: |
1003 次 |
| 最近记录: |