20
project#3 project#3 How fast can we How fast can we sort? sort? 조 : D3 조조 : 2008 고고고 조조 : 2009 고고고

이산치수학 Project3

Embed Size (px)

Citation preview

Page 1: 이산치수학 Project3

project#3 project#3

How fast can we sort?How fast can we sort?

조 : D3

조장 : 2008 고충욱

조원 : 2009 김시백

2011 안영준

2011 정진아

2011 최보은

Page 2: 이산치수학 Project3

차 례

1. 프로젝트 설명

2. 일 정

3. 업무분담

4. 초 안

- 알고리즘 및 소스

5. 문제점

6. 해결소스

7. 회의록

1. 프로젝트 설명

과제 1

다음을 정렬하시오

10~ 29 까지 두 자리 정수가 적힌 20 장의 카드가 있다고 하자. 카드를

무작위로

Page 3: 이산치수학 Project3

섞었다. 다음 방법을 이용하여 정렬하고 설명에 답하시오, 각 방법을 사용하고

난후에는 다시 무작위로 섞었다고 하자.방법 1

⦿ 가장 큰 수가 나올 때까지 찾아서 이 카드를 테이블 위에 앞면이 위로

오도록 놓는다.

처음부터 다시 그 다음 큰 수를 찾아서 그 카드 위에 놓는다. 이 과정을 모든

카드를

찾을 때까지 반복한다. 정렬되었는가?

- 전체 카드를 몇 번 보아야 하는가?

최소 : 20 번 ⇒ 모든 경우에서 찾는 수가 가장 먼저인 경우

최대 : 20!번 ⇒ 모든 경우에서 찾는 수가 가장 마지막인 경우

- 최악의 경우는 어떻게 초기화 되었을 경우인가?

⇒ 가장 큰수가 마지막으로 초기화 되는 경우

- 최선의 경우는 어떻게 초기화 되었을 경우인가?

⇒ 가장 큰수가 처음으로 초기화 되는 경우

- 시간 복잡도는 얼마인가?

⇒ O(n!) = n!, Ω(n) = n방법 2

⦿ 카드를 두 뭉치로 나눈다. 하나는 첫 수가 1 인 것이고 다른 하나는 첫 수가

2 인 것이다.

각 뭉치를 방법 1 을 사용하여 두 번째 수를 정렬한다. 첫 번째 뭉치를 두 번째

뭉치

위에 놓는다. 정렬되었는가?

- 카드의 비교 수는 얼마인가? 20 + 10! + 10! + 1

20:두 뭉치로 나눈다, 10!:방법 1 을 정렬, 1:첫 수가 1 인지 2 인지 뭉치비교 방법 3

⦿ 카드의 두 번째 수를 이용하여 10 개의 뭉치(0~9)로 나눈다. 이제 두 번째

수가 0 인

Page 4: 이산치수학 Project3

뭉치를 집어서 첫 번째 수를 보고 두 뭉치로 나누고 뒤집어 놓는다. 두 번째

수가

1 인 뭉치를 집어서 다시 첫 번째 수를 보고 두 뭉치로 나누어 앞의 뭉치 위에

뒤집어

놓는다. 모든 카드에 대해 반복한다.

- 카드의 비교 횟수는 얼마인가?

최악의 경우 :20 + 55 + 10 + 1

20:10 개의 뭉치(0~9)로 나눈다, 55:최악의 경우로 두 번째 수가 가장 작은

수를 마지막에 집는다, 10:한 뭉치를 첫 번째 수로 비교, 1:첫 수가 1 인지 2

인지 뭉치비교

최선의 경우 :20 + 10 + 10 + 1

20:10 개의 뭉치(0~9)로 나눈다, 55:최악의 경우로 두 번째 수가 가장 작은

수를 집는다. 10:최선의 경우로 두 번째 수가 가장 작은 수를 처음 집는다, 1:

