Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Система защиты файла excel с макросом
 
Здравствуйте, есть разработанная платная программа в excel. Нужно защитить от перепродажи другим. Кто умеет, прошу отписаться или в ЛС. Описание Вашего метода, его надежность и стоимость. Спасибо!  
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
 
Цитата
Андрей VG написал: сё же, рекомендовал бы назначить реальную цену. Это
Спасибо!
Назначаю цену 1000р, математически алгоритм готов, его просто нужно перевести в макрос. Прошу давать контакты (телеграм, скайп, телефон сразу).
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
 
Цитата
Андрей VG написал:
так макрос и делает максимально возможное расстояние 1. В чём тогда суть задачи? Что подразумевается под эффектом? Вы так и не ответили на вопрос.
Вот то, что делает макрос.
Да, у группы Б он сохранил интервал 1, спасибо. Но у группы А он понизил интервал с 3 до 1, у группы В с 8 до 1, Г с 10 до 1, Д с 11 до 1.
Идеальный эффективный интервал уже писал, как считать. И наша задача, чтобы он не понижался.
С моим алгоритмом эффективность 94%. Понижение 6%.


ГруппаКоличествоИдеальный интервал,
округленный вниз
Итоговый
минимальный интервал
Итоговая эффективность
1А223133,33%
2Б4811100,00%
3В118112,50%
4Г1010110,00%
5Д91119,09%
10058,53%
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
 
Цитата
Андрей VG написал:
каким образом? В группе Б 48 участников. Чтобы они не стояли рядом нужно 47 человек. Осталось 5 других. Как можно получить расстояние больше 1? В чём секрет?
Я говорю, что нужно постараться удержать идеальный интервал, не уменьшить его.

Для данной группы формула: (100-48)/47 = 1,11
Мы не сможем сделать интервал больше, но главное не сделать меньше 1, не допустить интервал 0.
Чтобы не было повторно ББ.
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
 
Цитата
Андрей VG написал:
А какое отношение этот критерий имеет к максимизации минимального расстояния? На мой взгляд - никакого.
Не согласен) В самом начале мы можем рассчитать так называемый "идеальный интервал", чтобы все участники были равноудалены. Он не может быть ни больше ни меньше.
Допустим, он равен 7,33.

Так вот в конце распределения, мы смотрим, какой был минимальный интервал. Если он опустился до 6, то эффективность = 6/7. То есть она упала.

Как раз все очень четко. Наша основная задача - насколько возможно, сохранить идеальный интервал, не понижать его.
С приоритетом в сторону более мелких интервалов. Чтобы спасти их, можно понизить большие интервалы.
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
 
Цитата
skais675 написал:
Ваш бюджет и срок?
Бюджет, как можно меньше, срок как можно быстрее)

Цитата
Андрей VG написал:
А если написать максимизировать минимальное расстояние? Ведь будет классическая задача оптимизации
Благодарю! Кстати, эффективность считается в самом правом столбике моего файла, как отклоненение от минимальных интервалов, рассчитанных вначале.
Если подставить то, что выдает макрос эффективность: 58%
В моем алгоритме 94%
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
 
Здравствуйте, уважаемые форумчане!
Прошу помочь решить задачку в эксель.
Условия задачи:
Имеются 5 групп. В каждой группе разное количество участников.
Нам нужно создать такую последовательность всех участников,
при которой участники из одной и той же группы были максимально далеко друг от друга.
Группа А (22)
Группа Б (48)
Группа В (11)
Группа Г (10)
Группа Д (9)

Нужна формула или методика преобразования в ряд/последовательность.

2 главных условия:
1. Все участники из одной группы максимально далеко друг от друга.
2. Например, минимальное расстояние между участниками группы А - 1 ячейка. Если минимальное расстояние можно увеличить до 2 ячеек, но при этом расстояние между участниками другой группы сократится, например с 6 до 5, то надо так сделать. То есть, нужно увеличивать минимальное расстояние между участниками самых многочисленных групп.
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
 
Цитата
vikttur написал:
И не найдете. Но можете в сообщении предложить новое название, модераторы заменят.
Предлагаю новое название!
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
 
