제로베이스 데이터 취업 스쿨에서 파이썬 기초를 공부하면서 나를 가장 힘들게 했던 것은 수학이었는데, 막상 수학 강의를 들으니 웬걸? 오히려 파이썬 강의보다 한결 편한 느낌이 들었다. 이미 앞에서 파이썬 문제와 맞딱드려 고민한 시간이 헛되지는 않았는지 그리 어렵지는 않더라.
 또 문제를 풀면서 왜 그렇게 풀이를 하는지 이해가 되지 않았던 부분들도 해소되어 가는 것 같다. 진작 좀 공부할 걸!

기초수학 1~2

01 약수와 소수

  1. 약수
    (1) 어떤 수를 나누어 떨어지게 하는 수

  2. 소수
    (2) 1과 그 수 자신만을 약수로 가지는 수

02 약수와 소수(파이썬)

  1. 약수
    (1) 나머지가 0인 숫자를 찾는다.

  2. 소수
    (1) 약수를 먼저 구한 후 그 중에서 1과 자기 자신만을 가지는 소수를 구한다.
    (2) True 와 False를 사용해서 구한다.

03 소인수분해

  1. 약수(인수) 중에서 소수인 숫자를 소인수라고 한다.

  2. 소인수분해
    (1) 1보다 큰 정수를 소인수의 곱으로 나타낸 것이다.
    (2) 소수만 남을 때까지 소수로 분리를 해본다.
    (3) 소인수분해를 이용해서 약수를 구할 수 있다.

04 소인수분해(파이썬)

  1. .count( )
    리스트 내에 찾고자 하는 데이터가 몇 개나 있는지 알려준다.

  2. .remove( )
    리스트 내에 데이터를 삭제할 때 쓴다.

05 최대공약수

  1. 공약수
    (1) 2개 이상의 수에서 공통된 약수다.
    (2) 2개 이상의 수의 최대공약수를 구한 후 최대공약수의 약수를 구한다.

  2. 최대공약수
    (1) 공약수 중 가장 큰 수를 최대공약수라고 한다.
    (2) 소인수분해를 해서 약수를 구한 후 공통된 수의 지수를 비교해서 구한다.
    (3) 나눗셈이 더 편하다.

06 최대공약수(파이썬)

  1. 유클리드 호제법
    (1) x, y의 최대 공약수는 y, r(x%y)의 최대공약수와 같다.
    (2) x%y를 해서 r이 나오면 y%r을 해서 r2가 나오고 다시 r%r2를 하는 식으로 반복해서 나머지가 0이 될 때까지 계산하면 최대공약수를 구할 수 있다(처음의 y자리의 수가 최대공약수).

07 최소공배수

  1. 공배수
    (1) 2개 이상의 수에서 공통된 배수다.

  2. 최소공배수
    (1) 공배수 중 가장 작은 수다.
    (2) 2개 이상의 수의 소인수분해를 한 후 지수가 크고 공통 아닌 수를 모두 곱한다.

08 최소공배수(파이썬)

  1. 최소공배수
    (1) n1*n2//최대공약수

  2. 3개 숫자의 최소공배수
    (1) n1과 n2의 최소공배수를 구한 후 이 최소공배수와 n3의 최소공배수를 구한다.

09 진법

  1. 10진수 -> 2진수
    (1) 2로 더 이상 나눌 수 없을 때까지 나눈 다음 각 단계마다 나온 나머지를 제일 밑에서부터 차례대로 나열한다.

  2. 10진수 -> 8진수
    (1) 8로 나누면서 2진수와 동일한 방법으로 계산한다.

  3. 10진수 -> 16진수
    (1) 16로 나누면서 2진수와 동일한 방법으로 계산한다.

  4. 2진수 -> 10진수
    (1) 2진수의 마지막 자리부터 2^0, 2^1, 2^2 순으로 가며 이 자릿수와 0 또는 1을 각각 곱셈한 후 다 더한다.

  5. 8진수 -> 10진수
    (1) 2진수와 동일하되 자릿수는 8^0부터 시작한다.

  6. 2진수 -> 8진수
    (1) 끝에서부터 3자리씩 구분한 후 2진수 -> 10진수처럼 계산 후 더하지 말고 차례대로 나열한다.

  7. 2진수 -> 16진수
    (1) 4자리씩 구분한 후 2진수 -> 8진수처럼 계산한다.

기초수학 3

10 진법(파이썬)

  1. 10진수 -> 2진수, 8진수, 16진수
    (1) bin( )
    (2) oct( )
    (3) hex( )
    (4) 파이썬에서 2진수로 변환해서 출력하면 0b가 앞에 붙는다.
    (5) 8진수로 변환해서 출력하면 0o가 앞에 붙는다.
    (6) 16진수로 변환해서 출력하면 0x가 앞에 붙는다.
    (7) 변환 결과의 타입은 str이다.

  2. 다른 방법
    (1) 예시
    print('{0:#b}, {0:#o}, {0:#x}'.format(n1, n2, n3))
    (2) 여기서 #을 없애면 구분 없이 숫자만 나온다.
    (3) 이렇게 해도 변환 결과의 타입은 str이다.

  3. x진수를 10진수로 변환
    (1) 예시
    ~.format(int('0b11110', 2)))
    ~.format(int('0o36', 8)))
    ~.format(int('0x1e', 16)))

11 수열

  1. 수열이란?
    (1) 규칙성을 가지고 나열되어 있는 수들이다.
    (2) 예를 들면 2의 배수의 일반항은 an = 2n이다.
    (3) {an}이라고 수열을 표기하기도 한다.

  2. 항들의 합과 항의 관계
    (1) an = sn - s(n-1)
    (2) 단, n>=2이고 a1은 s1이다.

12 등차수열

  1. 등차수열이란?
    (1) 연속된 두 항의 차이가 일정한 수열이다.

  2. 등차수열과 일반항
    (1) 등차수열 규칙성을 이용해서 일반항을 구한다.
    (2) an = a₁ + (n-1) * d
    (3) 여기서 d는 공차다.

  3. 등차중항
    (1) 연속된 세 항 가운데 항이다.
    (2) 숫자 4, 5, 6이 있다면 1과 3을 덧셈한 후 나누기 2를 하면 등차중항을 구할 수 있다.
    (3) 4와 6뿐만 아니라 3과 7을 덧셈한 후 나누기 2를 해도 등차중항을 구할 수 있다.

  4. 등차수열의 합
    (1) sn= n(a₁ + an) / 2

profile
print(‘안녕하세요! 반갑습니다!’)

0개의 댓글