첫 수가 1 인지 2 인지 뭉치비교

두 가지 세기 (Counting) 의 방법

문제. 원형의 탁자에 5 쌍의 부부가 앉으려고 한다. 이 때,남자와 여자는 교대로 앉아야 하고, 부부는

옆에 나란히 앉을 수 없다고 한다. 그러면 앉을 수 있는 방법은 모두 몇 가지나 되는지 알아보시오.

일상 생활 중에서 우리는 위의 문제와 같은 많은 상황을 만나게 되며, 우리는 이와 같은 문제를

해결하기 위하여 여러 방법의 세기(counting)를 잘 하여야 한다.

일반적으로 세는 방법에 있어서

(1) 순서(order)를 고려하던지 또는 고려하지 않던지;

(2) 반복(repetition)을 허락하던지 또는 허락하지 않던지

등을 고려하여 여러 조건 하에서 선택이나 분포를 counting 하는 것은 중요한 문제이며 , 지금부터

차례대로 알아보기로 합시다.

예제 1. 개인사물함에 두 자로 된 명찰을 붙여서 구분 하려고 한다. 한글 `가, 나, 다, ... , 파, 하 ` 의

14 자

중에서 한 글자와 수자 `0, 1, 2, ... , 8, 9`의 열 개중 한 수자를 사용하려고 한다. 이 때 사물함을

구별할 수 있는 명찰을 몇 개 만들 수 있는지 알아보시오.

풀이. 사물함의 명찰의 모양은

Page 5: 이산치수학 Project3

한글 : 수자 (예를 들면, 가 3 )

수자 : 한글 (예를 들면, 4 라 )

의 경우가 가능하므로,

한글 : 수자 의 경우는 14 x 10 = 140 (가지)

수자 : 한글 의 경우는 10 x 14 = 140 (가지)

따라서, 구별할 수 있는 사물함의 명찰의 개수는 모두 140 + 140 = 280 (개) 이다.

위 예제 1 에서 알 수 있듯이, k 개의 가능성이 있는 일이 독립적으로 시행될 수 있고, 또 각각의

경우의 수가 m1, m2, ..., mk 일 때, 가능한 전체의 경우의 수는 모두

이다. 이것을 합의 법칙 (the addition principle)이라고 한다.

각각의 경우의 수가 m1, m2, ..., mi 인 연속된 일을 시행할 때, 가능한 전체의 경우의 수는 모두

이다. 이것을 곱의 법칙 (the multiplication principle)이라고 한다.

이 두 가지 법칙은 모든 경우의 세기 문제에 있어서 가장 기본적인 법칙이다.

예제 2. 15 명의 회원을 가진 어떤 모임이 있다. 이 때, 회장, 부회장, 총무, 감사를 각각 선출하려고

한다.

가능한 경우의 수는 모두 몇 가지인가 ?

풀이. 회장, 부회장, 총무, 감사를 연속하여 선출하여야 하므로, 곱의

법칙에 의하여

15 x 14 x 13 x 12 (가지)

예제 3. 빨간 주사위 R 과 파란 주사위 B 를 동시에 던질 때 나올 수 있는 눈의 경우의 수를 구하여

보시오.

또, 동일한 두 주사위를 던질 때 나올 수 있는 눈의 경우의 수도 구하여 보시오.

풀이.

(1) 빨간 주사위 R 의 눈이 나올 수 있는 경우의 수는 6 가지

파란 주사위 B 의 눈이 나올 수 있는 경우의 수는 6 가지

따라서 곱의 법칙에 의하여 구하는 경우의 수는 모두

6 x 6 = 36 (가지)

이를 구체적으로 구하여 보면, 빨간 주사위 R 과 파란 주사위 B 의 나온 각각 눈을 r, b 라 하고 순서쌍

(r, b)로 표시하면

(1,1), (1,2), (1,3), (1,4), (1,5), (1,6)

(2,1), (2,2), (2,3), (2,4), (2,5), (2,6)

