Логотип сайта

Подготовка к ЕГЭ и ОГЭ

  • Главная
  • Информация о сайте
  • Сочинения ЕГЭ
  • Выпускное сочинение
  • Поиск по сайту

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

Категория: Информатика и ИКТ

Задание:

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

98897x2119 + 2x92319

В записи чисел переменной x обозначена неизвестная цифра из алфавита 19-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 18. Для найденного x вычислите частное от деления значения арифметического выражения на 18 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно

Решение задания в Python (использование функции int):


digits = "0123456789ABCDEFGHI"
print("x quotient")
for x in digits:
    s = int("98897" + x + "21", 19) + int("2" + x + "923", 19)
    if s % 18 == 0:
        print(x, s // 18) 

Вывод программы:


x quotient
6 469030538
F 469034148 

Решение задания в Python (полиномиальное представление чисел):


print("x quotient")
for x in range(19):
   s = (9*19**7 + 8*19**6 + 8*19**5 + 9*19**4 + 7*19**3 + x*19**2 + 2*19 + 1) + (2*19**4 + x*19**3 + 9*19**2 + 2*19 + 3)
   if s % 18 == 0:
      print(x, s // 18) 

Вывод программы:


x quotient
6 469030538
F 469034148 

Ответ: 469034148

Объяснение:

В первой строке первого варианта решения в переменную digits записаны цифры 19-ричной системы счисления: 10 цифр десятичной системы счисления от 0 до 9 и 9 первых букв английского алфавита от A до I.

Проблема при формировании строки возможных цифр 19-ричной системы счисления заключается в том, что ученики зачастую не помнят английский алфавит, количество и порядок букв в нём. Помочь в решении этой проблемы может знание о том, что максимальная цифра любой позиционной системы счисления на единицу меньше основания данной системы счисления, и функция int, осуществляющая перевод заданной первым аргументом строки из заданной вторым аргументом системы счисления в десятичную систему счисления. Если буква I выступает в роли последней цифры 19-ричной системы счисления, то команда print(int("I", 19)) выведет значение 18 по аналогии с тем, как для 16-ричной системы счисления команда print(int("F", 16)) выведет значение 15.

Таким образом, буквы, используемые в заданной системе счисления, можно подобрать на экзамене с помощью функции int. Во второй строке программы выведена шапка для простоты восприятия последующей таблицы: print("x quotient"). Слово «quotient» переводится с английского языка как «частное, отношение, результат деления». В третьей строке программы с помощью цикла for производится перебор всех значений переменной x, в которую последовательно присваиваются символы-цифры из строки digits. Говорят, что цикл for x in digits осуществляет итерирование по строке.

В теле цикла 19-ричные числа 98897x2119 и 2x92319 с помощью функции int преобразуются в десятичную систему счисления и суммируются:


s = int("98897" + x + + "21", 19) + int("2" + x + + "923", 19)
 

Первым аргументом функций int служат строки, представляющие записи чисел в 19-ричной системе счисления, второй аргумент функций int, равный 19, является основанием системы счисления, из которой осуществляется перевод в десятичную систему счисления. Необходимо заметить, что максимальным основанием системы счисления для функции int является 36. При основании системы счисления большем 36 необходимо представлять заданные числа как полиномы для их перевода в десятичную систему счисления:

s = (9*19**7 + 8*19**6 + 8*19**5 + 9*19**4 + 7*19**3 + x*19**2 + 2*19 + 1) + (2*19**4 + x*19**3 + 9*19**2 + 2*19 + 3)

при этом значения переменной x нужно перебирать в виде: for x in range(19), где 19 – основание системы счисления, в данном случае в переменную x присваиваются не 19-ричные цифры, а их десятичные представления – десятичные числа от 0 до 18.

В случае если значение полученной суммы кратно 18, происходит вывод значения переменной x и искомого частного от деления значения арифметического выражения на 18:


if s % 18 == 0:
    print(x, s // 18) 

В данном задании требовалось найти частное для наибольшего значения x, поэтому в качестве ответа необходимо выбрать последнее подходящее частное.

Похожие материалы
  • Определите, по какой из масок.. Подготовка к ЕГЭ (ИКТ)
  • Сколько единиц в двоичной записи десятичного числа 514?
  • Чем отличается позиционная система счисления..
  • Подготовка к ЕГЭ по информатике. Основы логики.
  • Сколько единиц в двоичной записи?
  • Напишите программу, печатающую значение EOF (Си)
  • А – множество четных чисел, В – множество двузначных чисел, С...
  • 1
  • 2
  • 3
  • 4
  • 5
Оценка: 5.0 из 2

💬 Чат ЕГЭ В Telegram. Вступить

Copyright Vopvet.Ru © 2025 Хостинг от uWeb