SlideShare ist ein Scribd-Unternehmen logo
1 von 35
The Art of Computer Programming1.2.5 순열과 계승 아키텍트를 꿈꾸는 사람들cafe.naver.com/architect1 현수명  soomong.net #soomong
순열 Permutation 계승 Factorial
Definition 순열Permutation n 객체들의 순열은 n개의 서로 다른 객체들을 한 줄로 늘어 놓는 것 서로 다른 3개의 객체         에는 총 6개의 서로 다른 순열들이 존재 (1)
Example 3개의 객체들 중 1개를 일렬로 늘어놓는 방법의 수 3개의 객체들 중 2개를 일렬로 늘어놓는 방법의 수 3개의 객체들 중 3개를 일렬로 늘어놓는 방법의 수 (3)
Generalization n개의 객체들 중 k개를 일렬로 늘어놓는 방법의 수 (2) 따라서 전체 순열의 수는 n개의 객체들 중 n개를 일렬로 늘어놓는 방법의 수
2개 객체들의 순열에서 ? 3개 객체들의 순열을  얻는 방법은 없을까?
의 순열 의 순열 ? 방법 1Example 새로운 객체   을 가능한 자리들에 삽입!
방법 1Generalization 의 각 순열  에 대해 수   을 모든 가능한 자리에 삽입!
방법 2Example 이런 배열을 만든다. 이름을 객체 크기 순으로 변경
방법 2Generalization 의 각 순열  에 대해 아래 방식으로 나머지   개의 순열을 얻는다. 그런 다음 순열의 요소들의 이름을 수          을 요소 크기 순으로 사용해서 바꾼다
Definition 계승Factorial 차례곱 1부터 n 까지의 연속된 자연수를 차례로 곱한 값 (4)
처음 몇 계승들은  기억해두는것이 좋다. (5) (6)
이렇게 써보자! 알고리즘이 10! 개 이상의 경우들을 판단해야만 한다면 실용적이지 못한 것이다. 알고리즘이 10! 가지를 판단해야하고 각 경우가 	1msec 걸린다면 알고리즘 전체에는  약 한시간 (60.48분) 이 걸린다.
여기서 떠오르는 자연스러운 의문! ? 일일히 곱하지 않고 의 값이 대략 어느정도인지 알 수 있을까? 정말 자연스럽지 않은가?
의 예측 방법 1 Generalization 스털링 James Stirling (7)    : 대략 같다    : 자연로그의 기수(밑) p.50
의 예측 방법 1Example 스털링 James Stirling 오차 1%
의 정확한 값을 소수들로 소인수 분해하는 방법 Generalization 다음과 같은 중복도를 가진 소수   는    을 나눌 수 있다 (8)
소인수 분해하는 방법 Example (8) 따라서      은    로 나누어지나    로는 나누어지지 않는다.
또 하나의 자연스러운 의문! ? 음이 아닌 정수  에 대해    을 정의 할 수 있다면  유리수, 심지어 실수  에 대한  계승함수도 정의 할 수 있지 않겠는가? 이 얼마나 자연스러운 의문인가?
Example (4) 곱하기 대신 더하기를 생각해보면 (9) (10)
Generalization Try… 스털링 James Stirling 비정수 에 대하여   을 일반화하기 위해서  여러가지 시도를 해 보았다. 식(7)을 무한합으로 확장했으나 안타깝게도 그 합은 어떠한 값에 대해서도 수렴하지 않았다.
Generalization Try… 스털링 James Stirling 이것을 발견했지만 이 음이 아닌 정수에 대해서만 유효 이 합이   의 모든 분수값들에 대해   을 정의함을 증명하지 못했다. (11) (12)
Generalization ! 오일러 Leonhard Euler 		(1729년) 같은 시기에 동일한 문제를 고민! 결국 Euler 가 적절한 일반화를 최초로 발견 (13) 단,   이 음의 정수가 아닐때 왜냐하면   이 음의 정수이면 분모가 0 이 되고 은 무한대가 되어버리기 때문에
Generalization ! 에르미트 C.Hermite 		(1900년) 지금 여러분은 즐거운 계승Factorial 의 역사시간을 함께 하고 계십니다.ㅜㅜ 스털링의 아이디어가 실제로 비정수  에 대해   을 성공적으로 정의하며 사실 오일러와 스털링의 일반화들이 동일함을 증명!
계승의 표기 방법 오일러Euler 가우스Gauss 영국과 이탈리아 크랑Kramp 르장드르A.M.Legendre
Definition 감마함수Gamma Funtion 이 함수를 감마함수라고 부른다 감마함수는 계승의 개념을 실수와 복소수까지 확장시킨 함수이다 (wikipedia) (14) (15) 오일러 극한정의
저 위에 (4,6). (3,2). (1,1). .(2,1) . X 함수 실수축 상에서의 감마함수 그래프
감마함수는 복소수에서도 유효 복소수는 보통     대신  라는 글자를 사용 (16) 오일러 반사공식 가 정수가 아닌 경우 항상 성립한다
복소평면 전체로 확장된 버전의 감마함수 (wikipedia)
    는  가 0 이나 음의 정수일때  무한이 되는 반면     는 모든 복소수  에 대해 유효한 정의를 가진다 (well-defined) (17) 복소 적분의 경로는 에서 시작해서 원점을 반시계방향으로 돌아    로 돌아온다 ㅠㅠ
