유머천국 코하비닷컴
https://cohabe.com/sisa/4350019

구글 안드로이드가 최고의 계산기 앱을 만들게 된 이야기

img/25/02/19/1951d11b77289cc7.jpg


현대적 컴퓨터는 사실 계산기의 확장이며

계산기야말로 가장 기본적인 컴퓨터인데


그럼에도 불구하고 사람에겐 간단한 계산기가

2진법을 사용하는 컴퓨터에겐 그 무엇보다 어려움



img/25/02/19/1951d13e74489cc7.png


예를들어 파이선 3.12.3 에게

0.1 + 0.2 라는 아주 간단한 계산을 부탁하면

0.3...0000000000000004

라며 엉뚱한 답을 내놓곤 하는데



img/25/02/19/1951d17217d89cc7.png


이는 부동소수점에 따라

2진수인 컴퓨터에 실수를 이해시키기 위해

소수의 값을 컴퓨터가 이해할 수 있는 값으로 변환

이 과정에서 실제 숫자와 다른 오차가 발생하기 때문임



img/25/02/19/1951d193d9989cc7.png


때문에 매우 큰 수, 또는 매우 작은 수일 때

이 오차는 점점 커져


예를들어 iOS 계산기에서는 (10^100) + 1 - (10^100)

즉, A+1-A 라는 계산을 시키면


계산기는 "큰 수 + 1 = 큰 수 - 큰 수 = 0"

이라고 판단해 0 이라는 값을 출력함



img/25/02/19/1951d1b29f189cc7.png


하지만 안드로이드 계산기에서는

1 이라는 정답을 출력하는데


이 계산기가 만들어지기 까지는

매우 험난한 노력이 필요했음



img/25/02/19/1951d1c58d789cc7.png


구글은 2014년 프로그래밍 전문가인

한스J. 뵘 을 영입


그는 C++ 계의 레전드이자,

그가 만든 가비지 콜렉트(메모리 관리)는

1988년에 만들어 현재까지도 현업에서 사용중이며


대학 교수 -> 제록스 연구원

SGI 엔지니어 -> HP연구원으로 일했으며


구글은 그런 프로그래밍 전문가에게

"계산기 만들어줘" 라는 요구를 함



img/25/02/19/1951d21cf7089cc7.png


그는 자신이 가진 지식을 모두 동원해

숫자의 개념을 확장해가면서

결코 오답을 내지 않는 계산기를 만들어갔는데


그 중 가장 중요한 방법이 바로 "재귀적 실수 연산(RRA)" 였음


이제 스마트폰으로 할 수 있는 계산기능은

모두 오답 없이 계산됨이 확실해졌다고 생각했는데



img/25/02/19/1951d23494789cc7.png


이 재귀적 실수 연산을 사용하면

1-1 = 같은 질문에 0.0000~ 이라며

무한대로 0에 근접한 0이 아닌 수를 답으로 알려줌



img/25/02/19/1951d2743ab89cc7.png


그냥 다른 계산기처럼

무시할 수 있는 정도로 작거나 크면

계산 못한다고

에러 띄우면 되는거 아니야?


라기에 자존심이 상했던 그는

구글의 다른 천재들의 아이디어와 도움을 받으며



img/25/02/19/1951d2a86e689cc7.png


단순한 연산만 처리 가능한 유리수 연산과

복잡한 연산을 처리하는 RRA 연산을 결합하는 프로그래밍을 진행


가능하면 빠르고 정확한 유리수 연산을,

복잡하고 크거나 작은 수에서는 RRA연산을

그 둘이 섞인 수식에는 둘의 연산을 섞는 식의


완벽한 계산기를 만들어내는데 성공,

이 계산기는 안드로이드 오픈소스로 공개되어 있음

댓글
  • 부공실사 2025/02/19 16:54

    아아 완벽히 이해했어

  • 부공실사 2025/02/19 16:54

    아아 완벽히 이해했어

    (HUBROj)

  • 나만정상인 2025/02/19 16:54

    "질 수 없음!"

    (HUBROj)

  • 앙증마 2025/02/19 17:00

    하긴 학부생때 가장 쉬우면서도 어려운게 계산기 만들기 였드랬지.
    파싱도 알아야하고 스택도 알아야 하고 ㅎㅎㅎ

    (HUBROj)

(HUBROj)

  • 트릭컬)커뮤에 나올법한 세탁법(?)을 쓰는게임 [5]
  • | 2025/02/20 11:08 | 917
  • 캐나다 정치 근황.jpg [2]
  • | 2025/02/20 10:21 | 478
  • 원신) 페코린느가 제일 귀엽더라 [9]
  • | 2025/02/20 02:06 | 500
  • 버튜버)팀 토모다치가 500만을 찍었다 [2]
  • | 2025/02/19 23:14 | 1154
  • 블루아카) 포동포동한 체형의 카즈사보다 신경쓰이는거 [6]
  • | 2025/02/19 20:07 | 1100
  • 미국주식) 앞으로 하루에 22시간동안 주식거래가능 ㅋㅋㅋ [16]
  • | 2025/02/19 18:58 | 1019
  • 캐릭터 다 빼앗긴 원조 봇치.jpg [8]
  • | 2025/02/19 16:01 | 1080
  • 명문대와 비명문대의 차이.jpg [8]
  • | 2025/02/19 14:56 | 1265
  • 블루아카)이럴때를 위한게 아니었던 것... [4]
  • | 2025/02/19 13:58 | 231
  • 약혐)여동생을 개로부터 구했다는 오빠 근황 [12]
  • | 2025/02/19 11:52 | 1143
  • 퇴사각이 날카롭게 잡힌 여자 .jpg [16]
  • | 2025/02/19 09:31 | 670
  • 굿즈 처분하는 중년 오타쿠짤의 반전 [13]
  • | 2025/02/19 08:19 | 1107