随机生成无重复数数组的代码
时间: 2023-04-02 08:04:12 浏览: 85
以下是生成无重复数数组的代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 100
int main()
{
int num[MAX_NUM];
int i, j, temp;
srand((unsigned)time(NULL)); // 设置随机数种子
// 生成无重复数数组
for (i = ; i < MAX_NUM; i++) {
num[i] = i + 1;
}
for (i = ; i < MAX_NUM; i++) {
j = rand() % MAX_NUM;
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
// 输出数组
for (i = ; i < MAX_NUM; i++) {
printf("%d ", num[i]);
}
printf("\n");
return ;
}
相关问题
随机数组里面的数不重复
好的,如果您希望生成的随机数组中的数不重复,可以对算法进行相应的修改。以下是用 JavaScript 实现生成不重复随机数组的代码:
```javascript
function generateUniqueArray(desiredSum, n) {
let arr = [];
let sumArr = 0;
while (arr.length < n) {
let x = Math.floor(Math.random() * (desiredSum - sumArr - (n - arr.length - 1)) + 1);
sumArr += x;
arr.push(x);
}
return arr;
}
```
在这个算法中,我们使用了一个 while 循环来生成随机数组。在每一轮循环中,我们随机生成一个数 x,它的范围是 [1, desiredSum - sumArr - (n - arr.length - 1)],其中 sumArr 是目前已经生成的数的和,n 是数组的长度,arr.length 是目前已经生成的数的个数。这样可以保证每个数都不重复。当数组 arr 中的元素个数达到 n 个时,算法结束。注意,最后一个数的值是 desiredSum - sumArr,因为前面生成的数的和已经达到了 desiredSum - 1。
您可以调用 generateUniqueArray 函数来生成符合要求的随机数组。其中,desiredSum 是您决定的数,n 是数组的长度。
Lua在给定范围内,生成指定个数不重复随机数组
可以使用Lua的math.random()函数和table.insert()函数来生成指定个数的不重复随机数组。具体实现方法如下:
```lua
function generateRandomArray(start, stop, count)
local result = {}
for i = 1, count do
local num = math.random(start, stop)
while table.indexOf(result, num) do -- 检查是否已经存在
num = math.random(start, stop)
end
table.insert(result, num)
end
return result
end
-- 示例:生成10个范围在1~100之间的不重复随机数
local arr = generateRandomArray(1, 100, 10)
print(table.concat(arr, ", "))
```
在上述代码中,generateRandomArray()函数接受三个参数:起始值start、结束值stop、生成个数count。函数内部使用while循环和table.indexOf()函数来确保生成的随机数不重复。最后返回生成的随机数组。