Всеобщий привет! Какой-то долгий штиль образовался. Поштормим? Поштурмуем? Подобная тема уже была, но там образец задавался конкретный. Здесь образца нет. Задан массив из 300 элементов (может быть неполный). Формулой найти максимальную длину совпадающих последовательных элементов из разных мест этого массива. Также найти начало первой цепочки и второй. Итого, три формулы. Файл использовал из раздела вопросов. У меня получились непротягиваемые формулы 158+183+187=528 символов. С дополнительной ячейкой 158+172+13+17=360 символов. С использованием умной таблицы из этого файла 227+238+28+51=544 символа. Вскрываться предлагаю 05.10.2020
Всеобщий привет! Какой-то долгий штиль образовался. Поштормим? Поштурмуем? Подобная тема уже была, но там образец задавался конкретный. Здесь образца нет. Задан массив из 300 элементов (может быть неполный). Формулой найти максимальную длину совпадающих последовательных элементов из разных мест этого массива. Также найти начало первой цепочки и второй. Итого, три формулы. Файл использовал из раздела вопросов. У меня получились непротягиваемые формулы 158+183+187=528 символов. С дополнительной ячейкой 158+172+13+17=360 символов. С использованием умной таблицы из этого файла 227+238+28+51=544 символа. Вскрываться предлагаю 05.10.2020Светлый
Два последовательных элемента не могут быть в разных местах
Надо было вставить слово "цепочек". Одинаковые последовательности вполне могут начинаться в разных местах массива. В файле возле массива жёлтым и синим отмечены примеры таких последовательностей.
Два последовательных элемента не могут быть в разных местах
Надо было вставить слово "цепочек". Одинаковые последовательности вполне могут начинаться в разных местах массива. В файле возле массива жёлтым и синим отмечены примеры таких последовательностей.Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Суббота, 26.09.2020, 23:14
Или задача очень трудная, или лучшие умы заняты более насущными проблемами, остался я в гордом одиночестве. Или это мой прокол при постановке задачи? Офис 2003 поддерживает 256 столбцов, а я задал 300 элементов. Давайте ограничимся массивом в 200 элементов и продлим ещё на неделю. Виноват, исправлюсь.
Или задача очень трудная, или лучшие умы заняты более насущными проблемами, остался я в гордом одиночестве. Или это мой прокол при постановке задачи? Офис 2003 поддерживает 256 столбцов, а я задал 300 элементов. Давайте ограничимся массивом в 200 элементов и продлим ещё на неделю. Виноват, исправлюсь.Светлый
Формулой найти максимальную длину совпадающих последовательных элементов из разных мест этого массива. Также найти начало первой цепочки и второй.
пока нет решения
по набору данных в последовательность из 5ти элементов у меня нашлись следующие цепочки (без учета последовательно расположенных цепочек): Длина Нач. 1 Нач. 2 5 3 18 5 18 101 5 30 67 5 37 102 5 43 85 5 56 74 5 65 80
Формулой найти максимальную длину совпадающих последовательных элементов из разных мест этого массива. Также найти начало первой цепочки и второй.
пока нет решения
по набору данных в последовательность из 5ти элементов у меня нашлись следующие цепочки (без учета последовательно расположенных цепочек): Длина Нач. 1 Нач. 2 5 3 18 5 18 101 5 30 67 5 37 102 5 43 85 5 56 74 5 65 80MCH
Что то я застрял на этой задаче Хочу вначале найти эффективное решение на макросах из серии: Алгоритм Кнута-Морриса-Пратта а затем переводить его (либо тривиальное и неоптимальное решение) на формулы.
Что то я застрял на этой задаче Хочу вначале найти эффективное решение на макросах из серии: Алгоритм Кнута-Морриса-Пратта а затем переводить его (либо тривиальное и неоптимальное решение) на формулы.MCH
Формульного решения нет, есть решение на макросах со сложностью O(n^2) на 10 тыс. данных находит максимальную повторяющуюся последовательность менее чем за 10 секунд
Выкладывать решение на макросах?
Формульного решения нет, есть решение на макросах со сложностью O(n^2) на 10 тыс. данных находит максимальную повторяющуюся последовательность менее чем за 10 секунд
Или задача очень трудная, или лучшие умы заняты более насущными проблемами. Но наши не сдаются. Не получается формулами, решим макросами, зато большие массивы. Придётся вскрываться. Вот три массивные формулы. Длина цепочки, начало первой цепочки и начало второй цепочки (526 символов):
Остальные формулы в файле. Принцип: сквозная нумерация сдвигов массивов (два способа: вертикальный, используя СМЕЩ() и диагональный, ТРАНСП() ), чтобы последовательные совпадения отличались на 1. Функцией ЧАСТОТА находим все значения, отличающиеся на 1 и ещё раз функцией ЧАСТОТА находим самую длинную цепочку 1 (для функции это будут 0). Находим его номер, ПОИСКПОЗ(). Из этого номера вычисляем начало первой цепочки, а затем начало второй. Жалко. Надеялся, что у асов родятся какие-нибудь хитроумные решения. Тогда пусть от моего решения кому-то польза будет.
А ведь первая формула уже была опубликована в Вопросах с месяц пару месяцев назад. Но вопрос темы уже был решен и никто не посмотрел.
Или задача очень трудная, или лучшие умы заняты более насущными проблемами. Но наши не сдаются. Не получается формулами, решим макросами, зато большие массивы. Придётся вскрываться. Вот три массивные формулы. Длина цепочки, начало первой цепочки и начало второй цепочки (526 символов):
Остальные формулы в файле. Принцип: сквозная нумерация сдвигов массивов (два способа: вертикальный, используя СМЕЩ() и диагональный, ТРАНСП() ), чтобы последовательные совпадения отличались на 1. Функцией ЧАСТОТА находим все значения, отличающиеся на 1 и ещё раз функцией ЧАСТОТА находим самую длинную цепочку 1 (для функции это будут 0). Находим его номер, ПОИСКПОЗ(). Из этого номера вычисляем начало первой цепочки, а затем начало второй. Жалко. Надеялся, что у асов родятся какие-нибудь хитроумные решения. Тогда пусть от моего решения кому-то польза будет.
Мои формульные попытки решения через вспомогательные вычисления не находит ответ - максимальная длина цепочки, но позволяет вывести все цепочки заданной длины
Мои формульные попытки решения через вспомогательные вычисления не находит ответ - максимальная длина цепочки, но позволяет вывести все цепочки заданной длиныMCH
наличие 6-65-80 не отменяет 5-65-80 (поэтому есть еще 5-66-81) 5-4-37 также 5-4-102 и 5-37-102 дают последовательность: 3 3 1 2 1
В сообщении № 8 я не указал решение 5-4-37, вот весь перечень формульного решения для цепочек из 5 чисел: 5 3 18 5 4 37 5 5 103 5 6 104 5 7 105 5 8 106 5 9 107 5 10 108 5 18 101 5 30 67 5 37 102 5 43 85 5 56 74 5 65 80 5 66 81
решение 5-4-102 не находится, есть 5-4-37 и 5-37-102 также есть решение, которое пропускается: 5-3-101, но есть 5-3-18 и 5-18-101
Я же написал, что не решил задачу формулами, а только немного приблизился к решению - получил перечень совпадающих цепочек заданной длины
И да, Ваше решение очень интересное и заслуживает детального изучения. Думаю отсутствие других участников обусловлено сложностью задачи (для решения ее формулами)
наличие 6-65-80 не отменяет 5-65-80 (поэтому есть еще 5-66-81) 5-4-37 также 5-4-102 и 5-37-102 дают последовательность: 3 3 1 2 1
В сообщении № 8 я не указал решение 5-4-37, вот весь перечень формульного решения для цепочек из 5 чисел: 5 3 18 5 4 37 5 5 103 5 6 104 5 7 105 5 8 106 5 9 107 5 10 108 5 18 101 5 30 67 5 37 102 5 43 85 5 56 74 5 65 80 5 66 81
решение 5-4-102 не находится, есть 5-4-37 и 5-37-102 также есть решение, которое пропускается: 5-3-101, но есть 5-3-18 и 5-18-101
Я же написал, что не решил задачу формулами, а только немного приблизился к решению - получил перечень совпадающих цепочек заданной длины
И да, Ваше решение очень интересное и заслуживает детального изучения. Думаю отсутствие других участников обусловлено сложностью задачи (для решения ее формулами)MCH
сцепил до 9 значений, и потом в ручную выставляю фильтр по скольки значениям искать, да конечно это все равно работа в ручную, но это единственное решение которое я нашел под свою задачу
А задача найти самый длинный порядок цифр от 0 до 2, то есть три числа всего 0,1,2 и узнать какая цепочка была самая длинная ранее и что было после нее
сцепил до 9 значений, и потом в ручную выставляю фильтр по скольки значениям искать, да конечно это все равно работа в ручную, но это единственное решение которое я нашел под свою задачу
А задача найти самый длинный порядок цифр от 0 до 2, то есть три числа всего 0,1,2 и узнать какая цепочка была самая длинная ранее и что было после нееDJMC7
Сообщение отредактировал Serge_007 - Понедельник, 06.09.2021, 09:04