写出C加加 通过PickPivot 随机从数组中选出三个数的代码
时间: 2023-08-31 09:33:35 浏览: 109
### 回答1:
C++代码如下:#include <iostream>
#include <algorithm>
#include <vector> using namespace std; int main()
{
vector<int> arr = {1,2,3,4,5,6,7,8,9,10};
random_shuffle(arr.begin(), arr.end());
vector<int> three_numbers(arr.begin(), arr.begin()+3);
for (int i=0; i<three_numbers.size(); i++)
cout << three_numbers[i] << " ";
return 0;
}
### 回答2:
以下是一个实现C++中通过PickPivot随机从数组中选出三个数的代码:
#include <iostream>
#include <random>
using namespace std;
int main() {
// 定义一个数组
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 初始化随机数生成器
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<int> dist(0, 9);
// 从数组中随机选三个数
int p1 = arr[dist(gen)];
int p2 = arr[dist(gen)];
int p3 = arr[dist(gen)];
// 打印选出的三个数
cout << "选出的三个数分别为:" << p1 << ", " << p2 << ", " << p3 << endl;
return 0;
}
以上代码首先定义了一个包含10个元素的整数数组arr,然后使用random_device和mt19937初始化了随机数生成器gen,并使用uniform_int_distribution定义了一个整数分布dist,范围为0到9(数组的索引范围)。接下来,通过dist(gen)从数组arr中随机选取三个数,分别赋值给p1、p2和p3。最后,打印选出的三个数。
### 回答3:
下面是用C++写的通过PickPivot随机从数组中选出三个数的代码:
```cpp
#include <iostream>
#include <ctime>
#include <cstdlib>
int PickPivot(int arr[], int size) {
srand(time(0)); // 设置随机数种子为当前时间
// 生成一个0到size-1的随机索引
int index = rand() % size;
return arr[index];
}
int main() {
int size = 10;
int arr[size] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 使用PickPivot函数从数组中选出三个数
int pivot1 = PickPivot(arr, size);
int pivot2 = PickPivot(arr, size);
int pivot3 = PickPivot(arr, size);
std::cout << "选出的三个数为:" << pivot1 << ", " << pivot2 << ", " << pivot3 << std::endl;
return 0;
}
```
上述代码首先定义了一个函数`PickPivot`,它接受一个整型数组和数组大小作为参数。函数内部使用`srand`函数设置随机数种子为当前时间,并使用`rand`函数生成一个0到`size-1`的随机索引。然后根据随机索引从数组中选出一个数作为结果返回。
在`main`函数中,我们定义了一个大小为10的整型数组,并初始化了数组元素。然后使用`PickPivot`函数三次,分别选出了三个随机数`pivot1`、`pivot2`和`pivot3`。最后将结果输出到控制台。
这样,我们就通过PickPivot函数随机从数组中选出了三个数。
阅读全文