Mỗi phần tử trong tập được quyết định có trong tập con hay không bằng cách "tung đồng xu" (rand() % 2). Nếu kết quả 1 thì lấy, 0 thì bỏ.
Thuật toán
Bắt đầu
Nhập n và mảng a[].
Với i từ 0 đến n-1:
Nếu rand() % 2 == 1: in a[i].
Kết thúc
Ví dụ mã nguồn
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
int n;
cout << "So phan tu: "; cin >> n;
int a[n];
for (int i = 0; i < n; i++) {
cout << "Phan tu " << i+1 << ": "; cin >> a[i];
}
cout << "Tap con ngau nhien: { ";
for (int i = 0; i < n; i++)
if (rand() % 2 == 1) cout << a[i] << " ";
cout << "}\n";
return 0;
}
Đầu ra mẫu
So phan tu: 7
Phan tu: 7 6 5 4 3 2 1
Tap con ngau nhien: { 7 6 3 }