◈ 이 글은 강의를 위하여 제가 직접 작성한 내용입니다. 따라서 퍼가실 경우, 출처를 명확히 해주시기 바랍니다!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!
프로그램은, 주어진 명령만을 수행할 뿐이므로 언제나 같은 내용을 수행할 수 밖에 없다.
하지만 그렇다면 프로그램을 사용할 이유가 없게된다. 프로그램을 더욱 프로그램답게 만들어 주는 랜덤함수에 대해서 알아보자.
주어진 명령만을 수행하는 프로그램이 매번 다르게 수행되기 위해서는 실행될때마다 변하는 값이 필요하다.
이 목적에 가장 적합한 값은 바로 시간값이다. 수행될때마다 현재 시간은 다를테니 말이다.
그리고 두 변수의 값을 서로 바꾸는 스왑기법에 대해서도 알아보자.
하지만 그렇다면 프로그램을 사용할 이유가 없게된다. 프로그램을 더욱 프로그램답게 만들어 주는 랜덤함수에 대해서 알아보자.
주어진 명령만을 수행하는 프로그램이 매번 다르게 수행되기 위해서는 실행될때마다 변하는 값이 필요하다.
이 목적에 가장 적합한 값은 바로 시간값이다. 수행될때마다 현재 시간은 다를테니 말이다.
그리고 두 변수의 값을 서로 바꾸는 스왑기법에 대해서도 알아보자.
#include#연습문제 : 랜덤값 생성 후 역순으로 스왑하기#include using namespace std; void main() { int num = 0; srand((unsigned)time(0)); for(int i=0; i<10; i++) { num = rand(); cout << num << endl; } int a = rand() % 101; // 0~100 int b = rand() % 100 + 1; // 1~100 int c = rand() % 51 + 200; // 200~250 // 스왑. int m = 5; int n = 7; int t = m; m = n; n = t; cout << m << " / " << n << endl; }
#include#연습문제 : 카드 섞기#include using namespace std; void main() { // 배열,랜덤,스왑을 활용한 문제. int randnum[10]; int counts = sizeof(randnum)/sizeof(randnum[0]); // randnum배열에 1부터 배열의 크기(개수)사이의 랜덤값을 집어넣은 후 순서대로 출력하시오. srand((unsigned)time(0)); for(int i=0; i < counts; i++) { randnum[i] = rand()%counts+1; cout << randnum[i] << " "; } cout << endl; // 스왑을 이용하여 randnum배열의 값을 역순으로 재정렬한 후 다시 출력하시오. // 0 <-> 9, 1 <-> 8, 2 <-> 7, 3 <-> 6, 4 <-> 5 int last = counts - 1; for(int i=0; i < counts/2; i++) { int temp = randnum[i]; randnum = randnum[last-i]; randnum[last-i] = temp; } for(int i=0; i < counts; i++) { cout << randnum[i] << " "; } cout << endl; }
#include#include using namespace std; void main() { // 스왑을 이용하여 ary배열의 값을 랜덤하게 섞은 후 화면에 출력하시오. int ary[] = {0,1,2,3,4,5,6,7,8,9}; int counts = sizeof(ary)/sizeof(ary[0]); srand((unsigned)time(NULL)); for(int i=0; i < counts; i++) { int rnd = rand() % counts; int temp = ary[i]; ary[i] = ary[rnd]; ary[rnd] = temp; } for(int i=0; i < counts; i++) cout << ary[i] << " "; cout << endl; }