[제로베이스 데이터취업스쿨 15기] Part. 2 수학 스터디노트 -8(5.12.)

DaHye CHOI·2023년 5월 12일
0

>⛹️‍♀️ 제로베이스 데이터취업스쿨 15기 스터디노트 8(5.12.)

🗂️ 오늘(5.12.) 수강한 분량

기초수학 1 ~ 4

🗂️ 기초수학 1 ~ 4 핵심 내용 정리

  • 약수 : 어떤 수를 나누어 떨어지게 하는 수
  • 소수 : 1과 자신만을 가지는 수(단, 1은 제외)
    •  약수> 조건식 사용
         for number in range(1, (inputNumber + 1)):
           if inputNumber % number == 0:
            → 나머지가 0인 숫자 찾기
        소수> for문 → flag 사용 → 조건식 사용
          for number in range(2, (inputNumber + 1)):
           flag = Ture
           for n in range(2, number):
           	if number % n == 0:
               	flag = False
                   break
           if (flag):
             print(~)
  • 소인수 : 약수 중에서 소수인 숫자
  • 소인수분해 : 1보다 큰 정수를 소인수의 곱으로 나타낸 것, 약수를 정확하고 쉽게 구할 수 있음
    • n = 2 
      while n <= inputNumber:
      	if inputNumber % n == 0:  #소인수분해 과정  
          	print('소인수 : {}'.format(n))
              inputNumber /= n  #몫을 재할당
       n = 2 
       searchNumber = []     
  • 공약수 : 2개 이상의 수에서 공통된 약수
  • 최대공약수 : 공약수 중 가장 큰 수
    •  for i in range(1, (num1 + 1)):
       	if num1 % i == 0 and num2 % i = 0:
         print('공약수 : {}'.format(i))
         maxNum = i #최대공약수
       print('최대공약수' : {}'.format(maxNum))       
  • 유클리드호제법 : x,y의 최대공약수 = y,r(x%y)의 최대공약수
    • temp1 = num1; temp2 = num2
       while temp2 > 0:
       	temp = tmep2
          temp2 = temp1 % temp2
         	temp1 = temp
       print('{}, {}의 최대공약수 : {}'.format(num1, num2, temo1))
       for n in range(1, (temp1 +1)):
      		if temp1 % n == 0:
      			 	print('{}, {}의 공약수' : {}'.format{num1, num2, n})       
  • 최소공배수 : 최대공약수를 이용하여 최소공배수를 구할 것
    • minNum = (num1 * num2) // maxNum
       print('최소공배수 : {}'.format(minNum)
       newNum = minNum
       for i in range(1, (newNum + 1)):
       	 if newNum % i == 0 and num3 % i == 0:
            maxNum = 1
       print('최대공약수 : {}'.format(maxNum))
       minNum = (newNum * num2) // maxNum
       print('최소공배수 : {}'.format(newNum))
       # 3개 이상의 최소공배수 구하기 : 
       # 2개의 수에 대한 최소공배수를 구한 후 다시 3번째, 4번째~로 공배수 구할 것 
  • 진법 : 특정 숫자 몇 개를 사용하여 수를 표시
    • 진법 변환 함수함수이름표현 1표현 210진수 변경(10진수 : 30)
      2진수binaryformat(bin(num))format(num, #b)format(int('0b11110',2))
      8진수octalformat(oct(num))format(num, #o)format(int('0o36',8))
      16진수hecadecimalformat(hex(num))format(num, #x)format(int('0x1e',16))
      ★ 진수 변환 결과는 문자열 <classs 'str'>
  • 수열 : 규칙성을 가지고 나열되어 있는 수들
    • 수열 합 an = sn -s(n-1) (단, n>=2 크고 a1 = s1)
    • 등차수열 : 연속된 두 항의 차이가 일정한 수열
      • 등차수열 규칙성 이용 일반항 구하기 an = a1 + (n-1)*d
      • 등차중항 : 연속된 세 항에서 가운데 항
      # 등차수열 원리 이용
       while n <= inputN:
        if n == 1:
          valueN = inputN1
          print('{}번째 항의 값 : {}'.format(n, valueN))
          n += 1
          continue
        valueN += inputD
        print('{}번째 항의 값 : {}'.format(n, valueN))
        n += 1
      print('{}번째 항의 값 : {}'.format(inputN, valueN))
      # 등차수열 공식 이용 : an = a1 + (n-1)d / sn = n(a1 + an) / 2
      valueN = inputN1 + (inputN - 1) * inputD
      print('{}번째 항의 값 : {}'.format(inputN, valueN))
    • 등비수열 : 연속된 두 항의 비가 일정한 수열
      • 등비수열 규칙성 이용 일반항 구하기 an = a1 * r^(n-1)
      • 등비중항 : 연속된 세 항에서 가운데 항
      # 등비수열 원리 이용
       while n <= inputN:
        if n == 1:
          valueN = inputN1
          print('{}번째 항까지의 합 : {}'.format(n, sumN))
          n += 1
          continue
        valueN *= inputR
        sumN += valueN
        print('{}번째 항까지의 합 : {}'.format(n, valueN))
      print('{}번째 항까지의 합 : {}'.format(sumN, valueN)) 
      # 등비수열 공식 이용 : sn = a1 * (1 - r^n) / (1 - r)
      sumN = inputN1 * (1 - (inputR ** inputN)) / (1 - inputR)
      print('{}번째 항까지의 합 : {}'.format(inputN, (int(sumN)))
      #int: 나누기 수행시 float로 반환됨으로 정수로 보기 위함

👩‍🚀 스터디 감정 노트

중학교때 배웠던 내용이 나와서 반가웠다!
근데 파이썬을 이용해서 구현하려니까 색다른 느낌이였다.

[이미지 출처 : 미리캔버스]

profile
데이터가 궁금한 비전공자의 데이터스터디🫠

0개의 댓글