Давно не брал я в руки шашку... Всеобщий привет формулистам и сочувствующим! Делал для ТС формулу. Опубликовал решения в 130 символов. Решил, что задачку можно запустить в МШ. Есть столбец целых чисел. Их надо распределить на 12 месяцев, чтобы суммы по столбцам были одинаковые или различались не более чем на 1. У меня есть решение для 2003 на 111 символов и для более новых офисов в 104 символа. Интуиция подсказывает, что должно быть решение меньше 100 символов. И спецы наверняка найдут такие решения. Прикладываю файл. Там уже есть опубликованные ранее формулы. Удалять их не стал, просто скрыл строки. Для удобства проверки сделал УФ и генерацию случайных значений. Чтобы не прокралась ошибка из-за недостатка исходных комбинаций. До понедельника всего ничего, предлагаю вскрываться через понедельник 08.11.2021. Всем удачи!
Давно не брал я в руки шашку... Всеобщий привет формулистам и сочувствующим! Делал для ТС формулу. Опубликовал решения в 130 символов. Решил, что задачку можно запустить в МШ. Есть столбец целых чисел. Их надо распределить на 12 месяцев, чтобы суммы по столбцам были одинаковые или различались не более чем на 1. У меня есть решение для 2003 на 111 символов и для более новых офисов в 104 символа. Интуиция подсказывает, что должно быть решение меньше 100 символов. И спецы наверняка найдут такие решения. Прикладываю файл. Там уже есть опубликованные ранее формулы. Удалять их не стал, просто скрыл строки. Для удобства проверки сделал УФ и генерацию случайных значений. Чтобы не прокралась ошибка из-за недостатка исходных комбинаций. До понедельника всего ничего, предлагаю вскрываться через понедельник 08.11.2021. Всем удачи!Светлый
1. Я правильно понимаю, что можно ссылаться на ячейки с номерами месяцев и на итоговую сумму, и указывать число месяцев (12) сразу числом без вычислений? 2. Чем Формула для 2003 отличается от остальных? АГРЕГАТ вместо НАИМЕНЬШИЙ или округления или ЕСЛИОШИБКА? ЕСЛИОШИБКА это уже половина формулы
1. Я правильно понимаю, что можно ссылаться на ячейки с номерами месяцев и на итоговую сумму, и указывать число месяцев (12) сразу числом без вычислений? 2. Чем Формула для 2003 отличается от остальных? АГРЕГАТ вместо НАИМЕНЬШИЙ или округления или ЕСЛИОШИБКА? ЕСЛИОШИБКА это уже половина формулыMCH
1. Да. Да. 2. Да. У меня была ЕСЛИОШИБКА. Но я без неё нашёл более короткое решение. *И строчку нулей, тоже можно использовать, раз уж она есть.
1. Да. Да. 2. Да. У меня была ЕСЛИОШИБКА. Но я без неё нашёл более короткое решение. *И строчку нулей, тоже можно использовать, раз уж она есть.Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Понедельник, 01.11.2021, 15:13
Я же её не публиковал. Откуда знаете, что это именно моя формула?
Это я 131 сократил до 106 без изменения алгоритма, просто сократив вычисления: от ЕСЛИ(ОСТАТ($B4;12); можно избавится ТРАНСП(СТРОКА($3:3)^0) - можно короче записать
над остальным нужно думать, может быть и алгоритм другой нужен, т.к. через МИН и ОКРУГЛ получается коротко и красиво, но не обеспечивается минимальный разброс
Я же её не публиковал. Откуда знаете, что это именно моя формула?
Это я 131 сократил до 106 без изменения алгоритма, просто сократив вычисления: от ЕСЛИ(ОСТАТ($B4;12); можно избавится ТРАНСП(СТРОКА($3:3)^0) - можно короче записать
над остальным нужно думать, может быть и алгоритм другой нужен, т.к. через МИН и ОКРУГЛ получается коротко и красиво, но не обеспечивается минимальный разбросMCH
Действительно, на одинчетыре шесть символов короче получилось. Меня смущали строки с нулевым значением. Но при умножении матриц там всё равно нули. Над этим решением я уже не думаю. Я короткое пытаюсь ещё сократить. Или что-то новенькое придумать. Кстати, оба решения в 106103 101 и в 96 символов с разными алгоритмами совершенно одинаковые. Все числа в решениях совпадают. *Замылился уже взгляд. **100 98 и 96 ***Не зря вернулся к первоначальной формуле. 86 символов и 96.
Действительно, на одинчетыре шесть символов короче получилось. Меня смущали строки с нулевым значением. Но при умножении матриц там всё равно нули. Над этим решением я уже не думаю. Я короткое пытаюсь ещё сократить. Или что-то новенькое придумать. Кстати, оба решения в 106103 101 и в 96 символов с разными алгоритмами совершенно одинаковые. Все числа в решениях совпадают. *Замылился уже взгляд. **100 98 и 96 ***Не зря вернулся к первоначальной формуле. 86 символов и 96.Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Вторник, 02.11.2021, 10:55
Я с самого начала видел это решение, но никак не мог придумать формулу. Целый месяц мозг ломал. Если убрать из формулы последнее слагаемое, то получится то, чего я так упорно добивался.
Код
=Ч(ОСТАТ(СУММ($B$3:$B4)-C$2;12)<ОСТАТ($B4;12))
цепочки единичек, которые заполняются в следующей строке справа от последней единички в предыдущей строке с продолжением в начале строки, если их больше. Но никак не мог в начало их перенести. Пока не попробовал вычитать, а не прибавлять. И тогда формула заработала. Такие цепочки равномерно заполняют весь массив, что нам и нужно. Количество единиц в строке равно остатку от деления на 12 левого числа, а конец заполнения остаток от деления на 12 суммы левых чисел от начала до текущей строки, включая её. Ну и осталось прибавить ко всей строке второе слагаемое.
Я с самого начала видел это решение, но никак не мог придумать формулу. Целый месяц мозг ломал. Если убрать из формулы последнее слагаемое, то получится то, чего я так упорно добивался.
Код
=Ч(ОСТАТ(СУММ($B$3:$B4)-C$2;12)<ОСТАТ($B4;12))
цепочки единичек, которые заполняются в следующей строке справа от последней единички в предыдущей строке с продолжением в начале строки, если их больше. Но никак не мог в начало их перенести. Пока не попробовал вычитать, а не прибавлять. И тогда формула заработала. Такие цепочки равномерно заполняют весь массив, что нам и нужно. Количество единиц в строке равно остатку от деления на 12 левого числа, а конец заполнения остаток от деления на 12 суммы левых чисел от начала до текущей строки, включая её. Ну и осталось прибавить ко всей строке второе слагаемое.Светлый
А нам срок чуть больше недели поставил, мы даже додуматься до алгоритма с решением не могли Надо было хоть вектор указать, куда смотреть, а так мы только готовое решение можем немного укоротить, если есть возможность
А нам срок чуть больше недели поставил, мы даже додуматься до алгоритма с решением не могли Надо было хоть вектор указать, куда смотреть, а так мы только готовое решение можем немного укоротить, если есть возможностьMCH
До МШ я за один-два дня формулу до 130 символов довёл. Здесь. А дальше вместе с вами думал. Месяц - это я преувеличил. Субъективное ощущение. Своей ошибкой считаю, что выложил готовое решение. Оно всех сбило. Надо было без решения задачу поставить. Больше места для фантазий. Все бы с самого начала пытались что-то придумать. Больше вариантов. Я и сам эту формулу начал выводить из ранее решённого ответа ТС. Меня это тоже сбило. Но там другая задача была. Надо было равномерно на месяц раскидать эти числа. С равномерными пустыми промежутками. А здесь можно по порядку укладывать. Более плотно. Совсем другой принцип.
До МШ я за один-два дня формулу до 130 символов довёл. Здесь. А дальше вместе с вами думал. Месяц - это я преувеличил. Субъективное ощущение. Своей ошибкой считаю, что выложил готовое решение. Оно всех сбило. Надо было без решения задачу поставить. Больше места для фантазий. Все бы с самого начала пытались что-то придумать. Больше вариантов. Я и сам эту формулу начал выводить из ранее решённого ответа ТС. Меня это тоже сбило. Но там другая задача была. Надо было равномерно на месяц раскидать эти числа. С равномерными пустыми промежутками. А здесь можно по порядку укладывать. Более плотно. Совсем другой принцип.Светлый