230918_스터디노트

Sihyun Kim·2023년 9월 18일

09~10_진법

  • 10진수 -> 2진수, 8진수, 16진수
    binary : bin()
    octal : oct()
    Hexadecimal : hex()
  • 변환 후 데이터 타입은 문자열
dNum = 30

print('2진수: {}'.format(bin(dNum)))
print('8진수: {}'.format(oct(dNum)))
print('16진수: {}'.format(hex(dNum)))

print('2진수: {}'.format(format(dNum, '#b')))
print('8진수: {}'.format(format(dNum, '#o')))
print('16진수: {}'.format(format(dNum, '#x')))

print('{0: #b},{0: #o},{0: #x}'.format(dNum))

print('2진수(0b11110) -> 10진수({})'.format((int('0b11110', 2))))
print('8진수(0o36) -> 10진수({})'.format((int('0o36', 8))))
print('16진수(0x1e) -> 10진수({})'.format((int('0x1e', 16))))

11_수열

  • 수열: 규칙성을 가지고 나열되어 있는 수들
  • 특정항은 특정항까지의 합에서 특정항 이전까지의 합과 같다

12_등차 수열

  • 등차 수열: 연속된 두 항의 차이가 일정한 수열
  • 등차 수열 규칙성을 이용해서 일반항을 구할 수 있다
  • 등차 중항: 연속된 세 항에서 가운데 항 (ex_ a3 = (a2+a4)/2)
  • 등차 수열의 합

13_등차 수열(01)

  • n번째 항의 값을 출력하는 프로그램
inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))

valueN = inputN1
n = 1

while n <= inputN:

    if n == 1:
        print(f'{n}번째 항의 값: {inputN1}')
        valueN += inputD
        n += 1

    else:
        print(f'{n}번째 항의 값: {valueN}')
        valueN += inputD
        n += 1
  • 등차 수열 일반항 공식 대입
inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))


#등차 수열 일반항 공식: an = a1 + (n-1) * d

valueN = inputN1 + (inputN - 1) * inputD

print(f'{inputN}번째 항의 값: {valueN}')

14_등차 수열(02)

  • n번째 항까지의 합
inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))

valueN = 0
n = 1
sumN = 0

while n <= inputN:

    if n == 1:
        valueN = inputN1
        sumN = valueN
        print(f'{n}번째 항까지의 합: {sumN}')

        valueN += inputD
        sumN += valueN
        n += 1

    else:
        print(f'{n}번째 항까지의 합: {sumN}')

        valueN += inputD
        sumN += valueN
        n += 1
  • 등차 수열 합의 공식 대입
inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))

#n번째 항 구하기: an = a1 + (n-1)d
#n번째까지의 합 구하기: Sn = n(a1+an) / 2

valueN = inputN1 + (inputN - 1) * inputD
sumN = inputN * (inputN1+valueN) / 2
sumN = int(sumN)

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

15_등비 수열

  • 등비 수열: 연속된 두 항의 비가 일정한 수열
  • 등비 수열의 일반항:
  • 등비 중항: 연속된 세 항에서 가운데 항 (a3^2 = (a2 * a4))
  • 등비 수열의 합:

16_등비 수열(01)

  • n번째 항의 값을 출력하는 프로그램
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(f'{n}번째 항의 값: {valueN}')

        valueN *= inputR
        n += 1

    else:
        print(f'{n}번째 항의 값: {valueN}')

        valueN *= inputR
        n += 1
  • 등비 수열 일반항 공식 대입
inputN1 = int(input('a1 입력: '))
inputR = int(input('r 입력: '))
inputN = int(input('n 입력: '))

#등비 수열 일반항 공식: an = a * r ^ (n-1)

valueN = inputN1 * (inputR ** (inputN-1))

print(f'{inputN}번째 항의 값: {valueN}')

17_등비 수열(02)

  • n번째 항까지의 합
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(f'{n}번째 항까지의 합: {sumN}')

        n += 1

    valueN *= inputR
    sumN += valueN
    print(f'{n}번째 항까지의 합: {sumN}')
    n += 1
  • 등비 수열 합의 공식 대입
inputN1 = int(input('a1 입력: '))
inputR = int(input('r 입력: '))
inputN = int(input('n 입력: '))

#등비 수열의 합 공식: Sn = (a1 * (1-r^n)) / 1-r

sumN = (inputN1 * (1-(inputR**inputN))) / (1-inputR)
sumN = int(sumN)
print(f'{inputN}번째 항까지의 합: {sumN}')
  • 중급 끝나고 기초 수학 넘어오니 프로그래밍 하는 것 자체의 난이도는 확 줄어든 느낌..
    이지만 수학 공식은 이해는 가지만, 못 외우겠소 🙄
profile
문과이과예체능통합형인재

0개의 댓글