linux 中 random() 函数相同的值(同时 grof ing)
Posted
技术标签:
【中文标题】linux 中 random() 函数相同的值(同时 grof ing)【英文标题】:random() function same values in linux (while grof ing) 【发布时间】:2017-07-06 12:16:31 【问题描述】:当我尝试为各种排序算法生成随机值以对它们进行 gprof 并比较结果时,我注意到 random() 函数在实例中以相同的顺序创建相同的值。有没有办法摆脱它?
示例我尝试分析冒泡排序,因此随机创建了 10000 个值并对其进行冒泡排序,现在当我给 10000 个值时,它再次生成与之前相同的一组值并以相同的顺序。
当我将值更改为 1000 时,之前测试的前 1000 个值与本例完全相同。我用不同的可能性改变了值的范围,比如只有正整数和正整数、负整数。 random() 函数生成相同值的原因是什么?有没有办法解决它?
【问题讨论】:
您使用什么语言?是 C、C++ 还是其他? “random() 函数”不明确。您需要指定语言(这比指定操作系统更重要)。 @jww 我正在使用 C 【参考方案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
【讨论】:
你能详细说明一下吗? @ManojOffo 你用的是什么语言?以上是关于linux 中 random() 函数相同的值(同时 grof ing)的主要内容,如果未能解决你的问题,请参考以下文章