프로그래머, 수학으로 생각하라 24-2기 정성헌.

Slides:



Advertisements
Similar presentations
연천 새둥지마을 체재형 주말농장 준공식 초청장 오시는 길 주제 일시 장소 21C 경기농촌희망심기 2005년 제1기 교육수료마을
Advertisements

SPARCS Wheel Seminar Mango X Sugoi
출석수업 자료 교과서 범위: 제1장-4장.
10월 충북노회 남선교회 순회 헌신예배 묵 도 기 도 성 경 봉 독 특 송 찬 양 설 교 찬양 / 봉헌 봉 헌 기 도
글에 나타난 시대적 사회적 배경을 파악할 수 있다. 배경 지식과 의미 해석의 관련성을 이해할 수 있다.
패널자료 분석
라오디게아 교회의 교훈 본문 계 3: ○라오디게아 교회의 사자에게 편지하라 아멘이시요 충성되고 참된 증인이시요 하나님의 창조의 근본이신 이가 이르시되 15. 내가 네 행위를 아노니 네가 차지도 아니하고 뜨겁지도 아니하도다 네가 차든지 뜨겁든지 하기를 원하노라.
한알Ⅱ「더불어 살기」전국대회 일정표 날짜 시간 7월 26일(목) 7월 27일(금) 7월 28일(토) 7월 29일(일)
2013학년도 전라북도고등학교신입생 입학전형 기본계획
선거관리위원회 위원 공개모집 4차 공고 제4기 선거관리위원회를 구성하는 위원 모집의
2015학년도 1학기 버디 프로그램 오리엔테이션 (목) 16:00.
열왕기하 1장을 읽고 묵상으로 예배를 준비합시다..
오늘의 학습 주제 Ⅱ. 근대 사회의 전개 4. 개항 이후의 경제와 사회 4-1. 열강의 경제 침탈 4-2. 경제적 구국 운동의 전개 4-3. 사회 구조와 의식의 변화 4-4. 생활 모습의 변화.
전도축제 계획서 *일시 : 2013년 4월 21, 28일 주일 (연속 2주)
2009학년도 가톨릭대학교 입학안내.
한국 상속세 및 증여세 과세제도 한국 국세공무원교육원 교 수 최 성 일.
중세시대의 의복 학번 & 이름.
다문화가정의 가정폭력의 문제점 연세대학교 행정대학원 정치행정리더십 2학기 학번 이름 홍 진옥.
이공계의 현실과 미래 제조업 立國 / 이공계 대학생의 미래 준비
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
◆ 지난주 반별 출석 보기 ◆ 제 56 권 26호 년 6월 26일 반 선생님 친구들 재적 출석 5세 화평 김성희 선생님
第1篇 자치입법 개론.
교직원 성희롱·성폭력·성매매 예방교육 벌교중앙초등학교 박명희
제5장 새로운 거버넌스와 사회복지정책 사회복지정책이 어떤 행위자에 의해 형성되고 집행되는지, 어떤 과정에서 그러한 일들이 이루어지는지, 효과적인 정책을 위해서는 어떤 일들이 필요한지 등을 본 장에서 알아본다 개인들이 생활을 개선하는 가장 효과적인고 궁극적인 방법은 개별적.
임상시험 규정 (최근 변경 사항 중심으로) -QCRC 보수 교육 과정 전달 교육
서울특별시 특별사법경찰 수사 송치서류 유의사항 서울특별시 특별사법경찰과 북부수사팀장 안   진.
특수학교용 아동학대! 제대로 알고 대처합시다..
사회복지현장의 이해 Generalist Social Worker 사회복지입문자기초과정 반포종합사회복지관 김한욱 관장
학교보건 운영의 실제 한천초등학교 이 채 금.
제 출 문 고용노동부 귀중 본 보고서를 ’ ~ ‘ 까지 실시한 “근로감독관 직무분석 및 교육프로그램 개발에 관한 연구”의 최종보고서로 제출합니다  연구기관 : 중앙경영연구소  프로젝트 총괄책임자 : 고병인 대표.
학습센터란? 기도에 관해 배울 수 있는 다양한 학습 코너를 통하여 어린이들이 보다 더 쉽게 기도를 알게 하고, 기도할 수 있게 하며, 기도의 사람으로 변화될 수 있도록 하는 체험학습 프로그램이다. 따라서 주입식이지 않으며 어린이들이 참여할 수 있는 역동적인 프로그램으로.
Digital BibleⅢ 폰속의 성경 디지털 바이블 2008년 12월 ㈜씨엔커뮤니케이션 ㈜씨엔엠브이엔오.
후에 70인역(LXX)을 좇아 영어 성경은 본서의 중심 주제인 “엑소도스”(출애굽기)라 하였다.
성 김대건 피츠버그 한인 성당 그리스도왕 대축일 공지사항
예배에 대하여.
말씀 듣는 시간입니다..
하나님은 영이시니 예배하는 자가 신령과 진정으로 예배할지니라.
지금 나에게 주신 레마인 말씀 히브리서 13장 8절.
예수의 제자들 담당교수 : 김동욱.
Lecture Part IV: Ecclesiology
KAINOS 날마다 더하여지는 Kainos News 이번 주 찬양 20 / 300 – 20개의 셀, 300명의 영혼
예배의 외부적인 틀II - 예배 음악 조광현.
영성기도회 렉시오 디비나와 묵상기도 2.
성인 1부 성경 공부 지도목사: 신정우 목사 부 장: 오중환 집사 2010년. 5월 9일
남북 탑승객 150명을 태운 디젤기관차가 2007년 5월 17일 오전 경의선 철길을 따라 남측 최북단 역인 도라산역 인근 통문을 통과하고 있다. /문산=사진공동취재단.
성경 암송 대회 한일교회 고등부 (일).
천주교 의정부교구 주엽동본당 사목협의회 사목활동 보고서
III. 노동조합과 경영자조직 노동조합의 이데올로기, 역할 및 기능 노동조합의 조직형태 노동조합의 설립과 운영
여수시 MICE 산업 활성화 전략 ( 중간보고 )
1. 단위사업 관리, 예산관리 사업설정 (교직원협의/의견수렴) 정책 사업 학교 정책 사업 등록 사업 기본정보 목표 설정
※과정 수료자에 한하여 수강료의 80~100% 차등 환급함
평생학습중심대학 프로그램 수강지원서 접수안내 오시는 길 관악구&구로구민을 위한 서울대학교 -- 접수 일정 및 방법 안내--
서비스산업의 선진화, 무엇이 필요한가? 김 주 훈 한 국 개 발 연 구 원.
기존에 없던 창업을 하고 싶은데, 누구의 도움을 받아야 할지 모르겠어요
전시회 개요 Ⅰ. 전시명칭 개최기간 개최장소 개최규모 주 최 참 관 객 현 지 파 트 너 General Information
Homeplus 일 家 양 득 프로그램 소개 2015년 12월.
Home Network 유동관.
통신이론 제 1 장 : 신호의 표현 2015 (1학기).
I. 기업과 혁신.
Chapter 4 – 프로그래밍 언어의 구문과 구현 기법

ESOCOM – IPIX 고정IP서비스 제안서 Proposer ㈜이소컴.
화장품 CGMP 한국콜마㈜.
초화류 종자 시장 규모 100억원 이상(추정, 생산액의 10%정도 차지)
COMPUTER ARCHITECTIRE
[ 한옥 실측 ] 1. 약실측 2. 정밀실측 조선건축사사무소.
14. 컴파일러 자동화 도구 스캐너 생성기 파서 생성기 코드 생성의 자동화
A제조용수/B환경관리/C시설관리 ㈜ 에이플러스 코리아
Introduction to Network Security
Presentation transcript:

프로그래머, 수학으로 생각하라 24-2기 정성헌

무슨 책이지??? 프로그래밍을 더 잘 이해할 수 있도록 수학적 사고방식을 길러주는 책

INDEX 1장 0이야기 2장 논리 3장 나머지 4장 수학적 귀납법 5장 순열과 조합 6장 재귀 7장 지수적 폭발 8장 계산할 수 없는 문제 9장 프로그래머 수학이란?

“ 순열과 조합 ”

이 장에서 배울 내용 78% 22% 10% 수를 세는 것이란? 순열 조합 22% 78%

누락과 중복에 주의해서 수를 세자 덧셈법칙 |A U B| = |A| + |B| - |A ∩ B| 곱셈법칙 |A x B | = |A| x |B| 곱셈법칙: 주사위 3개가 있을 때 나올 수 있는 경우의 수는 ? 6*6*6=216가지 22% 78%

