Pull to refresh
4

Программист

0,1
Rating
1
Subscribers
Send message
Формулирую задачу — сколько различных номеров длиной К, заканчивающихся на заданной кнопке р, можно набрать на клавиатуре телефона (тастатуре), если мы должны перемещаться по кнопкам ходом шахматного коня.

Такая задача, возможно, вызовет интерес у любителей задачек изначально. Может быть она чуть-чуть заинтересует тех, кто любит шахматы или просто имеет иррациональную страсть к закономерностям на кнопочных телефонах.
Но сторонников «математика не нужна» она лишний раз убедит, что математики варятся в своих абстрактных задачах ради самих задач, в абсолютном отрыве от реальности. И что все эти вектора и матрицы нужны для обсчёта бесконечных ходов сферических коней по шахматным телефонам, а не для «настоящих» задач.
ИМХО чтобы человек заинтересовался математикой, нужно показать, как математика поможет решить лично его проблему. Например, для меня (учился в классе 7 в это время) это была проблема такого плана: как заставить в моём прототипе недоигры на VBA бегать объект по окружности. Тригонометрические функции тогда стали для меня «магией», которая позволила «открыть глаза» и отбросить стереотипы о «ненужных знаниях после арифметики». И чем дальше, тем больше задач, о которые я безуспешно бился лбом, внезапно оказывались решены в сильно более общем случае три века назад именно в математике.
Собственно, «отбитость» моей задачи беганья по кругу для других людей может быть такого же уровня, как и задача из поста. Чтобы привлечь человека математикой, нужно показать ему решение той задачи, которая интересует лично его.
Ага. А ещё может быть так: что предки видели как линейную зависимость, а мы видим как экспоненту, потомки увидят как примерную синусоиду.
моё_хобби_экстраполировать.жпг
Хмм. А разве
return std::move(b);

не является бесполезным/вредным? Скотт Майерс в «Эффективный и современный С++. 42 рекомендации по использованию C++11 и C++14» писал, что в лучшем случае компилятор поймёт нас, хотя не обязан, а в худшем мы сломаем RVO/NRVO. Или в 17 стандарте что-то с тех пор кардинально поменялось?
Натыкался на одного человека, у него был блог: там было много политики, мата и всего этого. Понятно, что человек, так скажем, эмоциональный. Соответственно, это нужно учитывать: если у тебя в команде трое спокойные, а кто-то новый на дейликах будет все время поднимать бучу, это скажется на команде.

А может так человек пар выпускает в интернете, после чего как раз ему неинтересно нести эти темы в рабочий коллектив. ИМХО вообще не показатель.
Можно выработать привычку ставить будильник не на пробуждение, а на засыпание. Например, сигнал в 23:30 напомнит, что в 12 уже надо быть в кроватке и начать засыпать. Это совет, кстати, Мэтью Уолкер считает самым важным среди всех, касающихся гигиены сна.

Такой режим для меня — это прямо насилие над собой. Если я не хочу спать в определённое время, то я, скорее всего, и не усну. Буду ворочаться, перекладывать нагретую подушку, крутить в голове какие-то тупые мысли. Бесполезная и неприятная трата времени. Лучше уж поделать что-нибудь, а лечь тогда, когда организм решит, что ему это нужно. Конечно, таким образом можно просидеть всю ночь, а утром на работу — но это ничего. Это значит, что организм получит свой недосып, а на следующий день уже сам скорректирует своё хотение спать.
Но, конечно, оно у всех по-своему.
Потенциально очень полезная штука.
Интересно, насколько сильно машинное обучение в этом случае справится лучше, чем цепи Маркова, например.
Я, конечно, понимаю, что прошло 10 лет, но, может быть, эта мечта всё ещё актуальна.
Когда-то задался для себя этой целью и нашёл программу HIDMacros. Она как раз отлично справлялась с двумя клавами: на одной можно было поставить шорткаты на клавиши так, что те теряли изначальное предназначение, при этом на другой у клавиш оставался прежний смысл. Даже пользовался какое-то время так двумя клавиатурами, но потом надоело.
Есть, правда, ложка дёгтя: программа больше не развивается автором, а на новых осях уже не работает (личный опыт: на WinXP x86 работала, на Win7 x64 уже нет). Хотя вместо неё автор мутит LuaMacros. Но ей лично я не пользовался, поэтому ничего уже сказать не могу.
В заключение ещё раз напомню, что все вышеописанные термины относятся к синтаксически валидному коду, который будет успешно скомпилирован. Код, невалидный с точки зрения Стандарта, называется ill-formed program.

