我正在编写一个函数,该函数的作用是使用从0到n(其中n是传递给函数的参数)的随机数填充数组,但数组中的所有数字都应该是唯一的。我基本上需要对从0到n的数字数组进行随机排序。
我在这里找到了答案:C编程语言中整数数组中的唯一随机数 并使用用户建议的“Knuth算法”。
我在这里找到了答案:C编程语言中整数数组中的唯一随机数 并使用用户建议的“Knuth算法”。
void generate_random_array(int count)
{
int in, im;
im = 0;
srand(time(NULL));
for (in = 0; in < count && im < count; ++in) {
int rn = count - in;
int rm = count - im;
if (rand() % rn < rm) random_array[im++] = in;
}
}
然而,这个函数并没有为我生成随机数,它只是简单地创建了一个从0到count的数字数组。我该如何生成真正的唯一随机数序列。