Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 직각삼각형 빗변의 중점과 밑변이 이루는 각도 구하기

직각삼각형의 두 변 ABBC가 주어져 있다고 가정해 보겠습니다. 빗변(AC)의 중점을 M이라 할 때, 우리가 구하고자 하는 것은 M과 밑변 BC 사이의 각도입니다.

파이썬으로 직각삼각형 빗변의 중점과 밑변이 이루는 각도 구하기

예를 들어 ab = 6, bc = 4가 입력으로 주어진다면 결과는 56.309932474020215가 됩니다. 그 이유는 ab/bc의 아크탄젠트(arctan) 값이 약 0.9828 라디안인데, 이를 도(degree) 단위로 변환하면 약 56.31도가 되기 때문입니다.

풀이 접근 방법

이 문제는 삼각함수의 기본 성질만 활용하면 매우 간단하게 해결할 수 있습니다.

  • ans := arctan(ab / bc)를 계산합니다.
  • 계산된 라디안 값을 도 단위로 변환한 뒤 반환합니다.

직각삼각형에서 한 변에 대한 다른 변의 비율이 곧 탄젠트 값이므로, 역탄젠트(arctan)를 취하면 원하는 각도를 바로 얻을 수 있습니다.

예제 코드

from math import atan, pi

def solve(ab, bc):
    def deg(rad):
        return 180/pi * rad

    ans = deg(atan(ab/bc))
    return ans

ab = 6
bc = 4
print(solve(ab, bc))

입력

6, 4

출력

56.309932474020215

더 간결한 구현 방법

사실 파이썬의 math 모듈에는 라디안을 도로 변환해 주는 math.degrees() 함수가 이미 내장되어 있습니다. 따라서 변환 함수를 직접 작성하지 않고도 다음과 같이 한 줄로 해결할 수 있습니다.

import math

def solve(ab, bc):
    return math.degrees(math.atan(ab/bc))

print(solve(6, 4))  # 56.309932474020215

두 방법 모두 동일한 결과를 반환하지만, 실무에서는 표준 라이브러리를 활용하는 두 번째 방식이 코드가 더 짧고 가독성이 좋아 권장됩니다.