有没有一种方法可以让vector
中仅包含数字0
和1
的{{1}}中随机出现n次的数字1?
示例
vector
大小5,1
必须在vector
[0,1,0,1,0]
vector
大小8,1
必须在vector
[1,1,0,0,0,1,0,1]
等等。
如何用C ++完成?
答案 0 :(得分:2)
尝试一下:
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
void print_v (const std::vector <int>& v)
{
for (int i : v)
std::cout << i;
std::cout << "\n";
}
int main()
{
std::vector <int> v;
v.push_back (1);
v.push_back (1);
v.push_back (0);
v.push_back (0);
v.push_back (0);
print_v (v);
std::random_device rd;
std::mt19937 g (rd ());
std::shuffle (v.begin (), v.end (), g);
print_v (v);
}
代表输出:
11000
00011
(我将留给您构造原始的,未改组的向量)。