输入整数n和m,要求用同样的概率输出m个0~n-1之间的数。
#include <iostream>
#include <set>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
//方法一:
void fun(int m, int n)
{
srand((int)time(0));
for (int i = 0; i < n; i++)
{
if ((rand() % (n-i)) < m)
{
cout << i << "\n";
m--;
}
}
}
//方法二:
void fun1(int m, int n)
{
srand((int)time(0));
set<int> buf;
while (buf.size() < m)
{
buf.insert(rand() % n);
}
set<int>::iterator it = buf.begin();
while (it != buf.end())
{
cout << *it << " ";
it++;
}
cout << endl;
}
int main()
{
fun(6, 100);
fun1(6, 100);
return 0;
}