Задача Задача №3415871
А
А
Идём пошагово и минимизируем по цифрам:
- В пятизначном octal-числе d1 d2 d3 d4 d5 каждая цифра соответствует 3 битам. Количество единиц в двоичной записи равно сумме попкитов (количества 1 в 3-битной записи каждой цифры). Таблица попкитов для цифр 0–7: 0→0, 1→1, 2→1, 3→2, 4→1, 5→2, 6→2, 7→3.
- Требуется сумма попкитов = 8.
- Пусть d1 = 1 (минимально допустимая первая цифра). Тогда попкиты на остальные четыре цифры должны суммироваться в 7.
- Чтобы минимизировать число, попробуем минимизировать d2. Посмотрим на d2 = 0 (попиток 0). Остаётся 7 попкитов на d3..d5.
- Теперь минимизируем d3. Если d3 = 0, максимум для d4+d5 — 3+3 = 6, недостаточно. Значит d3 ≥ 1. Берём минимально возможное по значению при popcount 1: d3 = 1 (одна из цифр 1, 2 или 4; выбираем наименьшее значение — 1).
- Осталось 7 − 1 = 6 попкитов на d4 и d5. Чтобы дать максимум 3+3=6, оба должны иметь попкит 3, то есть обе цифры должны быть 7.
Получаем цифры: d1 = 1, d2 = 0, d3 = 1, d4 = 7, d5 = 7.
Значит минимальное пятизначное восьмеричное число с 8 единицами в двоичной записи: 10177_8.
Проверка: попкиты = 1 + 0 + 1 + 3 + 3 = 8.