animal_magic의 대답은 가장 작은 숫자에서 가장 큰 숫자를 더해야하지만, 그 이유를 보여주는 예제를 제시하고 싶습니다.
우리가 3 자리의 정확도를 제공하는 부동 소수점 형식으로 작업한다고 가정합니다. 이제 10 개의 숫자를 추가하려고합니다.
[1000, 1, 1, 1, 1, 1, 1, 1, 1, 1]
물론 정답은 1009이지만 3 자리 형식으로는 얻을 수 없습니다. 3 자리로 반올림하면 가장 정확한 답은 1010입니다. 가장 작은 것을 더 크게하면 각 루프에서 다음을 얻습니다.
Loop Index s
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 1009 -> 1010
따라서 우리는 형식에 대해 가장 정확한 답변을 얻습니다. 이제 우리는 가장 큰 것에서 가장 작은 것으로 추가한다고 가정하자.
Loop Index s
1 1000
2 1001 -> 1000
3 1001 -> 1000
4 1001 -> 1000
5 1001 -> 1000
6 1001 -> 1000
7 1001 -> 1000
8 1001 -> 1000
9 1001 -> 1000
10 1001 -> 1000
부동 소수점 숫자는 각 연산 후에 반올림되므로 모든 추가가 반올림되어 오차가 정확히 1에서 9로 증가합니다. 이제 더할 숫자 집합에 1000이 있고 100이 1 또는 백만인지 상상해보십시오. 실제로 정확하려면 가장 작은 두 숫자를 합한 다음 결과를 숫자 집합에 의지해야합니다.