//从数组中获取随机的N个数 且不重复

//从数组中获取随机的N个数 且不重复
var arr1 = [‘张三’, ‘李四’, ‘王五’, ‘嘿嘿’, ‘xixi’, ‘sb’, ‘nide’]
function randPer(arr, num) {
var newarr = []
for (let i = 0; i < num; i++) {
let rand = Math.floor(Math.random() * arr.length)
newarr.push(arr[rand])
arr = removeWithoutCopy(arr, arr[rand])
}
return newarr
}
//移除数组中的指定元素
function removeWithoutCopy(arr, item) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === item) {
arr.splice(i, 1)
i–
}
}
return arr
}
console.log(arr1)

### 回答1: C代码: int PickPivot(int array[], int n) { srand(time(NULL)); int a, b, c; a = rand() % n; do { b = rand() % n; } while (a == b); do { c = rand() % n; } while (a == c || b == c); return a, b, c; } ### 回答2: C语言代码如下: ```c #include<stdlib.h> #include<time.h> int PickPivot(int arr[], int length) { srand(time(0)); // 设置随机数种子 int index1 = rand() % length; // 随机生成第一个数的下标 int index2 = rand() % length; // 随机生成第二个数的下标 int index3 = rand() % length; // 随机生成第三个数的下标 int pivot1 = arr[index1]; // 获取一个数 int pivot2 = arr[index2]; // 获取第二个数 int pivot3 = arr[index3]; // 获取第三个数 // 返回三个数的最大值作为pivot if (pivot1 >= pivot2 && pivot1 >= pivot3) { return pivot1; } else if (pivot2 >= pivot1 && pivot2 >= pivot3) { return pivot2; } else { return pivot3; } } ``` 以上代码通过`srand(time(0))`设置随机数种子,然后利用`rand()`函数生成三个随机数的下标,再通过下标获取数组中的三个数,最后返回其的最大值作为pivot。 ### 回答3: 以下是使用C语言编写的通过PickPivot随机数组中选出三个数的代码: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> int pickPivot(int arr[], int size) { srand(time(NULL)); // 初始化随机数种子 int index1 = rand() % size; // 随机生成第一个索引 int index2 = rand() % size; // 随机生成第二个索引 int index3 = rand() % size; // 随机生成第三个索引 int pivot1 = arr[index1]; // 获取一个随机数 int pivot2 = arr[index2]; // 获取第二个随机数 int pivot3 = arr[index3]; // 获取第三个随机数 // 输出随机选取的三个数 printf("随机选取的三个数为:%d, %d, %d\n", pivot1, pivot2, pivot3); // 返回选取的三个数的索引之和 return index1 + index2 + index3; } int main() { int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 定义一个示例数组 int size = sizeof(arr) / sizeof(arr[0]); // 计算数组大小 int pivotSum = pickPivot(arr, size); // 调用pickPivot函数选取个数 printf("三个数的索引之和为:%d\n", pivotSum); return 0; } ``` 以上代码首先使用`srand`函数初始化随机数种子,然后使用`rand`函数生成三个不重复随机索引,接着通过这三个索引从给定的数组中获取相应的数值,并将其输出。最后返回这三个索引之和。在`main`函数,我们定义了一个示例数组并计算其大小,然后调用`pickPivot`函数获取选取的三个数的索引之和,并将其输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值