디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[일반] 파이썬 계산기(8): 나머지 연산자 %의 문제점

신촌우왕87갤로그로 이동합니다. 2022.07.04 23:39:21
조회 227 추천 1 댓글 0
														

신촌우왕 소개

수학자, 천재작곡가, 요가수행자






나머지 연산자 %의 문제점:



다음 내용을 살펴보자.

이를테면 27을 4로 나누면 나머지는 3이다.


print((27) % (4)) # 출력값 3

print((-27) % (4)) # 출력값 1

print((27) % (-4)) # 출력값 -1

print((-27) % (-4)) # 출력값 -3


몫과 나머지의 수학적 정의에 따르면

나머지는 음수가 될 수 없다.


그런데 위와 같이

경우에 따라

나머지 값으로 -1 혹은 -3이 출력되고 있다.





확인한 바에 따르면

자바 혹은 마이크로소프트 엑셀이 제공하는 VBA 또한

같은 문제에 대하여

나머지 연산에 있어서

음수의 값을 출력한다.


그리고 각각의 언어가 출력하는 나머지 값을 비교해보면

나머지 음수 값 또한 서로 간에 일관성이 없다.


각각의 프로그래밍 언어 모듈이 제공하는 함수들에 있어

그것을 작성한 프로그래머에 따라

올바르지 않은 주관이 작용한 것이라 볼 수 있다.


따라서

파이썬, 자바, 비주얼베이식의

몫, 나머지 연산은 사실 상 믿을 것이 못된다.


그리고

아마도 다른 언어들 또한

이러한 문제를 가지고 있을 가능성이 많다.






몫과 나머지의 수학적 정의


<실수의 나눗셈 정리 - by WooKing87>

두 실수 a(≠0), b에 대하여

다음 두 식을 동시에 만족하는 정수 q의 값은 유일하게 존재한다.

b = aq + r

0 r < |a

이때 정수 q의 값을 'b를 a로 나누었을 때의 몫'이라 하며

r = b - aq의 값을 'b를 a로 나누었을 때의 나머지'라 한다.

(다만 이것은 학계의 인정을 받아야만 한다. 물론 기존에 이미 존재할 가능성도 있을 수 있다.)



<정수의 나눗셈 정리>

두 정수 a(≠0), b에 대하여

다음 두 식을 동시에 만족하는 정수 q, r의 값은 유일하게 존재한다.

b = aq + r

0 r < |a

이 때 정수 q의 값을 'b를 a로 나누었을 때의 몫'이라 하며

r = b - aq의 값을 'b를 a로 나누었을 때의 나머지'라 한다.

(두 정수 a, b에 대하여 q를 정수로 한정한다면 r = b - aq에서 r 또한 정수가 됨은 당연하다.)






몫과 나머지에 대한 올바른 정의는

사칙연산을 하기 위한 기본 지식에 속한다.


왜냐하면 간단한 두 수의 덧셈을 하더라도

10진법에 의거해 계산을 해야 하기 때문에

10으로 나눈 몫과 나머지를 구하는 과정이 필요하다.


그러나 위와 같이 문제가 있음을 확인했기 때문에

결국 제대로 된

수학적 정의에 따라

올바른 몫과 나머지를 리턴하는 기능을

사용자가 재정의 할 필요가 있는 셈이다.


계산기를 만들기 위해서는

가장 먼저 나눗셈의 몫과 나머지에 대한

올바른 이해가 필요하다.


계산기를 만들기 위해

기존의 모듈을 사용한다면

난관에 부딪히게 된다.


이것이 현재

파이썬 계산기 프로젝트를 진행하고 있는 이유이다.





추천 비추천

1