Definition 차례거듭제곱Factorial powers 가 양의 정수일때 (18) 의  내림제곱 의  올림제곱 (19)
n개의 객체들 중 k개를 일렬로 늘어놓는 방법의 수 (2) 결국 아래와 같음 (18)
차례거듭제곱들의 관계 (20) (21) 이상 스털링에서 오늘날에 이르기까지의 계승의 흥미로운 역사 였습니다. ㅜㅜ
Reference Factorial http://ko.wikipedia.org/wiki/%EA%B3%84%EC%8A%B9 Gamma Functionhttp://en.wikipedia.org/wiki/Gamma_function
감사합니다

Weitere ähnliche Inhalte

Mehr von hyun soomyung

Scalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed SystemsScalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed Systemshyun soomyung
 
Dependency Breaking Techniques
Dependency Breaking TechniquesDependency Breaking Techniques
Dependency Breaking Techniqueshyun soomyung
 
아꿈사 매니저소개
아꿈사 매니저소개아꿈사 매니저소개
아꿈사 매니저소개hyun soomyung
 
HTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,AudioHTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,Audiohyun soomyung
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Designhyun soomyung
 
Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10hyun soomyung
 
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)hyun soomyung
 
프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장hyun soomyung
 
[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술hyun soomyung
 
실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부hyun soomyung
 
xUnitTestPattern/chapter8
xUnitTestPattern/chapter8xUnitTestPattern/chapter8
xUnitTestPattern/chapter8hyun soomyung
 
예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법hyun soomyung
 
프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?hyun soomyung
 
5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)hyun soomyung
 

Mehr von hyun soomyung (20)

Scalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed SystemsScalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed Systems
 
Dependency Breaking Techniques
Dependency Breaking TechniquesDependency Breaking Techniques
Dependency Breaking Techniques
 
아꿈사 매니저소개
아꿈사 매니저소개아꿈사 매니저소개
아꿈사 매니저소개
 
HTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,AudioHTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,Audio
 
Hybrid app
Hybrid appHybrid app
Hybrid app
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
MapReduce
MapReduceMapReduce
MapReduce
 
MongoDB
MongoDBMongoDB
MongoDB
 
Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10
 
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
 
Clojure Chapter.6
Clojure Chapter.6Clojure Chapter.6
Clojure Chapter.6
 
프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장
 
[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술
 
실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부
 
xUnitTestPattern/chapter8
xUnitTestPattern/chapter8xUnitTestPattern/chapter8
xUnitTestPattern/chapter8
 
예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법예제로 보는 Pattern 연상법
예제로 보는 Pattern 연상법
 
프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?
 
Erlang
ErlangErlang
Erlang
 
5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)
 
이산수학 Ch.5
이산수학 Ch.5이산수학 Ch.5
이산수학 Ch.5
 

