230419_제로베이스_데이터스쿨_기초수학_03013~03030

김지태·2023년 4월 21일
0
post-thumbnail

03_014 등차수열

특정 항까지의 합을 구하는 프로그램

inputN1 = int(input('a1 : '))
inputD = int(input('D : '))
inputN = int(input('N :'))

valueN = 0
sumN = 0
n = 1

while n <= inputN:
if n == 1:
valueN = inputN1
sumN = sumN + valueN
print('{}번째 항까지의 합: {}'.format(n, sumN))
n += 1
continue

valueN = valueN + inputD
sumN = sumN + valueN
print('{}번째 항까지의 합: {}'.format(n, sumN))
n += 1

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

합 공식 사용

inputN1 = int(input('a1 : '))
inputD = int(input('D : '))
inputN = int(input('N :'))

valueN = 0
sumN = 0

valueN = inputN1 + (inputN - 1) inputD
sumN = inputN
(inputN1 + valueN) / 2
print('{}번째 항까지의 합: {}'.format(inputN, int(sumN)))

03_015 등비 수열

등비수열 = 연속된 두 항의 비가 일정한 수열

an = a1 * r^(n-1)

an^2 = (an-1 * an+1) / 등비 중항

Sn = a1 * (1-(r^n)) / (1-r)

03_016 등비수열 파이썬

inputN1 = int(input('a1 : '))
inputR = int(input('공비 R : '))
inputN = int(input('N :'))

valueN = 0
n = 1

while n <= inputN:

if n == 1:
valueN = inputN1
print('{}번째 항의 값: {}'.format(n, valueN))
n += 1
continue
valueN = valueN * inputR
print('{}번째 항의 값: {}'.format(n, valueN))
n += 1

print('종료')

공식 사용

inputN1 = int(input('a1 : '))
inputR = int(input('공비 R : '))
inputN = int(input('N :'))

valueN = inputN1 * (inputR ** (inputN -1))
print('{}번째 항의 값: {}'.format(inputN, valueN))## 03_017 등비수열의 합 파이썬
inputN1 = int(input('a1 : '))
inputR = int(input('공비 R : '))
inputN = int(input('N :'))

valueN = 0
sumN = 0
n = 1
while n <= inputN:

if n == 1:
valueN = inputN1
sumN += valueN
print('{}번째 항까지의 합: {}'.format(n, sumN))
n += 1
continue

valueN *= inputR
sumN += valueN
print('{}번째 항까지의 합: {}'.format(n, sumN))
n += 1

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

공식 사용

inputN1 = int(input('a1 : '))
inputR = int(input('공비 R : '))
inputN = int(input('N :'))

sumN = inputN1 * (1 - (inputR ** inputN)) / (1 - inputR)
print('{}번째 항까지의 합: {}'.format(inputN, sumN))

03_018 시그마 / 수열의 합을 나타내는 기호

합은 공식, 반복문을 통해 구할 수 있음

03_019 계차수열 = 어떤 수열의 인접하는 두 항의 차로 이루어진 또 다른 수열 => 즉 두 항의 차들의 나열이 등차수열이 된다는 말.

S(n-1) = an - a1 | an = n^2 + n +1

03_020 계차수열 파이썬

inputAN1 = int(input('a1 입력: '))
inputAN = int(input('an 입력: '))

inputBN1 = int(input('b1 입력: '))
inputBD = int(input('bn 공차 입력: '))

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

print('an의 {}번째 항의 값: {}'.format(inputAN, valueAN))
print('bn의 {}번째 항의 값: {}'.format(inputAN, valueBN))

공식 사용

inputAN1 = int(input('a1 입력: '))
inputAN = int(input('an 입력: '))

valueAN = inputAN**2 + inputAN + 1

S(n-1) = an - a1 | an = n^2 - 1

