我正在尝试生成一个包含 0 到 100 000 之间的 10000 个整数的文件,以便稍后对它们进行 MergeSort。
当我使用 fstream 生成文件时,我从来没有得到超过 32760 的整数。
以下方法生成文件,然后将其读回并检查是否有任何超过 32750 的整数。我通常会得到介于 32750 和 32760 之间的 3-5 个整数。为什么会发生这种情况,我该如何解决?是种子问题还是Random函数的实际使用?
// sizeOfArray = 10000
void generateFile() {
ofstream fout("unsorted.txt");
srand(time(NULL));
// Generating the file
int num;
for(int i = 0; i < sizeOfArray; i++) {
num = rand() % 100000;
if(i < sizeOfArray-1)
//fout << i+1 << ": " << num << endl;
fout << num << endl;
else
//fout << i+1 << ": " << num;
fout << num;
}
// Reading the File Back
ifstream fin("unsorted.txt");
for(int i = 0; i < sizeOfArray; i++) {
fin >> num;
if(num > 32750)
cout << num << endl;
}
cin.get();
}
已解决
使用下面提供的答案,我生成了 500 次文件
,我收到的最高整数是 99931。