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