Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- QGC#QGrouncControl#GLIB오류
- 파이썬#파이썬경로#파이썬폴더#파이썬디렉토리
- 파이썬 음성파일 텍스트 변환
- 파이썬 음성인식
- 파이썬 #파이썬프로젝트 #파이썬 예시 #파이썬 파일경로 #파이썬 자동화
- 파이썬 #
- 파이썬 유튜브
- 논문번역 꿀팁
- 크롬오류#크롬검색어자동완성끄기#검색어자동완성오류#검색어자동완성 제거#검색어 노란선#검색어반복입력
- 파파고 꿀팁
- 파이썬 채팅
- 파이썬 열
- 파이썬 프로젝트
- 파이선 행
- 통계 #ROC #TPR #FPR #TNR #이진분류 #Accuracy #Recall
- 파이썬 텍스트 변환 #파이썬 공부
- 파이썬 파일 전송
- 파이썬
- 파이썬 엑셀 파일 읽고 쓰기
- 파이썬#subprocess#communicate()
- 리눅스#모의해킹#리눅스명령어#head 명령어
- 파파고 번역
- ROS #spin() #spinOnce() #ROS기초
- 스트림 암호 one-time-pad 공격#보안#암호
- 파이썬 예시
- 리눅스기초#리눅스명령어#리눅스 tail#tail#모의해킹 리눅스
- PDF 개행문자
- pdf 번역
- 패스트 캠퍼스 #자율주행 #비전
- ROS #Robotics #ROS기초
Recent Comments
Archives
개발자비행일지
파이썬 부등식 본문
수량 사이의 대소 관계를 부등호를 사용해서 나태내는 식을 부등식이라고 한다.
다음의 문제를 통해 알아보자
문제: 60L의 물이 들어 있는 600L 용량의 욕조에 물을 더 받으려 한다. 분당 30L 씩 받을 수 있다고 할 때,
언제 가득차게 되는가 ??
이 문제는 다음의 부등식을 통해 해결가능하다.
- 60+30x <600
이걸 파이썬의 for문과 if문을 사용해서 구해보자.
import numpy as np
# numpy 모듈을 임포트 해준다.
x = range(0, 1000)
a = []
for i in x:
if 3*i + 60 < 600:
a.append(i)
else:
pass
print(max(a))
# 부등식을 만족하는 값들 중에 가장 큰 X값을 출력해 준다.
이제 for in과 if 문의 조합으로 한줄로 표현해 보자.
import numpy as np
x= range(1000)
a= [i for i in x if x*3 + 60 <6000]
#a는 리스트 x의 원소중 3x +60 <6000을 만족하는 원소만 뽑아서 만든 리스트이다.
print(max(a))
마지막으로 filter 와 lambda로 부등식을 풀어보자.
import numpy as np
x2 = np.arange(0,1000)
b = list(filter(lambda x: 3*x+60 < 600, x2))
#1)lambda 함수를 사용해서 3x+60 <600 을 만족하는지 확인한다.
#2)filter 함수를 적용해서 x2를 대상으로 부등식을 만족하는 원소만 필터링한다.
#3)해당 원소만 리스트 b로 만든다.
print(max(b))
#4)제일 큰 원소를 출력한다.
자 이제 이것을 활용해서 임의의 일차 부등식 문제와 정답을 출력하는 파이썬 프로그램을 만들어 보자.
import numpy as np
class Inequality:
def __init__(self):
self.a = 0
self.constant = 0
self.coefficient =0
self.symbol1 =""
self.symbol2 =""
print('x는 -10 부터 10까지의 정수이다. 다음 부등식을 만족하는 x를 구하시오.')
def question(self):
self.coefficient =0
self.constant = np.random.randint(low = -10, high =10, size = 2)
#2개의 난수를 발생시킨다.
while self.coefficient == 0:
self.coefficient = np.random.randint(low =-10, high =10)
self.a = np.random.randint(4, size=1)
#부등호를 표현하기 위한것 case
if np.random.randint(2) == 0:
self.symbol1= "+"
else :
self.symbol1= "-"
if self.a % 4 == 0:
self.symbol2 = '>'
elif self.a % 4 == 1:
self.symbol2 = '>='
elif self.a % 4 == 2:
self.symbol2 = '<='
elif self.a % 4 == 3:
self.symbol2 = '<'
print('{}x {} {} {} {}'.format(self.coefficient,self.symbol1,self.constant[0], self.symbol2,self.constant[1]))
def answer(self):
if self.symbol1 == '-':
self.constant *= -1
if self.a%4 == 0:
y= list(filter(lambda a: self.coefficient*a+self.constant[0] > self.constant[1],np.arange(-10,10,1)))
elif self.a%4 ==1:
y= list(filter(lambda a: self.coefficient*a+self.constant[0] >= self.constant[1],np.arange(-10,10,1)))
elif self.a%4 ==2:
y= list(filter(lambda a: self.coefficient*a+self.constant[0] <= self.constant[1],np.arange(-10,10,1)))
elif self.a%4 ==3:
y= list(filter(lambda a: self.coefficient*a+self.constant[0] < self.constant[1],np.arange(-10,10,1)))
print(y)
if __name__ == "__main__":
def print_menu():
print("1. 문제출제")
print("2. 종료")
menu = input("메뉴선택: ")
return int(menu)
def run():
while 1:
q1 = Inequality()
menu = print_menu()
if menu == 2:
break
elif menu == 1:
q1.question()
print("풀이를 완료하셨으면 y를 입력해 주세요")
check_ans = input("풀이완료여부: ")
if check_ans == 'y' or check_ans == 'Y':
q1.answer()
else:
print("잘못된 입력입니다. 다시 입력해주세요")
run()
run()
프로그램을 실행하면 다음과 같은 양식으로 출력되고 1 메뉴를 통해 문제를 생성하고 문제 풀이가 끝나면 y를 통해서 정답을 확인할 수 있는 방식의 프로그램이다.
'▶ Python' 카테고리의 다른 글
파이썬으로 pdf 파일 제목 추출하기 (0) | 2020.07.10 |
---|---|
파이썬 연립방정식풀기 (0) | 2020.07.07 |
파이참 단축키 (0) | 2020.07.07 |
파이썬으로 10진법에서 2진법 16진법 으로 변경하기 (0) | 2020.03.22 |
파이썬 함수2 (0) | 2018.12.24 |