우수 답변
긴 나눗셈을 사용하여 나눕니다.
½ = 1 ÷ 2
1 ÷ 2 = 0이고 나머지 1은 1의 자리가 0입니다.
나머지에 0을 추가하고 나누기를 반복합니다.
10 ÷ 2 = 5 나머지는 없습니다. 따라서 10 번째 자리는 5입니다.
계속 진행하면 계속해서 끝에 0을 추가합니다. 그래서 끝났습니다.
더 간결하게 :
\ tfrac12 = 1 ÷ 2
1 ÷ 2 = \ mathbf {0} R1 : 0
10 ÷ 2 = \ mathbf {5} R0 : 0.5
그래서 \ tfrac12 = 0.5.
\ tfrac18로 시도해 봅시다 :
\ tfrac18 = 1 ÷ 8
1 ÷ 8 = \ mathbf {0} R1 : 0
10 ÷ 8 = \ mathbf {1} R2 : 0.1
20 ÷ 8 = \ mathbf {2} R4 : 0.12
40 ÷ 8 = \ mathbf {5} R0 : 0.125
그래서 \ tfrac18 = 0.125
\ tfrac13 :
\ tfrac13 = 1 ÷ 3
1 ÷ 3 = \ mathbf {0} R1 : 0
10 ÷ 3 = \ mathbf {3} R1 : 0.3
계속하면 3을 계속 추가합니다.
10 ÷ 3 = \ mathbf {3 } R1 : 0.33
10 ÷ 3 = \ mathbf {3} R1 : 0.333
그러니 그렇게하는 대신 3 위에 선을 그려서 무기한 반복 :
\ tfrac13 = 0. \ overline3
보다 일반적으로 이전에 얻은 나머지를 얻을 때마다 패턴이 이전 시점부터 반복됩니다.
\ frac16 :
\ frac16 = 1 ÷ 6
1 ÷ 6 = \ mathbf {0} R1 : 0
10 ÷ 6 = \ mathbf {1} R4 : 0.1
40 ÷ 6 = \ mathbf {6} R4 : 0.16
\ frac16 = 0.1 \ overline6
\ tfrac17로 시도해 보겠습니다.
\ tfrac17 = 1 ÷ 7
1 ÷ 7 = \ mathbf {0} R1 : 0
10 ÷ 7 = \ mathbf {1} R3 : 0.1
30 ÷ 7 = \ mathbf {4} R2 : 0.14
20 ÷ 7 = \ mathbf {2} R6 : 0.142
60 ÷ 7 = \ mathbf {8} R4 : 0.1428
40 ÷ 7 = \ mathbf {5} R5 : 0.14285
50 ÷ 7 = \ mathbf {7} R1 : 0.142857
\ tfrac17 = 0. \ overline {142857}
답변
흥미로운 질문입니다. 사소하지 않은 알고리즘.
대부분의 계산기는 연속 분수를 사용합니다. 함수 x |-> 1 / (x-int (x))를 반복하여 항상 int (x)를 추적합니다.
1.3529411764705883을 분수로 변환해야한다고 가정 해 보겠습니다. int는 1이고 나머지 반전은 1 / .3529411764705883 = 2.8333333333333326입니다. int는 2이고 나머지 반전은 1 / .8333333333333326 = 1.200000000000001입니다. int는 1이고 나머지는 반전 된 4.999999999999975입니다. int는 4이고 나머지 반전은 1 / .999999999999975 = 1.000000000000025입니다. int는 1이고 나머지는 반전 된 40000000000000.0입니다. int는 40000000000000이고 나머지는 0이므로 반전 할 수 없습니다 (또는 40000000000000이 너무 크다는 점에 유의하여 한 단계 앞선 컷오프).
어쨌든 이제 int : 1,2,1, 4,1,40000000000000. 그런 다음 프로세스를 뒤집습니다. 마지막 항목을 0으로 반올림하고 다음 항목을 추가 (1), 반전 (1), 이전 추가 (4), 5 얻기, 반전 (1/5), 추가 1은 6/5, 반전은 5/6, 2는 17/6, 반전은 6/17, 1은 23/17을 얻습니다. 그게 해결책입니다.