Я думаю, что это связано с тем, что проверка, является ли определитель положительным или отрицательным, действительно проверяет, больше или меньше b^2
, чем 4ac
.
В обоих случаях вы умножаете два числа, поэтому ошибка будет (похожей)? Похоже, это то, что вы ищете.
Но если довести дело до крайности, если, например, ваши числа являются числами с плавающей запятой, а "ошибка" на самом деле просто использует целые числа, то можно изменить знак:
a = 2, b = 2, c = 2/3
Определитель: D = 2 ^ 2-4 * 2 * 2/3 = -1,333
Принимая ошибку, она округляет c до 0, и определитель становится: D = 2 ^ 2 - 0 = 4
Если это слишком экстремально, вы можете разделить все эти коэффициенты столько, сколько хотите, это все то же уравнение и с меньшей ошибкой вы должны получить тот же результат ...
Подробнее ...
Возможно, ответ заключается в том, что то, что описал Тим, есть отмена, когда числа сильно отличаются друг от друга (и гораздо меньшее значение игнорируется), которое не может изменить изменение разницы.
Так, например, если abs(b^2)
намного больше, чем abs(4ac)
, то определитель будет знаком abs(b^2)
... и наоборот.