본문 바로가기
제로베이스 데이터 스쿨/일일 스터디 노트

11일차 스터디노트 / 기초수학 등비수열, 시그마, 계차수열, 피보나치수열, 군수열 + 파이썬/ 제로베이스 데이터취업스쿨

by 김뎀뎀 2023. 1. 15.

📗 11일차 공부 내용 요약

[기초수학과 파이썬]

1.등비수열 : 등비수열의 개념과 공식을 배워, 파이썬으로 구현해보았다.

2. 시그마 : 시그마에 대해 알아보고, 수열을 파이썬으로 구현해보았다.

3. 계차수열 : 계차수열에 대해 알아보고, 파이썬으로 구현해보았다

4. 피보나치수열 : 피보나치수열에 대해 알아보고, 파이썬으로 구현해보았다

5. 군수열 : 군수열에 대해 알아보고, 파이썬으로 구현해보았다

 

 

 


📖  11일차 공부 내용 자세히

1. 등비수열

  • 연속된 두 항의 비가 일정한 수열
  • an = a1 * r^(n-1)
  • sn = a1 * (1-(r^n))/(1-r)
  • 등차중앙 a(n-1) * a(n+1) = an^2

 

등비수열 : n번째 항의 값 구하기
#반복문 활용
inputN1 = int(input('a1 입력 : '))
inputR = 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 *= inputR
    print('{}번째 항의 값: {}'.format(n, valueN))
    n += 1

print('{}번째 항의 값: {}'.format(inputN, valueN))

#공식 활용
inputN1 = int(input('a1 입력 : '))
inputR = int(input('공비 입력 : '))
inputN = int(input('n 입력:'))

valueN = inputN1 * (inputR ** (inputN - 1))
print('{}번째 항의 값: {}'.format(inputN, valueN))

 

등비수열 : n번째 항까지의 합 구하기
#반복문 활용
inputN1 = int(input('a1 입력 : '))
inputR = int(input('공비 입력 : '))
inputN = int(input('n 입력:'))

valueN = 0
sumN = 0
n = 1

while n <= inputN :

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

    valueN *= inputR
    sumN += valueN

    print('{}번째 항까지의 합: {}'.format(n, sumN))
    n += 1

print('{}번째 항까지의 합: {}'.format(inputN, sumN))

#공식활용
inputN1 = int(input('a1 입력 : '))
inputR = int(input('공비 입력 : '))
inputN = int(input('n 입력:'))

sumN = inputN1 * (1 - (inputR ** inputN)) / (1-inputR)
print('{}번째 항까지의 합: {}'.format(inputN, int(sumN)))

 

2. 시그마

  • Σ(시그마)란, 수열의 합을 나타내는 기호이다

 

3. 계차수열

  • 어떤 수열의 인접하는 두 항의 차로 이루어진 또 다른 수열

 

계차수열 :  n번째 항의 값 구하기
# an = {3, 7, 13, 21, 31, 43, 57}
# bn = {4, 6, 8, 10, 12, 14}

#반복문

inputAN1 = int(input('a1 입력 : '))
inputAN = int(input('an 입력 : '))

inputBN1 = int(input('b1입력 : '))
inputBD = int(input('bn 공차 입력 : '))

valueAN = 0
valueBN = 0

n = 1
while n <= inputAN :

    if n == 1:
        valueAN = inputAN1
        valueBN = inputBN1
        print('an의 {}번째 항의 값 : {}'.format(n,valueAN))
        print('bn의 {}번째 항의 값 : {}'.format(n,valueBN))
        n += 1
        continue

    valueAN += valueBN
    valueBN += inputBD
    print('an의 {}번째 항의 값 : {}'.format(n,valueAN))
    print('bn의 {}번째 항의 값 : {}'.format(n,valueBN))
    n += 1

print('an의 {}번째 항의 값 : {}'.format(inputAN, valueAN))
print('bn의 {}번째 항의 값 : {}'.format(inputAN, valueBN))

#공식활용
#n^2  + n + 1 =an
valueAN = inputAN ** 2 + inputAN + 1
print('an의 {}번째 항의 값 : {}'.format(inputAN, valueAN))

 

4. 피보나치 수열

  • 세 번째 항은 두 번째 항과 첫 번재 항을 더한 합이다

 

피보나치 수열 : n번째 항의 값 구하기
inputN = int(input('n 입력 : '))

valueN = 0 # n번째 항의 값
sumN = 0 # n번째 항까지의 합

valuePreN2 = 0 # n-2번째 항의 값
valuePreN1 = 0 # n-1번째 항의 값

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))

 

5.팩토리얼

  • 1부터 양의 정수 n까지의 정수를 모두 곱한 것
  • 0! 은 1로 약속한다
팩토리얼 : n! 구하기
inputN = int(input('n 입력 : '))

#반복문 이용(for)
result = 1

for n in range(1, inputN+1):
    result *= n

print('{}팩토리얼 = {}'.format(inputN,result))


#반복문 이용(while)
result = 1
n = 1
while n <= inputN:
    result *= n
    n += 1

print('{}팩토리얼 = {}'.format(inputN,result))


#재귀함수
def factorialFun(n):
    if n == 1: return 1

    return n * factorialFun(n-1)

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


#math 모듈
import math
print('{}팩토리얼 = {}'.format(inputN,math.factorial(inputN)))

 

6.군수열

  • 여러 개의 항을 묶었을 때 규칙성을 가지는 수열
군수열 : n항의 값 구하기
#1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, ...

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

flag = True
n = 1 #n 군
nCnt = 1 #총 항 개수
searchN = 0 #찾고자 하는 n항의 값

while flag :

    for i in range(1, n+1): #n군 안에서의 수열
        print('{} '.format(i),end = '')
        nCnt += 1

        if nCnt > inputN:
            searchN = i
            flag = False
            break

    print()
    n += 1

print('{}번째 항의 값 : {}'.format(inputN, searchN))

➰ 11일차 후기

오늘은 2주차 후기를 적는 날이니까 짧게!

기초수학에서 배운 내용 들이 나중에 어떻게 활용될 지 궁금했다!

 


※본 내용은 제로베이스 데이터 취업 스쿨에서 제공하는 학습 내용에 기반합니다.