순열 N개 중에 K개를 선택하여 순서를 생각하며 나열 ex) 5장의 카드로부터 3장을 뽑아 나열하는 경우 일반화하기 5P3 = 5*4*3 =60 일반화하기 nPk = n * (n-1) * (n-2) * … * (n-k+1) 78%

조합 N개 중에 M개를 순서를 생각하지 않고 선택하는 것 ex) 5장의 카드로부터 3장을 선택하는 경우 일반화하기 5C3 = (5*4*3)/(3*2*1) =10 일반화하기 nCk = 𝑛! 𝑛−𝑘 !∗𝑘! 78%

Quiz 카드가 5장 있는데, 조커 2장과 J,Q,K 각각 1장씩으로 구성되어 있습니다. 이 5장의 카드를 가로로 나열했을 때 왼쪽 끝이나 오른쪽 끝 중 적어도 한쪽이 조커가 되는 나열 방법은 몇가지일까요? 단, 조커 2장은 서로 구별하지 않습니다. 조커 J Q K 조커 78%

Answer 1) (왼쪽 끝이 조커인 경우+오른쪽 끝이 조커인 경우 –양쪽 끝이 조커인 경우)/2 2*4P4 2*4P4 2P2*3P3 2) 모든 나열 방법 – 양끝 모두 조커가 아닌 나열방법 5P5/2 (3P2*3P3) /2 = 42 1)전부 조커의 중복을 고려하지 않았기 때문에 끝에 2로 나눠줌 2)양끝에 J,Q,K에서 2개 뽑아 나열하는 경우 3p2* 남은 3장을 나열하는 경우 3p3 / 조커 중복 2 78%

“ 재귀 ”

이 장에서 배울 내용 78% 22% 10% 하노이의 탑 피보나치 수열 22% 78%

하노이의 탑 3개의 기둥이 있다. 기둥 A에는 원반이 6장 쌓여있다. 기둥 A에 있는 6장의 원반을 모두 기둥 B로 옮기자. 단, 한번에 움직일 수 있는 원반은 기둥의 가장 위에 놓인 원반 1개뿐이다. 어떤 원반위에 그보다 더 큰 원반을 쌓을 수는 없다. A B C 22%

힌트 작은 하노이 탑을 풀면서 생각해보자! 우선 3장의 원반을 대상으로 생각해보자 A의 원반을 B로 옮긴다. A의 원반을 C로 옮긴다. B의 원반을 C로 옮긴다. C의 원반을 A로 옮긴다. C의 원반을 B로 옮긴다. 3수 동안 2장의 원반을 기둥 A에서 C로 옮긴다 78% 3수 동안 2장의 원반을 기둥 C에서 B로 옮긴다

힌트 H(n-1) 1 H(n-1) H(n) = H(n-1) + 1 + H(n-1) A의 원반을 B로 옮긴다. A의 원반을 C로 옮긴다. B의 원반을 C로 옮긴다. C의 원반을 A로 옮긴다. C의 원반을 B로 옮긴다. H(n-1) 3수 동안 2장의 원반을 기둥 A에서 C로 옮긴다 1 H(n-1) 3수 동안 2장의 원반을 기둥 C에서 B로 옮긴다 78% H(n) = H(n-1) + 1 + H(n-1) N하노이를 푸는 횟수 N-1하노이를 푸는 횟수 가장 큰 원반을 움직인 횟수 N-1하노이를 푸는 횟수

피보나치 수열 태어난 지 2일 지나면 새끼를 한 마리 낳고 그 이후는 매일 새끼 한 마리씩을 낳는 생물이 있다. 1일째에 막 태어난 생물을 한 마리 받았다고 합시다(이 생물이 처음 새끼를 낳는 것은 3일째 이다) 11일째에는 전부 몇 마리가 될까요?

피보나치 수열 1일 1마리 2일 1마리 3일 2마리 4일 3마리 5일 5마리

피보나치 수열 F(n) = F(n-1) + F(n-2) N일째의 생물 N-1째까지의 생물 N-2일째까지의 생물이 낳은 새끼

“ 지수적 폭발 ”

이 장에서 배울 내용 78% 22% 10% 지수적 폭발이란? 이진검색 로그 암호 22% 78%

지수적 폭발이란? Quiz 달에 닿는 종이 접기 단 39번! 수가 급격히 증가하는 것을 지수적 폭발이라 한다. 단 39번 접으면 달까지 닿는다. 놀랍지 않은가? 두께 1mm인 종이가 있다. 이 종이를 접을 때 마다 두께가 2배씩 늘어난다. 달까지 거리가 약 39만 km라고 할 때 몇번을 접으면 달까지 닿을까? 2 39 = 274,877.906944km 2 39 = 549,755.813888km 22% 78% 단 39번!

이진검색 : 지수적 폭발을 이용한 검색 15명의 용의자중 1명이 범인이다. “범인이 누구입니까?”라고 물어봐서 몇번만에 범인을 찾을 수 있을까? 단, 질문 받은 사람은 (1)범인은 저입니다. (2)범인은 저보다 왼쪽에 있습니다. (3)범인은 저보다 오른쪽에 있습니다. 로 대답한다. 이 문제에서 보듯이 주기성을 찾는 것이 중요하다! 22% 78%

Answer 3번만에 찾을 수 있다.

로그란? 큰 수를 다루는 도구이다! Log101000 = 3 Log28 = 3 Log10(A*B) = Log10A + Log10B 22% 78%

1234712rWJDFQWRQWERRCC$((O@#$KJ!@#$!@#*$(CWEORO@CO#J@#R@$#*( 암호 : 지수적 폭발로 비밀을 지킴 키 101010101110101110101010 메시지 암호문 안녕하세요. 이번에는 일요일에 신촌에서 만나요. 1234712rWJDFQWRQWERRCC$((O@#$KJ!@#$!@#*$(CWEORO@CO#J@#R@$#*( 암호화 키의 비트길이가 길수록 무작위 공격 시간이 오래 걸린다!! 4bit : 16가지 경우의 수 5bit : 32가지 경우의 수 6bit : 64가지 경우의 수 … 현재는 256,512bit의 키를 사용한다. 그래서 무작위 공격을 하기에 시간이 오래걸려 해킹을 할 수가 없다. 256bit는 2^256가지 경우의 수 이고 512bit는 2^512가지 경우의 수이다. 78%

지수적 법칙을 이용하면 문제를 푸는데 강력한 무기가 될 수도 있지만 주의하지 않으면 큰 시간적 문제가 생기기도 한다! 22% 78%

“ 계산할 수 없는 문제 ”

이 장에서 배울 내용 78% 22% 10% 1. 귀류법이란 2. 계산할 수 없는 문제 22% 78%

귀류법이란? 우선 ‘ 증명하고자 하는 명제의 부정'이 성립한다고 가정한다. 그 가정을 기본으로 증명을 진행하여 모순을 유도한다. 22% 78%

계산할 수 없는 문제 계산할 수 없는 문제라는 것은 프로그램으로 푸는 것이 원리적으로 불가능한 문제를 말한다. 22%

QUIZ : 정지 판정 문제 프로그램의 동작은 반드시 다음 중 하나가 된다. 1)한정된 시간 안에 동작을 정지한다. 2)한정된 시간 안에 동작을 정지하지 않는다. 영원히 정지하지 않음 데이터 프로그램 결과를 출력하고 정지함

프로그램에 데이터를 주어 동작하게 했을 때 한정된 시간 안에 동작이 멈추는지 판단하는 프로그램은 누구도 만들 수 없다. 귀류법으로 증명하기! 22%

1. 판정 프로그램을 만들 수 있다고 가정한다. 판정 프로그램의 파라미터로 판정 프로그램과 데이터를 준다. HaltChecker(p,d) 판정 결과는 다음과 같이 표현한다. HaltChecker(p,d) = true (p에 d를 입력했을 때 p가 한정된 시간 안에 정지할 때) false ( p에 d를 입력했을 때 p가 한정된 시간 안에 정지하지 않을 때) 22%

2.프로그램 SelfLoop작성하기 HaltChecker를 이용하여 다음과 같은 함수 SelfLoop를 만든다. SelfLoop(p) { halts = HaltChecekr(p,p); if(halts){ while(1>0){ } 1)HaltCheker를 사용하여 프로그램 p에 대해 그 프로그램 p 자신을 입력데이터로 주었을 때 정지할 것인가를 판정한다. 2)만약 HaltChecker가 정지한다고 판정하면 SelfLoop는 무한 순환에 빠진다. 3)만약 HaltChecker가 정지하지 않는다고 판정하면 SelfLoop는 바로 종료되고 정지한다. 22%

3-1. 모순 이끌어내기 [1]SelfLoop(SelfLoop)가 한정된 시간 안에 정지할 때 ->SelfLoop(SelfLoop)가 한정된 시간 안에 정지한다는 것은 HaltChecker(SelfLoop,SelfLoop)가 False가 될 때이다. HaltChecker(SelfLoop,SelfLoop)가 False가 된다는 것은 SelfLoop에 SelfLoop를 입력했더니 SelfLoop는 정지하지 않는다는 의미다. ->SlefLoop(SelfLoop)가 한정된 시간 안에 정지할 때를 생각하는데 SelfLoop에 SelfLoop를 입력했더니 SelfLoop는 정지하지 않는다는 결론이 나와버려 모순이 되었다. 22%

3-2. 모순 이끌어내기 [2]SelfLoop(SelfLoop)가 무한순환에 빠질 때 HaltChecker(SelfLoop,SelfLoop)가 true가 될 때이다. HaltChecker(SelfLoop,SelfLoop)가 true가 된다는 것은 SelfLoop에 SelfLoop를 입력했더니 SelfLoop는 정지한다는 의미이다. ->SlefLoop(SelfLoop)가 한정된 시간 안에 무한 순환할 때를 생각하는데 SelfLoop에 SelfLoop를 입력했더니 SelfLoop는 정지정지한다는 결론이 나와버려 모순이 되었다. 22%

4 결론 HaltChecker를 만들 수 있다는 가정에서 출발하면 반드시 모순이 생기게 된다. 정지 판정 문제를 계산할 수 없다는 것은 1963년 앨런 튜링(Alan Turing)이 증명했다. 22%

“ 프로그래머 수학이란 ”

이 책을 되돌아보며 1장 0이야기 10% 2장 논리 3장 나머지 4장 수학적 귀납법 5장 순열과 조합 22% 6장 재귀 7장 지수적 폭발 8장 계산할 수 없는 문제 9장 프로그래머 수학이란? 78% 22% 10% 22% 78%

‘0’은 규칙을 간단하게 만든다. 0을 도입하면 패턴이나 규칙을 쉽게 만들 수 있다. 규칙을 만들면 기계적으로 처리하기 쉬워지며 컴퓨터 문제 해결을 맡기기도 편해진다. 22%

이 책을 되돌아보며 1장 0이야기 10% 2장 논리 3장 나머지 4장 수학적 귀납법 5장 순열과 조합 22% 6장 재귀 7장 지수적 폭발 8장 계산할 수 없는 문제 9장 프로그래머 수학이란? 78% 22% 10% 22% 78%

