rand()和time()函数会花费很多系统资源吗?

时间:2013-07-21 13:24:21

标签: c++ random

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

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

1 个答案:

答案 0 :(得分:2)

两件事:

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

2 - rand()确实很慢。根据您的统计要求,如果不是非常严格,您可以重新实现rand()功能。可以使用logistic map来制作简单的PRNG。

祝你好运!