|
퀘이사 님이 쓰신 글 :
: 1부터 45까지의 서로 다른 6개의 난수를 발생시켜서
:
: 오름차순으로 출력하는 프로그램을 만들어 봤는데요...^^
STLport의 random_sample_n 알고리듬을 사용하면 한큐에 됩니다.
참고하세요.
//---------------------------------------------------------------------------
#include <iostream>
#include <cstdlib>
#include <ctime>
#pragma hdrstop
#include <iterator>
#include <algorithm>
#include <numeric>
//---------------------------------------------------------------------------
using namespace std;
#pragma argsused
int main(int argc, char* argv[])
{
const int N = 45, R = 6;
int Balls[N];
iota(&Balls[0], &Balls[N], 1);
#ifdef __BORLANDC__
randomize(); // 볼랜드 컴파일러의 경우는 간단히 이렇게 쓰면 됩니다. 아래와 동일한 기능.
#else
srand(time()); // time() 함수는 초 단위이므로, 1초에 두번 이상 실행하면 같은 결과가 나오죠.
#endif
for (int i = 0; i < 5; i++) {
random_sample_n(&Balls[0], &Balls[N], ostream_iterator<int>(cout, " "), R);
cout << endl;
}
return 0;
}
//---------------------------------------------------------------------------
|