SlideShare a Scribd company logo
Doing math with python.ch05
https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/DoingMathWithPython.Ch05.ipynb
• 원서명 : Doing Math with Python: Use Programming to Explore Algebra,
Statistics, Calculus, More! (ISBN 9781593276409)
• 지은이 : 아미트 사하(Amit Saha)
• 원서 및 관련자료 : https://www.nostarch.com/doingmathwithpython
• 번역서 : http://www.acornpub.co.kr/book/doing-math-with-python
3
 집합(set) 이란 ?
개별 객체(element)의 모음(collection)
동일한 2개의 원소는 가질 수 없음
 FiniteSet 클래스를 사용
 동일한 집합에 정수, 분수, 부동소수점을 같이 저장하는게 가능
4
 공집합(empty set) : 인자 없이 생성
 List, Tuple을 인자로 생성 가능
5
 카디널리티(cardinality) : 구성원수, len() 함수로 계산
 집합 내 요소 존재 여부는 in 연산자로 가능
 중복값 허용 불가
 입력순서와 무관하게 저장되며
같은 집합으로 취급
6
 부분집합(subset) : 자신의 모든 구성원이 다른 집합의 구성원에 포함될 경우
 초집합(superset) : 자신의 구성원으로만 다른 집합이 구성된 경우
 공집합은 모든 집합의 부분집합
 자기자신은 자기자신의 부분집합이면서 초집합
7
 파워집합(powerset) : 모든 가능한 부분집합
- 2의 cardinality 승 만큼의 부분집합을 가짐 (공집합, 자기자신 포함)
- powerset() 함수로 찾을 수 있음
8
 합집합(union) : 두 집합의 구성원을 모두 포함하는 집합
 교집합(intersect) : 두 집합에 공통적으로 존재하는 구성원으로만 이루어진 집합
9
 곱집합 (카르테시안 곱) : 두 집합의 구성원을 택해 모든 가능한 쌍으로 구성된 집합
- 곱셈 연산으로 이용
- 지수연산을 이용해 자기자신과 설정한 횟수만큼의 곱도 가능
10
 추의 길이별 주기값을 구하는 수식
- T : 왕복 소요 시간
- L : 추의 길이
- pi, g : 상수값
 길이에 따라 추의 주기 변화가 알고 싶은 경우 L을 변경해가면서 입력하면 됨
11
 서로 다른 3곳(중력값 g가 다름)에서 실험할 경우
- 적도 : 9.78, 북극 : 9.83, 호주 : 9.8
- 곱집합을 이용해서 모든 경우의 수 계산
12
 실험(experiment) : 확룰을 위한 테스트, 한 번의 실험을 시도(trial)이라 함
 표본공간(S) : 모든 가능한 실험결과의 집합. ex 주사위 던지기의 표본공간 S = {1,2,3,4,5,6}
 사건(E) : 표본공간의 부분집합 ex 주사위를 던져서 3이 나올 확률
13
 1 ~ 20 사이의 정수 중 소수(prime number)일 확률
14
 사건 A와B의 확률
- 합집합(union) : A 이거나 B일 확률
- 교집합(intersect) : A 이면서 B일 확률
- ex 주사위를 던져서(S) 소수(A)이거나 홀수(B)일 확률)
- S = {1,2,3,4,5,6}
- A = {2,3,5}
- B = {1,3,5}
15
 random 모듈 사용
- randint(from, to) : from에서 to 사이의 숫자를 생성
- random() : 0에서 1 사이의 부동소수점 숫자 생성
 주사위를 굴려 총합이 20될때까지 몇 번을 던지는 지를 랜덤을 통해 구현
16
 목표로 한 점수가 최대던지기 횟수 내에 가능한지 그 여부 및 확률을 계산
- 2번 던져서 10이상이 나올 확률 : 16.67%
- 3번 던져서 20이상이 나올 확률 : 0%
17
 그 동안 살펴본 균일 랜덤(uniform random number)이 아니라 사건마다 확률이 다른 경우
 높은 확률에 더 넓은 영역을 지정하여 수행
 ex 동전이 찌그러져서 앞면이 나올 확률이 2/3이고, 뒷면이 나올 확류이 1/3인 경우
18
 인자로 확률값 리스트를 받아서 해당 index를 리턴해주는 일반함수
19
 Test : $5 (1/6), $10 (1/6), $20 (1/3), $50 (1/3) 확률로 지폐를 분배하는 ATM개의 경우
20
 matplotlib_venn 패키지를 이용해 구현
- ex. 20이하 소수 와 홀수를 벤다이어그램으로 구현
https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/DoingMathWithPython.Ch05.ipynb
https://www.nostarch.com/doingmathwithpython
22
(학번, 축구 좋아하는지 여부, 다른 운동 좋아하는지 여부) 가 저장된 csv 파일을 읽어서 그 결과를 보
여주는 벤다이어 그램을 작성하세요.
- 필자가 작성한 예제 위치
https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/files/ch05.venn.data.csv
23
 기대값이란 모든 경우의 수에 값에 그 확률을 곱한 값을 의미합니다.
 주사위 던지기를 그 회수를 늘려가면서 기대값대로 나오는지 입증하는 프로그램을 작성하세요.
 참고로 주사위의 기대값은 다음과 같습니다.
24
 동전의 던져서 앞면이 나오면 1을 얻고, 뒤가 나오면 1.5를 잃는 게임을 시뮬레이션하는 코드를
작성하세요.
25
 파이썬 표준 라이브러리 shuffle() 함수를 사용해서
트럼프카드 52장을 섞는 기능을 구현하세요.
- 정답예제 (숫자, 문자)
26
 정사각형안에 원이 내접해 있는 판이 있다고 가정할 경우 다트를 던져서 원안에 맞을 확률은 사
격형의 넓이 대비 원의 넓이의 비율과 같습니다. 이를 이용해서 다트 던지기를 여러번 시도하여
실제 원의 넓이와 가까워지는지 프로그램을 통해서 구현하세요.
 실제 원의 면적 계산
Doing math with python.ch05

More Related Content

PPTX
Doing mathwithpython.ch02
PPTX
Doing math with python.ch07
PPTX
Doing math with python.ch01
PPTX
Doing math with python.ch03
PPTX
Doing math with python.ch04
PPTX
Effective Python, Clean Code
PPTX
1. alps c&c++
PDF
[Algorithm] Big O Notation
Doing mathwithpython.ch02
Doing math with python.ch07
Doing math with python.ch01
Doing math with python.ch03
Doing math with python.ch04
Effective Python, Clean Code
1. alps c&c++
[Algorithm] Big O Notation

What's hot (20)

PDF
정보과학회 FTL논문 아이디어
PDF
[Algorithm] Heap Sort
PDF
A tour of go
PPTX
Efficient linear skyline algorithm in two dimensional space
PDF
Array & Loop
PPT
2007 Icpc2
PPTX
13장 연산자 오버로딩
PPTX
RNC C++ lecture_5 Array
PPTX
From MATLAB User to Python User
PPTX
분할정복
PPTX
모바일 해커톤 사전교육 3일차
PPTX
Selection Sort Algorithm(선택 정렬 알고리즘)
PPT
1.4.4 입력과 출력
PPTX
가산기
PDF
Deferred Shading
PDF
5 python기초 모듈
PDF
D2 Depth of field
PPT
게임 프로그래머를 위한 기초 수학 및 물리 - 8장
PDF
컴퓨터 프로그램 구조와 해석 3.5
PDF
D2 Rain (1/2)
정보과학회 FTL논문 아이디어
[Algorithm] Heap Sort
A tour of go
Efficient linear skyline algorithm in two dimensional space
Array & Loop
2007 Icpc2
13장 연산자 오버로딩
RNC C++ lecture_5 Array
From MATLAB User to Python User
분할정복
모바일 해커톤 사전교육 3일차
Selection Sort Algorithm(선택 정렬 알고리즘)
1.4.4 입력과 출력
가산기
Deferred Shading
5 python기초 모듈
D2 Depth of field
게임 프로그래머를 위한 기초 수학 및 물리 - 8장
컴퓨터 프로그램 구조와 해석 3.5
D2 Rain (1/2)
Ad

Similar to Doing math with python.ch05 (20)

PPTX
Doing math with python.ch06
PPTX
집합
PDF
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
PPTX
python 수학이해하기
PPTX
확률 통계 (파이썬)
PDF
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
PDF
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
PDF
2012 Dm A0 01 Pdf
PDF
2012 Dm A0 01 Pdf
PPTX
2019 ppc answers
PDF
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
PDF
양성봉 - 알기쉬운 알고리즘 - 1장알고리즘의첫걸음
PDF
SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선문제
PDF
확률변수와 분포함수
PDF
2019 고려대학교 프로그래밍 경시대회 풀이
PPTX
Python Sympy 모듈 이해하기
PPTX
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
PDF
[SHAKE] 경인지역 6개연합 프로그래밍 경시대회 - 본선문제
PDF
2012 Dm B3 보고서(10백지원)
PDF
2012 Dm B3 보고서(10백지원)
Doing math with python.ch06
집합
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
python 수학이해하기
확률 통계 (파이썬)
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
2012 Dm A0 01 Pdf
2012 Dm A0 01 Pdf
2019 ppc answers
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
양성봉 - 알기쉬운 알고리즘 - 1장알고리즘의첫걸음
SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선문제
확률변수와 분포함수
2019 고려대학교 프로그래밍 경시대회 풀이
Python Sympy 모듈 이해하기
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
[SHAKE] 경인지역 6개연합 프로그래밍 경시대회 - 본선문제
2012 Dm B3 보고서(10백지원)
2012 Dm B3 보고서(10백지원)
Ad

More from Seok-joon Yun (20)

PDF
Retrospective.2020 03
PDF
Sprint & Jira
PPTX
Eks.introduce.v2
PDF
Eks.introduce
PDF
AWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image Converter
PDF
아파트 시세,어쩌다 머신러닝까지
PPTX
Pro typescript.ch07.Exception, Memory, Performance
PPTX
Pro typescript.ch03.Object Orientation in TypeScript
PDF
C++ Concurrency in Action 9-2 Interrupting threads
PDF
Welcome to Modern C++
PDF
[2015-07-20-윤석준] Oracle 성능 관리 2
PDF
[2015-07-10-윤석준] Oracle 성능 관리 & v$sysstat
PDF
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
PDF
오렌지6.0 교육자료
PDF
[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3
PDF
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
PDF
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
PDF
[2015-06-05] Oracle TX Lock
PDF
[KOSSA] C++ Programming - 18th Study - STL #4
PDF
[KOSSA] C++ Programming - 17th Study - STL #3
Retrospective.2020 03
Sprint & Jira
Eks.introduce.v2
Eks.introduce
AWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image Converter
아파트 시세,어쩌다 머신러닝까지
Pro typescript.ch07.Exception, Memory, Performance
Pro typescript.ch03.Object Orientation in TypeScript
C++ Concurrency in Action 9-2 Interrupting threads
Welcome to Modern C++
[2015-07-20-윤석준] Oracle 성능 관리 2
[2015-07-10-윤석준] Oracle 성능 관리 & v$sysstat
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
오렌지6.0 교육자료
[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-05] Oracle TX Lock
[KOSSA] C++ Programming - 18th Study - STL #4
[KOSSA] C++ Programming - 17th Study - STL #3

Doing math with python.ch05

  • 2. https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/DoingMathWithPython.Ch05.ipynb • 원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, More! (ISBN 9781593276409) • 지은이 : 아미트 사하(Amit Saha) • 원서 및 관련자료 : https://www.nostarch.com/doingmathwithpython • 번역서 : http://www.acornpub.co.kr/book/doing-math-with-python
  • 3. 3  집합(set) 이란 ? 개별 객체(element)의 모음(collection) 동일한 2개의 원소는 가질 수 없음  FiniteSet 클래스를 사용  동일한 집합에 정수, 분수, 부동소수점을 같이 저장하는게 가능
  • 4. 4  공집합(empty set) : 인자 없이 생성  List, Tuple을 인자로 생성 가능
  • 5. 5  카디널리티(cardinality) : 구성원수, len() 함수로 계산  집합 내 요소 존재 여부는 in 연산자로 가능  중복값 허용 불가  입력순서와 무관하게 저장되며 같은 집합으로 취급
  • 6. 6  부분집합(subset) : 자신의 모든 구성원이 다른 집합의 구성원에 포함될 경우  초집합(superset) : 자신의 구성원으로만 다른 집합이 구성된 경우  공집합은 모든 집합의 부분집합  자기자신은 자기자신의 부분집합이면서 초집합
  • 7. 7  파워집합(powerset) : 모든 가능한 부분집합 - 2의 cardinality 승 만큼의 부분집합을 가짐 (공집합, 자기자신 포함) - powerset() 함수로 찾을 수 있음
  • 8. 8  합집합(union) : 두 집합의 구성원을 모두 포함하는 집합  교집합(intersect) : 두 집합에 공통적으로 존재하는 구성원으로만 이루어진 집합
  • 9. 9  곱집합 (카르테시안 곱) : 두 집합의 구성원을 택해 모든 가능한 쌍으로 구성된 집합 - 곱셈 연산으로 이용 - 지수연산을 이용해 자기자신과 설정한 횟수만큼의 곱도 가능
  • 10. 10  추의 길이별 주기값을 구하는 수식 - T : 왕복 소요 시간 - L : 추의 길이 - pi, g : 상수값  길이에 따라 추의 주기 변화가 알고 싶은 경우 L을 변경해가면서 입력하면 됨
  • 11. 11  서로 다른 3곳(중력값 g가 다름)에서 실험할 경우 - 적도 : 9.78, 북극 : 9.83, 호주 : 9.8 - 곱집합을 이용해서 모든 경우의 수 계산
  • 12. 12  실험(experiment) : 확룰을 위한 테스트, 한 번의 실험을 시도(trial)이라 함  표본공간(S) : 모든 가능한 실험결과의 집합. ex 주사위 던지기의 표본공간 S = {1,2,3,4,5,6}  사건(E) : 표본공간의 부분집합 ex 주사위를 던져서 3이 나올 확률
  • 13. 13  1 ~ 20 사이의 정수 중 소수(prime number)일 확률
  • 14. 14  사건 A와B의 확률 - 합집합(union) : A 이거나 B일 확률 - 교집합(intersect) : A 이면서 B일 확률 - ex 주사위를 던져서(S) 소수(A)이거나 홀수(B)일 확률) - S = {1,2,3,4,5,6} - A = {2,3,5} - B = {1,3,5}
  • 15. 15  random 모듈 사용 - randint(from, to) : from에서 to 사이의 숫자를 생성 - random() : 0에서 1 사이의 부동소수점 숫자 생성  주사위를 굴려 총합이 20될때까지 몇 번을 던지는 지를 랜덤을 통해 구현
  • 16. 16  목표로 한 점수가 최대던지기 횟수 내에 가능한지 그 여부 및 확률을 계산 - 2번 던져서 10이상이 나올 확률 : 16.67% - 3번 던져서 20이상이 나올 확률 : 0%
  • 17. 17  그 동안 살펴본 균일 랜덤(uniform random number)이 아니라 사건마다 확률이 다른 경우  높은 확률에 더 넓은 영역을 지정하여 수행  ex 동전이 찌그러져서 앞면이 나올 확률이 2/3이고, 뒷면이 나올 확류이 1/3인 경우
  • 18. 18  인자로 확률값 리스트를 받아서 해당 index를 리턴해주는 일반함수
  • 19. 19  Test : $5 (1/6), $10 (1/6), $20 (1/3), $50 (1/3) 확률로 지폐를 분배하는 ATM개의 경우
  • 20. 20  matplotlib_venn 패키지를 이용해 구현 - ex. 20이하 소수 와 홀수를 벤다이어그램으로 구현
  • 22. 22 (학번, 축구 좋아하는지 여부, 다른 운동 좋아하는지 여부) 가 저장된 csv 파일을 읽어서 그 결과를 보 여주는 벤다이어 그램을 작성하세요. - 필자가 작성한 예제 위치 https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/files/ch05.venn.data.csv
  • 23. 23  기대값이란 모든 경우의 수에 값에 그 확률을 곱한 값을 의미합니다.  주사위 던지기를 그 회수를 늘려가면서 기대값대로 나오는지 입증하는 프로그램을 작성하세요.  참고로 주사위의 기대값은 다음과 같습니다.
  • 24. 24  동전의 던져서 앞면이 나오면 1을 얻고, 뒤가 나오면 1.5를 잃는 게임을 시뮬레이션하는 코드를 작성하세요.
  • 25. 25  파이썬 표준 라이브러리 shuffle() 함수를 사용해서 트럼프카드 52장을 섞는 기능을 구현하세요. - 정답예제 (숫자, 문자)
  • 26. 26  정사각형안에 원이 내접해 있는 판이 있다고 가정할 경우 다트를 던져서 원안에 맞을 확률은 사 격형의 넓이 대비 원의 넓이의 비율과 같습니다. 이를 이용해서 다트 던지기를 여러번 시도하여 실제 원의 넓이와 가까워지는지 프로그램을 통해서 구현하세요.  실제 원의 면적 계산