...

Page 6: 이산치수학 Project3

(6,1), (6,2), (6,3), (6,4), (6,5), (6,6)

(2) 동일한 두 주사위를 던지는 경우에 위의 경우에서의 (1,2)와 (2,1)은 구별할 수가 없고, 같은

모양으로 이해되므로 가능한 전체의 경우의 수는 모두

1 + 2 + 3 + 4 + 5 + 6 = 21 (가지)

위 예제는 우리가 곧 학습할 중복순열과 중복조합의 전형적인 예로서,

경우 (1)은 중복순열 이고,

경우 (2)는 중복조합 이다.

순서가 있는 선택의 문제 (Ordered choices)

m 개의 대상으로부터 r 개를 선택할 경우에,

(1) 중복을 허락하는가?

(2) 순서를 고려하는가?

를 고려하여 경우의 수를 계산하여야 한다.

S 가 공집합이 아닌 집합일 때, 중복을 허용하고 순서를 고려하여 r 개를 선택한 부분집합을 S 의 r

표본(r-sample)이라 한다.

S 의 원소의 개수를 n 이라 하고, r 표본의 개수를 구하여 봅시다.

먼저 순서를 고려하므로 r 개의 방을 먼저 순서대로 나열하고

각 방에는 S 의 원소 n 개 중에서 임의로 한 개를 선택할 수 있으므로 곱의 법칙에 의하여

n×n×…×n= nr 이며, 이것을 중복순열이라고 부른다

정리 1. S 의 원소의 개수를 n 이라 하면, r 표본의 개수는 n×n×…×n= nr 이다.

예제 1. 운동복에 0 부터 9 까지의 수자를 사용하여 두 자리 수자를 붙이려 한다. 그러면 중복순열의

수이므로, 102= 100 가지의 운동복 번호를 붙일 수 있다. 즉, 00 부터 99 까지 모두 100 가지이다.

문제 2. 26 자의 영어 알파벳 중에서 5 자 사용하여 임의로 낱말 모양을 만들려고 한다. 가능한

낱말은 모두 몇 가지인가?

컴퓨터의 모든 코드는 모두 0 과 1 을 사용하여 표현된다.

이것을 binary code 라고 한다. 0,1 중 한 개로 이루어진 정보를 1 bit 라 하고 8 bit 를 1byte

라고 한다. 이때, 1byte code 의 가능한 경우의 수를 살펴보면 중복순열의 원리의 의하여

2 x2 x···x 2 =26 = 64 (가지) 가 가능하다.

Page 7: 이산치수학 Project3

개인용 PC 는 정보처리 단위에 따라서 8 bit, 16 bit , 32 bit , 64 bit 등과 같이 한 번에 처리할 수

있는 정보양으로 PC 를 구분하여 부르며, 요즘 Pentium Ⅱ processor 를 갖춘 PC 를 64 bit

운영체제인 PC 라고

부른다.

이 때, 4 byte (32bit) code 의 경우의 수를 알아보면 중복순열의 수에 의한 경우의 수는 모두

이다. 이 숫자는 앞에서 학습한 Hanoi Tower 문제에서 나온 숫자에 버금가는

커다란 수이다.

이제 반복이 허용되지 않고 선택의 수에 대하여 알아 보도록 합시다.

집합 S 의 r-sample 중에서 원소가 모두 다른 것들을 우리는 r-순열 (r- permutation) 이라고

부른다. 또, S 의 원소의 개수가 r 인 경우에 S 의 r-순열은 단순히 순열 (permutation) 이라고

한다.

정리 2. S 의 원소의 개수가 n 일 때, r-순열의 수는

이다.

증명.r-순열은 모두 다른 원소를 r 개 골라서 순서대로 나열하는 방법의 수이므로, 곱의 법칙을

사용하면

이다.

기호의 약속

(1) n = r 일 때 :

