전체 글 462

통계학개론 - (9) 구간 추정

- 구간추정 구간추정값은 오차한계라 불리는 값을 점추정값에 더하고 뺌으로써 계산된다. ​ 1. 모집단의 표준편차가 알려진 경우 - 대표적인 신뢰수준들에 대한 z값 ​ EX) n=36, 표본평균 소득은 41,100달러, 모집단의 분포는 대략 대칭적이다. 모집단 표준편차는 4,500달러로 추정된다. 그리고 구간추정을 위한 신뢰계수는 0.95가 사용된다. -> 오차한계 = 1.96*4500/6 = 1,470 즉 39,630~42,570달러 사이가 95% 신뢰할 수 있다는 것이다. 신뢰수준을 더 높이기 위해서는 오차한계와 신뢰구간의 폭이 더 커져야 한다. ​ ​ 2. 모집단의 표준편차가 알려지지 않은 경우 표본의 표준편차 s를 추정치로 사용한다. 이 때, 표본평균의 구간 추정값은 t분포에 기초한다. ​ - t ..

[알고리즘] 백준 17478 파이썬 - 재귀함수가 뭔가요?

17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 문제 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대학교가 자신과 맞는가에 대한 고민을 항상 해왔다. 중앙대학교와 자신의 길이 맞지 않다고 생각한 JH 교수님은 결국 중앙대학교를 떠나기로 결정하였다. 떠나기 전까지도 제자들을 생각하셨던 JH 교수님은 재귀함수가 무엇인지 물어보는 학생들을 위한 작은 선물로 자동 응답 챗봇을 준비하..

[알고리즘] 백준 12018 파이썬 - Yonsei TOTO

12018번: Yonsei TOTO 연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배 www.acmicpc.net 문제 연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배가 끝이 나면 과목에 대해서 마일리지를 많이 투자한 순으로 그 과목의 수강인원만큼 신청되는 방식이다. 성준이는 연세대학교 재학 중인 학생이다. 성준이는 저번 수강신청에서 실패하여 휴학을 했기 때문에 이번 수강신청만은 필사적으로 성공하려고 한다. 그래서 성준이는 학교..

통계학개론 - (8) 표본추출과 점추정

- 표본추출 - 유한 모집단 규모 n인 유한한 모집단으로부터 규모 n은 표본 각각이 선택될 확률이 동일하다. ​ - 무한 모집단 모집단의 요소들이 계속 진행되는 과정에 있기 때문에 생성되는 요소의 수에 상한이 없다. ​ - 점추정 모집단 모수를 추정하기 위해 표본 통계량의 값을 계산하는데 표본 자료를 사용할 수 있다. 모집단이 정규분포일 때, 표분평균의 표본분포는 표본크기에 관계없이 정규분포이다. 대부분, 표본 규모가 30이상이면, 표본평균의 표본분포는 정규분포에 가까워진다. 모집단의 분포가 비대칭적이거나 극단값이 있는 경우, 표본 규모는 50이상이 좋다. ​ + 중심극한정리 모집단으로부터 규모 n의 무작위 표본을 선택할 때, 표본평균의 표본분포는 표본규모가 커질수록 정규분포에 가까워진다. ​ EX) 3..

[알고리즘] 백준 2161 파이썬 - 카드1

2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면..

[알고리즘] 백준 1431 파이썬 - 시리얼 번호

1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net 문제 다솜이는 기타를 많이 가지고 있다. 그리고 각각의 기타는 모두 다른 시리얼 번호를 가지고 있다. 다솜이는 기타를 빨리 찾아서 빨리 사람들에게 연주해주기 위해서 기타를 시리얼 번호 순서대로 정렬하고자 한다. 모든 시리얼 번호는 알파벳 대문자 (A-Z)와 숫자 (0-9)로 이루어져 있다. 시리얼번호 A가 시리얼번호 B의 앞에 오는 경우는 다음과 같다. A와 B의 길이가 다르면, 짧은 것이 먼저 온다. 만약 서로 길이가 같다면, A의 모든 자리수의 합과 B..

[알고리즘] 백준 11057 파이썬 - 오르막 수

11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net 문제 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수의 길이 N이 주어졌을 때, 오르막 수의 개수를 구하는 프로그램을 작성하시오. 수는 0으로 시작할 수 있다. 문제풀이 n=int(input()) #01 dp=[1]*10 for i in range(n-..

인공지능수학 - (4) 고윳값과 고유벡터

- 고윳값과 고유벡터 행렬 A의 고유벡터 x는 0이 아니므로 비가역행렬이어야 한다. 즉 위 식의 행렬식=0이다. 이를 A의 특성다항식이라고 한다. ​ 고윳값과 고유벡터는 전치행렬일 때는 값을 고윳값을 가진다. 또한 A의 k승일 때도 고윳값도 k승한 값이고, 고유벡터는 그대로 x이다. A의 역행렬의 고윳값 역시 역수한 값과 같다. ​ 서로 다른 고윳값을 가지는 고유벡터들은 서로 선형독립이다. 즉 선형독립의 특성을 갖는다. ​ 두 행렬이 서로 닮음관계라면, 두 행렬의 모든 고윳값은 서로 같다. - 대각행렬 행렬 중에서 대각선을 제외한 나머지 성분들이 모두 0인 행렬을 말한다. 이는 또한 양쪽에 P를 곱하여 AP=PD도 성립한다. ​ 동치 즉 어느 쪽을 사용하여도 같은 결과를 가져오는 것을 의미한다. ​ 즉 ..

[알고리즘] 백준 10434 파이썬 - 행복한 소수

10434번: 행복한 소수 각 테스트 케이스마다, 테스트 케이스의 번호, 입력받은 수, 만일 M이 행복한 소수라면 YES 아니라면 NO를 공백으로 각각 구분하여 출력한다. www.acmicpc.net 문제 Q. : 아래의 수열에서 다음에 올 수를 찾으시오. 313 331 367 ... 경복 : ?? 강산 : 379. 경복 : 뭐? 강산 : 행복한 소수잖아. 경복 : 행복한 뭐? 강산 : 그러니까, 자리수의 제곱의 합을 구하는 연산을 계속 반복했을 때 1이 되는 수를 행복한 수라고 하잖아. 행복한 소수는 그 중 소수인 수이고. 7은 분명 소수이다. 과연 행복할까? 7 → 72 = 49 49 → 42 + 92 = 97 97 → 92 + 72 = 130 130 → 12 + 32 + 02 = 10 10 → 12..

[알고리즘] 백준 5635 파이썬 - 생일

5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. 문제풀이 tmp=[] for _ in range(int(input())): #01 n,d,m,y=input().split() tmp.append([n,int(d),int(m),int(y)]) #02 tmp.sort(key=lambda x:(x[3],x[2],x[1])) print(tmp[-1][0]) print(tmp[0][0]) - #01 : 입력받은 값을 n,d,m,y로 나누어 저장한다. tmp에는 d,m,y를 i..