Giả sử cần xuất ra 3 dãy số ngẫu nhiên trong khoảng 1 đến 10, mỗi dãy gồm 4 số, ví dụ:
2 3 6 8
3 6 8 9
1 5 7 9
Yêu cầu là mỗi số trong 1 dãy không trùng nhau, giữa 2 dãy có thể có số giống nhau. Kiểu giống như chọn số trong vietlott vậy ạ.
Mình chỉ viết đựoc đoạn code xuất ra được 1 dãy như phía dưới, ai có thể giúp mình xuất ra 3 dãy 1 lúc không ạ?
Code:
#include <iostream>
using namespace std;
#include <stdlib.h>
#include <map>
#include <time.h>
int chonso()
{
srand((int)time(0));
int r;
int minn=1;
int maxx=10;
map<int, bool> vis;
for(int i = 0; i < 4; ++i)
{
do{
r = minn + rand() % (maxx + 1 - minn);
}while(vis.find(r) != vis.end());
cout<< r << " ";
vis[r] = true;
}
}
int main()
{
cout<< "Day so ngau nhien la: \n \n";
chonso();
cout<<"\n \n";
}
Và kết quả ra là:
