每次使用QueryPerformanceCounter()的随机函数播种都会导致它工作不佳吗?是否有用于测试随机算法质量的算法?
答案 0 :(得分:2)
通常,是的。您通常希望在程序启动期间为生成器播种一次,然后在此之后不管它。 QPC定期重播可能会使结果更加可预测 - QPC几乎不断增加,如果你使用它几次没有用户互动,两种种子之间的差异可能几乎不变,即使种子本身各不相同。
答案 1 :(得分:0)
你没有说你播种的频率,但是如果你在一个紧凑的循环中你应该知道QueryPerformanceCounter()可能是一个非常慢的呼叫,并且拨打电话的时间可能因计算机而异(如果他们有不同的主板和不同的计时硬件)。
因此,除非你必须经常调用QueryPerformanceCounter()(就像在分析器中那样),否则不要这样做。
如果你必须进行多次播种,你也可以使用GetTickCount()或timeGetTime()播种。