[제로베이스_데이터 취업 스쿨] 스터디노트10

박소현·2023년 8월 14일
0

데이터 공부

목록 보기
12/31

오늘 강의도 지난 시간에 이어서 기초 수학을 짚어보는 시간이었다.
말이 기초수학이지.. 중고등 수학과정을 최면술을 당해서 지워졌나 싶을 정도로 기억이 나지 않는 나로써는 모든게 낯설기만 했다.
특히 오늘 부분은 그냥 아예 새로 배우는 과정 같았다.

📌 등차수열

  • 등차 수열 규칙성을 이용해서 일반항을 구할 수 있다.

an = 수열의 n번째 항
a1 = 첫 번째 항
n은 몇 번째 항인지 나타내는 숫자
d는 공차 (등차수열에서 연속하는 항 사이의 차이)

3, 7, 11, 15, 19
an = a1 + (n-1) * d
a1 = 3, d = 4
if n = 3:
a1 = 3 + (1-1)*4 = 3
if n = 2:
a2 = 3 + (2-1) * 4 = 7

등차중항

  • 두 항 사이의 모든 항

등차수열의 합

  • Sn = n(a1 + an) / 2
3, 7, 11, 15, 19
Sn = 5(3 + 19) / 2 = 55
Sn = 55```

파이썬 실습 - 일반항

inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))

valueN = 0
n = 1
while n <= inputN:

    if n == 1:
        valueN = inputN1
        print('{}번째 항의 값: {}'.format(n, valueN))
        n += 1
        continue

    valueN += inputD
    print('{}번째 항의 값: {}'.format(n, valueN))
    n += 1

print('{}번째 항의 값: {}'.format(inputN, valueN))
a1 입력: 3
공차 입력: 4
n 입력: 7
1번째 항의 값: 3
2번째 항의 값: 7
3번째 항의 값: 11
4번째 항의 값: 15
5번째 항의 값: 19
6번째 항의 값: 23
7번째 항의 값: 27
inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
valueN = 0
# an = a1 = (n-1)d
valueN = inputN1 + (inputN - 1) * inputD
print('{}번째 항의 값: {}'.format(inputN, valueN))

a1 입력: 3
공차 입력: 4
n 입력: 5
5번째 항의 값: 19

파이썬 실습 - 등차수열 합

a1 입력: 3
공차 입력: 4
n 입력: 5
1번째 항까지의 값: 3
2번째 항까지의 값: 10
3번째 항까지의 값: 21
4번째 항까지의 값: 36
5번째 항까지의 값: 55
5번째 항까지의 값: 55

📌 등비수열

  • 연속된 두 항의 비가 일정한 수열
2, 6, 18, 54
an = a1 * r^(n-1)
r= 공비
a1 = 2 * 3^(1-1) = 2
# 2의 1승은 0이 아니라 1임

등비중항

등비수열의 합

2, 6, 18, 54
Sn = a1 * (1-(r^n)) / (1-r)
S4 = 2 * (1 - (3^4)) / (1-3)
S4 = 80

✅ 시그마

✅ 계차수열

📌 피보나치 수열

  • 연속하여 나타낸 두 수의 합이 다음 수가 되는 규칙을 가진 수열
inputN = int(input('n 입력: '))
valueN = 0
sumN = 0

valuePreN2 = 0
valuePreN1 = 0

n = 1
while n <= inputN:
    if n == 1 or n == 2:
        valueN = 1
        valuePreN2 = valueN
        valuePreN1 = valueN

        sumN += valueN
        n += 1

    else:
        valueN = valuePreN2 + valuePreN1
        valuePreN2 = valuePreN1
        valuePreN1 = valueN
        sumN += valueN
        n += 1

print('{}번째 항의 값: {}'.format(inputN, valueN))
print('{}번째 항까지의 합: {}'.format(inputN, sumN))
n 입력: 9
9번째 항의 값: 34
9번째 항까지의 합: 88

✍️ 팩토리얼

n 입력: 10
10번째 항의 값: 55
10번째 항까지의 합: 143

💡 재귀 함수로 만드는 법

inputN = int(input('n 입력: '))
def factorialFun(n):
    if n == 1: return 1

    return n * factorialFun(n - 1)

print('{}팩토리얼: {}'.format(inputN, factorialFun(inputN)))

💡 math 모듈로 쓰는 법(제일 간단)

inputN = int(input('n 입력: '))
import math
print('{}팩토리얼: {}'.format(inputN, math.factorial(inputN)))

✍️ 군수열

inputN = int(input('n항 입력: '))

flag = True
n = 1; nCnt = 1; searchN = 0

while flag:

    for i in range(1, (n+1)):
        print('{} '.format(i), end='')

        nCnt += 1
        if nCnt > inputN:
            searchN = i
            flag = False
            break
    print()
    n += 1

print('{}항: {}'.format(inputN, searchN))
n항 입력: 28
1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
1 2 3 4 5 6 
1 2 3 4 5 6 7 
28: 7

✍️ 순열

  • n개에서 r개를 택하여 나열하는 경우의 수

✍️ 조합

✅ 확률

경우의 수. 조합을 통해서 확률을 알아볼 수 있다.

오늘 공부를 마치며...

수포자의 길로 살아온지 n년차...
그럭저럭 계산기 어플로 버텨왔던 것 같다.
하지만 그것도 한계가 있었다.
사칙연산 이상 넘어가면 머리가 아프기 일쑤였다.
그런 내가... 이제 와서 수학을 공부한다고???
프로그래밍 공부도 한다고?? 데이터 취업을 준비한다고?
세상 일은 역시 알 수가 없다는게 맞는가봉가
강의를 듣는 내내 매우 울고 싶었다. 그래서 오히려 일부로 썸네일 이미지는 웃는 사람으로 세워놔봤다. 그리고 결심했다. 언젠가는 나도 저렇게 웃으리라고... 수학 앞에서 자신있어하리라고..
지금은 수학이든 코딩이든 아직도 깨진 독에 물 붓는 기분이라 버겁다.
하지만 언젠가는 나도 준비가 되어있을 것이다.
제로베이스...제발 도와줘요

지난 날의 나의 모습(..왜 그랬니)

profile
아직은 모든게 무섭고 모르는거 투성이지만, 나중엔 멋진 으른이 되야지!

0개의 댓글