Как найти совпадение подряд чисел в столбце??? Например: числа 8 3 2 идут попорядку (в одной строчке 8 во втрой 3 в третьей 2) и и как мне найти такое же совпадение в столбце??? В одной строчке 8 через пару строчек 3 через пару строчек 2------ мне такое не нужно!!!!!! Подскажите!! Буду очень благодарен!!!! В каждой строчке однозначные и двухзначные числа и мне в этом столбце нужно найти совпадение не менее 3-х чисел подряд (желательно больше)!!!!! 2 11 8 3 2 25 34 27 31 29 14 8 3 2 11 25 8 32 3 15 17 2
Здравствуйте!!! У меня есть столбец в нем 60 000 строк в каждой строчке однозначные и двухзначные числа и мне в этом столбце нужно найти совпадение не менее 3-х чисел подряд (желательно больше)!!!!!
yaaan пишет: например что бы совпадение чисел были отмечены красным цветом
мягко говоря, плохой: 1) с последующим просмотром полученной разукрашки в 60000 строк сломаете глаза и вывихните мозг; 2) совпадающих последовательностей, скорее всего, будет не одна. и все - в красный цвет? а если они пересекаются?
и вообще - что надо-то, Зин? найти таки самую длинную совпадающую последовательность? или наиболее часто встречающуюся? или все из 3-х и более чисел?
пс. мировоззренческий вопрос "а нафига всё это?" задавать не буду: знаю по опыту - это чревато.
фрилансер Excel, VBA - контакты в профиле "Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
yaaan, не надо дублировать посты в мою личку. если задача покажется интересной и осмысленной - я и так поучаствую, при наличии времени. а нет - значит нет.
фрилансер Excel, VBA - контакты в профиле "Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
yaaan пишет: найти наиболее длинную и наиболее часто встречающюю последовательность
это не одно и то же. Вы бы уж определились, а? (и кто кого встречает - тоже )
Цитата
yaaan пишет: нужно писать программу?
специалисты по формулам на форуме творят, конечно, чудеса. но, набравшись наглости, я бы сказал - только программой. особенно с учетом неограниченной длины последовательности и большого объема данных. но и программой... не очень представляю, насколько это реально... задачка на комбинаторику, а я с ней с детства не в ладах. но чувствую органом интуиции - вариантов придётся проверить примерно дофига. и хватит ли на это человеческой жизни - вопрос отнюдь не абстрактный.
пс. может, кто поумнее чего-нибудь подскажет... а то я кроме тупого перебора и представить ничего не могу. единственная идея - с учетом условия "однозначные или двузначные числа" - составить длинную супер-строку и задействовать InStr. на количество переборов, правда, это не повлияет...
Частный случай, для уникальных последовательностей чисел (то есть 3,21,45,2,6 - уникальная, а 3,21,45,2,3,6 - нет, так как два раза повторяется 3.) P. S. для 60000 у меня работает долго, около 10мин.
anvg, да ничего страшного. посмотрел результаты работы своего на данных Вашего. понял, что мой "черновичок" надо дорабатывать. - проверять, нк является ли найденная последовательность правой частью одной из уже найденных...
а по скорости сравнить сложно - мой код с ячейками практически не работает, а это самая долгая часть.
пс. за модули классов - отдельное спасибо. надо посмотреть на досуге.
фрилансер Excel, VBA - контакты в профиле "Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
ikki Ваш отработал на 10000 780сек, мой за 10сек. Можно, в принципе, мой код ускорить, ввести ссылки на совпадающие последовательности, а не перебирать все, коллекции заменить на типизированные массивы. Для себя, скорее всего переделал бы. С другой стороны, ваш код выводит все варианты, а не только максимальные по длине.
спасибо. да я и не сомневался, что со строками - это медленно. просто не знал, что настолько. немного пошаманить, конечно, можно - заменить каждое число одним символом, строка укоротится втрое, Instr будет работать побыстрее, да и в коде арифметика станет чуть проще... но сути это не изменит.
пс. зато за 15 минут написано практически без участия головы.
фрилансер Excel, VBA - контакты в профиле "Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
anvg и ikki Парни вы гении!!!! ikki только твоя табличка очень долго вычисляет я больше чем полтора часа не выдержал и завершил программу!!! anvg А возможно добавить в твою табличку ещё 2 столбца (что б мне долго не искать совпадения из 60000 строчек) в одном столбце -- совпадение а во втором --- количество совпадений и желательно по возрастнию? ikki или может ты что подскажешь?
Ещё Парни один самый главный вопрос!!!! Возможно ли высчитать спомощью excel алгоритм выпадение чисел на основе 46 859 строк?????? Например пусть excel проанализирует 46759 строк и высчитает ещё 100 (ХОТЯ БЫ 2) чисел (строк) которые должны идти после этих строк. Я скину вам файлик с этими числами. Если у вас получится то ваши числа должны совпать с последними 100 числами в файле. Во я вам задачку задал!!! Помогите пожалуйста!!!
Аnvg здравствуйте!!!! Насчет таблицы которую вы создали она очень хорошая!!! Но не могли бы вы создать ещё с боку 2 столбца, чтоб в одном были максимальные подлине совпадения, а в другом столбце их количество. И если можно что б поскорее считала ! Прикрепляю файлик как я это представляю!!!
yaaan, вот Вам рабочий алгоритм: прочитать название темы. Запомнить его. Вспомнить свой последний вопрос. Извлечь из памяти название темы и сравнить с вопросом. Сделать вывод.
yaaan Совпадения по длине только одинаковые. Поскорее, как писал ранее - вместо создания объектов класса Sequence лучше создать типизированный массив, переделав методы ReadNext и Equal в нём в методы модуля, получающие индекс записи в этом массиве. "Болванка" у вас есть - допиливайте под себя.