(2) r = 0 일 때 : 0-순열은 의미가 없다. 그러나 계산의 편의를 위하여 모든 n 에 대하여

로 약속한다.

실제로 n ! 은 Gamma 함수로 정의되는 수의 특수한 경우로 이해되는 수로서, p >0 인

임의의 실수 일 때 함수는 다음과 같이 정의된다 :

그러면 모든 p >0 에 대하여 점화식

가 성립하고, 이 때 특별히 p 가 자연수이면

가 된다. ( 공학수학이나해석학 책을 참조하시오.)

Page 8: 이산치수학 Project3

예제 4. 12 명의 회원을 가진 모임에서 서로 다른 직함을 갖는 4 명을 선출하는 방법의 경우의 수는 ?

풀이.

예제 5. 알파벳 A, B, C, D 가 각각 쓰여진 네 장의 카드를 모두 사용하여 만들 수 있는 단어는 모두

가지인가 알아보시오.

풀이.

순서가 없는 선택의 문제 (Unordered choice)

n 개의 원소를 갖는 집합 S 로 부터 r 개의 서로 다른 원소를 순서를 고려하지 않고 선택한 집합을 S

r-조합(r-combination)이라고 하고, r-조합의 수를

과 같이 표기한다.

정리 1.

증명. r-순열의 개수는 이고 r 개를 나열하는 방법의 수는 이다.

따라서

예제 1. 12 명의 모임에서 4 명을 임의로 선출 하는 방법의 수는?

풀이.

예제 2. OCU 의 교양과정에는 5 개의 과학 교과목과 4 개의 역사 교과목이 있다. 은지는 이번

학기에 2 개의

과학 교과목과 2 개의 역사 교과목을 선택하려고 한다. 이 때 은지가 선택할 수 있는 과목의 경우의

수는?

Page 9: 이산치수학 Project3

풀이.

예제 3. 7 개의 -(dash)와 5 개의 / (slash)를 한 줄에 나열하는 방법은 모두 몇 가지인가

알아보시오.

풀이. 우선 모두 12 개의 방이 나열되어 있다고 생각하고, 그 중 5 개를 순서에 관계없이 골라서 그

방에 / 를 넣는다고 생각하면 된다. 따라서 구하는 경우의 수는 모두

이다.

또 위의 문제의 풀이에서 7 개의 방을 골라서 - 를 넣어도 되므로

가 되며, 이 두 수는 같다. 즉,

일반적으로, 우리는 조합수에 관한 항등식 을 얻을 수 있다.

예제 4. 영어 단어 MISSISSIPI 의 모든 영어 철자를 사용하여 만들 수 있는 새로운 단어의 개수를

구하여

보시오.

풀이. 영어 단어 MISSISSIPI 는

M 이 1 개

I 가 4 개

S 가 4 개

P 가 2 개

이므로 모두 11 자이다. 그러면, 11 개의 방을 나열해 놓고, 먼저 S 를 넣는 방법은

다음에 M 을 넣는 방법은 S 를 넣는 방법은 P 를 넣는 방법은이다.

따라서 구하는 방법의 수는 곱의 법칙에 의하여

이와 같은 중복되어 있는 것들에 관한 순열을 중복순열이라고 한다.

일반적으로 다음의 정리가 성립한다.

정리 2. 전체의 개수가 인 object 를 한 줄에 나열하는 방법의 수는

Page 10: 이산치수학 Project3

증명. 위의 예제와 같은 방법으로 생각한다. 즉, n 개의 방이 있을 때, 먼저 n1개를 고르는 방법은

또 ( n-n1)개 가운데서 n2 개를 고르는 방법은

또, 이와 같은 방법으로 우리가 구하는 전체 경우의 수는

따라서, 구하는 전체의 가지 수는 이다.

위의 정리 2 에서 가능한 경우의 수를 라 쓰며, 이를 다항계수

(multinomial coeffcient) 라고 한다. 특히 k=2 인 경우 다항계수는 앞에서 학습한 조합의 수

과 같다 . (왜냐하면, n = n1 + n2이므로)

원소의 개수가 n 인 집단으로부터 중복을 허용하여 r 개를 고르는 것을 r-선택 (r-selection)이라

하고, 이를 중복조합이라고 한다. 이 때, r 은 n 보다 커도 무방하다. 또, r-선택 중에서 원소가 모두

다른 것을 우리는 r-조합이라고 부른다.

정리 3 . 원소의 개수가 n 인 r-선택의 수(중복조합)는 이다.

증명. 집합 S 를 이라 두자.

각각의 r-선택을 r 개의 - 와 (n-1) 개의 / 로 이루어진 수열로 대응 할 수 있다. 예를 들면, 집합 S

일 때,

가 5-선택이라면 이것은 -/--//--/ 와 같다고 생각할 수 있다. 또, s2, s2, s3 는 3-선택으로

이것은 /-/--// 와 같다고 생각한다.

Page 11: 이산치수학 Project3

따라서, 우리가 구하는 선택의 수는 정리 3 에 의하여

이다.

예제 5. 알파벳 26 자를 중복을 허락하여 3 자를 골라서 나열하여 만들 수 있는 단어의 수는 몇 개인가?

풀이 . 먼저 중복 조합의 수는 순서대로 나열하는 수는

중복순열이므로

원순열과 기타 배열의 방법

모든 배열의 경우의 수는 모든 기본적인 수 법칙 , 즉 곱의 법칙과 합의 법칙에 의하여 구할 수 있다.

예제 1. 원판을 꼭 같은 넓이로 100 등분하여 수자 1 부터 100 까지 임의대로 쓰려고 한다. 이 때,

가능한 모든 경우의 수는?

풀이. 일렬로 나열하는 방법은 모두 100! 이다. 그런데 수자가 원형으로 나열되어 있으므로, 한

수자를 임의로 고정시키고 나머지는 일렬로 나열 한다고 생각하면 된다 . 따라서 구하는 경우의 수는

(100-1)! 이다.

위의 예제와 같은 순열을 원순열(circular arrangement)이라고 한다.

어떤 성질을 갖는 object 의 counting 은 전체의 경우에서 그 성질을 object 의 수를 빼어서

계산할 수 있다. 이와 같은 방법을 여사건을 이용하여 counting 하는 방법 이라고 한다.

예제 2. 48 장의 트럼프 카드가 있다. 두 장의 카드를 나누어 줄 때,

(1) 적어도 1 장이 ace 일 경우의 수는?

(2) 두 장이 모두 ace 일 경우의 수는?

(3) 한 장 만이 ace 일 경우의 수는?

풀이. (1) 곱의 법칙에 의하여 4×3 가지

(2) 여사건을 이용하여 계산한다. 즉, 두 장이 모두 ace 가 아닌 경우의 수는 모두 48 x 47

가지이므로, 구하는 경우의 수는 52×51 - 48×47 = 396

다른방법으로 ace×ace 가 아닌 것 또는 ace 가 아닌 것×ace 인 경우이므로

4 × 48 = 192 48 × 4 = 192

따라서 구하는 전체 경우의 수는 모두 396 가지

(3) (1)에 의하여 396 - 12 = 384 가지

Page 12: 이산치수학 Project3

예제 3. 3 명의 남자와 6 명의 여자가 한 줄로 정렬한다. 이 때, 두 남자는 계속하여 줄서지 않는다고

한다.

정렬할 수 있는 가능한 경우의 수는?

풀이. 먼저 여자들이 정렬하는, 방법을 구하면 6! 이다.

이 때, 여자와 여자 사이의 빈 칸에 남자가 추가되는 것으로 이해하면, 모두 7 칸의 빈 칸

중에서 3 칸을 골라서 나열한 것이므로 따라서 구하는 경우의 수는

