[18~24] 기초수학(수열2)

이재은·2024년 5월 16일

18강(시그마)

19강(계차수열)

계차수열 : 어떤 수열의 인접하는 두항의 차로 이루어진 또다른 수열

20강 계차수열(파이썬)


inputAn1 = int(input('a1입력 : '))
inputAn = int(input('a의 개수 : '))

inputBn1 = int(input('b1입력 : '))
inputBd = int(input('b의 공차 : '))

valueAn = 0
valueBn = 0

n = 1
while n <= inputAn :

    if n == 1 :
        valueAn = inputAn1
        valueBn = inputBn1 
        #여기틀림 밑에서 할생각 말고 여기서 셋팅 해줬어여
        n+= 1
        continue

    valueAn += valueBn #이게 먼저 나와야함
    valueBn += inputBd
    n+=1

print('{}번째 항 : {}'.format(inputAn,valueAn ))

21강 피보나치수열

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

valueN = 0
sumN  = 0
n= 1

#계속 더해주야 하는데 뭘 더할꺼냐 - 변수만들어 누적더하기 
valuePreN2 = 0
valuePreN1 = 0

while n <= inputN :

    if n == 1 or n == 2 : #첫번째랑 두번째 달
        valueN = 1
        valuePreN2 = valueN
        valuePreN1 = valueN

        sumN += valueN
        n+= 1

    else : #여기는 왜 else 가 붙는 거지/??
        valueN = valuePreN2 + valuePreN1 #피보나치 핵심
        valuePreN2 = valuePreN1 #반복문이 돌기 위해 변수셋팅
        valuePreN1 = valueN
        sumN += valueN
        n += 1

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

22강

  1. 팩토리얼
    1) 1부터 양의 정수 n까지의 정수를 모두 곱한 것
    2) 0! => 1
#1. 반복문 이용

#2. 재귀함수 이용 (기존걸 계속 곱한다 > 재귀함수 사용)

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

    return n * factorialFun(n-1) #n이 4라면 3 * 2 * 1

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

#3. math 모듈 - factorial 함수 

import math

print(math.factorial(inputN))

23강 (예제 사고★)

  1. 군수열 : 여러개 항을 묶었을 때 규칙성을 가지는 수열
    항의 개수에서 규칙성 - 원래수열의 숫자 구하기
    an = n
    sn = (n+1) * n / 2
#군수열

inputN = int(input('n항 입력: '))

flag = True
n = 1; nCnt = 1; searchN = 0  #nCnt = 찾고자하는 항 번호 / searchN = 찾고자 하는 항의 값
while flag:

    #1
    for i in range(1, (n + 1)):
        #5 print('{} '.format(i)) #5번째 군의 마지막 수는 5
        if i == n:
            print('{} '.format(i), end='')
        else:
            print('{}, '.format(i), end='')
        #3
        nCnt += 1
        #4
        if (nCnt > inputN):
            searchN = i #5번째 군의 마지막 수는 5
            flag = False #while 멈추기
            break  #for문 멈추기

    print()
    #2
    n += 1

print('{}항: {}'.format(inputN, searchN))

24강

  1. 순열 : n개에서 r개를 택하여 나열하는 경우의 수
    순서 중요★

26강 순열 파이썬

numN = int(input('numN입력 : '))
numR = int(input('numN입력 : '))

result = 1

for n in range(numN, (numN - numR), -1): 
#*** range는 그 전까지 돈다. 즉 줄어들면 입력한 수보다 하나 큰 수가
즉(numN - numR + 1)까지 입력 되는 것 (+1되어 실행)
    print('n : {}'.format(n))
    result *= n

print('result : {}'.format(result))
#함수 이용
import itertools

arr = ['A', 'B', 'C']
nPr = itertools.permutations(arr, 2)
print(list(nPr))

결과 : [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
  1. 원순열 : 시작과 끝이 구분이 없는 순열
n = int(input(' 친구 수 입력 : '))
result = 1
#(n-1)! 
for n in range(1, n):  (-1되어 실행)
    print('n : {}'.format(n))
    result *= n

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

27강

  1. 조합 : 순서상관없이 r개 선택
- 실습
5개 중에서 2개 뽑는데 삼각형, 사각형이 동시에 뽑힐 확률
> 이미 순서고려 안해서 뽑았기에 굳이 나눠주지 않아도 됨

28강 조합 파이썬

#1. 순열 파이썬 / n 팩토리얼

#2. 함수
import itertools

arr = ['A', 'B', 'C']
nCr = itertools.combinations(arr, 2)
print(list(nCr))

결과 : [('A', 'B'), ('A', 'C'), ('B', 'C')]

29강

  1. 확률 : 모든 사건에서 특정 사건이 일어날 수 있는 수
    1) 모든 사건 : 표본 공간 (sample)
    2) 특정 사건 : 사건 (event)
  2. 확률과 조합

30강 확률 파이썬

#함수 쓴다는 아이디어 굿!
#변수지정 안해도 아래에서 물어볼거임
def proFun(): #함수가 두가지의 값을 물어볼거임

    numN = int(input('numN입력 : ')) #지역변수
    numR = int(input('numR입력 : '))
profile
Dare to be an optimist

0개의 댓글