프로그래밍 공부하다가
10진법에서 끝자리가 5가 아닌 소수는
2진법으로 변환될 때 무한소수가 되기 때문에
무한소수를 일정 소숫점 자리에서 끊어버리는 컴퓨터는
0.1+1.1 ≠ 1.2로 판단한다는 사실을 알았는데
⅓은 10진법에서 0.333...이고
⅓ × 3을 하면 1이지만, 10진법 소수로 보면 0.999...이잖음?
⅓이 0.333...이라는 무한소수로 표기되는게 혹시 진법이랑 관련이 있는 걸까?
다른 진법으로 봤을 때 ⅓은 유한소수라서 3을 곱하면 1이 되는게 맞지만
우리가 10진법으로 보니깐 이런 이상한 현상이 일어나나 싶어서 질문함.
당연히 무한소수랑 진법은 관련있지. 애초에 소숫점 아래 표기법 자체가 진법표기에 따른 거니까. 10=2×5 니까 주어진 유리수를 기약분수로 나타냈을때 분모의 소인수분해가 2,5의 거듭제곱꼴로만 나타나지 않고 3,7,11 등의 다른 소수가 나타난다면 무한소수가 되는거임
네가 말한대로 1/3은 3진법으로 보면 0.1이지 마찬가지로 1/pi²은 pi진법에서는 0.01임
그리고 0.999...=1 인게 무한소수랑 관련이 있냐고 하면 '9' 라는 숫자가 나타난다는 점에서 10진법과 관련이 있다고 할 수 있지. 가령 3진법에서 0.2222.....=1 임. 칸토어셋을 생각할때 유용한 직관임