Тема 14. Системы счисления

14.02 Поиск цифр(-ы) числа

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела системы счисления
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#57228

Операнды арифметического выражения записаны в системе счисления с основанием 26  .

13yx526 + 24y1326

В записи чисел переменными x  и y  обозначены две неизвестные цифры из алфавита 26–ричной системы счисления. Определите наибольшее значение x  , при котором значение данного арифметического выражения кратно 8  при любом значении y  . Для найденного значения x  вычислите частное от деления значения арифметического выражения на 8  при y = 2  и укажите его в ответе в десятичной системе счисления.

Основание системы счисления в ответе указывать не нужно.

Показать ответ и решение

В данной задаче мы имеем два числа в 26-ричной системе счисления: 13yx526  и 24y1326  , где x и y — неизвестные цифры из алфавита 26-ричной системы (0–25). Наша цель — найти наибольшее значение x, при котором сумма этих чисел кратна 8 при любом значении y. Сначала мы создаём функцию getNumber(x, y), которая вычисляет десятичное значение суммы чисел для заданных x и y. Для этого каждую цифру числа умножаем на соответствующую степень 26 в соответствии с её разрядом: для 13yx526  это 1⋅264 + 3⋅263 + y ⋅262 + x⋅26 + 5  , а для 24y1326  это 2 ⋅264 + 4⋅263 + y ⋅262 + 1⋅26+ 3  . Складывая эти выражения, мы получаем десятичное значение суммы для конкретных x и y.

Далее мы перебираем все возможные значения x от 25 до 1 в порядке убывания (for x in range(25, 0, -1)), чтобы найти наибольший x, удовлетворяющий условию. Для каждого x мы предполагаем, что оно может быть корректным, и устанавливаем флаг valid = True. Затем перебираем все возможные значения y от 0 до 25 (for y in range(0, 26)) и проверяем, делится ли сумма getNumber(x, y) на 8 (getNumber(x, y) % 8 != 0). Если для хотя бы одного y сумма не делится на 8, флаг valid обнуляется, и мы прекращаем проверку для этого x, переходя к следующему. Когда мы находим x, для которого сумма делится на 8 при любом y, мы вычисляем частное от деления суммы на 8 для y = 2 (getNumber(x, 2) // 8) и выводим его. Этот подход гарантирует, что найденное x — максимальное возможное, удовлетворяющее всем условиям, а вычисленное частное соответствует конкретному значению y.

# Функция для вычисления десятичного значения суммы чисел $13yx5_{26} + 24y13_{26}$ при заданных x и y
def getNumber(x, y):
    # Вычисляем десятичное значение первого числа: 1*26̂4 + 3*26̂3 + y*26̂2 + x*26 + 5
    # Вычисляем десятичное значение второго числа: 2*26̂4 + 4*26̂3 + y*26̂2 + 1*26 + 3
    return 26 ** 4 + 3 * 26 ** 3 + y * 26 ** 2 + x * 26 + 5 + \
           2 * 26 ** 4 + 4 * 26 ** 3 + y * 26 ** 2 + 1 * 26 + 3

# Перебираем все возможные значения x от 25 до 1, чтобы найти наибольшее
for x in range(25, 0, -1):
    valid = True  # Предполагаем, что x корректно подходит для всех y
    # Проверяем делимость суммы на 8 для всех значений y от 0 до 25
    for y in range(0, 26):
        if getNumber(x, y) % 8 != 0:  # Если сумма не делится на 8 для какого-то y
            valid = False  # Отмечаем x как недопустимое
            break  # Прерываем проверку для этого x
    # Если x подходит для всех y, выводим частное от деления суммы на 8 при y = 2
    if valid:
        print(getNumber(x, 2) // 8)
        break  # Прекращаем поиск, так как найден максимальный x

Ответ: 187162

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!