// 셔플 알고리즘이란 카드게임에서 카드를 섞는 것과 같이
// 수를 섞어 마치 랜덤으로 숫자가 생성된 것처럼 보이게 하는 알고리즘이다.
#include <iostream>
#include <time.h>
using namespace std;
void main(void) {
srand(time(NULL));
int iNum[5] = {0};
int iDest, iSour, iTemp;
for(int i=0; i<5; i++) { // 우선 배열에 숫자를 0~4까지 각각 넣어준다.
iNum[i] = i;
}
for(int i=0; i<10; i++) { // 랜덤으로 두개의 배열 인덱스를 골라 바꿔준다.
iDest = rand() % 5;
iSour = rand() % 5;
iTemp = iNum[iDest];
iNum[iDest] = iNum[iSour];
iNum[iSour] = iTemp;
}
for(int i=0; i<5; i++) {
cout << iNum[i] << endl;
}
}
// 수를 섞어 마치 랜덤으로 숫자가 생성된 것처럼 보이게 하는 알고리즘이다.
#include <iostream>
#include <time.h>
using namespace std;
void main(void) {
srand(time(NULL));
int iNum[5] = {0};
int iDest, iSour, iTemp;
for(int i=0; i<5; i++) { // 우선 배열에 숫자를 0~4까지 각각 넣어준다.
iNum[i] = i;
}
for(int i=0; i<10; i++) { // 랜덤으로 두개의 배열 인덱스를 골라 바꿔준다.
iDest = rand() % 5;
iSour = rand() % 5;
iTemp = iNum[iDest];
iNum[iDest] = iNum[iSour];
iNum[iSour] = iTemp;
}
for(int i=0; i<5; i++) {
cout << iNum[i] << endl;
}
}
'프로그래밍 > 참고' 카테고리의 다른 글
함수 (0) | 2013.02.03 |
---|---|
지역 변수 / 전역 변수 (0) | 2013.01.31 |
메모리 영역 (0) | 2013.01.31 |
난수 출력함수 rand() / srand() (0) | 2013.01.24 |
cin (0) | 2013.01.24 |