Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Срочно задание 5 ЕГЭ информатика

Виктория Струкова Ученик (84), открыт 1 день назад
Автомат обрабатывает десятичное целое число N (0 ≤ N ≤ 255) по следующему алгоритму:
1. Строится восьмибитная двоичная запись числа N.
2. Все разряды двоичной записи инвертируются (0 заменяется на 1, 1 на 0).
3. Если полученное число кратно 5, то в двоичной записи старшие три разряда заменяются на 100, в противном случае в двоичной записи старшие три разряда заменяются на 101.
Полученная таким образом запись является двоичной записью искомого числа R. Сколько существует чисел N, из которых в результате выполнения алгоритма может получиться число 180?
7 ответов
Power Potato Ученик (236) 1 день назад
Для решения задачи, давайте начнем с получения двоичной записи числа 180 и последовательно выполним шаги алгоритма.

1. Двоичная запись числа 180:

• 180₁₀ = 10110100₂ .

2. Инвертируем все разряды:

• Инвертируем 10110100₂ :

• Получаем 01001011₂ .

3. Проверяем кратность 5:

• Переведем 01001011₂ в десятичную систему:

0 ⋅ 2⁷ + 1 ⋅ 2⁶ + 0 ⋅ 2⁵ + 0 ⋅ 2⁴ + 1 ⋅ 2³ + 0 ⋅ 2² + 1 ⋅ 2¹ + 1 ⋅ 2⁰ = 0 + 64 + 0 + 0 + 8 + 0 + 2 + 1 = 75


• Проверим, кратно ли 75 числу 5:

• 75 ÷ 5 = 15 (кратно).

4. Заменяем старшие три разряда:

• Так как число кратно 5, заменяем старшие три разряда на 100 :

• Получаем 10001011₂ .

Теперь мы знаем, что искомое число R = 10001011₂ .

Теперь нам нужно найти все возможные значения N , которые могут привести к этому результату.

▎Обратный процесс:

1. Инвертируем старшие три разряда:

• У нас есть R = 10001011₂ .

• Инвертируем старшие три разряда:

• Получаем 00001011₂ .

2. Преобразуем обратно в десятичное число:

• 00001011₂ = 11₁₀ .

3. Проверяем кратность на этапе инверсии:

• Теперь нам нужно проверить, какие значения N могут привести к 11₁₀ (то есть к 00001011₂ ):

• Инвертируем все биты:

• N = инверсия(00001011₂) = 11110100₂ .

4. Переводим обратно в десятичное:

• N = 11110100₂ = 128 + 64 + 32 + 16 + 0 + 0 + 4 + 0 = 244₁₀ .

Теперь мы имеем одно значение N = 244 .

Однако нам нужно проверить, есть ли другие числа, которые могут привести к такому же результату:

▎Проверка других возможных значений:

Поскольку шаги инверсии и замены старших разрядов могут быть выполнены для разных значений, нам нужно найти все N , такие что после инверсии и проверки на кратность также получится кратное число.

Значения от N = 0 до N = 255 могут быть проверены на кратность и инверсию, однако из-за ограничений по количеству битов (всего восемь бит), мы можем заметить, что только одно значение N = 244 приведет к искомому результату.

▎Ответ:

Таким образом, существует только одно число N , из которого в результате выполнения алгоритма может получиться число 180.
A Beautiful Face Мыслитель (5238) 1 день назад
Ты обратилась не по адресу,сори.
Андрей Высший разум (480351) 1 день назад
180₁₀ = 10110100₂ => 101|10100 => искомое число после инвертирования должно быть не кратно 5.

Три левых разряда образуют 8 возможных вариантов и только для 2 вариантов (000 и 101) число будет кратно 5.

Ответ: 6

Все искомые числа после инвертирования равны 20 + x * 32, где x ∈ [0; 7]. Очевидно, что такое число будет кратно 5, только если x кратно 5. Т.е. если x = 0 или x = 5.

Собственно, это самое инвертирование вообще не нужно, т.к. множество чисел после инвертирования в точности совпадает с множеством чисел до инвертирования.

И если хочешь кодом, то:
 cnt = 0 
for i in range(256):
if i % 5 == 0: continue
cnt += int('101' + ('0000' + bin(i)[2:])[-5:], 2) == 180
print(cnt)
Или даже так:
 cnt = 0  
for i in range(256):
cnt += i % 5 != 0 and i % 32 == 20
print(cnt)
Виктория СтруковаУченик (84) 1 день назад
спасибо,но можете пожалуйста через питон решить
Андрей Высший разум (480351) Виктория Струкова, Добавил в основной ответ
Виктория СтруковаУченик (84) 1 день назад
спасибо вам большое
Самир Дегтярев Профи (887) 4 часа назад
чтобы получить 180 нужно сначала инвертировать 180 до 01101100 потом обратно до 10000011 это 131 а 131 кратно 5 значит 3 старших бита 100 так что всего 4 числа подходят
Похожие вопросы