c++ - rand() 和 time() 函数会占用大量系统资源吗?

标签 c++ random

我在我的程序中使用了 C++ rand() 函数,但是我发现在我的程序中使用 rand() 之后我的程序运行起来会很慢环形。循环将迭代多次,并将调用函数 time() 作为 rand() 的种子。

所以我想知道 C++ rand()time() 函数是否占用大量系统资源?

最佳答案

两件事:

1 - 您提到您在每次循环迭代时为 rand() 播种:这不仅不需要,而且可能会降低 PRNG 的性能(统计性能),因为它们被设计为由先前的输出播种。只为您的 PRNG 播种一次,然后(仅)调用 rand()。它会在每次调用时自动更新种子。

2 - rand() 确实很慢。根据您的统计要求,如果不是很严格,您可以重新实现一个 rand() 函数。可以从 logistic map 制作一个简单的 PRNG .

祝你好运!

关于c++ - rand() 和 time() 函数会占用大量系统资源吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17772780/

相关文章:

c++ - 透视在 Eclipse 中消失了

c - 生成随机 n 字节 Base64 字符串后的不可打印字符

random - 将 uint64 转换为 int64 而不丢失信息

objective-c - Objective-C 中的非均匀随机数

c++ - 带有 const char* 的奇怪 std::cout 行为

c++ - 从现有的时髦代码结构创建 Visual Studio 项目

c++ - 编写二进制 block 以 boost 存储为 json 的属性树

带返回的 C++ 析构函数

javascript - 生成 100 的随机倍数

c++ - 播种随机数生成器 C++