СВЕТ: СПАСИБО
01-12-2023
Читать статью
Калужский Александр: Задача про Цаплю: https://www.youtube.co..
24-11-2023
Сергей: спасибо большое
Мы подошли к 14 заданию из ЕГЭ по информатике 2022. Оно связано с различными системами счисления. Что такое различные системы счисления, мы рассматривали в этой статье. Так же будет полезно посмотреть эту статью.
Переходим к первому тренировочному 14-ому заданию из ЕГЭ по информатике. Раньше это задание было под номером 16.
Значение выражения 536 + 524 - 25 записали в системе счисления с основанием 5. Сколько цифр "4" содержится в этой записи?
Первый способ. (С помощью Питона)
f = 5**36 + 5**24 - 25 s='' while f>0: s = s + str(f%5) f = f // 5 print(s.count('4'))
В переменную f записываем функцию. Две звёздочки подряд обозначают возведение в степень. Заводим строчку s, где и будет сформировано число в пятеричной системе.
Сам перевод числа f в пятеричную систему происходит в цикле WHILE.
Записываем остатки от деления на 5 в строку s. Делаем так же, как если бы переводили в ручную. И так же производим само целочисленное деление. Это мы тоже делаем, когда переводим на листке бумаги.
В строке s получается число в пятеричной системе, но в цифры в этой записи стоят в обратном порядке. Ведь, когда мы переводим в ручную, остатки должны записать задом наперёд.
Здесь и не важен порядок цифр, важно количество четвёрок!
С помощью функции count находим количество четвёрок в строке s.
В ответе напишем 22.
Второй способ. (Классический)
Сформулируем главное правило, на которое будем опираться при решении подобного типа задач.
Перепишем наше выражение, чтобы все числа были в виде степени представлены.
Посчитаем 536 + 524 в пятеричной системе столбиком, используя основное правило.
Здесь всё просто: ноль прибавить ноль, будет ноль. Единица плюс ноль, будет один.
Теперь от получившегося числа нужно отнять 52 (1005).
Первые два разряда посчитать легко. Ноль минус ноль, будет ноль.
Третий разряд: из нуля отнять единицу мы не можем, поэтому занимаем у более старших разрядов.
В более старших разрядах тоже нули, поэтому идём до единицы, у которой можно занять. Получается 22 четвёрки.
Вот как было бы, если бы считали в нашей родной десятичной системе счисления в аналогичной ситуации.
Здесь мы считаем в десятичной системе, поэтому получаются девятки. В нашей задаче считали в пятеричной системе, поэтому получаются четвёрки.
В ответе напишем 22 четвёрки.
Значение выражения 168 × 420 - 45 - 64 записали в системе счисления с основанием 4. Сколько цифр "3" содержится в этой записи?
f = 16**8 * 4**20 - 4**5 - 64 s='' while f>0: s = s + str(f%4) f = f // 4 print(s.count('3'))
Преобразуем наше выражение. Приведём всё к 4-ам.
Здесь не можем применить технику устного счёта, потому что стоят два минуса. Значит, будем решать с помощью столбиков.
Сначала посчитаем 436 - 45.
Теперь от этого числа нужно отнять 43 (10004)
Получается 32 тройки.
В последнем вычислении нет ничего сложно. В десятичной системе вы бы легко вычислили в аналогичной ситуации.
Укажите через запятую в порядке возрастания все десятичные натуральные числа, не превосходящие 17, запись которых в троичной системе счисления оканчивается на две одинаковые цифры.
1) Переведём число 17 в троичную систему.
Получилось 1223.
2) Теперь выпишем все числа, которые не превосходят 1223 (Т.е. 1223 тоже подходит!), запись которых в троичной системе счисления оканчивается на две одинаковые цифры. В троичной системе могут применяться цифры 0, 1, 2.
Теперь переведём эти числа в десятичную систему.
Ещё один интересный тип задания номер 14, который вполне может быть на реальном ЕГЭ по информатике 2022.
Чему равно наименьшее основание позиционной системы счисления x, при котором 225x = 405y? Ответ записать в виде целого числа.
Переведём каждое из чисел 225x и 405y в десятичную систему счисления и приравняем, т.к. эти числа равны.
Любое число в нулевой степени - это 1. Значит, 5 × x0 = 5 × y0 = 5. Эти два выражения равны одному и тому же значению, следовательно, их можно убрать и слева, и справа.
Получили уравнение в целых числах. Слева умножение двух последовательных чисел. Нужно начать подбирать целые числа.
x (1 + x) = 2 × 62 = 72 ; Произведение двух последовательных чисел 8 * 9 = 72. Значит, x = 8.
Мы начали проверку с числа 6, потому что у нас в уравнении присутствуют цифра 5. Значит, система счисления может быть минимум с основанием 6.
Получается, что наименьшее значение x равно 8.
В подобных задач нужно знать, что числа обязательно найдутся, нужно их просто хорошо поискать.
Ответ: 8
Для качественной проработки 14 задания из ЕГЭ по информатике 2022 разберём ещё некоторые задачи.
Запись числа 338 в системе счисления с основанием N содержит 3 цифры и оканчивается на 2. Чему равно максимально возможное основание системы счисления?
В этой задаче применим формулу:
Примером для данной формулы можно взять два разряда в двоичной системе. Максимальное число в двоичной системе равно 112. А в десятичной системе это число равно 310. Т.е. 22 - 1.
338 число будет точно больше, чем двухзначное число с основанием N.
Получается неравенство:
N - положительное целое число. Тогда:
Сказано, что число в системе с основанием N оканчивается на 2. Поэтому первый остаток должен быть равен 2!
Будем идти вниз от числа 18 и проверять, на что делится 336.
Число 336 должно делится на N.
Подошло число 16 (16 * 21 = 336!)
Продолжаем подготовку к 14 заданию из ЕГЭ по информатике 2022
Запись числа в девятеричной системе счисления заканчивается цифрой 4. Какой будет последняя цифра в записи этого числа в троичной системе счисления?
Подберём такие числа в десятичной системе, которые в остатке при первом делении на 9 дадут 4!
Посмотрим, какой остаток будет при делении этого же числа на 3 при первом делении. Получается 1. Это и будет ответ.
Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 23 оканчивается на 2.
Нужно перебрать все числа от 3 до 23 и определить, какие из них при делении числа 23 дадут остаток 2.
Подходят числа 3, 7, 21.
Здесь можно и написать программу:
for i in range(3, 24): if 23%i==2: print(i)
В некоторой системе счисления записи десятичных чисел 66 и 40 заканчиваются на 1. Определите основание системы счисления.
Нужно найти такое число, чтобы числа 66 и 40 при делении на это число давали остаток 1.
Т.е. искомое число должно быть делителем чисел 65 (66-1) и 39 (40-1). У числа 39 не так много делителей: 1, 3, 13, 39
Видим, что число 65 делится на 13 (65 : 13 = 5). Поэтому искомое число равно 13.
В какой системе счисления выполняется равенство 12 · 13 = 222? В ответе укажите число – основание системы счисления.
Если бы мы находились в десятичной системе, то последней цифрой была бы 6 (2 * 3). Но у нас 2! Т.е. Система счисления меньше или равна 6, т.к. если бы система счисления была больше 6, то у нас была бы 6 последняя цифра.
Шестёрка не "поместилась" в младший разряд, от неё осталось только 2. Остальные 4 единицы ушли в более старший разряд. Если 4 единицы составляют единицу более старшего разряда, то значит, мы находимся в четверичной системе.
В выражении 1xBAD16 + 2CxFE16 x обозначает некоторую цифру из алфавита шестнадцатеричной системы счисления. Определите наименьшее значение x, при котором значение данного выражения кратно 15. Для найденного x вычислите частное от деления данного выражения на 15 и запишите его в ответе в десятичной системе счисления.
Здесь дана сумма чисел, которые написаны в шестнадцатеричной системе счисления.
Мы будем перебирать каждую цифру из шестнадцатеричной системы (0-15) с помощью цикла. Нас будут интересовать те значения x, при котором сумма этих чисел будет делится на 15.
for x in range(0, 16): a=13*16**0 + 10*16**1 + 11*16**2 + x*16**3 + 1*16**4 b=14*16**0 + 15*16**1 + x*16**2 + 12*16**3 + 2*16**4 if (a+b)%15==0: print(x, (a+b)//15)
Чтобы проверить, делится ли данное выражение на 15, переводим оба слагаемых в нашу родную десятичную систему. Переводим стандартным образом, об этом можно прочитать здесь.
В задаче нужно написать для наименьшего найденного значения x результат от деления данной суммы на 15.
Получается 18341
(Богданов) Операнды арифметического выражения записаны в системе счисления с основанием 17:
В записи чисел переменной x обозначена неизвестная цифра из алфавита 17-ричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратного 11. Для найденного значения x вычислите частное от деления значения арифметического выражения на 11 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Решим задание с помощью предыдущего шаблона на языке Python.
for x in range(0, 17): a=x*17**0 + 9*17**1 + 5*17**2 + 7*17**3 + 9*17**4 b=8*17**0 + 0*17**1 + 1*17**2 + x*17**3 + 3*17**4 if (a+b)%11==0: print(x, (a+b)//11)
Числа M и N записаны в системах счисления с основаниями 15 и 13 соответственно.
В записи чисел переменными x и y обозначены допустимые в данных системах счисления неизвестные цифры. Определите наименьшее значение натурального числа A, при котором существуют такие x, y, что M + A кратно N.
Принцип решения данной задачи похож на решение 15 задания из ЕГЭ по информатике.
for A in range(1, 5000): for x in range(0, 13): for y in range(0, 13): M=5*15**0 + x*15**1 + 3*15**2 + 2*15**3 + y*15**4 + 2*15**5 N=y*13**0 + 9*13**1 + x*13**2 + 7*13**3 + 6*13**4 if (M+A)%N==0: print(A)
Нужно найти A, значит, начинаем перебирать A. Идём от 1, т.к. речь идёт о натуральных числах. Перебираем x и y. Они могут принимать значения из алфавита в 13-ой системе. Берём меньшую, т.к. эти переменные и в первом числе, и во втором одинаковые.
Если выполняется условие задачи, то нам интересно такое A при котором это произошло.
В этой задаче A получается достаточно большим, поэтому перебираем эту переменную до 5000.
На этом всё! Вы прошли чемпионскую тренировку по подготовке 14 задания из ЕГЭ по информатике 2022. Успехов на экзамене!