Pull to refresh
23
0
Виктор Лова @nsinreal

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

Send message
Для тех, кто заинтересовался самим подходом:

Классика эконофизики: Farjoun and Machover, «Laws of chaos»
Также интересные модели есть у Cockhsott and Cottrell
Помните о stackshare.io чтобы быть в курсе, что используется в топовых и не очень компаниях
лайф-хак на будущее, если есть какой-то сайт интересной тематики, то стоит погуглить запрос «alternatives to X» и на сайте альтернатив можно найти много полезного.
Обычно на собеседованиях спрашивают то, что сами недавно узнали.
А главное, если робот сказал в морг, значит в морг. Даже если человек ничего такого не имел в виду.
Разумеется из-за погрешностей. Метод Эйлера (тем более явный) — решение «в лоб». Для более точного решения стоит использовать хотя бы leap-frog (вычисляем попеременно то координату, то скорость). Будет и энергия сохраняться, и орбита.

А «большие дяди» используют хотя бы метод Рунге-Кутты 4 порядка. Пишется в 4 строчки, а погрешность — O(h^2).
Есть среди фанатов статической типизации такая традиция: каждый год они собираются и хоронят языки с динамической типизацией. Ну-ну.

image
Я тоже вспоминаю свои школьные годы, различные творческие конкурсы, малую академию наук и т.д.
Задача детского научно-технического творчества — это не создать внезапно конкурентноспособную технологию (т.к. конкурировать школьнику с сотнями исследовательских групп с бездонным финансированием невозможно).
Детская научная деятельность — это процесс, который важнее результата. Это то, что должно приучить и научить думать, искать, догадываться, проверять, спорить, сомневаться, принимать и отказываться.
Другое дело, что сейчас уже дети испорчены и испорчено детское творчество. Красивую картинку первым делом пытаются продать, к видеозаписи хорошей песни прикрутить рекламу, а автор любого реферата уже готов давать интервью.
Поэтому значительная часть пара, разумеется, уходит в свисток группочек вконтактике, логотипчиков, футболочек, кепоччек, сувенирчиков, интервьюшечек, фанклубчиков… о чертов смысл жизни, если ты есть!
С другой стороны, а могут ли дети сейчас быть не испорченными? Разве это от них зависит? Разве это их выбор?
А если не добавлять гидропирит, а налить в емкость побольше и подключить воздушную помпу. Должен получиться офигенный по красоте эффект светящихся пузырьков. Или скорости реакции не хватит?
По вашей просьбе размещаю и здесь:
осторожно, много текста
Давайте попробуем искать не первый/последний из эквивалентных элементов, а границы содержащего их интервала.

Интервал будет полуоткрытый справа, т.е. [lower_bound, upper_bound) как и все используемые интервалы. В случае, если искомого элемента нет, интервал будет пустой и обе границы (у пустого интервала границы равны) будут указывать на «место для вставки».

Для определения как отсортирована последовательность используем компаратор.
Будем считать, что компаратор comp в нашей последовательности выполняет роль оператора < и элементы в ней отсортированы по возрастанию (возрастанию относительно компаратора).
Т.е. если у нас последовательность целых чисел отсортирована по убыванию, то компаратором в ней будет оператор >. Если у нас последовательность пар чисел, отсортированных по величине второго числа… ну вы поняли о чем я.

lower_bound — позиция первого элемента, который не меньше искомого.
upper_bound — позиция первого элемента, который больше искомого.

Я буду использовать не индексы, а итераторы т.к. считаю, что в данной постановке задачи они уместнее (а ещё потому, что я это буду делать на C++ «в стиле STL»).

Попробуем найти lower_bound:

template<typename FwdIter, typename T, typename Comp>
FwdIter lower_bound(FwdIter first, FwdIter last, T const& x, Comp comp)
{
    // если интервал пустой, то его и возвращаем
    if (first == last)
        return first;
    
    // вычислим позицию среднего элемента
    FwdIter middle = first;
    std::advance(middle, std::distance(first, last) / 2);
    
    // Если средний элемент меньше искомого, т.е. искомый больше среднего элемента,
    // то т.к. последовательность отсортирована по возрастанию,
    // искомый элемент должен находиться справа от среднего, иначе — слева
    if (comp(*middle, x))
        return lower_bound(++middle, last, x, comp);
    else
        return lower_bound(first, middle, x, comp);
}


