Страницы

Поиск по вопросам

среда, 17 апреля 2019 г.

Простейшая проверка принадлежности натурального числа промежутку

Как математически грамотно (желательно на Java) одним условием проверить, принадлежит ли натуральное число b отрезку [a, c], где a и c так же натуральные числа? Условие должно выполниться, например, при таких значениях a, b, и c соответственно: (1, 2, 3), (5, 7, 10), (17, 25, 25), но не должно выполниться, например, при таких значениях a, b, и c соответственно: (2, 1, 3), (17, 25, 24). Условие должно быть одно, использовать логические операторы (такие как &&, ||, и т.п.) нельзя.


Ответ

Если точка лежит внутри отрезка, то сумма расстояний от этой точки до крайних точек отрезка всегда равна расстоянию между крайними точками. Если точка лежит вне отрезка, тогда сумма расстояний всегда будет больше. Иллюстрация:
Как известно, расстояние между двумя точками на отрезке – это модуль разности координат этих точек.
Отсюда получаем условие:
Math.abs(b - a) + Math.abs(b - c) == c - a // с учётом, что всегда c >= a, иначе Math.abs(c - a)

Комментариев нет:

Отправить комментарий