Vulpo One

Tag: c++



Almost Monkey Patching in С++

include <string>

std::string operator*(std::string& s, unsigned int n)
{
    std::string cml;

    cml.reserve(s.size() * n);

    for (decltype(n) i = 0; i < n; i++) {
        cml += s;
    }

    return cml;
}

int main()
{
    std::string s   = "test";
    std::string sss = s*3;

    std::cout << sss << std::endl; // testtesttest
}

Comments


Метро 2015

Повысились тарифы и мы возвращаемся к нашей серии моделей по выгодности проезда

Итак, часть 4

metro2015

  1. Исчезли проездные на 25 и 50 поездок
  2. Резко подорожал подорожник. Всё-таки неудивительно: повышение минимальной цены — на 6 рублей
  3. Вернул актуальность проездной на 40 поездок на 30 дней
  4. Единый выпал вообще куда-то за границы разумного. Может, конечно, с поездками на наземном транспорте не всё так печально
Тарифы взяты с сайта подорожника podorozhnik.spb.ru
Модель по-прежнему валяется на BitBucket

Comments


Стоимость проезда в питерском метро: Часть 3

Ахахахаха! Вот она, модель моей мечты, срывающая покровы!

В тарифах 2013 года метрошное начальство наконец облажалось с тарифами.

metro2013

Подорожник теперь выгоднее всех проездных. Ну остался один выпадающий случай, если вы ездите ровно 10 раз в неделю, то вам выгоден проездной на 40 поездок.

Напоминаю график для прошлых тарифов.

metro2012

Код в репозитории обновлен

Comments


Стоимость проезда в питерском метро: Часть 2

Сделал более аккуратную модель и добавил проездной на 70 поездок

Стоимость проезда в метро Санкт-Петербурга

  • Проездной на 70 всё же рулит, но в ограниченном промежутке
  • Проездной на 50 тож рулит
  • Да и вообще, тут график понятнее, смотрите сами

Код там же

Comments


Стоимость проезда в питерском метро

Лафа с пешком до работы кончилась и я решил узнать какой всё же проездной на метро выгоднее. Естественно, лёгких путей мы не ищем и на интуицию полагаться не будем.

Итак, модель. Для простоты смоделируем “год” в 360 дней из 12 месяцев по 30 дней. Ну, для простоты. Для примерного результата этого достаточно. И заставим модель кататься по проездным этот год

  • Не брались проездные на 90 дней — один из них не может быть выгоднее жетонов (1890/70 = 27 рублей за каждую поездку), другой — подорожника (1560/60 = 26 рублей за каждую поездку)
  • Не брался месячный проездной на 70 поездок. Сначала я его неправильно смоделировал, а потом заломало. Про него — отдельно

Результат:

image0

Абсцисса — число поездок в неделю, ордината — средняя стоимость одной поездки

  • Не стоит париться с проездными, если вы ездите меньше раза в день. Думаю, это и так очевидно.
  • Подорожник рулит необычайно
  • Нет особого смысла в “толстых” проездных (25/15, 50/30) — они незначительно выгоднее вариантов “полегче” на тот же период
  • Проездной на 20 рулит над подорожником с 9 до 14 поездок
  • Проездной на 40 рулит над подорожником с 9 до 17 поездок и безусловно рулит над проездным на 20 :)
  • Если вы ездите больше 1 и меньше 3 раз в день, скорее всего вам будет выгоднее проездной на 40 поездок
  • В остальных случаях берите подорожник. Вообще, берите подорожник, с ним не надо паритсья с проездными
  • Проездной на месяц привязан к календарному месяцу. Может он и выгоден, но мне с такой привязкой париться неудобно
  • Все эти тарифы — или от балды, или разводилово

Код модели (C++):

Continue readingComments


Exception — это скрытый goto

[21:55:41] Chris Archer says:
“Прежде, чем мы пойдем дальше, я должен сделать одну вещь, которую я обещал сделать: нанести удар по обработке исключений (exceptions). В последний раз, когда я это сделал, я попал в большую неприятность. В неподготовленном замечании на домашней странице Joel on Software я написал, что не люблю исключения, потому что они, фактически, являются невидимым goto, а это, как я рассуждал, еще хуже, чем явный goto.”
[21:56:11] Chris Archer says:
если я правильно помню, в питоне вообще советуют совать исключения куда ни попадя?
[21:57:15] Hey Jimmy says:
да… ну это чтоб приложение было устойчиво
[21:57:27] Chris Archer says:
мда…
[21:57:51] Hey Jimmy says:
кстати, согласна по поводу неявного goto…
[21:58:01] Chris Archer says:
чем больше я узнаю языков, тем больше люблю сиплюсплюс
[21:58:44] Hey Jimmy says:
плюс стопицот)))

Цитата взята из статьи “Как заставить неправильный код выглядеть неправильно”, где кроме вреда исключений рассказывается еще и о правильной венгерской нотации (не той фигне, что везде пишут)

Comments