Каждый школьник знает, что на ноль делить нельзя. Простое (но далеко не идеальное) объяснение этому правилу заключается в том, что при подобном делении результат стремится к бесконечности. В случае с механическим калькулятором подобное действие может стать отличной иллюстрацией принципов того, как работают подобные машины в целом.
Механический калькулятор использует набор зубчатых колес и зубьев разного размера — дифференциальное соотношение между передачами и помогает осуществлять вычисления. Канал Numberphile объясняет аномалию при делении на ноль на простом примере:
Если вы захотите разделить 20 на 4, то калькулятор просто использует механику вычитания пять раз подряд:
20 — 4 = 16
16 — 4 = 12
12 — 4 = 8
8 — 4 = 4
4- 4 = 0
Все просто! Но если любое число каждый раз вычитает из себя ноль, то цикл превращается в дурную бесконечность:
20 — 0 = 20
20 — 0 = 20
20 — 0 = 20
20 — 0 = 20
20 — 0 = 20
Так, медленно, но верно, машину зацикливает. Странно, что против этого не сделали какую нибудь защиту. Ведь алгоритм с недостатком. Если бы этот прибор честно пытался сосчитать сколько нулей в 20 — был бы другой результат. Если пытаться сосчитать сколько получится, если поделить число 20 на ноль равный частей — получил бы ноль. Потому что ноль частей, ноль количества. Тут вопрос подхода к расчету. Зачем этот расчет. Какая под ним логика.
Так ведь?via