(mathematics) problems

임경민·2023년 9월 23일
1
post-thumbnail

Summarization


  • Python 기초수학 문제풀이 진행
  • 기초수학 Equation 복습

Contents


  • 진법 : 진법 관련 함수를 이용해서 진법 변환을 쉽게 할 수 있다.

    • 방법 1
    dNum = int(input('10진수 입력: '))
    
    print('2진수 : {}' .format(bin(dNum)))
    print('8진수 : {}' .format(oct(dNum)))
    print('16진수 : {}' .format(hex(dNum)))
    • 방법 2
    print('16진수(0x45d) -> 2진수({})' .format(bin(0x45d)))
    print('16진수(0x45d) -> 8진수({})' .format(oct(0x45d)))
    print('16진수(0x45d) -> 10진수({})' .format(int(0x45d)))
  • 등차수열 : 연속하는 두 수의 차이가 모두 일정한 수열

    • 일반항

      an=a1+(n1) da_n = a_1 + (n-1) \ d
    • 등차수열의 합

      Sn=n2[a1+(n1)d]S_n = \frac{n}{2}\left[a_1 + (n-1)d \right]
  • 등비수열 : 각 항이 초항(First term)과 일정한 비를 가지는 수열

    • 일반항

      an=arn1a_n = ar^{n-1}
    • 등비수열의 합

      Sn=a(rn1)r1S_n = \frac{a(r^n - 1)}{r - 1}
  • 계차수열 : 어떤 수열 an{a_n}의 인접하는 두 항의 차로 이루어진 또 다른 수열

    • 계차 수열 bnb_n의 일반항
      bn=Δan+1=an+1anb_n = \Delta a_{n+1} = a_{n+1} - a_{n}
k=1n1bk=ana1\sum_{k=1}^{n-1} b_k = a_n - a_1
  • 시그마 : 수열의 합을 나타낸 기호

    Sn=inaiS_n = \sum_{i}^{n} a_i
  • 피보나치수열 : 앞의 두 항을 더하여 만든 값

    an=an2+an1a_n = a_{n-2} + a_{n-1}
  • 팩토리얼

    • 방법 1: 반복문을 이용한 함수
def factorialFunction(n):
    fac = 1
    for n in range(1, (n + 1)):
        fac *= n

    return fac
num = int(input('input number: '))
print(f'{num} : {factorialFunction(num)}')
  • 방법 2: 재귀함수(Recursive Function)
def factorialRecursiveFunction(n):
    if n == 1:
        return n
    return n * factorialRecursiveFunction(n - 1)

num = int(input('input number: '))
print(f'{num} : {factorialRecursiveFunction(num)}')
  • 방법 3: 모듈(Module) 사용
import math

num = int(input('input number: '))
print(f'{num} : {math.factorial(num)}')
  • 군수열 : 여러 개의 항을 묶었을 때 규칙성을 가지는 수열
  • 순열
9P46P3_9 P _4 \qquad _6 P _3
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: {}' .format(result))
  • 조합
9C46C2_9 C _4 \qquad _6 C _2
numN = int(input('numN 입력: '))
numR = int(input('numR 입력: '))

resultP = 1 ; resultR = 1 ; resultC = 1

for n in range(numN, (numN - numR), -1):
    resultP = resultP * n

for n in range(numR, 0, -1):
    resultR *= n

resultC = int(resultP / resultR)
print('resultC: {}' .format(resultC))

0개의 댓글