Pull to refresh
22
0
Андрей@IIvana

Пользователь

Send message

У меня был похожий случай. Как-то потребовалось мне решить задачу: задана функция f(x) = kx + b, надо найти ее корень. Поскольку изучать весь этот ваш матан мне, как и автору статьи, не улыбалось (яжпрограммист), я взял готовый математический пакет, который находит корни уравнений. Но потом задача радикально усложнилась — потребовалось находить такие x, при которых значение исходной функции было бы равно не нулю, а заданной константе с! Я не нашел готовых пакетов и библиотек, реализующих данный функционал. Но я придумал гениальный метод — я определяю новую функцию g(x) = f(x) — c и ищу ее корень математическим пакетом! Наверное надо тоже про это статью на Хабре написать. Ну и про тесты на IQ добавить, для объема контента. Как считаете?

Готово: у вас есть бот, который будет выполнять свои функции вечно

Ага, я тоже хотел, чтобы вечно. Буквально позавчера задеплоил своего бота РЕПЛ-интерпретатор (для Телеграма, Слака, ИРЦ) на хероку. На бесплатных динозаврах. Так там ограничение 550 часов в месяц (из 750 календарных), если не подтверждать аккаунт кредиткой (если подтвердить, то 1000). Причем, лимит часов выделяется на всех динозавров аккаунта, но даже если у вас единственный никогда не засыпающий бесплатный воркер-дин и аккаунт не подтвержден кредиткой, то от вечности останется только ее две трети. Хотя может у вас платные динозавры или аккаунт с кредиткой, тогда вечность действительно настоящая. Но это имхо следует отметить в статье, чтобы не вводить в заблуждение.

Пробежался по диагонали по комментам, и сразу вспомнил нетленное:
https://www.youtube.com/watch?v=zXPXcwM7Asw


ЗЫ самому 43, есличе :) Живу за счет 1С.

где мне нужно было срезать еще 10 символов, чтобы получить самое короткое решение

Серьезно? Ну я догадываюсь, что вы имели в виду заменить concatMap на монадический бинт. Но там и остальное можно неплохо ужать:
months = cycle [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

dude m d n = sum . take n . drop (d-1) $ flip take [1,3..] =<< drop (m-1) months

main = print $ dude 12 31 10
И что будет, если это не вычисление Фибоначчи, а что посложнее?
Что будет, зависит от того, кто делает. Например, банальная мемоизация результатов чистых функций спасет отца русской демократии (да, я в курсе про переполнение инта):
int a[100];

int f(int i) {
    if (i<2) return i;
    else {
        if (a[i]==0) a[i]=f(i-1)+f(i-2);
        return a[i];
    }
}
int main() { std::cout << f(100); }

В свое время, решая многочисленные задачки типа размена монет и подсчета вариантов, я быстро находил тривиальные лобовые экспоненциально-рекурсивные решения, которые тормозили на определенных объемах данных. И было 2 пути — либо каждый раз придумывать свой отдельный другой алгоритм именно для этой конкретной задачи (что любят называть термином динамическое программирование, хотя кое-кто (и я в том числе) причисляют к этому и рекурсию с мемоизацией), либо один раз и навсегда написать абстракцию универсального мемоизатора, и скармливать ему любые тривиально рекурсивные схемы. Даже кату по этому поводу создал — https://www.codewars.com/kata/550756a881b8bdba99000348 Хотя если мы дошли до ФП, и Хаскеля в частности, то это отдельная песня симфония.
Спасибо, редкая за последнее время статья, при чтении которой не приходиться постоянно морщится изза орфографических ошибок. У меня, например, в голове не укладываеться, как можно понимать нетривиальные концепции предметной области, о которой пишеш, и при этом абсолютно не понимать возвратные инфинитивы в пассивном залоге, или как там это формально называеться, ну вы понели о чем я… Но чтение комментариев тутже вернуло меня в реальность :)
Прочитал только первую предложением и сразу (до прочтением остальное) захочу поделился неизгладимый впечатление о переводом!
Если невеста ушла от тебя к другому, то еще неизвестно кому повезло (С)
Тенденция достаточно обща и началась не вчера: https://habrahabr.ru/post/282986/
Сложные вопросы сейчас возможно решить или на github issues или stackoverflow.
Вы сначала вбросили «Хабр вс ЛОР», а теперь в качестве аргументов приводите другие англоязычные ресурсы? Подростки с манией величия (С) появляются везде, только на одних ресурсах они быстро распознаются и забаниваются, а на других дорастают до модераторов и начинают определять политику ресурса. Или, к примеру, писать доброжелательные рекомендации типа
Подумайте основательно. Может, какие полезные мысли в голову придут. А там, глядишь, может и карма повысится.
Простите, но при всем этом на ЛОРе немало квалифицированных специалистов (по моим ощущения, на порядок выше среднего уровня местных обитателей), готовых делиться ценной информацией, пусть и порой разбавляя ее эмоциональной составляющей. А на этом вашем хабре идиоцкая система кармы, и ваши «отфильтрованные» минусуют ценные и дельные комментарии (я не себя имею в виду, могу привести примеры). Я написал 3 статьи (можете полюбопытствовать и составить впечатление), но теперь желание пополнять контент пропало. Что, говорите, я тут вам на… не нужен? Вы то кому будете нужны с такими тенденциями?

Это мои 3 копейки (раз в час из-за слитой кармы) на тему «Почему я такой злой» :)
>Что касается колонии на Марсе — это вообще отдельная тема. Я не понимаю, зачем она нужна, но это оффтопик, который однозначно уведет обсуждение в другую сторону.

Не скажите, как раз очень актуальный вариант — есть вероятность, что автор через пару лет начнет задыхаться в Латвии, найдет себе очередную музу, и они вместе будут мечтать уехать с этой Земли на Марс. А что — надо же развиваться и идти к своей мечте! Правда, полагаю, и в этом случае автору придется все оформлять и переезжать в одиночку.
Не переживайте, участвуйте без этого приват ледерборда. Там лимит 100 участников, и больше половины из них еще не решили ни одной задачи, все задачи решили 30 человек. Хотя они там с каждым днем все тривиальнее, уже однострочники пишу. Я не знаю кто завел именно этот ледерборд, но если это борд участников хабра, то пожалуй я поспешил зарегиться в нем.
Хороший челенж, осенью решил все задачки прошлогоднего тура, сейчас увидел обновление и присоединился. То, что надо отправить только ответ, а не кот как обычно, дает свои удобства и преимущества. А что задачки простые — возьмите какой-нибудь неизвестный вам язык, который вы давно хотели выучить, но откладывали — будет интерес как оптимально реализовать простые алгоритмы на новом языке.
Ну это имхо условная проблема. Конечно замыкание замыкает все что видит снаружи, даже если оно ему не нужно для работы. И сборщик мусора не почистит. Но во-первых, если замыкание динамически изменяемое, то бывшее ненужное внезапно может оказаться нужным. А во-вторых, если жалко держать большой ненужный объект в памяти, переменную, с ним связанную можно (в тех языках, с которыми я сталкивался) пересетить на ноль или вообще заандефить (отбиндить или как это сказать — в общем удалить связь имя-значение в словаре связей окружения). По-русски говоря — почистить за собой мусор вручную :) Хотя, с натяжкой это наверное можно записать в драконы языков с GC.
Не понял сложностей с замыканиями. Джаваскрипт/свифт не курил, но на примере Scheme не мог бы кто показать драконов с ними? В тепличных условиях однопоточности и отсутствия всяких континюэйшен-пассингов.
Как уже писали выше, личная мораль у каждого своя. Я, например, в отличие от местных либерастов, считаю деятельность Роскомнадзора полезной и крайне необходимой, и если бы работал там — писал бы кот с осознанием собственной правоты. И думаю, что я не один такой. Либерасты — можете минусовать. Если слезы от поражения Киллари не помешают вам читать с монитора, конечно.
Согласен с основным (как я его понял) посылом статьи — для понимания работы алгоритма надо знать (прочитать, угадать) «замысел творца» — какая идея реализуется, какие инварианты соблюдаются и т.п. Так вот, все это можно описать в паре-тройке предложений в комментариях к коду — «комментируйте что а не как» (С) А саму реализацию уже надо делать краткой и оптимальной, а не рассусоливать и перегружать ненужными операциями, как в примерах статьи.
Да, шикарно, человек разрабатывает и реализует алгоритм — и это «плохая и неаучная статья», а потом приходит Белинский, прогоняет готовый алгоритм на тривиальных тестовых данных, смотрит спектр и заключает — «фигня» :) Вот это уровень, да. Какая заслуга перед [s]отечеством[/s] сообществом!.. Понятно, что автор реализации алгоритма не лишен понтов и склонности к громким заявлениям (Стивена Вольфрама вспомните), но ведь он написал принципиально отличающуюся от всего имеющегося реализацию, и то, что она вообще хоть как-то работает, уже хорошо. А через полгода выяснится, что этот алгоритм, к примеру, лучше всех жмет данные с датчиков уровня воды при волнении (в силу фрактальной природы волн), и найдет свое применение. А Белинские и прочие критики/рецензенты канут в лето :)
Я бы по рабоче-крестьянски написал так: вводим систему координат (она по умолчанию у нас и так присутствует), параметризуем точки по каждой координате — то есть получаем массив иксов и массив игреков, к каждому из этих массивов добавляем массив параметра — можно равномерный шаг, можно пропорциональный расстоянию между точками на плоскости — и интерполируем эти 2 набора точек от параметра ЛЮБЫМ понравившимся нам способом с нужной степенью гладкости — хоть глобальным сплайном с непрерывными 0,1,2 производными, хоть локальным с непрерывными 0,1 — тот же Катмулл-Ром и прочие, имя им легион. Все, пробегаемся с любым шагом по параметру и получаем точки нашей гладкой кривой.

Information

Rating
Does not participate
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity