Similar documents
예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A


비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

화판_미용성형시술 정보집.0305

59

»ê¾÷¿¬±¸¿øÇ¥Áö

°¡°Ç6¿ù³»ÁöÃÖÁ¾


PART

Part Part

£01¦4Àå-2

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

2002년 2학기 자료구조

Microsoft PowerPoint - 27.pptx

2

EL EL A229

Microsoft PowerPoint - [2009] 02.pptx

PowerPoint 프레젠테이션

MAX+plus II Getting Started - 무작정따라하기

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt


chap x: G입력

2

PowerPoint Template

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1

중간고사

Microsoft PowerPoint - AC3.pptx

PowerPoint Presentation

<4D F736F F D20C3A520BCD2B0B32DC0DABFACBDC4C0C720C8B2B1DDBAF1C0B2322E646F63>

2

Tcl의 문법

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - 26.pptx

Java

hlogin2


Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - m05_Equation1(Print) [호환 모드]

6장정렬알고리즘.key

C 프로그래밊 개요

제 12강 함수수열의 평등수렴

untitled

쉽게 배우는 알고리즘 강의노트

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

서강대학교공과대학컴퓨터공학과 (1/5) CSE3081 (2 반 ): 알고리즘설계와분석 < 프로그래밍숙제 2> (v_1.0) 담당교수 : 임인성 2015 년 10 월 13 일 마감 : 10 월 31 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가

slide2

2

Contents Activity Define Real s Activity Define Reports UI, and Storyboards Activity Refine System Architecture Activity Defin

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

11장 포인터

Microsoft PowerPoint - hw8.ppt [호환 모드]

17장 클래스와 메소드

Sequences with Low Correlation

<3130C0E5>

2015 경제ㆍ재정수첩

untitled

SMB_ICMP_UDP(huichang).PDF

Chapter 4. LISTS

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4



歯9장.PDF

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

2

01 경우의수

2

C 언어 프로그래밊 과제 풀이

ȸº¸115È£



PowerPoint 프레젠테이션

체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x

제1장 군 제1절 소개와 예 제2절 이항연산 2.1 보기. 다음은 정수방정식 a + x = b를 푸는 과정이다. (1) 준식에 a를 더하여 ( a) + (a + x) = ( a) + b. (2) 결합법칙을 사용하면 (( a) + a) + x = ( a) + b. (3)

Microsoft PowerPoint - Java7.pptx

08~15_º¸°ÇÀÇ·áºÐ¾ßODAÆò°¡

11장 포인터

chap 5: Trees

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

4장.문장

?

2

chap01_time_complexity.key

2

2

슬라이드 1

SIGPLwinterschool2012

슬라이드 1

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

chap8.PDF

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

untitled

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

Microsoft PowerPoint - chap-11.pptx

강의10

2

PowerPoint 프레젠테이션

Transcription:

예제 1.1 (MATLAB m-file pnk.m) function val = pnk(n,k) k-permutation from n-set P(n,k) = n (n-1) (n-2)... (n-k+1) if (k > n) val = NaN; disp('invalid input: Check if k > n') return val = 1; for i = n-k+1:n; val = val * i;

예제 1.2 (combinatorial explosion) A. 알파벳의대문자 26 개를길이 (length) 가 7 인이진수열 (binary sequences) 로기호화하는데얼마나많은경우가존재하는가? ( 풀이 ) 길이가 7 인 2 7 =128 개의이진수열 (binary sequence) 이존재한다. 따라서 A, B,, Z 의 26 개문자에대한표현은 P(2 7 =128,26) 개중에서선택된다. >> pnk(2^7,26) ans = 4.0108e+053 B. a, b, c, e, i, n, r, s, t, u 각각을정확히한번만사용한단어가존재하는지조사하려고한다. 10 개의글자에대한모든가능한 permutation 을일반화하고그것을사전에서찾는데 1 밀리세컨드 (1/1000 초 ) 가걸린다고가정하자. 그렇다면이프로그램으로모든순열을체크하는데얼마나오래걸리겠는가? ( 풀이 ) n 개의글자에대한 P(n, n)=n! 개의순열이존재하므로실행시간은 >> pnk(10,10) *.001 Running time in Second ans = 3.6288e+003 >> ans / 60 Running time in Minutes ans = 60.4800 예제 1.3 (MATLAB m-file cnk.m) function val = cnk(n,k)

k-combination from n-set C(n,k) = n (n-1) (n-2)... (n-k+1) / k (k-1)... 1 = (n-k+1)/1 (n-k+2)/2... (n-k+k)/k C(n,k) = C(n,n-k) : Useful formula when k > n/2 if (k > n) val = NaN; disp('invalid input: Check if k > n') return elseif ( k > n/2 ) k = n - k; val = 1; for i = 1:k val = val * (n-k+i)/i; 예제 1.4 ( 조합경우의수 ) 한중국식당은디너스페셜 (dinner special) 의일부분으로 8 개의메인요리 (main dishes) 중정확히두가지를주문하도록하고있다. 그렇다면주문할수있는메인요리는얼마나많은다른조합 (combination) 이있는가? >> cnk(8,2) ans = 28

예제 1.6 ( 파스칼의삼각수, pastree.m) function val = pastree(n, print) Generating pascal's combinatorial triangle if print is defined and equals to 1, print the complete triangle n = 0 : [1] n = 1 : [1 1] n = 2 : [1 2 1] n = 3 : [1 3 3 1] C(n+1,k+1) = C(n,k) + C(n,k+1) if ( nargin == 1 ) print = 0;

val = [1]; for i=1:n val = [0 val] + [val 0]; if (print==1); fprintf(1,'3d:',i); disp(val) >> pastree(5,1); ------------------------ 1: 1 1 2: 1 2 1 3: 1 3 3 1 4: 1 4 6 4 1 5: 1 5 10 10 5 1 예제 2.1 (k-samples) 컴퓨터는 n 개의이진숫자 (binary digits) 로정수를표현하는데, 부호 (sign) 를

나타내기위해 1 비트 (bit) 를사용하고정수의크기를나타내기위해서 n-1 비트를사용한다. 이것을정수의부호 - 크기표현 (sign-magnitude representation of integers) 이라고부른다. 이러한표시로얼마나많이다른정수들을표시할수있는가? ( 풀이 ) n 개의채워야할칸 (slot) 이존재한다고생각할수있고이때각각의칸을채우는경우에는두가지방법이있으므로총 2ⁿ 의다른비트방식이존재한다는것을알수있다. 그러나, 여기엔 +0 과 -0 이모두포함되어있으므로우리가원하는답은 2ⁿ-1 이됨을쉽게알수있다. 예제 2.3 (MATLAB m-file hnk1.m) 네개의주사위를던져졌을때, 얼마나다른경우의가능한결과가나오겠는가? (( 답 )) 예를들어첫번째주사위가 4 가나오고나머지세개가 2 가나온경우나처음세개의주사위에서 2 가나오고마지막에 4 가나온경우는같은경우이므로순서에상관하지않는다. 또한모두가같은값을가질수있기때문에반복 (repetition) 이허락된다. 따라서이것은집합 {1, 2, 3, 4, 5, 6} 으로부터의 4-selections 이므로 function val = hnk1(n,k)

k-selection from n-set H(n,k) = 1 if n=1 H(n+1,k) = 1 + H(n,1) +... + H(n,k) val = 1; if n==1; return; for i=1:k; val = val + hnk1(n-1, i); >> val=hnk1(6,4) --------------------------- val = 126 개의가능한경우가있다. 126 >> tic; val=spnk1(10,15), toc val = 1307504 Elapsed time is 3.489900 seconds. 연산에소요된시간은약 3.5 초이다. 예제 2.5 (MATLAB m-file Hnk.m) function val = hnk(n,k) k-slection from n-set H(n,k) = C(n+k-1, k) = C(n+k-1, n-1) : Useful formula when k > n-1 cn = n+k-1; ck = k; if ( k > n-1 ) ck = n-1;

val = 1; for i = 1:ck; val = val * (cn-ck+i)/i; >> val=hnk(6,4) --------------------------- val = 예제 2.4 의결과와같은값을가진다. 126 >> tic; val=hnk(10,15), toc val = 1307504 Elapsed time is 0.002297 seconds. 연산에소요된시간은천분의 2.3 초이다.

예제 3.2 ( 중복원소의패턴 ) 3 개의사각형과 2 개의삼각형과 4 개의원을가진퍼즐이있다. 한줄로이 9 개를배열해서형성할수있는얼마나많은패턴이있는가? function val = ptn(n) ptn(n) = number of patterns from repeated set ptn(n) = sum(n)! / n(1)! n(2)!... n(length(n))! = 1...n(1)/1...n(1)... (n(1)+1)...(n(1)+n(2))/1...n(2)... (n(1)+...+n(r-1)+1)...(n(1)+...+n(r))/1...n(r) r = length(n); ns = sort(n); ns = ns(r:-1:1); counter=ns(1); val = 1; for k = 2:r; for i = 1:ns(k); counter = counter+1; val = val * counter/i; >> ptn( [2 3 4] ) --------------------------- ans = 1260

예제 3.3 ( 중복원소의분할 ) function val = part(n) part(n) = number of partition to make r-subsets with n(1),...,n(r) elements where n(k1)=n(k1+1)=...=n(k1+r1),..., n(kp)=...=n(kp+rp) part(n) = C(n(1)+...+n(r),n(1))... C(n(k1)+.+n(r),n(k1))...C(n(k1+r1)+.+n(r),n(k1+r1)) / r1!... C(n(kp)+.+n(r),n(kp))...C(n(kp+rp)+.+n(r),n(kp+rp)) / rp!... C(n(r),n(r)) r = length(n); elements = sum(n); ns = sort(n); rp = 1; val = 1; for k = 1:r; val = val * cnk(elements, ns(k)); elements = elements - ns(k); if (k==r) val = val / pnk(rp,rp); elseif (ns(k)~=ns(k+1)) val = val / pnk(rp,rp); rp = 1; else rp = rp + 1;

>> part([3 2 2]) ------------------------------- ans = 105 예제 3.5 (k- 부분집합으로의분할 ) 5 개의집합을가진원소를 3 개의블록으로분할하는데얼마나많은방법이존재하는가? ( 풀이 ) 정리 3.3 에의해 S(5,3) = 3S(4,3) + S(4,2). 이때, 정리 3.3 의 2 번에의해, S(4,3) = 3S(3,3) + S(3,2) S(4,2) = 2S(3,2) + S(3,1) S(3,2) = 2S(2,2) + S(2,1). 정리 3.3 의 1 번에의해, S(2,1) = S(3,1) = 1 이고 S(3,3) = 1, S(2,2) = 1. 따라서, S(4,3) = 3*1 + (2*1 + 1) = 6 이고 S(4,2) = 2*(2*1 + 1) + 1 = 7. 그러므로 S(5,3) = 3*6+7 = 25. function val = snk(n,k)

k-slection from n-set S(1,1) = S(n,n) = 1 if n=1 S(n,k) = k S(n-1,k) + S(n-1,k-1), 1 <= k < n val = 1; if n>k & k>1; val = k*snk(n-1,k) + snk(n-1,k-1); >> snk(5,3) --------------------------- ans = 25

list=[]; for i=1:4 for j=1:4 for k=1:4 list = [list; i*100+j*10+k]; list disp(['samples: Total ' int2str(length(list)) ' Elements listed'])

list=[]; for i=1:4 for j=i:4 for k=j:4 list = [list; i*100+j*10+k]; list disp(['selections: Total ' int2str(length(list)) ' Elements listed']) list=[]; for i=1:4 for j=1:4 for k=1:4 if (i~=j & i~=k & j~=k) list = [list; i*100+j*10+k]; list disp(['permutations: Total ' int2str(length(list)) ' Elements listed']) list=[]; for i=1:4 for j=i+1:4 for k=j+1:4 list = [list; i*100+j*10+k]; list disp(['combinations: Total ' int2str(length(list)) ' Elements listed'])