我在我的程序中使用C ++ rand()
函数,但是在循环中使用rand()
之后运行它时发现我的程序会非常慢。循环将迭代多次,并将调用函数time()
作为rand()
的种子。
所以我想知道C ++ rand()
和time()
函数是否会耗费大量系统资源?
答案 0 :(得分:2)
两件事:
1 - 您提到种子rand()每次循环迭代:这不仅不需要,因为它可能会降低PRNG(统计性能)的性能,因为它们被设计为由前一个输出播种。只给你的PRNG播种一次,然后调用(仅)rand()。它会在每次通话时自动更新种子。
2 - rand()确实很慢。根据您的统计要求,如果不是非常严格,您可以重新实现rand()功能。可以使用logistic map来制作简单的PRNG。
祝你好运!