Как быстро определить что множество содержит все натуральные числа от N до M? Имеется множество натуральных чисел от N до M.
М и N могут меняться во времени.
Как можно быстро определить, содержит ли данное множество все натуральные числа от N до M не прибегая к полному перебору всех элементов (точнее полный перебор в начале сделать можно, но потом при добавлении\удалении элементов это делать не нужно).
Т.е. например, изначально в множестве есть:
1,3 - критерий должен говорить что это не полное множество.
потом мы добавили 4
1,3,4 - опять не полное.
добавили 2
1,2,3,4 -- полное.
Здесь критерий должен сказать что мы в множестве имеем все натуральные числа от 1 до 4 включительно.
P.S. На ум приходит сравнение суммы элементов с суммой арифметической прогрессии между N(min элемент) и M(max элемент). Но насколько это надежный способ?
P.S.S В множестве могут быть только уникальные элементы

21 Авг 2019 в 06:08
120 +1
1
Ответы
1

Один из возможных способов определить, содержит ли множество все натуральные числа от N до M, быстро и эффективно:

Найдите сумму арифметической прогрессии от N до M по формуле: S = (M - N + 1) * (N + M) / 2.

Найдите сумму всех элементов в множестве.

Сравните найденные суммы: если они равны, то множество содержит все натуральные числа от N до M. Если суммы не равны, то множество не содержит все натуральные числа от N до M.

Этот метод основан на свойствах арифметических прогрессий и позволяет быстро проверить наличие всех чисел в множестве без полного перебора элементов.

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир