Страницы: 1
RSS
Поиск всех диапазонов чисел в массивах, чтобы этот диапазон был уникальным для максимального количества массивов
 
Доброго времени суток, Уважаемые!!!
Столкнулся с такой задачей:
Имееются массивы с последовательными, целочисленными элементами, а также состоящие из одного числа.
Массивов может быть сотни
Нужно найти все диапазоны чисел или 1 число во всех массивах, чтобы этот диапазон или 1 число встречалось в максимальном количестве массивов.
А также найти диапазоны чисел, которые не встречаются ни в одном из массивов.

Помогите пожалуйста или подскажите путь для решения. Уже и подзабыл VBA, в связи со сменой сферы деятельности
Изменено: ts-79 - 02.03.2019 12:40:35
 
Вообще без вариантов? Хоть подсказку или напраление в какую сторону копать?
 
ts-79, можно собрать все начала и концы диапазонов в одном столбце и отсортировать, вот так:
Скрытый текст

Потом перебрать числа во втором столбце. Если соотв. буквы нет в строке текущих массивов, то добавить ее, если есть - то удалить.
Массивы, состоящие их одного числа, надо внести два раза или пометить например "j*".
В общем, не очень сложно и неинтересно.
Изменено: Казанский - 01.03.2019 16:16:06
 
Спасибо за совет, но ничего не понял.
Пытаюсь реализовать другим путем. Загоняю все данные в один многомерный массив. И уже из этого массива попытаться вытащить нужные данные. Но пока еще не придумал как
 
т.е. подсказки не канают, нужно точное решение?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
т.е. подсказки не канают, нужно точное решение?
где я это написал? Я просто не понимаю алгоритма и логики, который предлагает Казанский. А если это не понятно, как это реализовать?
 
Цитата
ts-79 написал:
чтобы этот диапазон или 1 число было уникальным для максимального количества массивов
а что значит эта фраза?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
чтобы этот диапазон или 1 число встречалось в максимальном количества массивов
 
Вы в курсе что "уникальный"  - это единственный, неповторимый
а не тот, что встречается в КАЖДОМ массиве
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Уважаемые модераторы, исправьте пожалуйста название темы, чтобы Игорь отстал от меня
 
ts-79,
а обращаясь на форум, Вы какую цель преследовали?
- чтобы от Вас отстал Игорь
- или решить проблему, решить которую самостоятельно у Вас не получилось

бросьте эти Ваши мечты. Игорь к Вам не приставал, я просто пытаюсь уточнить суть задачи
ПЫ.СЫ.
а модераторы исправят название темы, когда Вы предложите адекватное ее название. и определитесь-таки, Вам шашечки или ехать?
извините, за настойчивость
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
поможете, буду благодарен, нет - не обижусь.
Просто тон Ваших уточнений попахивает ехидством и высокомерием, уж извините.
А насчет решения проблемы, то я ее решу, просто потребуется больше времени.
Убедительно прошу давайте на этом закончим оффтоп,  
 
Ждем адекватное название темы
 
Цитата
ts-79 написал:
тон Ваших уточнений попахивает ехидством и высокомерием
Есть немного, но порой это подстегивает разумного ТС к правильным мыслям. Да мы и друг над другом также, так что не обращайте внимание, пока это не со зла, а для стимуляции.
Честно скажу, сразу после работы взглянул, и сразу закрыл, чтоб не портит вечер. Вечерний Джин-Тоник позволил трезво взглянуть и ничего страшного не увидел.

Вариант 1 - в лоб
цикл от минимального до максимального элемента, проверка на количество диапазонов содержащее конкретное число и при изменение фиксация границы диапазона. соответственно, кто входил до этого тот и попадает в этот диапазон.

вариант 2 - да почти тоже, только упорядочить таким образом, чтоб скакать сразу по границам диапазонов, это не сложно надо просто все значения без повторений отсортировать и все., далее все тоже, перескочили проверили...

Если честно, то вариант 2 даже формулами можно попробовать сделать, но надо джин выгнать оставить только тоник
По вопросам из тем форума, личку не читаю.
 
ts-79,
извините, к Вам это не относится, но у одного из отвечающий в подписи видел замечательную фразу:
"степень сарказма в моем ответе соответствует степени дебилизма вопроса"
извините еще раз, но чем больше дебилизма в вопросе, тем больше сакрказма в ответе
и понятно, что к этому вопросу это имеет никакого отношения.... так мысли вслух
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
vikttur написал:
Ждем адекватное название темы
Поиск всех диапазонов чисел в массивах, чтобы этот диапазон встречался в максимальном количестве массивов

БМВ, благодарю за совет.
Ігор Гончаренко, если это не относится ни ко мне, ни к теме обсуждения, то прошу придержать ваши "мысли вслух" при себе, либо выражать их в другом месте, и не засорять ветку.
Модераторы удалите пжл посты не имеющие отношение к теме топика #2, #5 - #13, #15 и этот тоже
Изменено: ts-79 - 02.03.2019 12:39:27
 
T : Деление непрерывного диапазона значений на диапазоны по признаку вхождения в заданные пересекающиеся диапазоны

ts-79, Формульный вариант по методу 1
Такой вариант устроит?
Из нерешенного: пока последнее число заданного диапазона всегда  выделенный диапазон.
Изменено: БМВ - 02.03.2019 11:54:38
По вопросам из тем форума, личку не читаю.
 
Огромное спасибо БМВ, все работает как надо, но
Цитата
ts-79 написал:
Массивов может быть сотни
И всегда разное количество.
Попробую засунуть "LastRow" в формулы
 
ts-79,  При увеличении количества массивов , думаю будет задумчив пересчет, MMULT не самая быстрая, применяется многократно, да еще и размер приличный. Ну впихнуть все в одну формулу - это был спортивный интерес, а так , лучше промежуточную таблицу сделать, пусть будет тот же MMULT но один два раза, а не ….. Размер  массива с Вашими диапазонами динамическим сделать тоже не проблема.
Макросом проще все, но мне не интересно.
По вопросам из тем форума, личку не читаю.
 
перекинул на вспомогательный лист, увеличил диапазон до 500 строк (этого пока хватит с запасом).
Есть одно исключение: если один из массивов 1-1, то неправильно считает, если есть массивы с элементом 2.
 
что-то не то и не так перекинули.
Убрал MMULT на лист, ну и …. короче, смотрите.
Изменено: БМВ - 02.03.2019 15:13:50
По вопросам из тем форума, личку не читаю.
 
Оба варианта дают одинаковый результат
Введите три простых массива
a 1-1
b 1-2
c 2-2
 
да, я учитывал только количество массивов, а надо еще и качество.
А вот так? Вероятность совпадения все ж остается, но она минимизирована.
Изменено: БМВ - 02.03.2019 17:09:31
По вопросам из тем форума, личку не читаю.
 
ВСЕ СУПЕР!!!
Проверил на данных просчитанных вручную, и нашел несколько ошибок в ручном варианте.
Еще раз благодарю безмерно!!!
Страницы: 1
Наверх