upper_bound можно выразить через lower_bound:
У нас есть оператор <, а нам нужен ≤.
Выразим одно через другое:
a ≤ b ⇔ !(b < a)

template<typename FwdIter, typename T, typename Comp>
FwdIter upper_bound(FwdIter first, FwdIter last, T const& x, Comp comp)
{
    typedef typename std::iterator_traits<FwdIter>::value_type value_type;
    
    auto less_equal = [&comp](value_type const& a, T const& b){return !comp(b, a);};
    
    return lower_bound(first,last, x, less_equal);
}


Варианты для компаратора по умолчанию пишутся тривиально.

Ну и осталась обертка для проверки входит ли элемент в последовательность и на какой позиции.

template<typename FwdIter, typename T, typename Comp>
FwdIter binary_search(FwdIter first, FwdIter last, T const& x, Comp comp)
{
    FwdIter found = lower_bound(first, last, x, comp);
   
    // Если элемент не найден, found может оказаться равен правой границе.
    // Если found указывает на существующий элемент, то он не меньше искомого.
    // Т.е. *found или больше или равен x, если больше, то x не нашелся.
    if (found == last || comp(x, *found))
    {
        // Элемент не найден.
        // Вернем верхнюю границу диапазона в качестве индикатора.
        return last;
    }
   
    return found;
}


Последняя обертка, не даёт информацию о месте вставки, если элемент не нашелся, однако никто не запрещает воспользоваться lower_bound напрямую, если мы собираемся вставлять элемент.

За исключеним нескольких нюансов, мы практически переизобрели соответствующие алгоритмы из STL:
lower_bound
upper_bound
binary_search
equal_range

Тщательно не тестировал, но вроде работает.
Про окрашивание изображений и не только Colorization Using Optimization. Довольно интересные результаты. Исходники для матлаба есть.
Аналогично. Когда я узнал, что scope — это всего-навсего объект, а переменные «внутри» него — это его свойства, оказалось, что в прототипах и в скопах используется по сути один и тот же механизм, делегация.

object → [[proto]] → [[proto]] → [[proto]] → null
[[scope]] → [[scope]] → [[scope]] → window → null

А «магическая» конструкция with() всего-то навсего добавляет в эту цепь произвольный объект. И тогда js стал для меня из непредсказуемой штуки красивым и изящным языком.
Если уж про пистолет, то надо не только сам пистолет протирать, но и весь процесс заряжания производить в перчатках, желательно медицинских (не оставляющих ворса). Т.е. брать в них патроны из коробки, вставлять в магазин. Гильзы-то останутся на месте после стрельбы, если это не барабанный пистолет. И сам магазин вставлять в пистолет в перчатках — бывает, когда двух выстрелов недостаточно, приходится доставать запасной магазин — а первый может быть экстренно сброшен под ноги. Не всегда может удаваться его потом подобрать.
Куда более впечатляет осознание того, что и «сейчас» которое мы наблюдаем уже «прошлое». Скорость прохождения сигналов в нервах конечна и не очень высока даже по меркам вашего сотового телефона. Пока сигналы доходят до нейронов, пока складывается очередная картинка осознания — того, на что мы смотрели и слушали уже нет.

Более того: «сейчас» по сути это даже не «сейчас минус доля секунды», а «сейчас как мы его себе представляем в голове минус доля секунды». И получается что мы все время в «прошлом» (привет финнам) и в виртуальной построенной в голове реальности частично и в меру развитости чувств восприятия и качества осознания отдельно индивидуума соответствующей окружающей реальности минус доля секунды.

Будущего вообще не существует — путешествовать некуда. Оно еще не наступило. Прошлого тоже нет — это только наш образ о прошлом в голове «тут и сейчас».
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
1
23 ...

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Registered
Activity