안녕하세요!
오늘은 피타고라스 정리를 사용해 직각 삼각형을 판단해주는 방법을 알아보겠습니다.
SQL , Python을 통해 구현해보도록 하겠습니다.
## 피타고라스 정리 ?
임의 직각 삼각형에서 밑변(a), 높이(b), 빗변(c)이라고 할 때 ,
밑변과 높이의 각 제곱의 합은 빗변의 제곱과 같다.
# 피타고라스 정리 증명
증명에는 여러가지 수학적 이론들이 많이 필요한 것을 찾게 되었습니다.
피타고라스 정리는 평면 기하에서 가장 의미있는 정리 중 하나라고 합니다.
300 여 개가 넘는 증명이 알려져 있다고 합니다.
유도되는 공식 중 코사인 제 2 법칙을 사용해서 피타고라스 정리를 확인해 보도록 하겠습니다.
# 알고리즘
1. 밑변 , 높이, 빗변의 길이를 입력 받습니다.
2. 이를 위 공식을 사용해 값을 판단합니다.
3. 직각 삼각형인지 아닌지 판단합니다.
## Python 피타고라스 정리
1. 제 2 코사인 법칙 활용
파이썬 내장 모듈인 math를 사용합니다.
< math의 삼각함수 >
아크코사인(accos), 아크사인(asin), 아크탄젠트(atan) , 코사인(cos), 사인(sin), 탄젠트(tan)
위 삼각함수 중 코사인 함수를 사용해 아래 공식을 그대로 구현합니다.
import math
a=float(input('밑변 길이를 입력하세요:'))
b=float(input('높이 길이를 입력하세요:'))
c=float(input('빗변 길이를 입력하세요:'))
a2=a**2
b2=b**2
c2=c**2
if c2==a2+b2-2*a*b*round(math.cos(90)):
print('직각 삼각형 입니다.')
else:
print('직각 삼각형이 아닙니다.')
2. 피타고라스 정리 활용
아래 공식을 바로 적용해서 직각 삼각형을 구별해 봅니다.
a=float(input('변a 길이를 입력하세요:'))
b=float(input('변b 길이를 입력하세요:'))
c=float(input('빗변 길이를 입력하세요:'))
if a**2+b**2==c**2:
print('직각 삼각형 입니다.')
else:
print('직각 삼각형이 아닙니다.')
피타고라스 정리는 누구나 아는 가장 대중적인 정리라고 생각합니다.
간단한 정리를 프로그래밍으로 구현하면서 math 모듈의 삼각 함수를 알게 되었네요!
## SQL 피타고라스 정리
1. 파이썬과 마찬가지로 세 가지 변을 입력 받습니다.
2. case 문을 활용해 직각삼각형을 판단합니다.
# SQL 치환변수(&, &&)
치환 변수를 사용해 쿼리 내에 내가 원하는 값을 입력할 수 있습니다.
다음 쿼리를 작성해서 실행해 봅니다.
select &치환값1,&치환값2
from dual;
치환값으로 입력한 값들이 각각 칼럼과 데이터 값으로 사용되어서 출력되었습니다.
다음 쿼리를 사용해 보겠습니다.
select ename,job,sal
from emp
where sal=&salary;
3000값을 입력하자 sal 값이 3000인 데이터가 출력되었습니다.
이번에는 이름이 scott인 데이터를 출력해 보겠습니다.
select ename,job,sal
from emp
where ename=&name;
오류가 발생합니다.
그 이유는 문자를 입력하면 칼럼 명으로 인식된다고 합니다.
따라서 문자라는 것을 표시하기 위해 작은 따옴표를 사용합니다
이름 데이터는 모두 대문자이기 때문에 upper함수도 사용하고, 문자열 표시로 바꿔주니
원하는 데이터 값이 출력되었습니다!
# name 변수를 한 번만 입력해도 계속 사용하고 싶다면? --> && 치환변수
select ename,job,sal,'&&name'
from emp
where ename=upper('&name');
위 &&name에서 한 번 받은 scott을 name<- 변수에 저장했습니다.
따라서 이후부터는 &name만 사용하면, scott 이라는 문자를 사용할 수 있습니다.
계속 입력하거나 , 한 번 입력한 데이터를 다시 바꾸거나 할 때는 define , undefine을 사용해
치환변수를 선언 / 해제 할 수 있습니다.
SQL에서 변수를 치환하는 방법을 사용해 피타고라스 정리를 구현해 봅니다!
select case when (power(&밑변,2) + power(&높이,2)) = power(&빗변,2) then '직각삼각형이 맞습니다.'
else '직각삼각형이 아닙니다.' end 피타고라스
from dual;
쉽고 간단한 정리를 파이썬과 SQL로 구현했습니다.
단순히 구현을 하는 것이 목적이 아니라 , 구현을 하는 과정에서
Python의 삼각함수 사용, SQL의 치환변수 입력과 치환변수 선언에 대한 학습을 진행했습니다.
읽어주셔서 감사합니다.
'알고리즘' 카테고리의 다른 글
[Python algo] 연속 확률 밀도 함수 데이터 생성 및 시각화 (0) | 2021.02.17 |
---|---|
[Python algo] 분산 구하기 | 표준편차 구하기 (2) | 2021.01.21 |
[Python algo] 중앙값 계산 | 중앙값 사용 (0) | 2021.01.20 |
[Python algo] 탐욕 알고리즘 | Greedy algorithm (7) | 2021.01.19 |
[Python&SQL] 각 자리수 합 더하기 (2) | 2021.01.15 |
[Python&SQL] 적어도 불량품 1개일 확률 ? (7) | 2021.01.14 |
[Python & SQL] 몬테 카를로 | 원주율 구하기 (1) | 2021.01.09 |
[Python] 없는 수가 뭘까 ? 빠진수 찾기 (6) | 2021.01.07 |