고정닉 1

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
- 설문 영포티룩도 멋지게 소화할 것 같은 40대 스타는? 운영자 25/10/27 - -
- AD 할로윈 슈퍼위크~!! 운영자 25/10/23 - -
1826 🔎질문 파이썬 질문 다시 드려요 (에러 창을 복사했는데 안보이네요. 이상하네요. [6] 궁금이(222.238) 22.07.28 173 0
1823 📚정보 파이썬 계산기(16): 루트k의 계산 신촌우왕87갤로그로 이동합니다. 22.07.28 186 1
1822 🔎질문 selenium element 질문 [2] oo(32.140) 22.07.28 207 1
1820 🔎질문 python pprint 써본사람? ㅇㅇ(182.223) 22.07.27 104 0
1817 🔎질문 파이참으로 크롤링 중인데 일시정지 있음??????????????????? [1] ㅇㅇ(39.118) 22.07.27 145 0
1816 🔎질문 파이참 opencv에서만 자동완성이 다 깨져서 나오는데 [2] ㅇㅇ(218.154) 22.07.27 742 0
1815 일반 와 평일 이 시간대에 [1] ㅁㅁ(223.38) 22.07.26 131 0
1814 🔎질문 이 세마포년이 뭐라는건지 아시는분 있습니노? [7] 키메라(1.212) 22.07.26 135 0
1813 🔎질문 마우스로 그림그리면 뭔가 처리할 수 있는 라이브러리가 있나요? [1] snake(223.62) 22.07.25 181 0
1812 일반 cls랑 time.sleep이 ㄹㅇ 시너지가 좋더라 [2] 하목금지조갤로그로 이동합니다. 22.07.25 144 0
1809 🔎질문 형들 파이썬 입문자 질문드려요 [3] ㅇㅇ(175.112) 22.07.24 223 0
1808 🔎질문 유데미 강의 추천좀 ㅇㅇ(59.2) 22.07.23 333 0
1807 일반 와 시발 크롤링 존나 힘들구나 [4] 치킨이좋아갤로그로 이동합니다. 22.07.23 351 0
1806 일반 뭐만 하면 오류 쳐 뜨네 ㅇㅇ(175.205) 22.07.23 97 0
1805 🔎질문 스레드 이해에 필요한 핵심키워드는 무엇입니노? [2] 키메라(211.36) 22.07.20 158 0
1804 🔎질문 이 쓰래기는 또 뭔데 [3] ㅇㅇ(59.27) 22.07.20 150 0
1803 📚정보 파이썬 계산기(15): 두 정수 나눗셈 일반화 [2] 신촌우왕87갤로그로 이동합니다. 22.07.19 202 1
1802 🔎질문 코린이 PyQt5 질문 [2] 기초(118.37) 22.07.19 170 0
1801 🔎질문 디씨 복붙가능 코드블록 생성기 왜 공지에서 없어졌어 [2] ㅇㅇ(45.14) 22.07.18 126 0
1799 🔎질문 파린이(코린이) 질문 [2] 기초(118.37) 22.07.16 142 0
1798 🔎질문 파이썬 개발도구 IDLE만으로도 다 해결됨? [3] ㅇㅇ(211.216) 22.07.16 173 0
1796 📚정보 파이썬 계산기(14): 뺄셈으로 몫과 나머지 빨리 구하기 [2] 신촌우왕87갤로그로 이동합니다. 22.07.14 228 1
1795 📚정보 자연수 n에 대한 <피타고라스 세 수> [1] 신촌우왕87갤로그로 이동합니다. 22.07.14 235 3
1793 📚정보 파이썬 계산기(13): 뺄셈을 이용한 몫과 나머지 [37] 신촌우왕87갤로그로 이동합니다. 22.07.14 459 1
1792 🔎질문 메일 크롤링 질문 [1] ㅇㅇ(175.198) 22.07.13 191 0
1790 🔎질문 이 코드 idle에서만 돌아가고 파이참에서는 안 돌아가는 이유 좀 [2] ㅇㅇ(59.27) 22.07.13 155 0
1789 📚정보 파이썬 계산기(12): 몫과 나머지 Code 및 문제점 [2] 신촌우왕87갤로그로 이동합니다. 22.07.13 256 1
1788 📚정보 파이썬 계산기(11): 실수의 나눗셈 정리 [1] 신촌우왕87갤로그로 이동합니다. 22.07.12 176 1
1787 🔎질문 아랫글 질문자인데 해결했습니다 근데 [1] ㅇㅇ(59.2) 22.07.11 695 0
1785 🔎질문 파이썬 셀레늄 if 갈림길 질문 [7] ㅇㅇ(59.2) 22.07.10 180 0
1783 일반 파이썬 계산기(10): 후위표기식에서 결과값 얻기 Code [1] 신촌우왕87갤로그로 이동합니다. 22.07.10 105 1
1782 일반 리스트와 행렬 [1] 신촌우왕87갤로그로 이동합니다. 22.07.09 127 0
1781 🔎질문 클래스는 왜 쓰는거야? [7] ㅇㅇ(14.54) 22.07.09 489 0
1780 일반 파이썬 계산기(9): 후위표기식에서 결과값 얻기 [2] 신촌우왕87갤로그로 이동합니다. 22.07.08 160 2
1779 🔎질문 형님들 GIL 질문드립니다. [2] 기초(118.37) 22.07.08 158 0
1778 🔎질문 버튼 클릭 시 주파수 그래프 나오게 하는 방법 [2] 만자몽(106.101) 22.07.07 187 0
1777 🔎질문 파이썬 같이 boolean 자료형이 있는 언어에서는 [8] ㅇㅇ(125.129) 22.07.07 167 0
1776 🔎질문 파이썬 오류 고쳐줄 사람 부탁해요 [4] ㅇㅇ(180.81) 22.07.07 143 0
1775 🔎질문 이미지 향상 머신 러닝 [4] ㅇㅇ(221.153) 22.07.07 142 0
1774 🔎질문 Vs code 넘파이 불러오기 실패 [2] milkiscow(211.182) 22.07.07 161 0
1772 🔎질문 한줄로 입력받은 숫자들을 2개씩 끊어 입력받기 [8] ㅇㅇ(125.129) 22.07.05 174 1
1771 🔎질문 파이썬으로 인벤에서 특정 텍스트 검색하는 거 어케할 수 있어? [7] Sachi갤로그로 이동합니다. 22.07.05 254 0
일반 파이썬 계산기(8): 나머지 연산자 %의 문제점 신촌우왕87갤로그로 이동합니다. 22.07.04 227 1
1768 🔎질문 기초적인 코드 질문 [4] 기초(118.37) 22.07.04 136 0
1767 일반 파이썬 계산기(7): math.floor()의 문제점 [3] 신촌우왕87갤로그로 이동합니다. 22.07.04 186 1
1766 📚정보 오래간만에 들렀습니다 ㅁㅁㅁㅁㅁ(223.38) 22.07.02 571 6
1765 🔎질문 각자 파이썬 버전 뭐로 쓰는지 말좀 해줘 [9] ㅇㅇ(175.206) 22.07.02 2329 1
1764 일반 파이썬 계산기(6): 토큰리스트에서 후위표기식 얻는 코드 신촌우왕87갤로그로 이동합니다. 22.07.01 362 6
1761 일반 개발자 <- 이 단어 존나 이상함 [2] 키메라(1.212) 22.06.28 222 0
1759 🔎질문 파이썬 개초보 오류 질문드립니다. [10] ㅇㅇ(1.177) 22.06.26 216 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2