random()函数在linux中的相同值(同时grof ing)

时间:2017-07-06 12:16:32

标签: linux sorting ubuntu random gprof

当我尝试为各种排序算法生成随机值以对它们进行gprof并比较结果时,我注意到random()函数在一个实例中以相同的顺序创建相同的值。有没有办法摆脱它?

示例我尝试分析冒泡排序,因此随机创建10000个值并对其进行冒泡排序,现在再次当我给10000个值生成相同的值集时,如前所述并且顺序相同。

当我将值更改为1000时,先前测试的前1000个值与此情况完全相同。我改变了具有不同可能性的值的范围,例如只有正整数和正整数,负整数。 random()函数生成相同值的原因是什么?有没有办法解决它?

1 个答案:

答案 0 :(得分:1)

当您使用随机时,您需要提供种子,否则您将始终获得相同的结果。常用种子是当前时间。

如下所示:How to generate a random number in C?

#include <time.h>
#include <stdlib.h>

srand(time(NULL));   // should only be called once
int r = rand();      // returns a pseudo-random integer between 0 and RAND_MAX