예제 4. 1 부터 9 까지의 수자 중에서 연속한 두 수자를 뽑지 않고서 3 개의 수자를 선택하는 방법의

수는?

풀이. 선택한 수를 1, 선택안한 수를 0 으로 표시한다면, 예를 들어 1001010000 은 숫자 1, 4, 6

을 뽑은 것으로 생각 할 수 있다. 따라서, 6 개의 0 이 나열되어 있고 0 사이의 빈칸 7 개 중에서 3

개를 고르면 되므로 구하는 경우의 수는

이다.

출처 : http://web.chungbuk.ac.kr/~wkkim/L51-0005_02_01.html#제 2절

2. 일 정

일 정 내 용

12. 4. 11팀의 팀장을 정하고, 과제에 대해 토의 후 팀원의

임무분담을 정함.

12. 4. 17k-combination 에 대한 과제 2 의 알고리즘을 구하고,

소스의 초안을 완성함.

Page 13: 이산치수학 Project3

12. 4. 18과제 2 의 소스 초안을 바탕으로 한 문제점을 토의 후

최종안을 완성함.

12. 4. 19보고서 작성 후 검토

3. 업무분담

이 름 분 담 내 용

고충욱 조장임무 및 자료조사

김시백 보고서작성 및 자료조사

안영준 알고리즘을 바탕으로 한 소스구성

정진아 알고리즘 구성 및 자료조사

최보은 알고리즘 구성 및 자료조사

4. 초 안

Page 14: 이산치수학 Project3

(1) 알고리즘 및 소스

1.문자를 받는다.(숫자를 받을 때마다 n갯수를 늘리고 마지막 괄호를 닫을 때 n 개수를 계산해서 arc

에 넣는다.)

2.숫자를 받는다.(cnt)

3.순서를 정해두는 변수에 순서를 저장한다(본 코딩에선 sun[])

4.맨 처음은 문자를 순서대로 cnt 만큼 출력한다.

5.마지막이 아닐 경우 (, )를 출력한다.

6.출력문자중 제일 마지막 문자에 해당하는 sun[]의 수를 올린다.(ex:cnt=3 일 경우-

sun[1]sun[2]sun[3]이 sun[1]sun[2]sun[4]가 된다.)

7.문자를 sun[]에 입력받은 대로 cnt 만큼 출력하고 6 번부터 다시 실행한다.

8.만약 sun[현재숫자]이 더 이상 커질 수 없을 때 sun[현재숫자-1]이 한칸을 옮기고 sun[현재숫자]는

sun[현재숫자-1]의 뒤에 두고 다시 7 번으로 간다.

9.마지막까지 갔을 때 종료시킨다.

#include <stdio.h>

int main()

char ch[20];

char v;

int cnt;

int arc;

int b;

int m;

int n;

for(;;)

scanf("%c",&v);

if(v=='' && m==0)

m++;

else if(ch[n-1]!=',' && v=='')

break;

else if(n==21)

break;

Page 15: 이산치수학 Project3

else if(v!=',')

ch[n]=v;

n++;

arc=n-1;

b=arc+1;

if(n-1==19)

arc=20;

scanf("%d",&cnt);

/*

1. 처음 세 문자를 출력한다.

2. 다음에 마지막 한문자를 뒤로 옮겨서 재 출력한다.

3. 마지막 문자가 마지막에 닿았을때 그 앞순서문자를 뒤로 한칸옮긴다.

4. 마지막 까지 출력을 다하면 끝낸다.

*/

scanf("%d",n);

5. 문제점프로그램에서 원소와 선택하는 방법의 수를 입력하였지만, 이것을 토대로 출력 값이

알맞게 생성되지 않음.

6. 해결소스#include <stdio.h>

int main()

char ch[20];

char v,w;

int sun[20];

int cnt;

int arc;

int in[20];

int x,y,z;

Page 16: 이산치수학 Project3

