Как стать автором
Обновить
365
0
Андрей @Mrrl

Заводчик кардиганов

Отправить сообщение
Проблема в том, как мы вычисляем штраф за взаимное расположение точки (x0,y0) и прямой. Если прямая задана как a x + b y = c, а штраф — (a x0 + b y0 — c)/sqrt(a^2+b^2), т.е. расстояние до прямой — картина одна. Если прямая y = a x + c, а штраф — a x0 + c — y0, то результат будет другим — повысится штраф в случае больших значений a, и метод будет занижать это значение по сравнению с первым представлением. И при переходе от y = a x + c к x=c будет разрыв непрерывности.
Какой ответ для точек (-1,6), (0,0), (1,6)? y=4 или x=0?
Посоветоваться с женой. Она объяснит, какая грядка лучше всего вписывается в её идею прекрасного, а какая там будет площадь — дело десятое.
Отразим грядку относительно стены дома, объединим грядку с её отражением. Получится прямоугольная грядка вдвое большей площади, которую надо оградить уже со всех сторон, но на это есть вдвое больше метров сетки. Прямоугольник максимальной площади при заданном периметре — квадрат. Значит, искомая грядка — 1х2 метра. Где здесь квадратное уравнение? (почему квадрат — а потому, что среднее арифметическое не меньше среднего геометрического).
Аналогично получаем, что если форма может быть произвольной, то ответ — полукруг.
и вообще i это сколько?

Вообще, i это мнимая единица, квадратный корень из -1.
Более гладко не получится. У алгоритма появятся лишние степени свободы, он сможет более точно аппроксимировать исходные точки, а значит, найденное решение будет ближе к исходным данным. И, скорее всего, будет менее гладким.
Впрочем, в МНК легко засунуть и полиномиальные сплайны, и условия гладких (или более-менее гладких) стыковок, и разный вес разных условий.
Вероятно, cos^(-1) у него это арккосинус.
Это уже не проблема. Мы уменьшили басфактор вдвое — ну и хорошо. Уменьшать дальше неэффективно? Не будем.

Интересно, пройдёт ли такой вариант в серьёзной фирме, где следят за качеством кода.
Верно. Но «месяц заменяющего» умножается на вероятность bus factor.
И если писать код в расчёте на последователя своего уровня, то это, конечно, проще — там overhead будет всего 10-15% — некоторое количество строчек комментариев. Проблема в том, что для «всей команды» (включая тимлида) код останется таким же непонятным.
Час пик бывает. Но если меня спросят, как его учитывать в модели, я вряд ли сходу отвечу. Автобусы будут ходить медленнее? Они будут ходить чаще? Увеличится время на то, чтобы войти в метро или выйти из него? Уменьшится вероятность сесть в подошедший автобус (если он битком набит)? Надо предусмотреть вариант доехать или дойти до конечной остановки, чтобы эту вероятность повысить? И учесть, что другие пассажиры могут додуматься до такого же варианта? И вы всерьёз предлагаете описать систему, которая это учитывает, на собеседовании, без подготовки?
Сравните месяц, умноженный на вероятность bus factor, и 300-500% увеличения затрат времени на то, чтобы привести код в состояние, в котором его сможет поддерживать кто угодно из команды (не говоря уже о разрушении контекста — специалисту приходится думать «как они» и решать непростую задачу приведения алгоритма к их ограничениям).
А не входит ли в список умений человека, способного написать навороченный алгоритм, умение разобраться в чужом таком алгоритме?
Было бы круто, да. Но на что лучше тратить усилия автора при наличии других среднесрочных задач, требующих его уровня?
Возможно, если повысить чувствительность детектора гравитационных волн ещё на несколько порядков, и следить с его помощью за параметрами системы. Да и слившиеся звёзды у них были гораздо ближе.
В «Диаспоре» основным поражающим фактором для Земли были кислотные дожди (для тех, кто догадался спрятаться от вспышки под землёй).
С королём Англии — хорошая шутка (он правил всего три года). Но имя угадать удалось (в барокканском цикле он фигурировал просто как Джеймс).
С Ферма не угадал, думал, что Людовик XIV вступил на трон раньше.
А не сдохнет ли алгоритм Дийкстры от объёма данных? Не потребуется ли сразу какого-нибудь разбиения на кластеры?
Вы хотите, чтобы код был написан за разумное время, чтобы он работал достаточно быстро, или чтобы его смогла поддерживать вся команда? Выберите любые два требования.
Сможет ли «вся команда» поддерживать какую-нибудь модификацию, скажем, алгоритма Укконена, или какого-нибудь QR-алгоритма? Или чего-нибудь ещё более замороченного?
К сожалению, этот код не свяжет left.right с right.left. А по условию, должен.
У шариковой ручки пока ещё разрешение выше, чем у планшета и десктопа (в смысле количества текста и картинок, которые можно уместить на страницу и окинуть взглядом).
Формула корней уравнения 4-й степени? Вот что получилось за 5 минут:
x^4 + a*x^2 + b*x + c = 0.
Попробуем разложить на квадратичные множители:
x^4 + a*x^2 + b*x + c = (x^2 + p*x +q)*(x^2 — p*x +r)
a = — p^2 + (q+r)
b = p * (r-q)
c = q*r
Возведём второе уравнение в квадрат и подставим p^2 из первого уравнения, а r*q — из третьего:
b^2 = p^2 * (r-q)^2 = ((q+r) — a) * ((r+q)^2 — 4*q*r) = ((q+r) — a) * ((r+q)^2 — 4*c).
Получили кубическое уравнение относительно q+r. Решаем его по формуле Кардано, а потом, зная q+r и q*r, находим q и r. p найдём из второго уравнения (это позволит не беспокоиться о лишних корнях).
Последние 30 лет я точно не вспоминал, как это решается, а когда решал в первый раз, то вспоминать было еще нечего.
Про дискриминант — вопрос вообще с подвохом. Насколько я помню, для высоких степеней он определяется, как результант многочлена и его производной, после чего считается по формуле. Тут либо знаешь, либо нет.
Про то, что существует специальный «алгоритм горизонтального обхода двоичного дерева», я в первый раз услышал из этого обсуждения. Если мне нужно будет так обойти дерево — напишу с нуля, хотя, скорее всего, вместо очереди воспользуюсь двумя списками. Потому что очередь мне изначально кажется неэффективной структурой. И в любом случае, буду стараться этого обхода избежать — дорого по памяти. Лучше поискать решение с рекурсией. Приведённая здесь задача — исключение, здесь списки строятся, как часть ответа.
И да, я буду писать обход дерева/графа/топологическую сортировку/поиск изоморфизма графов/метод главных компонент/интегрирование по непрямоугольной области/радикс-сортировку массива/etc, не подглядывая в Гугл. Потому что мне решение будет нужно не для общего случая, а для конкретной задачи, и дополнительные данные могут дать лучший вариант алгоритма. К тому же, возможно, что удастся склеить этот этап алгоритма с предыдущим или следующим и избавиться от затрат лишней памяти или от ненужных вычислений.
Боюсь, правда, что с таким подходом меня в Гугл не возьмут :)

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность