Вопрос проверяет знание типичных проблем, возникающих при вычислениях и тестировании математических функций.
Краевые случаи включают ноль, очень маленькие и очень большие числа, отрицательные значения и граничные значения диапазона. Также важно учитывать переполнение и потерю точности. Иногда алгоритмы ведут себя иначе на дробных числах. Проверка таких случаев помогает выявить скрытые ошибки.
Числовые алгоритмы часто ломаются не на обычных значениях, а на границах диапазона.
Многие алгоритмы:
Делят на число
Используют логарифмы
Ноль может приводить к исключениям.
Проблемы:
Переполнение
Потеря точности
Пример:
x = 10**18
# возможны ошибки при преобразованиях
Иногда результат округляется до нуля.
Некоторые функции:
Не определены
Должны выбрасывать исключение
Алгоритмы могут работать иначе:
Ошибки округления
Неточное сравнение
При тестировании числовых алгоритмов обязательно проверяют ноль, границы диапазона, большие и маленькие значения, отрицательные числа и дробные результаты.