[최대 공약수]
- 두 개 이상의 수에서 공통된 약수를 공약수라고 함
- 소인수분해를 하면 최대공약수 및 공약수를 구할 수 있다.
- 겹치는 소인수를 다 곱하면 최대공약수!
예제) 두 개의 수를 입력하면 공약수와 최대공약수를 출력하는 코드를 작성하자.
- 파이썬으로 최대공약수를 구하는 것은 "for문과 유클리드호제법"으로 구한다.
- 유클리드 호제법 : x, y의 최대공약수는 y, r(=x%y)의 최대공약수와 같다.
[최소 공배수]
- 공배수 : 두 개 이상의 수에서 공통된 배수를 공배수라고 한다.
- 공통인 소인수의 지수가 큰 값 * 공통이 아닌 모든 소인수
- 파이썬에서 최소공배수 : 최대공약수 구함 -> 최대공약수로 각각 나눈 값을 구함 -> 최대공약수와 그 값들 다 곱!
예제) 최소공배수 출력 프로그램
[진법]
- 특정 숫자 몇 개를 사용하여 수를 표시하는 방법이다.
- 10진수를 N진수로 바꿀 때 : N으로 나눠서 나머지 줍줍하면 됨!
-> divmod() 쓰면 될 거 같다.
- N진수를 10진수로 바꿀 때 : 각 자리수별로 N의 M제곱 형태를 모두 더하면 됨!
- bin() : 2진수로 바꾸는 함수
- oct() : 8진수로 바꾸는 함수
- hex() : 16진수로 바꾸는 함수
- 변환한 결과는 문자열이다!
- format() 함수를 이용하면, #b, #o, #x로 쓰면 된다.
- 10진수로 바꾸는 함수는 int()임.
[수열]
- 규칙성을 가지고 나열되어 있는 수들
- 특정항은 특정항까지의 합에서 특정항 이전의 항까지의 합과 같다.
- A(n) = S(n) - S(n-1)
- 등차수열 : 연속된 두 항의 차이가 일정한 수열 ex) 2,4,6,8,10,12,14,16
-> A(n) = A(1) + (n-1) d # d는 공차
-> 등차 중항 A(n) = ( A(n-1) + A(n+1) ) / 2
-> n항까지의 합 : S(n) = n ( A(1) + A(n) ) / 2
- 등비수열 : 연속된 두 항의 비율이 일정한 수열 ex) 2,6,18,54,162
-> A(n) = A(1) * r^(n-1) # r은 공비
-> 등비 중항 A(n) ^2 = A(n-1) * A(n+1)
-> S(n) = { A(1) * (1 - r^n) } / (1 - r)
- 시그마(수열의 합을 나타냄)
- 계차수열 : 어떤 수열의 인접하는 두 항의 차로 이루어진 또 다른 수열
- 계차수열 구현하는 프로그램
# 계차수열 함수로 정의
def b_function(a1, a2, a3, k):
return (a2 - a1) + (k-1) * (a3 - 2 * a2 + a1)
# 초기값 입력
print("계차수열의 아래 항을 입력해주세요.")
a1 = int(input("첫째 항 입력: "))
a2 = int(input("둘째 항 입력: "))
a3 = int(input("셋째 항 입력: "))
N = int(input("몇 번째 항을 계산해드릴까요? "))
# 계차수열의 합
b_list = []
for n in range(1, N):
b_list.append(b_function(a1, a2, a3, n))
sum_b = sum(b_list)
print(f"{N}항의 값은 {a1 + sum_b}입니다.")
- 피보나치 수열 : A(n) = A(n-2) + A(n-1) ex) 1,1,2,3,5,8,13,21
- 팩토리얼 : 1부터 양의 정수 n까지의 정수를 모두 곱한 것
-> 0!은 1로 약속한다.
-> 재귀함수를 이용한 팩토리얼 구현
def factorialFun(n):
if n == 1: return 1
return n * factorialFun(n - 1)
print(f'{factorialFun(10)}')
-> 팩토리얼은 math 모듈에서 꺼내서 쓸 수 있다.
import math
input_N = int(input("정수를 입력하세요"))
print(f"{math.factorial(input_N)}")
- 군수열 : 여러 개의 항을 묶었을 때 규칙성을 가지는 수열
-> 돌아오는 인덱스의 규칙을 찾고, 그 군 내에서의 수열을 적용
- 다음 수열을 보고 n번째 항의 값을 출력하는 프로그램을 만들어보자.
- 다음 수열을 보고 n번째 항의 값을 출력하는 프로그램을 만들어보자.
[순열]
- n개에서 r개를 택하여 나열하는 경우의 수
- nPr = n(n-1)(n-2)....(n-r+1)
- 파이썬을 이용해, n과 r값을 받아서 순열을 계산하는 프로그램 코딩
- 원순열 : 시작과 끝의 구분이 없는 순열
- 두 가지로 계산 할 수 있음 : n! / n or (n-1)!
[조합]
- n개에서 r개를 택하는 경우의 수
- nCr = n! / (r! * (n-r)!)
- 파이썬을 이용해, n과 r값을 받아서 조합을 계산하는 프로그램 코딩
[확률]
- 모든 사건에서 특정 사건이 일어날 수 있는 수
온라인 강의 5일차 후기
과제가 점점 많아지고 있다.
그렇지만 기초가 가장 중요한 것 같으니,, 시간을 잘 써보자.
친구야.. 잠 좀 줄일 수 있지?
- 네카라쿠배 데이터사이언스 오프라인 1기 수강 中
'Data Science > Python Introduction' 카테고리의 다른 글
[7일차] 리스트 요긴하게 쓰기 위한 추가/삭제/슬라이싱. 분명하게 정리하기! (0) | 2021.10.19 |
---|---|
[6일차] 기초수학 연습문제로 마무리하고, 자료구조 시작! (0) | 2021.10.17 |
[4일차] 파이썬으로 코딩 예제 풀고, 기초수학 출발 (0) | 2021.10.12 |
[3일차] 반복문 완료, 그리고 복습하면서 연습문제 풀어봤음 (0) | 2021.10.11 |
[2일차] 연산자와 조건문 뽀개기 (0) | 2021.10.08 |
댓글