The Art of Computer Programming 1.2.5

  • 1. The Art of Computer Programming1.2.5 순열과 계승 아키텍트를 꿈꾸는 사람들cafe.naver.com/architect1 현수명 soomong.net #soomong
  • 3. Definition 순열Permutation n 객체들의 순열은 n개의 서로 다른 객체들을 한 줄로 늘어 놓는 것 서로 다른 3개의 객체 에는 총 6개의 서로 다른 순열들이 존재 (1)
  • 4. Example 3개의 객체들 중 1개를 일렬로 늘어놓는 방법의 수 3개의 객체들 중 2개를 일렬로 늘어놓는 방법의 수 3개의 객체들 중 3개를 일렬로 늘어놓는 방법의 수 (3)
  • 5. Generalization n개의 객체들 중 k개를 일렬로 늘어놓는 방법의 수 (2) 따라서 전체 순열의 수는 n개의 객체들 중 n개를 일렬로 늘어놓는 방법의 수
  • 6. 2개 객체들의 순열에서 ? 3개 객체들의 순열을 얻는 방법은 없을까?
  • 7. 의 순열 의 순열 ? 방법 1Example 새로운 객체 을 가능한 자리들에 삽입!
  • 8. 방법 1Generalization 의 각 순열 에 대해 수 을 모든 가능한 자리에 삽입!
  • 9. 방법 2Example 이런 배열을 만든다. 이름을 객체 크기 순으로 변경
  • 10. 방법 2Generalization 의 각 순열 에 대해 아래 방식으로 나머지 개의 순열을 얻는다. 그런 다음 순열의 요소들의 이름을 수 을 요소 크기 순으로 사용해서 바꾼다
  • 11. Definition 계승Factorial 차례곱 1부터 n 까지의 연속된 자연수를 차례로 곱한 값 (4)
  • 12. 처음 몇 계승들은 기억해두는것이 좋다. (5) (6)
  • 13. 이렇게 써보자! 알고리즘이 10! 개 이상의 경우들을 판단해야만 한다면 실용적이지 못한 것이다. 알고리즘이 10! 가지를 판단해야하고 각 경우가 1msec 걸린다면 알고리즘 전체에는 약 한시간 (60.48분) 이 걸린다.
  • 14. 여기서 떠오르는 자연스러운 의문! ? 일일히 곱하지 않고 의 값이 대략 어느정도인지 알 수 있을까? 정말 자연스럽지 않은가?
  • 15. 의 예측 방법 1 Generalization 스털링 James Stirling (7) : 대략 같다 : 자연로그의 기수(밑) p.50
  • 16. 의 예측 방법 1Example 스털링 James Stirling 오차 1%
  • 17. 의 정확한 값을 소수들로 소인수 분해하는 방법 Generalization 다음과 같은 중복도를 가진 소수 는 을 나눌 수 있다 (8)
  • 18. 소인수 분해하는 방법 Example (8) 따라서 은 로 나누어지나 로는 나누어지지 않는다.
  • 19. 또 하나의 자연스러운 의문! ? 음이 아닌 정수 에 대해 을 정의 할 수 있다면 유리수, 심지어 실수 에 대한 계승함수도 정의 할 수 있지 않겠는가? 이 얼마나 자연스러운 의문인가?
  • 20. Example (4) 곱하기 대신 더하기를 생각해보면 (9) (10)
  • 21. Generalization Try… 스털링 James Stirling 비정수 에 대하여 을 일반화하기 위해서 여러가지 시도를 해 보았다. 식(7)을 무한합으로 확장했으나 안타깝게도 그 합은 어떠한 값에 대해서도 수렴하지 않았다.
  • 22. Generalization Try… 스털링 James Stirling 이것을 발견했지만 이 음이 아닌 정수에 대해서만 유효 이 합이 의 모든 분수값들에 대해 을 정의함을 증명하지 못했다. (11) (12)
  • 23. Generalization ! 오일러 Leonhard Euler (1729년) 같은 시기에 동일한 문제를 고민! 결국 Euler 가 적절한 일반화를 최초로 발견 (13) 단, 이 음의 정수가 아닐때 왜냐하면 이 음의 정수이면 분모가 0 이 되고 은 무한대가 되어버리기 때문에
  • 24. Generalization ! 에르미트 C.Hermite (1900년) 지금 여러분은 즐거운 계승Factorial 의 역사시간을 함께 하고 계십니다.ㅜㅜ 스털링의 아이디어가 실제로 비정수 에 대해 을 성공적으로 정의하며 사실 오일러와 스털링의 일반화들이 동일함을 증명!
  • 25. 계승의 표기 방법 오일러Euler 가우스Gauss 영국과 이탈리아 크랑Kramp 르장드르A.M.Legendre
  • 26. Definition 감마함수Gamma Funtion 이 함수를 감마함수라고 부른다 감마함수는 계승의 개념을 실수와 복소수까지 확장시킨 함수이다 (wikipedia) (14) (15) 오일러 극한정의
  • 27. 저 위에 (4,6). (3,2). (1,1). .(2,1) . X 함수 실수축 상에서의 감마함수 그래프
  • 28. 감마함수는 복소수에서도 유효 복소수는 보통 대신 라는 글자를 사용 (16) 오일러 반사공식 가 정수가 아닌 경우 항상 성립한다
  • 29. 복소평면 전체로 확장된 버전의 감마함수 (wikipedia)
  • 30. 는 가 0 이나 음의 정수일때 무한이 되는 반면 는 모든 복소수 에 대해 유효한 정의를 가진다 (well-defined) (17) 복소 적분의 경로는 에서 시작해서 원점을 반시계방향으로 돌아 로 돌아온다 ㅠㅠ
  • 31. Definition 차례거듭제곱Factorial powers 가 양의 정수일때 (18) 의 내림제곱 의 올림제곱 (19)
  • 32. n개의 객체들 중 k개를 일렬로 늘어놓는 방법의 수 (2) 결국 아래와 같음 (18)
  • 33. 차례거듭제곱들의 관계 (20) (21) 이상 스털링에서 오늘날에 이르기까지의 계승의 흥미로운 역사 였습니다. ㅜㅜ
  • 34. Reference Factorial http://ko.wikipedia.org/wiki/%EA%B3%84%EC%8A%B9 Gamma Functionhttp://en.wikipedia.org/wiki/Gamma_function