我将随机数组保存在文本文件中,以便我可以再次加载它。有没有更好的方法来保存它而不使用txt文件?
for(i=0;i<10000;i++);
clientdata[i]=rand();
FILE * fp;
fp = fopen ("client.txt", "w+");
fwrite(clientdata, sizeof clientdata[0], sizeof clientdata / sizeof clientdata[0], f);
fclose(f);
答案 0 :(得分:5)
您可以像这样使用随机种子,以确保每次都生成相同的随机数:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int seed = 1892; //any number, this is the random seed
srand(seed); //call this with the random seed argument
for(i=0;i<10000;i++);
clientdata[i]=rand();
//do something, you will generate the same random data every time
}
答案 1 :(得分:2)
来自C库的函数rand
(rand48?)会生成一个随机序列。
然而,这是预定义的。
可以使用srand
选择不同的序列。要获得相同的序列,请为srand
使用相同的值。
答案 2 :(得分:2)
使用srand
启动随机数序列并重复使用相同的种子值重新生成相同的序列:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
for(int i=1; i<=2; i++){
srand (22); // can be any value -- just the same to restart the series
for(int j=1; j<=10; j++)
printf ("Random Number %d: %d\n", j, rand() %100);
}
return 0;
}
// regenerates the same series of rand numbers...