int m=0;

int n=1;

int l;

int a=0,b,c;

for(y=1;y<=20;y++)

sun[y]=y;

for(;;)

scanf("%c",&v);

if(v=='' && m==0)

m++;

else if(ch[n-1]!=',' && v=='')

break;

else if(n==21)

break;

else if(v!=',')

ch[n]=v;

n++;

arc=n-1;

b=arc+1;

if(n-1==19)

arc=20;

scanf("%d",&cnt);

for(;;)

for(x=1;x<=cnt;x++)

printf("%c",ch[sun[x]]);

b=arc+1;

for(z=cnt;;z--)

sun[z]++;

c=z;

Page 17: 이산치수학 Project3

if(a==1)

for(;c<=cnt;c++)

sun[c+1]=sun[c]+1;

a=0;

if(sun[z]!=b)

break;

else

a++;

b--;

if(sun[1]==arc-cnt+2)

break;

if(sun[1]==arc-cnt+2)

break;

printf(", ");

scanf("%d",n);

7. 회의록<1 차>

회의일시 2012년 04월 09 일 조 D3 작성자 11 최보은

참석자 08 고충욱 09 김시백 11 안영준 11 정진아

회의안건

1. 문제 파악

2. 업무 분담

3. 앞으로의 계획 설정

4. 방법 1, 2, 3 논의

회의내용 내 용 비 고

Page 18: 이산치수학 Project3

-주제 정렬(sorting)에 대해 간단한 토의

-업무분담

: 조장 - 고충욱

보고서 - 김시백

자료조사 - 정진아, 최보은

소스코딩 - 안영준

-방법 1, 2, 3 논의

: 정렬을 사용해 경우의 수 구하기.

정렬(비교 + 이동), 비교 (비교)

-다음 시간까지 관련 용어에 대해 숙지.

-알고리즘 회의

: 입력형태 - x,y,z, 최대 20 개까지 입력

~4/17 까지 소스 완성.

<2 차>

회의일시 2012년 04월 17 일 조 D3 작성자 11 최보은

참석자 08 고충욱 09 김시백 11 안영준 11 정진아

회의안건

1. 자료조사 토의

2. 알고리즘 문제점 토의

3. 방법 1, 2, 3 논의

4. 앞으로의 일정 계획

회의내용 내 용 비 고

Page 19: 이산치수학 Project3

- 자료조사 토의

: 셈의 원리(합의 법칙, 곱의 법칙)

중복순열, 중복조합, 순열, 조합

각각의 정의와 공식 구현방법에 대해 토의

- 알고리즘 문제점 토의

: ex) a,b,c 2 입력 경우 ab -> ac넘기는 부분 토의

회의 후 ~18 까지 소스 완성

- 방법 1, 2, 3 논의

: 셈의 논리(합의 법칙, 곱의 법칙)을 이용해 회의 후 결과 도출

- 일정

: 다음 시간 최종 소스 이해

최종 보고서 작성

방법 1, 2, 3 을 완벽히 작성

<3 차>

회의일시 2012년 04월 18 일 조 D3 작성자 11 최보은

참석자 08 고충욱 09 김시백 11 안영준 11 정진아

회의안건 1. 용어 공식 정리

2. 방법 1, 2, 3 정리

3. 최종 소스 이해

Page 20: 이산치수학 Project3

4. 최종 보고서 작성

회의내용

내 용 비 고

- 중복조합(서로 다른 n 개에서 중복을 허용하여 r 개를 택하는

조합)공식

: nHr = n+r-1Cr 임을 유도 및 토의

- 방법 1, 2, 3 정리

: 보고서에 넣는 양식으로 마지막 최종 정리

- 최종 소스 이해

: 전 회의의 문제점 해결을 바탕으로 소스 구현, 및 소스 이해

- 최종 보고서 작성

: 기초로 만들어진 보고서를 바탕으로 회의를 통해 보고서 작성