‘논리’는 둘로 나누기 문제를 하나의 커다란 덩어리로 풀지 말고 작게 나눠 풀어라 논리는 자연어의 애매함을 피하는 도구이다. 22%

이 책을 되돌아보며 1장 0이야기 10% 2장 논리 3장 나머지 4장 수학적 귀납법 5장 순열과 조합 22% 6장 재귀 7장 지수적 폭발 8장 계산할 수 없는 문제 9장 프로그래머 수학이란? 78% 22% 10% 22% 78%

‘나머지’로 그룹화 문제 대상이 무한히 많은 경우 주기성을 발견하면 적은 개수의 문제로 바꿔 풀 수 있다. 나머지를 잘 사용하면 그룹화를 이용해 문제를 간단히 풀 수 있다. 22%

이 책을 되돌아보며 1장 0이야기 10% 2장 논리 3장 나머지 4장 수학적 귀납법 5장 순열과 조합 22% 6장 재귀 7장 지수적 폭발 8장 계산할 수 없는 문제 9장 프로그래머 수학이란? 78% 22% 10% 22% 78%

‘수학적 귀납법'은 2단계로 무한에 도전한다. 수학적 귀납법은 반복(순환)으로 문제를 푸는 기초가 된다. 22%

이 책을 되돌아보며 1장 0이야기 10% 2장 논리 3장 나머지 4장 수학적 귀납법 5장 순열과 조합 22% 6장 재귀 7장 지수적 폭발 8장 계산할 수 없는 문제 9장 프로그래머 수학이란? 78% 22% 10% 22% 78%

‘순열과 조합'에서는 대상의 성질을 파악하는 것이 중요하다 대상의 성질을 조사하여 이를 일반화하는 방법을 이용하면 직접 셀 수 없는 것들을 셀 수 있다. 22%

이 책을 되돌아보며 1장 0이야기 10% 2장 논리 3장 나머지 4장 수학적 귀납법 5장 순열과 조합 22% 6장 재귀 7장 지수적 폭발 8장 계산할 수 없는 문제 9장 프로그래머 수학이란? 78% 22% 10% 22% 78%

‘재귀’는 자신 안에서 자신을 발견하는 것 커다란 문제에 직면했을 때, 재귀적인 구조를 발견한다면 점화식을 사용하여 문제의 성질을 조사할 수 있다. 22%

이 책을 되돌아보며 1장 0이야기 10% 2장 논리 3장 나머지 4장 수학적 귀납법 5장 순열과 조합 22% 6장 재귀 7장 지수적 폭발 8장 계산할 수 없는 문제 9장 프로그래머 수학이란? 78% 22% 10% 22% 78%

‘지수적 폭발’이란 지수적 폭발을 포함한 문제는 약간의 규모만 커져도 다룰 수 없을 정도로 되지만, 지수적 폭발을 적절하게 사용하면 큰 규모의 문제를 다루기 쉽게 바꿀 수 있다. 22%

이 책을 되돌아보며 1장 0이야기 10% 2장 논리 3장 나머지 4장 수학적 귀납법 5장 순열과 조합 22% 6장 재귀 7장 지수적 폭발 8장 계산할 수 없는 문제 9장 프로그래머 수학이란? 78% 22% 10% 22% 78%

‘계산할 수 없는 문제'는 원리적인 제한을 나타낸다. 컴퓨터로 풀 수 있는 문제는 무한하지만 기껏해야 셀 수 있는 문제의 집합이다. 모든 문제는 셀 수 있는 문제보다 훨씬 큰 풀 수 없는 무한한 문제들이 존재한다. 22%

프로그래머에게 고도의 수학적 지식을 요구할 때는 그리 많지 않다. 하지만 문제의 구조를 파악하고 그것을 간단하게 표현하여 규칙을 정리할 때 기본적인 수학적 지식들이 기본 베이스가 된다. 22%

THANK YOU