오늘의 목표
오늘의 달성목표
오늘을 마치며
약수와 소수 기출 문제
소인수분해 기출 문제
최대 공약수 & 최소 공배수
진법
등차수열
등비수열
시그마
등비수열의 합 공식 : sn = a1 (1 - r^n) / (1 - r)
sumN = inputA1 (1 - inputR ** inputN) / (1 - inputR)
print('{}번째 항까지의 합: {}'.format(inputN, format(int(sumN), ',')))
계차수열
등차수열 합 공식 an = (3n^2 - 3n + 4) / 2
inputA1 = 2
inputN = int(input('an 입력: '))
valueN = ((3 inputN ** 2) - (3 inputN) + 4) / 2
print('an의 {}번째 항의 값: {}'.format(inputN, int(valueN)))
피보나치 수열
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
팩토리얼
- 반복문을 이용한 경우
def facFun1(n): fac = 1 for n in range(1, (n+1)): fac *= n return fac num = int(input('input number: ')) print(f'{num}!: {facFun1(num)}')
- 재귀함수를 이용한 경우
def facFun2(n): if n == 1: return n return n * facFun2(n-1) num = int(input('input number: ')) print(f'{num}!: {facFun2(num)}')
- 모듈을 이용한 경우
import math num = int(input('input number: ')) print(f'{num}!: {math.factorial(num)}')
군 수열
flag = True n = 1 nCnt = 1; searchNC = 0; searchNP = 0 sumN = 0 while flag: for i in range(1, (n+1)): print('{}/{}'.format(i, (n-i+1)), end=' ') sumN += i / (n - i + 1) nCnt += 1 if sumN > 100: searchNC = i searchNP = n - i + 1 flag = False break print() n += 1
순열
numN = int(input('numN 입력: ')) numR = int(input('numR 입력: ')) result = 1 for n in range(numN, (numN- numR), -1): print('n: {}'.format(n)) result *= n print('result: {}'.format(result)) fNum1 = int(input('factorial1 입력: ')) result1 = 1 for i in range(fNum1, 0, -1): result1 *= i print('result1: {}'.format(result1)) fNum2 = int(input('factorial2 입력: ')) result2 = 1 for i in range(fNum2, 0, -1): result2 *= i print('result2: {}'.format(result2)) print('모든 경우의 수: {}'.format(result1 * result2))
조합
numN = int(input('numN 입력: ')) numR = int(input('numR 입력: ')) resultP = 1 resultR = 1 resultC = 1 for n in range(numN, (numN - numR), -1): resultP *= n print('resultP: {}'.format(resultP)) for n in range(numR, 0, -1): resultR *= n print('resultR: {}'.format(resultR)) resultC = int(resultP / resultR) print('resultC: {}'.format(resultC))
확률
def proFun(): numN = int(input('numN 입력: ')) numR = int(input('numR 입력: ')) resultP = 1 resultR = 1 resultC = 1 #순열(P) for n in range(numN, (numN - numR), -1): resultP *= n print('resultP : {}'.format(resultP)) #R(f) for n in range(numR, 0, -1): resultR *= n print('resultR : {}'.format(resultR)) #조합(C) resultC = int(resultP / resultR) print('resultC: {}'.format(resultC)) return resultC sample = proFun() print('sample: {}'.format(sample)) event1 = proFun() print('event1: {}'.format(event1)) event2 = proFun() print('event2: {}'.format(event2)) probability = (event1 * event2) / sample print('probability : {}%'.format(round(probability * 100, 2)))
[본 글의 내용 중 일부는 제로베이스 데이터스쿨 강의자료의 내용 중 일부가 포함되어 있습니다.]