
수열이란, 규칙성을 가지고 나열되어 있는 수들을 의미한다.
등차 수열이란, 연속된 두 항의 차이(공차
d)가 일정한 수열을 의미한다.
첫번째 항(), 공차()를 입력받아 번째 항의 값()을 출력
inputA1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
# 첫 번째 항 등록
valueN = inputA1
# 두 번째 항부터 n항까지 공차를 더해간다.
for n in range(2, inputN + 1):
valueN += inputD
print('{}번째 항의 값: {}'.format(inputN, valueN))
등차 수열 일반항 공식을 이용해서 n번째 항의 값(an)을 출력
inputA1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
valueN = inputA1 + (inputN - 1) * inputD 👈
print('{}번째 항의 값: {}'.format(inputN, valueN))
첫번째 항(), 공차()를 입력받아 번째 항까지의 합()을 출력
입렵받은 첫번째 항()과 첫번째 항까지의 합()은 먼저 대입한 후 for문을 돌린다.
inputA1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
valueN = inputA1
sumN = valueN
for n in range(2, inputN + 1):
valueN += inputD
sumN += valueN
print('{}번째 항까지의 합: {}'.format(inputN, sumN))
등차 수열 합 공식을 이용해서 번째 항까지의 합()을 출력
inputA1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
valueN = inputA1 + (inputN - 1) * inputD
sumN = inputN * (inputA1 + valueN) / 2 👈
print('{}번째 항까지의 합: {}'.format(inputN, int(sumN)))
등비 수열이란, 연속된 두 항의 비가 일정(공비
r)한 수열이다.
첫번째 항(), 공비()를 입력받아 n번째 항의 값()을 출력
inputA1 = int(input('a1 입력: '))
inputR = int(input('공비 입력: '))
inputN = int(input('n 입력: '))
# 첫 번째 항 등록
valueN = inputA1
# 두 번째 항부터 n항까지 공비를 곱해간다.
for n in range(2, inputN + 1):
valueN *= inputR
print('{}번째 항의 값: {}'.format(inputN, valueN))
등비 수열 일반항 공식을 이용해서 번째 항의 값()을 출력
inputA1 = int(input('a1 입력: '))
inputR = int(input('공비 입력: '))
inputN = int(input('n 입력: '))
valueN = inputA1 * (inputR ** (inputN - 1)) 👈
print('{}번째 항의 값: {}'.format(inputN, valueN))
첫번째 항(), 공차()를 입력받아 n번째 항까지의 합()을 출력
입렵받은 첫번째 항()과 첫번째 항까지의 합()은 먼저 대입한 후 for문을 돌린다.
inputA1 = int(input('a1 입력: '))
inputR = int(input('공비 입력: '))
inputN = int(input('n 입력: '))
valueN = inputA1
sumN = valueN
for n in range(2, inputN + 1):
valueN *= inputR
sumN += valueN
print('{}번째 항까지의 합: {}'.format(inputN, sumN))
등비 수열 합 공식을 이용해서 번째 항까지의 합()을 출력
inputA1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
sumN = inputA1 * (1 - (inputR ** inputN)) / (1 - inputR) 👈
print('{}번째 항까지의 합: {}'.format(inputN, int(sumN)))
시그마 ∑ 란, 수열의 합을 나타내는 기호이다.
계차 수열이란, 어떤 수열의 인접하는 두 항의 차로 이루어진 또 다른 수열이다.
inputA1 = 3 # an의 첫번째 항
inputAN = 7 # an의 7번째 항의 값 출력
inputB1 = 4 # bn의 첫번째 항
inputBD = 2 # bn의 공차 d
valueAN = inputA1
valueBN = inputB1
an = {1:inputA1}
bn = {1:inputB1}
for n in range(2, inputAN + 1):
valueAN += valueBN
valueBN += inputBD
an[n] = valueAN
bn[n] = valueBN
print('an의 {}번째 항의 값: {}'.format(inputAN, valueAN))
print(f'an = {list(an.values())}')
del bn[inputAN]
print(f'bn = {list(bn.values())}')
# 실행결과
# an의 7번째 항의 값: 57
# an = [3, 7, 13, 21, 31, 43, 57]
# bn = [4, 6, 8, 10, 12, 14]
피보나치 수열이란,
두 번째 전 항()과 이전 항()을 더한 합인 n 번째 항()을 나열한 수이다.
피보나치 수열의 첫번째 항()과 두번째 항()을 1로 고정하고
반복문을 이용해 n번째 항()을 출력
input_num = int(input('n 입력: '))
fibonacci = [1, 1]
value_pre1 = fibonacci[0]
value_pre2 = fibonacci[1]
value_an = 0
sum_an = value_pre1 + value_pre2
for n in range(3, input_num + 1):
value_an = value_pre2 + value_pre1
value_pre2 = value_pre1
value_pre1 = value_an
fibonacci.append(value_an)
sum_an += value_an
print('피보나치 수: {}'.format(fibonacci))
print('{}번째 항의 값: {}'.format(input_num, value_an))
print('{}번째 항까지의 합: {}'.format(input_num, sum_an))
재귀함수를 이용해 피보나치 수열 구하기
def fibonacciRecursion(n):
if n <= 1: return n
else:
return fibonacciRecursion(n-2) + fibonacciRecursion(n-1)
inputN = 8
print('피보나치 수: { ', end='')
for n in range(1, inputN):
print(fibonacciRecursion(n), end=', ')
print(fibonacciRecursion(inputN), '}')
print(f'{inputN}번째 항의 값: {fibonacciRecursion(inputN)}')
# 실행결과
# 피보나치 수: { 1, 1, 2, 3, 5, 8, 13, 21 }
# 8번째 항의 값: 21
팩토리얼이란, 1부터 양의 정수 n까지의 모든 정수를 곱한 수이다.
단,0!은1로 약속한다.
반복문 이용
inputN = int(input('n 입력: '))
result = 1
for n in range(1, inputN + 1):
result *= n
print('{} 팩토리얼: {}'.format(inputN, result))
재귀함수 사용
def factorial(n):
if n == 0: return 1
return n * factorial(n - 1)
inputN = int(input('n 입력: '))
print('{} 팩토리얼: {}'.format(inputN, factorial(inputN)))
math 모듈 사용
import math
inputN = int(input('n 입력: '))
print('{} 팩토리얼: {}'.format(inputN, math.factorial(inputN)))
순열이란, n개에서 r개를 선택하여 순서대로 나열하는 경우의 수이다.
은 부터 ()까지의 곱으로 구한다.
numN = int(input('numN 입력: '))
numR = int(input('numR 입력: '))
result = 1
for n in range(numN, (numN-numR), -1): 👈
result *= n
print('result: {}'.format(result))
순열은 팩토리얼(계승)을 이용해서 나타낼 수 있다.
import math
numN = int(input('numN 입력: '))
numR = int(input('numR 입력: '))
result = int(math.factorial(numN) / math.factorial(numN - numR)) 👈
print('result: {}'.format(result))
조합이란, n개에서 r개를 순서에 상관없이 선택하는 경우의 수이다.
numN = int(input('numN 입력: '))
numR = int(input('numR 입력: '))
resultP = 1
resultR = 1
resultC = 1
🚩 # nPr
for n in range(numN, (numN-numR), -1):
resultP *= n
print('resultP: {}'.format(resultP))
🚩 # r!
for n in range(numR, 0, -1):
resultR *= n
print('resultR: {}'.format(resultR))
🚩 # nCr = nPr/r!
resultC = int(resultP / resultR)
print('resultC: {}'.format(resultC))