БЕЗ РЕГИСТРАЦИИПубликации
Читайте публикации без регистрации. Найдите то, что вам интересно.
В олимпиадных задачах ответ часто просят «по модулю 10^9 + 7». Писать 3 ** n % M — плохая идея: Python сначала честно построит всё 3 в степени n и лишь потом возьмёт остаток.
У встроенной pow есть третий аргумент — модуль. Тогда остаток берётся после каждого умножения, и промежуточные числа не растут.
M = 10**9 + 7
print(pow(3, 10**18, M))
# 246336683
print(pow(3, -1, M))
# 333333336, ведь 3 * 333333336 % M == 1
Внутри — бинарное возведение в степень: основание каждый шаг возводится в квадрат и домножается в ответ, когда очередной бит показателя равен 1. Шагов около log2(b): для 10^18 это примерно 60, а не 10^18.
В нашем запуске на Python 3.13 pow(3, 10**6, M) занял порядка микросекунд…
Нужно разбить список на пачки по N элементов: батчи API, строки таблицы, чанки для обработки. Ручной цикл с шагом N и срезами легко ошибается на «хвосте». С Python 3.12 есть готовый способ — batched из itertools.
Он берёт iterable и размер n, отдаёт кортежи длины n. Последний кусок может быть короче, если элементов не хватило — без IndexError.
from itertools import batched
print(list(batched(range(1, 11), 3)))
# [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10,)]
print(list(batched("abcdefg", 2)))
# [('a', 'b'), ('c', 'd'), ('e', 'f'), ('g',)]
Важно: n должен быть не меньше 1, иначе ValueError. Это итератор — если пачки нужны дважды, оберни в list.
Когда брать: непересекающиеся окна фиксированной…
1- 🌐 DHCP (Dynamic Host Configuration Protocol) - это ключевой игрок в управлении сетью, упрощающий процесс назначения IP-адресов и связанной с ними информации о конфигурации устройств.
2- 🔗 DHCP работает по модели клиент-сервер. Когда устройство (клиент) подключается к сети, оно отправляет запрос DHCP. В ответ DHCP-сервер предоставляет клиенту IP-адрес, маску подсети, основной шлюз, DNS-серверы и многое другое. Это как цифровой приветственный пакет!
3- 🔄 DHCP динамически распределяет IP-адреса, что позволяет избежать головной боли, связанной с ручной настройкой. Такая гибкость особенно удобна в больших сетях, где назначение IP-адресов вручную было бы непрактичным.
4-💡 DHCP использует…
🤖 Разработчик Telegram предложил увольнять программистов, которые продолжают писать…
🤖 Разработчик Telegram предложил увольнять программистов, которые продолжают писать код вручную.
По его словам, искусственный интеллект уже генерирует 99,9% кода клиентских приложений мессенджера.
Майк, занимающийся разработкой Telegram для macOS, рассказал, что нейросеть Claude всего за одну ночь адаптировала приложение под складной iPhone Duo. А сайт Gram, по его утверждению, полностью создали с помощью ИИ за один день.
Теперь в компании программированием занимаются даже дизайнеры, используя нейросети.
🔐 На опасения по поводу безопасности разработчик ответил, что искусственный интеллект самостоятельно обнаруживает и устраняет уязвимости.
💻 Похоже, умение писать код вручную скоро пе…
Написание Тетриса это своеобразный обряд посвящения для любого игрового разработчика. Это лучший способ понять, как работать с массивами, игровым циклом и таймингами, не отвлекаясь на сложные движки.
Нашли для вас легендарный туториал от Javi Lopez.
✅ Акцент на логике: Автор учит думать структурами данных, а не пикселями.
✅ Платформонезависимость: Код пишется на чистом C++. Его можно запустить хоть на Windows, хоть на Linux, хоть на тостере (почти).
✅ Чистый код: Отличный пример того, как отделять игровую логику от рендеринга.
Внутри разбирается всё: от хранения фигур (тетромино) в памяти до реализации сгорания линий.
🔗 Читать туториал:
♻ Сделай репост, чтобы помочь другим.
👉 М…
♻ Сделай репост, чтобы помочь другим.
👉 Мы в MAX
👉 Мы в Telegram
👉 Мы в VK
Листайте вложения ↔
1⃣ git reflog — история всех ваших шагов
Не только коммиты, но и переключения веток, сбросы и прочие «хаки»:
git reflog
# вернёт список всех HEAD-перемещений
git checkout HEAD@{3}
# вернёт вас на три шага назад
2⃣ git rerere — повторное разрешение конфликтов
Если в одной и той же точке вы часто сталкиваетесь с конфликтами, включите rerere:
git config —global rerere.enabled true
# при повторном конфликте Git запомнит ваше решение
3⃣ git bisect — автоматический поиск «битого» коммита
Когда баг появился неясно где, let Git do the detective work:
git bisect start
git bisect bad # текущая версия с багом
git bisect good v1.0 # последний рабочий тег
# Git сам предложит вам протестировать пр…
Платформа для взрослых решила побороться за авторов YouTube и Twitch: сервис приглашает публиковать ролики о путешествиях, фитнесе, играх, приготовлении еды и других обычных увлечениях.
Ставка - на создателей контента, столкнувшихся с блокировками и ограничениями на других площадках. По заявлению Po#nhub, сервис ежедневно охватывает более 130 млн пользователей.
💰 Для заработка авторам предлагают встроенные платные подписки, а для коротких роликов - формат Shorties.
По данным платформы, за последний год интерес к поисковым запросам «игры», «фитнес», «кулинария» и «путешествия» уже вырос.
Кажется, фраза «зашёл посмотреть, как поменять колесо» получает новый смысл 😁
Станет ли репутация п…
У разработчика сбоили большие загрузки по Wi-Fi: SSH жаловался на целостность данных, HTTPS — на ошибки TLS. При этом TCP принимал повреждённые пакеты: контрольные суммы сходились.
Расследование привело к TP-Link EAP770 v1. Аппаратное ускорение и механизм повторного использования сетевых буферов портили данные блоками по 64 байта. А контрольная сумма, судя по анализу трафика, вычислялась уже после повреждения.
Исправление — отключить две настройки. Но для этого нужен root, которого штатная SSH-оболочка не даёт. Поддержку модели производитель уже прекратил.
Пришлось использовать уязвимость ядра Linux, собрать стенд в QEMU и довести эксплойт до рабочего состояния.
Результат: скорость упала…
С большой кроватью
Выполняющей множество функций
Как вам такая идея интерьера?
В этом руководстве я научу вас, как написать собственную виртуальную машину (VM), которая сможет выполнять программы на языке ассемблера, такие как игра моего друга "2048" или мой Roguelike. Если вы умеете программировать, но хотите лучше понять, что происходит внутри компьютера, и глубже разобраться, как работают языки программирования, то этот проект для вас. Написание собственной виртуальной машины может показаться сложной задачей, но я обещаю, что вы найдете это удивительно простым и познавательным.
Конечный код занимает около 250 строк на C (unix, windows). Все, что вам нужно знать, — это как читать базовый C или C++ и выполнять двоичную арифметику.
♻ Сделай репост, чтобы помочь други…
1⃣ Часть первая
В этой статье я покажу как написать приложение для windows на ассемблере. В качестве IDE будет привычная многим Visual Studio 2019 со своими привычными плюшками - подсветка кода, отладка и привычный просмотр локальных переменных и регистров. Собирать приложение будет MASM, а значит, у нас будут и масмовские плюшки. Это будет полноценное оконное приложение с меню, иконкой, отрисовкой, выводом текста и обработкой мыши с клавиатурой.
2⃣ Часть вторая — MASM x64 и юникод
Вторая часть рассказа об ассемблере под Windows. Здесь я расскажу про 64-разрядные приложения в Windows, чем отличается MASM 64 от MASM 32, про макросы из MASM 64 SDK, как работать с Юникодом на примере простог…