@Александр, да, именно так задача и решается (я про последнюю ф-ию), но, вероятно, есть возможность узнать последний вызываемый метод прямо из самого метода? Это вопрос скорее на интерес.
Решение пока представляю такое (объясню на примере выше):
Необходимо составить систему уравнений. У нас всего 3 неизвестных, соответственно должно быть 3 уравнения. Одно уравнение уже есть - это 2 * |F2(x1) - F1(x2)| = |F1(x2) - F2(x3)|. Для того чтобы система была полной, нужно добавить еще 2 уравнения. Их буду итерационно подбирать. Т.е. для нашего примера, А должно быть в 2 раза меньше Б. Соответственно, в одной системе ур-ий А=1, Б=2. Далее подбираю значиния, где А=2, Б=4; А=3, Б=6 и т.д.
Если есть более оптимальный способ решения, буду рад услышать
MechanicZelenyy, отрезков (А, Б...) может быть сотня. И зависимости между ними могут быть самыми разными. Если находить их наилучшим способом, то на ум приходит только полный перебор, а это огромное количество итераций.
Почему ломанность никак не мешает? ф-ия получится кусочной и как тогда решить эту задачу?
В задаче необходимо построить несколько функций и затем решить систему уравнений.
Пример:
По точкам получили две функции. Необходимо найти такие точки, чтобы 2 * |F2(x1) - F1(x2)| = |F1(x2) - F2(x3)|
Сплайны тоже не совсем подходят, т.к. мы получаем множество кусочных функций. А мне в задаче, после получения ф-ии, необходимо ее анализировать, а осуществить необходимый анализ можно только используя 1у "целую" функцию
Да, для небольших наборов данных подходит и конкретно для этого примера. Но в mysql, например, максимально возможное кол-во join = 61. А в задаче путь может составляться от 2 до нескольких сотен расстояний между объектами. Т.е., если для приведенного примера, путь состоял из двух расстояний между объектами и необходимо использовать минимум 2 join, то лимит в 61 join для пути из 100 расстояний будет явно превышен.
PrAw, в этом случае нужно будет либо брать всю выборку в память, что невозможно, либо делать несколько более мелких запросов в цикле и уже по отдельности анализировать, но более мелкие выборки также нужно будет анализировать друг с другом, а значит хранить где-то в памяти. Извернуться конечно можно, но скрипт будет отрабатывать слишком долго, поэтому и хочу решить задачу, используя СУБД.
PrAw, как раз изначально мне нужно получить декартово произведение, а потом уже анализировать полученные данные. Начальный запрос следующий select * from a join a as a2 ON a.id < a2.id.
В задаче необходимо сначала получить разницу между значением записей. Т.е. для каждой записи получить разницу со всеми остальными записями. И в дальнейшем эти разницы анализировать.
Начальных записей, которые анализируются, может быть миллион, а после первого join их будет чуть меньше триллиона.
Эти способы позволяют добавлять только 1 компонент, но я могу кликнуть по кнопке несколько раз и должно добавиться соответствующее количество компонентов.
MaxKorz,
1) Речь идет о angularjs 1.6.6
2) Кода там очень много и он отличается от описанного в задаче. Я специально упростил описание, чтобы понятней была суть вопроса.
Для рисования в canvas я использую библиотеку jCanvas. Там можно к отдельным нарисованным элементам прикрепить события, например, клик по квадрату. Мне необходимо, чтобы при клике по квадрату, допустим, всплывало окошко с данными, которые соответствуют данному квадрату из модели angular. Т.е., например, если кликаем по 3ему квадрату в canvas, то во всплывающем окошке, показываются данные объекта c с индексом 2 массива, который хранится в модели angular.
Работает) Спасибо!
Долго разбирался в вашем коде, много нового узнал.
Насчет триггеров тоже хорошая идея, но конкретно к моей задаче не совсем подойдет, т.к. сама исходная таблица - это выборка, и самого столбца s1 в таблице не существует.
Я уже использовал функционал underscore, и поэтому хотелось бы использовать функции с такими же названиями, чтобы не учить новую библиотеку. А расширение функционала php нужно для того, чтобы не писать постоянно костыли под определенные задачи, а воспользоваться уже готовым, отлаженный и проверенным решением.