Цитата
Андрей VG написал: P. S. Может поменяем название темы с гуманитарного абы как на что-то более осмысленное? Например.
Здравствуйте! Всем спасибо за ответы, но пока это все не работает максимально эффективно.
Я бы поменял название темы, но не нашел, где это сделать.

Зато я придумал математическую логику, как выполнить задачу, но не знаю, как ее в макрос перевести. Попробую расписать здесь.
Заранее выражаю уважение тем, у кого хватит терпения это прочитать!

Наша задача расставить участников как можно дальше друг от друга, по сути разбиваем на равноудаленные отрезки.
Пусть
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. Как эту логику завернуть в макрос?  
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
 
Никто не знает?
Расстановка элементов групп в линию с максимизацией минимального расстояния между элементами одной группы.
 
Здравствуйте, уважаемые форумчане!
Прошу помочь решить задачку в эксель.
Условия задачи:
Имеются 5 групп. В каждой группе разное количество участников.
Нам нужно создать такую последовательность всех участников,
при которой участники из одной и той же группы были максимально далеко друг от друга.
Группа А (22)
Группа Б (48)
Группа В (11)
Группа Г (10)
Группа Д (9)

Нужна формула или методика преобразования в ряд/последовательность.

2 главных условия:
1. Все участники из одной группы максимально далеко друг от друга.
2. Например, минимальное расстояние между участниками группы А - 1 ячейка. Если минимальное расстояние можно увеличить до 2 ячеек, но при этом расстояние между участниками другой группы сократится, например с 6 до 5, то надо так сделать. То есть, нужно увеличивать минимальное расстояние между участниками самых многочисленных групп.
Изменено: mihacb - 30.01.2019 14:27:59
Нужен профессионал по написанию макроса
 
Есть 2 таблицы, с ними нужно произвести ряд действий (около 20) хотел бы заказать для этого макрос. Кто может, пишите в скайп eban-mare.
Как объединить данные в таблице
 
Цитата
Kuzmich написал:
В строке 388 вашего примера #ЗНАЧ!. Какой номер должен быть?
Да любое, например 333. Мне бы механизм понять
Как объединить данные в таблице
 
Цитата
gling написал:
Вставьте эти формулы в свой файл заменив диапазоны и номера на соответствующие ячейки.
Мне кажется, Вы меня неправильно поняли или Ваш метод для ручного выделения ячеек
Мне нужно, чтобы программа автоматически выбрала повторяющиеся значения в столбце номер, а затем удалила все повторяющиеся строки кроме одной, а в этой строке в других столбцах данные либо сложила от удаленных строк либо среднее значение взяла
Изменено: mihacb - 20.07.2016 22:06:33
Как объединить данные в таблице
 
Цитата
Kirill Gureev написал: Пример в виде файла?
Изменено: mihacb - 21.07.2016 00:36:42
Как объединить данные в таблице
 
Здравствуйте, подскажите пожалуйста: нужно повторяющиеся строки по столбцу "Номер" объединить в одну строку, при этом значения в столбцах 1,2 сложить, а в столбцах А, В взять среднее арифметическое.


Номер12AB
5692236863427293,352247
30899410831245,45117457
5692300410461202,9118216
14520903827951,05252956
11545461765879,7584619
56923004755868,2530039
56923662748860,269724
125051598687,7478
56923004502577,3133460
116746326374,985277
Изменено: mihacb - 20.07.2016 21:28:26
Помогите убрать лишние знаки из ячейки
 
Всем спасибо
Помогите убрать лишние знаки из ячейки
 
Цитата
Kami написал:
=--ЕСЛИОШИБКА(ЛЕВСИМВ(B2;НАЙТИ("s";B2)-1);B2)

Тоже работает, спасибо!
Помогите убрать лишние знаки из ячейки
 
gling, о, шикарно. Спасибо!
Помогите убрать лишние знаки из ячейки
 
Есть столбец с значениями, некоторые из значений содержат букву s с последующими цифрами, мне надо избавиться от s и цифр

56922696
43749730s62760
56923148
56924224
43749730s65492
56922441
56923585
32000301s9999
56919621
56919730
Изменено: mihacb - 20.07.2016 20:42:15
Страницы: 1
Наверх