제로베이스 기초수학(18~22)

ningbbang·2023년 3월 27일
0

Zerobase DS13

목록 보기
8/48

1. 시그마
∑ : 수열의 합을 나타내는 기호
Sn = {a1 + a2 + a3 --- + an)

#시그마
#등차수열 Sn = n(a1 + an)/2

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

valueN = 0
sumN = 0

valueN = inputN1 + (inputN - 1) * inputD
sumN = inputN * (inputN1 + valueN) / 2

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

#등비수열 Sn = a1 * ( 1 - r^n)/ (1-r)

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

valueN = 0
sumN = 0

valueN = inputN1 + (inputN * inputR)
sumN = inputN1 * (1 - (inputR ** inputN)) / (1 - inputR)

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

2. 계차 수열
수열의 인접하는 두 항의 차로 이루어진 또 다른 수열
ex)
An = 0, 3, 8, 15, 24 ---
Bn = 3, 5, 7, 9 ---
Bn은 An의 계차수열이다.

# inputAN1 = int(input('a1 입력 :'))
# inputAN = int(input('an 입력 :'))
#
# inputBN1 = int(input('b1 입력 :'))
# inputBD = int(input('bn 공차 입력 :'))
# 계차수열

inputAN1 = 3
inputAN = 7

inputBN1 = 4
inputBD = 2

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 = valueAN + valueBN
    valueBN = valueBN + inputBD
    print('an의 {}번째 항의 값 : {}'.format(n, valueAN))
    print('bn의 {}번째 항의 값 : {}'.format(n, valueBN))
    n += 1

#계차수열 공식

inputAN1 = 3
inputAN = 7

inputBN1 = 4
inputBD = 2

valueAN = inputAN ** 2 + inputAN + 1
print('an의 {}번째 항의 값 : {}'.format(inputAN, valueAN))

3. 피보나치 수열
세번째항은 두번째항과 첫번째항을 더한 값
a1 = 1, a2 = 1이고 n > 2 때, an = a(n-2) + a(n-1)
ex) 1, 1, 2, 3, 5, 8, 13, 21, 34 ---

#피보나치 수열
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))

4. 팩토리얼
1부터 양의 정수 n까지의 정수를 모두 곱한 것
2! = 1 2
3! = 1
2 3
'---
10! = 1
2 3 4 5 6 7 8 9 10

#팩토리얼

#반복문(for)

result = 1
inputN = int(input('n 입력 : '))
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 factorial(n):
    if n == 0: return 1
    if n == 1: return 1

    return n * factorial(n-1)

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

#모듈이용법 : math
import math

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

profile
HR Anaylist!

0개의 댓글