print('an의 {}번째 항의 값: {}'.format(inputAN, valueAN))## 03_021 피보나치 / an = a(n-2) + a(n-1)

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('{}th value: {}'.format(inputN, valueN))
print('{}th SUM: {}'.format(inputN, sumN))

03_022 팩토리얼 / 정수 n 까지의 모든 정수를 곱한 결과는?

inputN = int(input('N ? : '))

반복문 활용법 / for

result = 1
for n in range(1, inputN + 1):
result *= n

print('반복문 for / {} factorial= {}'.format(inputN, result))

반복문 활용법 / while

result = 1
n = 1
while n <= inputN:
result *= n
n += 1

print('반복문 while / {} factorial= {}'.format(inputN, result))

재귀함수 이용법

def factorialFun(n):
if n == 1: return 1

return n * factorialFun(n -1)
print('함수 활용 / {} factorial= {}'.format(inputN, factorialFun(inputN)))

03_023 군수열 / 여러 개의 항을 묶었을 때 규칙성을 가지는 수열

03_024 군수열 파이썬

inputN = int(input('n : '))

flag = True

n = 1 ; nCnt = 1 ; searchN = 0
while flag:

for i in range(1, (n + 1)):
if i == n:
print('{}'.format(i), end = '')
else:
print('{}'.format(i), end = '')

nCnt += 1
if (nCnt > inputN):
  searchN = i
  flag = False
  break

print()
n += 1

print('{}th number = {}'.format(inputN, searchN))

분수로 된 군수열

inputN = int(input('n : '))

flag = True

n = 1 ; nCnt = 1 ; searchNC = 0 ; searchNP = 0
while flag:

for i in range(1, (n + 1)):
if i == n:
print('{}/{}'.format(i, (n - i + 1)), end = '')
else:
print('{}/{}'.format(i, (n - i + 1)), end = '')

nCnt += 1
if (nCnt > inputN):
  searchNC = i
  searchNP = n - i + 1
  flag = False
  break

print()
n += 1

print('{}th number = {}'.format(inputN, searchNC, searchNP))

03_025 순열 / 순서를 지켜서 일렬로 나열하는 경우의 수

nPr = n (n-1) (n-2) ... (n-r+1) | (0 < r <= n)

nPr = n! / (n-r)! | (0 < r <= n)

03_026 순열 파이썬

numN = int(input('numN ? = '))
numR = int(input('numR ? = '))
result = 1

for n in range(numN, (numN - numR), -1):
print('n : {}'.format(n))
result = result * n

print(result)

원순열 - 시작과 끝 구분이 없는 순열

공식 = n! / n = (n-1)!

03_027 조합 / 순서 상관 없이 섬택하는 것

nCr = nPr / r!

nCr = n! / r! * (n-r)!

03_028 조합 파이썬

numN = int(input('numN ? = '))
numR = int(input('numR ? = '))
resultP = 1
resultR = 1
resultC = 1

for n in range(numN, (numN - numR), -1):
print('n : {}'.format(n))
resultP = resultP * n

print('resultP: {}'.format(resultP))

for n in range(numR, 0, -1):
print('n: {}'.format(n))
resultR = resultR * n

print('resultR: {}'.format(resultR))

resultC = int(resultP / resultR)
print('resultC: {}'.format(resultC))## 03_029 확률

구하고자하는 경우의 수 / 전체 경우의수 = 확률

03_030 확률 파이썬

def proFun():

numN = int(input('numN ? = '))
numR = int(input('numR ? = '))

resultP = 1
resultR = 1
resultC = 1

for n in range(numN, (numN - numR), -1):
print('n : {}'.format(n))
resultP = resultP * n

print('resultP: {}'.format(resultP))

for n in range(numR, 0, -1):
print('n: {}'.format(n))
resultR = resultR * n

print('resultR: {}'.format(resultR))

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('event1: {}'.format(event2))

probability = (event1 event2) / sample
print('probability: {}%'.format(round(probability
100, 2)))

profile
데이터 분석가

0개의 댓글