Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 121 След.
Сравнение массивов числовых данных на степень похожести, найти ряд данных, наиболее близкий к расчётным
 
Вариант на базе квадратичного отклонение, чем меньше значение, тем лучше:
Код
=КОРЕНЬ(СУММКВРАЗН($A5:$A114;B5:B114)/СЧЁТ($A5:$A114))
VBA. Реализация Таблицы сложения Узоровой
 
Попробуйте такой код, возможно повторений будет меньше
Код
Sub mysum2()
    Dim i As Long, j As Long, txt As String
    Randomize
    For j = 1 To 9 Step 2
        For i = 1 To 50
            txt = fSum(0, 9, 1, 10, txt)
            Cells(i, j) = txt
    Next i, j
End Sub

Function fSum(min1 As Long, max1 As Long, min2 As Long, max2 As Long, Optional t2 As String = "") As String
    Dim znak As Long, s As Long, r1 As Long, r2 As Long, t1 As String
    Do
        r1 = Int(Rnd * (max1 - min1 + 1) + min1)
        r2 = Int(Rnd * (max1 - min1 + 1) + min1)
        znak = Int(Rnd * 2)
        If znak = 0 Then s = r1 - r2 Else s = r1 + r2
        t1 = r1 & IIf(znak = 0, " - ", " + ") & r2 & " ="
    Loop While s < min2 Or s > max2 Or t1 = t2
    fSum = t1
End Function
Изменено: MCH - 24 Июл 2020 15:58:47
Получить все взможне варианты объединения букв из 5 столбцов
 
Ну тогда можно было бы на макросах сделать: https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=65018
Также в "приемах" есть подобный пример: https://www.planetaexcel.ru/techniques/7/7203/
Получить все взможне варианты объединения букв из 5 столбцов
 
А разве не проще с доп.столбцами и доп. вычислениями сделать?
и реализовать легче и править и т.п.
Круговое распределение по потребности, Распределение значения между субъектами согласно потребности
 
Цитата
GAMULA написал:
не совсем. в Вашем файле 102 стоит как бы рандомно
Ну тогда так
Круговое распределение по потребности, Распределение значения между субъектами согласно потребности
 
Решение формулой в желтых ячейках
при условии, что потребность отсортирована по убыванию
Проблема нелинейности транспортной задачи при поиске решения
 
Нелинейность модели из за округления количества машин
Посмотрите немного измененную модель, где распределяем автомобили
Такую задачу можно свести к линейному методу
Изменено: MCH - 17 Июл 2020 14:26:12
Курсы пересчёта валюты
 
Не округляйте курс валюты
45896,25*70,1784609853746 = 3220928,19
Заполнение случайных ячеек в выбранном диапазоне
 
Решение макросом
Изменено: MCH - 8 Июл 2020 08:34:09
Как отсортировать 5 миллионов строк?
 
Цитата
Jack Famous написал:
Проблемы: сортировка некорректная (даже не учитывая текст после последнего слэша)
Это я косячнул, хотел немного ускорить быструю сортировку, добавил сортировку вставками на коротких участках, реализовал криво - исправляюсь
Вложение в сообщении #71 обновил
С текстом не понятно, как нужно сортировать - после чисел?
Как отсортировать 5 миллионов строк?
 
Jack Famous,
А что на счет скорости, как отрабатывает код, если не принимать во внимание текстовое значение?
Как отсортировать 5 миллионов строк?
 
Цитата
bedvit написал:
Можно собрать и проверить.
Сделал сортировку под текущую задачу
Ищет число после последнего "/", если там текст, то принимает значение за 0
Значения сортируются как числа: 100 > 20
Скачивает текстовый файл по блочно по 10 млн. строк, каждый блок сортируется быстрой сортировкой, затем объединяются путем слияния файлов (сортировкой слияния)
Реализовано на FB, версия 64bit работает чуть быстрее 32bit на этапе сортировки, дисковые операции очень медленные
Вместо тестового файла "File.txt" подставьте рабочий файл
Изменено: MCH - 30 Июн 2020 22:11:01 (Заново загрузил файл)
Как отсортировать 5 миллионов строк?
 
В свое время реализовывал сортировку слиянием, где текстовый файл разбивался на блоки, каждый первоначальный блок который влезает в память сортировался быстрой сортировкой, затем блоки сортировались слиянием
Под текущую задачу нужно менять код (вырезать хвост и по нему делать сравнение), но метод интересен тем, что не ограничен в размере файла (количестве элементов), можно и несколько гигабайт отсортировать, самым медленным здесь будут дисковые операции.
Реализовано на Freebasic (легко перевести на VBA)

Есть генератор случайных строк (задаем количество случайных элементов) и сама сортировка, см. вложение
По скорости сортировка получилась не очень быстрой, но может кому нибудь пригодиться
Расчет итогового материала с учетом раскроя при фиксированной длине базового изделия
 
Есть готовое решение: http://www.excelworld.ru/forum/3-21304-1
Пример расчета во вложении
Изменено: MCH - 23 Июн 2020 10:22:21
Если 1-я цифра числа отлична от 0, взять в расчет ее, иначе взять 2-ю цифру
 
А так не подойдет?
Код
=A2-2*ЛЕВБ(--A1)
Разбить сумму по ячейкам целыми числами, чтобы произведение было максимально близко к самой сумме
 
Решение через UDF (два варианта), работает не очень быстро для большого кол-ва ячеек, поэтому часть формул перевел в значения
Базируется на решении из задачи про кровлю
Изменено: MCH - 11 Июн 2020 15:57:48
Найти комбинацию в матрице
 
Grantorino, можете обозначить исходную задачу (вариантов транспортных задач достаточно много)
Может быть найдется альтернативное решение, в т. ч. через "Поиск решения" или другим способом
Опишите исходную задачу, с указанием реальных данных
График изготовления деталей по сменам
 
Как то так
Заменить буквы числовыми значениями и получить сумму
 
Цитата
Степкина написал:
А как получить промежуточный числовой код слова из которого мы получаем сумму?
Зачем нужно промежуточное число, если потом все равно сумму считаем?
=СУММПРОИЗВ(10^(ДЛСТР(B1)-СТРОКА(ДВССЫЛ("1:"&ДЛСТР(B1))))*(ОСТАТ(ПОИСК(ПСТР(B1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(B1)));1);"абвгдеёжзийклмнопрстуфхцчшщъыьэюя")-1;9)+1))

Цитата
Hugo написал:
А зачем это всё?
Скорее всего нумерология, ссылку на формулы buchlotnik уже давал
Изменено: MCH - 18 Май 2020 14:00:35
Заменить буквы числовыми значениями и получить сумму
 
=СУММПРОИЗВ(ОСТАТ(ПОИСК(ПСТР(B1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(B1)));1);"абвгдеёжзийклмнопрстуфхцчшщъыьэюя")-1;9)+1)
Изменено: MCH - 18 Май 2020 13:34:58
Подбор количества под нужную сумму
 
Количество вариантов набора суммы может быть большим (приложил пример из нескольких вариантов), какой из них выбирать?
А может и не получится разбить указанную сумму на целочисленное количество с точностью до копеек
Для нахождения разбиения использовал надстройку "Поиск решения"
Но можно сделать все и на макросах
Изменено: MCH - 18 Май 2020 13:10:17
оптимальное размещение центров групп
 
Немного доработал алгоритм k-средних, стартовую инициализацию центров групп делаю случайным образом по принципу k-means++
Получается относительно быстро, но каждый раз по разному, т.к. начальные точки выбираются случайным образом
Изменено: MCH - 15 Май 2020 17:11:13
оптимальное размещение центров групп
 
Реализовал алгоритм кластеризации методом k-средних (как его понял и в своей интерпретации)
Работает очень быстро, начальную точку задаю случайным образом, поэтому решения могут быть различными при каждом запуске
В методе (и в реализации) нет ограничения на количество точек в кластере, поэтому может не подойти под исходную задачу
Изменено: MCH - 13 Май 2020 08:38:20
Количество цветов в произвольном диапазоне R+G+B
 
Цитата
bedvit написал:
382,5 - магическое число?
255 * 3 / 2 = 765 / 2 = 382,5
График симметричен, поэтому правую его часть рассчитываем также как и левую, для этого и считаем 382,5-ABS(A2-382,5)
Чтобы значения 0 и 765 (1 и 764 и т.д.) рассчитывались одинаково, возможно есть более простое решение
оптимальное размещение центров групп
 
Цитата
bedvit написал:
Вот  пример . Точного математического решения так и не было найдено
Отписался в указанно теме, задача имеет математическое решение и оно имеет математическое доказательство
Зачастую с помощью простого перебора быстрее найти решения на подобные вопросы, но задача может масштабироваться, и тогда вычислительных мощностей не хватит и нужна математика либо математическое упрощение задачи и уменьшение вычислений.
Количество цветов в произвольном диапазоне R+G+B
 
Чуть короче:
Код
=ЧИСЛКОМБ(382,5-ABS(A2-382,5)+2;2)-ЕСЛИОШИБКА(ЧИСЛКОМБ(382,5-ABS(A2-382,5)-254;2)*3;)

или так, формула массива:
Код
=СУММ(ЕСЛИОШИБКА(ЧИСЛКОМБ(382,5-ABS(A2-382,5)+{2;-254};2);)*{1;-3})


PS: жаль что вопрос мимо "Избушки" прошел, можно было бы посоревноваться
Изменено: MCH - 1 Май 2020 12:07:43
Количество цветов в произвольном диапазоне R+G+B
 
Может такое решение подойдет?
оптимальное размещение центров групп
 
Взял 500 случайных точек, которые находятся внутри окружности и распределил их от 3 до 10 групп, получился интересный эффект распределения по группам
https://yadi.sk/i/LwBhGqFums835A
оптимальное размещение центров групп
 
Цитата
Ігор Гончаренко написал:
а я все еще пишу свой (5-6 вариант)
Надеюсь мы увидим реализацию
оптимальное размещение центров групп
 
Цитата
Ігор Гончаренко написал:
на практике 100-200 обьектов, 10-15 сервисных центров, ресурс сервисного центра 32 объекта.
Сейчас мой алгоритм рассчитывает такие данные за секунды, с более менее нормальным результатом
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 121 След.
Наверх