Вот хотел ещё уточнить, может быть кто-нибудь из присутствующих подскажет. Я так понимаю, что если код не компилируется, то это значит, что он является ill-formed. Однако обратное неверно: код может скомпилироваться, но всё равно являться ill-formed, например, если в коде нарушено ODR. Так ли это? Нет ли ещё каких-нибудь вариантов компилирующегося кода, который при этом будет ill-formed?
И ещё такой вопрос по поводу успешности компиляции: а не может ли UB всё-таки вызвать ошибку компиляции (просто как возможность, не обязательно даже стабильное повторение)? Оно же всё-таки U. Может при развёртывании каких-нибудь шаблонов или макросов, например?
Хочется для себя по полочкам разложить, как эти все круги диаграммы Венна пересекаются, и что есть их пересечения: Implementation-defined behavior, Unspecified behavior, Undefined behavior, ill-formed, некомпилирующийся код.
Классно! Года четыре назад задумывался о чём-то таком, но руки не дошли (да и не возникло прям огромной необходимости). Грустно только, что приходится вот так вот извращаться для того, чтобы получить мидишку, которая в принципе для мелодии есть, но не у тебя.
Это точно
– Ничего страшного. За двадцать лет или ишак умрет, или эмир умрет, или я умру!
Общий синтаксис обработки исключений выглядит следующим образом:

Нет, это не так. Каждому блоку __try{...} должен соответствовать либо один блок __except(...){...}, либо один блок __finally{...}. При этом допускаются вложенные блоки. Но синтаксиса в стиле «несколько catch паровозиком» как в чистых плюсах нет.
См., например, Рихтер «Windows via C/C++», 769с:
Обратите внимание на ключевое слово __except. За блоком try всегда должен следовать либо блок finally, либо блок except. Для данного блока try нельзя указать одновременно и блок finally, и блок except; к тому же за try не может следовать несколько блоков finally или except. Однако try-finally можно вложить в try-except, и наоборот.
Посмотрел стандарт — хм, да, действительно, не ведёт. Согласен. Спасибо, буду знать.
Насколько я понял, это просто фундаментальные ошибки. Если убрать треды из обоих верхних примеров, то проблема никуда не уйдёт.
Вызывать функцию класса из списка инициализации для поля можно только такую, которая использует лишь поля класса, что были уже инициализированы (и стоят выше этого поля).
Вызывать виртуальные функции из конструктора и деструктора вообще нельзя (вызов ведёт на ещё не построенный или уже разрушенный «верхний этаж»).
Подозреваю, что эта фича живёт только в рамках дисков с файловыми системами, которые поддерживают дополнительные стримы. Т.е. передача файла по сети — это, всё-таки, операция передачи байт основного стрима. Да и при архивации тем же WinRar, например, альтернативные стримы теряются.
Это же просто супер! Всегда хотелось, чтобы к файлам из интернета привязывался их урл, откуда они. Часто бывает, что накачаешь файлов отовсюду, а потом ссылки на оригиналы не найти, а сослаться надо. Я даже в долгосрочных планах свой колхоз хотел писать, чтобы в альтернативные стримы урлы закидывать. А оказывается, что у меня всё это уже из коробки есть, только достать нужно.
Мы побороли эту проблему, сделав поля имени и отчества обязательными и установив ограничение на количество знаков во всех полях.

А после этого не обращались с тем, что теперь фамилия, имя или отчество не влезает?
Это жесть, конечно. Но научиться всё это видеть и отсекать лишнее можно.
Не намерены останавливаться/стоять — большая часть знаков сразу отсекается.
Увидели сам лежачий или знак — ограничения скорости отсекаются (по нему просто и так нужно проезжать меньше 20, не помню, есть ли это в ПДД, но это просто разумно).
Пешеходные и «осторожно, дети» — тоже не сильно важная инфа, судя по внешнему виду улицы, пешеходы и так появиться на проезжей части там могут в любой момент — гнать и терять внимание нельзя и так.
Так, на уровне идеи:
Можно решить проблему выедания пользователем ресурсов тем, что сделать их платными (за операцию/единицу памяти или за операцию/единицу памяти сверх лимита, и т.п.). При этом платой может быть какой-нибудь внутриигровой ресурс, который пользователями же и будет добываться в игровом мире, эдакое топливо для бота. Что-то по примерной аналогии с gas в Ethereum.
При этом для разработчика такой системы возникнет много интересных задач на подумать, как всё это дело отбалансить, а для игроков потом — как оптимизировать свой код и сколько тактов из него выделить на добычу топлива.
Вот ещё полезная статья на эту тему. В частности, там автор здорово расписывает в статье и каментах настройку Firefox.
Конкретно в этот аккаунт с телефона никогда не заходил.

Information

Rating
5,013-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity