데이터 스쿨 3주차 학습내용 정리 - 2

호진·2023년 11월 15일
0

AI_스쿨

목록 보기
6/51
post-thumbnail

제로베이스 데이터 스쿨 3주차 학습 내용 정리 - 2

이번 주차는 쉬어가는 느낌으로(?) 기초 수학 문제를 파이썬으로 구현하는 방법을 학습하였습니다.

수열

수열은 어떤 규칙에 따라 나열된 숫자들의 모음입니다. 수열은 등차 수열, 등비 수열, 계차 수열, 피보나치 수열 등 다양한 종류가 있습니다.

06_등차 수열

등차 수열은 각 항의 차이가 일정한 수열입니다. 등차 수열의 공차는 각 항의 차이를 의미합니다.
예를 들어, 1, 3, 5, 7, 9는 등차 수열입니다. 이 수열의 공차는 2입니다.

N1 = int(input('a1 입력 : '))
d = int(input('공차 입력 : '))
inputN = int(input('n값 입력 : '))
sumValue = N1
valueN = 0
n = 1
while n <= inputN:
    if n == 1:
        valueN = N1
        n += 1
        continue

    valueN += d
    sumValue += valueN
    print('{}항 : {}'.format(n, valueN))
    n += 1

print(valueN)

# sumValue =(2 * N1 + (inputN *(inputN-1) * d)) / 2
print(sumValue)

sn = inputN * (2 * N1 + (inputN - 1) * d) / 2
print(sn)

n항과 n항까지의 합을 구하는 방법으로는 while 문을 이용한 등차수열을 구하는 방법과 직접 an을 구해 주석처리되어진 부분에 대입하는 방법 2가지가 있습니다.

07_등비 수열

등비 수열은 각 항의 비율이 일정한 수열입니다. 등비 수열의 공비는 각 항의 비율을 의미합니다.
예를 들어, 2, 4, 8, 16, 32는 등비 수열입니다. 이 수열의 공비는 2입니다.

N1 = int(input('a1 입력 : '))
r = int(input('공비 입력 : '))
inputN = int(input('n값 입력 : '))
sumValue = N1
valueN = 0
n = 1
while n <= inputN:
    if n == 1:
        valueN = N1
        n += 1
        continue

    valueN *= r
    sumValue += valueN
    print('{}항 : {}'.format(n, valueN))
    print(sumValue)
    n += 1

print(valueN)
valueN2 = N1 * r ** (inputN - 1)

print(valueN2)
#
sr = N1 * (1 - (r ** inputN)) / (1 - r)
print(sr)

n항과 n항까지의 합을 구하는 방법으로는 while 문을 이용한 등비수열을 구하는 방법과 직접 an을 구해 주석처리되어진 부분에 대입하는 방법 2가지가 있습니다.

시그마

시그마는 수열의 합을 표기하는 기호입니다. 시그마를 사용하면 수열의 합을 간단하게 계산할 수 있습니다.
시그마의 기본 형식은 다음과 같습니다.

∑ f(n)
∑은 시그마 기호입니다. f(n)은 n번째 항의 함수입니다.

예를 들어, 1부터 10까지의 합을 계산하려면 다음과 같이 표기합니다.

∑ n
위 수식은 1부터 10까지의 각 항을 합한 값을 의미합니다.

08_계차 수열

계차 수열은 각 항의 차가 일정한 수열입니다. 계차 수열의 공차는 각 항의 차를 의미합니다.

등차 수열과 계차 수열은 구분하기 어려울 수 있습니다. 등차 수열은 각 항의 차이가 일정한 수열이고, 계차 수열은 각 항의 차가 일정한 수열입니다. 따라서 등차 수열은 공차가 양수, 음수, 0이 될 수 있지만, 계차 수열은 공차가 양수나 음수만 될 수 있습니다.
예를 들어, 1, 3, 5, 7, 9는 등차 수열이지만 계차 수열은 아닙니다. 3, 6, 9, 12, 15는 계차 수열입니다.

a1Num = int(input('a1 입력 : '))
aN = int(input('n값 입력 : '))
b1Num = int(input('b1값 입력 : '))
d = int(input('공차 입력 : '))

bValue = 0
aValue = 0

n = 1

while n <= aN:
    if n == 1:
        aValue = a1Num
        bValue = b1Num
        n += 1
        continue

    aValue = aValue + bValue
    bValue = bValue + d
    print('an의 {}항의 값 : {}'.format(n, aValue))
    print('bn의 {}항의 값 : {}'.format(n, bValue))
    n += 1

# print(aValue)
# print(bValue)

# malAn = aN ** 2 + aN + 1
print(malAn)

n항과 n항까지의 합을 구하는 방법으로는 while 문을 이용한 등차수열을 구하는 방법과 직접 an을 구해 주석처리되어진 부분에 대입하는 방법 2가지가 있습니다.

09_피보나치 수열

피보나치 수열은 앞의 두 항의 합으로 다음 항을 계산하는 수열입니다. 피보나치 수열의 첫 두 항은 0과 1입니다.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
피보나치 수열은 자연계에서 많이 발견되는 수열입니다. 예를 들어, 꽃잎의 갯수, 솔방울의 껍질, 나선형 구조 등에서 피보나치 수열의 패턴을 발견할 수 있습니다.

num = int(input('숫자를 입력하세요 : '))

valueNum = 0
sumN = 0

num1 = 0
num2 = 0

n = 1
while n <= num:
    if n == 1 or n == 2:
        valueNum = 1
        num1 = valueNum
        num2 = valueNum
        sumN += valueNum
        n += 1

    else:
        valueNum = num1 + num2
        num2 = num1
        num1 = valueNum
        sumN += valueNum
        n += 1
print('{}번째 항의 값은 : {}'.format(n, valueNum))
print('{}번째 항의 값은 : {}'.format(n, sumN))

while문은 n이 입력받은 숫자보다 작거나 같을 때까지 반복합니다.

if문은 n이 1 또는 2일 때의 처리를 담당합니다. 이 경우 valueNum은 1로 설정하고, num1과 num2도 1로 설정합니다. 또한, sumN에도 1을 더합니다.

else문은 n이 3 이상일 때의 처리를 담당합니다. 이 경우 valueNum은 num1과 num2의 합으로 설정합니다. 그리고 num2는 num1으로, num1은 valueNum으로 설정합니다. 마지막으로 sumN에도 valueNum을 더합니다.

profile
중요한 건 꺽였는데도 그냥 하는 마음

0개의 댓글