мемоизация

  • ХабрахабрФото От «мяу» до «вау»: как коты покорили людей, а котомемы захватили Интернет

    От «мяу» до «вау»: как коты покорили людей, а котомемы захватили Интернет

    Современный Интернет совершенно немыслим без котов. Более того, история человеческой цивилизации немыслима без котов. Нахальные пушистые задницы сопровождают нас уже много тысяч лет, и даже немного странно, что постоянными обитателями всемирной сети они стали не так уж давно. Зато теперь количество мемов с котами огромно, и история интернет-культуры знает множество популярных кошаков всех цветов и размеров. Итак, проследим кошачий путь…

    Читать далее »
  • ХабрахабрФото Реализация мемоизации в JavaScript

    Реализация мемоизации в JavaScript

    Про статью Мне очень хотелось сделать что-то интерактивное. Поэтому по ходу чтения очень желательно переходить в сервис codesandbox.io и делать задания, прежде читать дальше. Соответсвенно, предполагается, что читаться это будет с компьютера, а не с телефона. Статья планировалась быть доступной и полезной для всех. Особенно для джун ребят. Но некоторые темы могут потребовать много усилий от разработчиков с небольшим опытом.…

    Читать далее »
  • ХабрахабрФото Dynamic Programming, или как использовать предыдущий computation-опыт

    Dynamic Programming, или как использовать предыдущий computation-опыт

    Меня зовут Аят, я Android-инженер команды антифрода в inDrive. Эта статья не связана с продукционной разработкой, но будет касаться программирования. Я расскажу о Dynamic Programming (DP) и о том, как эффективно использовать предыдущий computation-опыт. Надеюсь, будет интересно.  Введение в Dynamic Programming Термин Dynamic Programming впервые использовал известный американский математик, один из ведущих специалистов в области вычислительной техники Ричард Беллман в…

    Читать далее »
  • ХабрахабрФото Мемоизация в Лиспе

    Мемоизация в Лиспе

    В заметке подробно рассматривается суть понятия "мемоизация" и разбирается работоспособная версия мемоизации произвольных функций Лиспа. Предполагается, что читатель знаком с Лиспом. Тем не менее, "тонкие места" разбираются достаточно подробно. Введение и постановка задачи Если вы ни разу не слышали слово “мемоизация”, то проще всего будет уяснить суть этого понятия на следующем распространенном примере. Предположим, в вашу программу входит функция, которая…

    Читать далее »
  • ХабрахабрФото Мемоизация в compile time вычислениях в C++

    Мемоизация в compile time вычислениях в C++

    Программистам на C++ хорошо (надеюсь!) известно, что во время компиляции можно производить разнообразные вычисления. Лишь бы эти вычисления были "чистыми", без побочных эффектов. Это делается на шаблонах и на constexpr функциях. Чистое выражение означает, что, сколько бы раз мы его ни попытались вычислить, мы получим один и тот же результат. Поэтому из соображений эффективности результат желательно мемоизировать, чтобы второй раз…

    Читать далее »
  • ХабрахабрФото Краеугольные камни уничтожения медленного кода в Wolfram Language: ускоряем код в десятки, сотни и тысячи раз

    Краеугольные камни уничтожения медленного кода в Wolfram Language: ускоряем код в десятки, сотни и тысячи раз

    Скачать файл с кодом и данные можно в оригинале поста в моем блоге Так же и с символьным ядром Wolfram — его чудовищную мощь нужно правильно использовать, а если это делать не так, оно может стать настоящим «злом», замедляющим все очень сильно. Картинка к вебинару и посту взята не просто так: в определенном смысле символьное ядро Wolfram Language можно сравнить…

    Читать далее »
  • ХабрахабрФото Мемоизация дефолтным kwarg в Python

    Мемоизация дефолтным kwarg в Python

    Вот так можно мемоизировать питоновскую функцию: def memo_square(a, cache=): if a not in cache: cache[a] = a*a return cache[a] Приём незаслуженно малоизвестный, так что под катом мы разберём, как он работает и для чего нужен.Сперва о том, как и почему это работает. memo_square (как и любая другая функция) — это объект класса function, у которого в числе прочих аттрибутов есть…

    Читать далее »


Кнопка «Наверх»