Здравствуйте, есть разработанная платная программа в excel. Нужно защитить от перепродажи другим. Кто умеет, прошу отписаться или в ЛС. Описание Вашего метода, его надежность и стоимость. Спасибо!
Система защиты файла excel с макросом
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
06.02.2019 21:39:22
Да, у группы Б он сохранил интервал 1, спасибо. Но у группы А он понизил интервал с 3 до 1, у группы В с 8 до 1, Г с 10 до 1, Д с 11 до 1. Идеальный эффективный интервал уже писал, как считать. И наша задача, чтобы он не понижался. С моим алгоритмом эффективность 94%. Понижение 6%.
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
06.02.2019 18:43:27
Для данной группы формула: (100-48)/47 = 1,11 Мы не сможем сделать интервал больше, но главное не сделать меньше 1, не допустить интервал 0. Чтобы не было повторно ББ. |
|||
|
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
06.02.2019 16:57:20
Допустим, он равен 7,33. Так вот в конце распределения, мы смотрим, какой был минимальный интервал. Если он опустился до 6, то эффективность = 6/7. То есть она упала. Как раз все очень четко. Наша основная задача - насколько возможно, сохранить идеальный интервал, не понижать его. С приоритетом в сторону более мелких интервалов. Чтобы спасти их, можно понизить большие интервалы. |
|||
|
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
06.02.2019 14:02:30
Если подставить то, что выдает макрос эффективность: 58% В моем алгоритме 94% |
|||||
|
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
06.02.2019 02:02:30
Я бы поменял название темы, но не нашел, где это сделать. Зато я придумал математическую логику, как выполнить задачу, но не знаю, как ее в макрос перевести. Попробую расписать здесь. Заранее выражаю уважение тем, у кого хватит терпения это прочитать! Наша задача расставить участников как можно дальше друг от друга, по сути разбиваем на равноудаленные отрезки. Пусть N = общее кол-во ячеек. X = общее кол-во участников какой-то из групп. Nост = оставшиеся незаполненные ячейки. Xост = оставшиеся нераспределенные участники. Тогда, формула для максимального интервала при назначении в первой ячейке: i1=(Nост-Xост)/(Xост-1) - интервальные ячейки (все ячейки-ячейки для участников) / кол-во отрезков (X-1). При N = 100, X = 22, i1 = 3,71. Это значит, что максимально далекий интервал будет где-то 3, а где-то 4. Больше просто не получится - будет сдвиг. Наша задача: не уменьшить этот интервал. Допустим, начинается отсчет. 1 - X1 2 - Y1 3 - Z1 4 - W1 5 - Итак, интервал 3 прошел, здесь будет идеальное место для X2. 6 7 8 9 Разница = Интервал - Прошло с последнего = 3,71 - 3 = 0,71<1 Таким образом, когда Разница становится меньше 1, мы должны ставить Если Разница > 1, то ставить нельзя, ибо мы сократим интервал до (Прошло с последнего) Если Разница < 1, а мы не ставим, то будущие интервалы сдвигаются (Запасы сокращаются) Усложнение: Учет интервала "До" Если мы ставим группу не в первый раз, то формула для интервала может быть другой (с учетом для интервала ячеек до) i2=(Nост-Хост+N(до предыдущего))/Хост При Nост = 96, Xост = 21, N(до предыдущего) = 3, i2 = 3,71 При Nост = 92, Xост = 20, N(до предыдущего) = 3, i2 = 3,75 Но этот интервал "До" мы учитывать можем только в том случае, если он не мешает нам, то есть N(до предыдущего)<=i2 Или Nост>=Xост+Nдо*(Xост-1) Коллизия интересов: 1. Несколько >=1 Сравниваем минимальные; если все еще несколько больше 1, то сокращаем тот, с предыдущего у которого максимум. Или при равных, который падает меньше. 2. Несколько <1 Сравниваем минимальные; считаем по запасам, кто ближе к пропасти понижения (у кого меньше запасы), того и ставим. Или при равных, у кого интервал меньше. Интервалы: 1. i1 - будущий интервал по первой формуле (если Nост<Xост+Nдо*(Xост-1)) 2. i2 - будущий интервал по второй формуле (если Nост>=Xост+Nдо*(Xост-1)) 3. i0 - минимальный интервал в прошлом Осталось 2 вопроса. 1. Я начинаю распределение по Разнице, посчитанной в будущих интервалах. И только если возникает коллизия, сравниваю эти группы при минимальных интервалах. Возможно, нужно сразу в минимальных интервалах рассматривать? 2. Как эту логику завернуть в макрос? |
|||
|
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
30.01.2019 01:02:15
Здравствуйте, уважаемые форумчане!
Прошу помочь решить задачку в эксель. Условия задачи: Имеются 5 групп. В каждой группе разное количество участников. Нам нужно создать такую последовательность всех участников, при которой участники из одной и той же группы были максимально далеко друг от друга. Группа А (22) Группа Б (48) Группа В (11) Группа Г (10) Группа Д (9) Нужна формула или методика преобразования в ряд/последовательность. 2 главных условия: 1. Все участники из одной группы максимально далеко друг от друга. 2. Например, минимальное расстояние между участниками группы А - 1 ячейка. Если минимальное расстояние можно увеличить до 2 ячеек, но при этом расстояние между участниками другой группы сократится, например с 6 до 5, то надо так сделать. То есть, нужно увеличивать минимальное расстояние между участниками самых многочисленных групп.
Изменено: |
|
|
Нужен профессионал по написанию макроса
Как объединить данные в таблице
Как объединить данные в таблице
20.07.2016 22:06:18
Мне нужно, чтобы программа автоматически выбрала повторяющиеся значения в столбце номер, а затем удалила все повторяющиеся строки кроме одной, а в этой строке в других столбцах данные либо сложила от удаленных строк либо среднее значение взяла
Изменено: |
|||
|
Как объединить данные в таблице
20.07.2016 22:03:51
Изменено: |
|||
|
Как объединить данные в таблице
20.07.2016 21:27:49
Здравствуйте, подскажите пожалуйста: нужно повторяющиеся строки по столбцу "Номер" объединить в одну строку, при этом значения в столбцах 1,2 сложить, а в столбцах А, В взять среднее арифметическое.
Изменено: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Помогите убрать лишние знаки из ячейки
Помогите убрать лишние знаки из ячейки
Помогите убрать лишние знаки из ячейки
Помогите убрать лишние знаки из ячейки