В конце статьи есть тестирование

В конце статьи есть тестирование по этой теме

Счетчик просмотров277

5 НОМЕР - Решение задач (1/3)

Оглавление
Условие задачиАлгоритм решенияРешение на PythonВажное замечание
Задача

Условие задачи

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1. Шаг: Строится двоичная запись числа N.

2. Шаг: Далее эта запись обрабатывается по следующему правилу:

а) если количество разрядов в числе чётное, тогда в центр записи числа дописывается 111.

б) если количество разрядов в числе нечётное, тогда к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.

Полученная таким образом запись является двоичной записью искомого числа R.

Пример: для числа 5₁₀ = 101₂ результат — 1111₂ = 15₁₀; для числа 8₁₀ = 1000₂ результат — 1011100₂ = 92₁₀.

Укажите минимальное число N, после обработки которого получается число R, большее 4000.

Баннер статьи

Алгоритм решения

1. Перебор чисел: Создать цикл for n in range(1, 10000): (диапазон обычно небольшой, можно увеличить при необходимости)..

2. Перевод в систему счисления (СС): использовать функции bin(), oct(), hex() или алгоритм деления (например, n % 3 и n // 3 для троичной). В нашем случае необходимо использовать bin() тк перевод в двоичную запись.

3. Обработка: Проверяем длину двоичной записи: если чётная — вставляем "111" в центр; если нечётная — дописываем "1" справа и заменяем первые два символа на "11".

Количество разрядов можно проверить при помощи функции len(), соответственно проверка будет выглядеть следующим образом:

PYTHON-КОД
1
2

Чтобы вставить ‘111’ в центр, необходимо с помощью срезов разделить число nn = n[:mid] + '111' + n[mid:], где mid это mid = len(n) // 2

4. Проверка: Переводим результат обратно в десятичную систему через int(s, 2) и проверяем условие R > 4000.Чтобы перевести число из двоичной в десятичную запись, используем функцию int()

5. Вывод: Выводим первое подходящее N и останавливаемся (break).

Решение на Python

PYTHON-КОД
1
2
3
4
5
6
7
8
9
10
11
12

Важное замечание

В задачах на нахождение минимального N мы перебираем именно входные числа N по порядку и останавливаемся на первом, которое удовлетворяет условию. break прерывает цикл после нахождения ответа.

Ответ: 512

Решите задачи, чтобы усвоить материал

Решить в Личном Кабинете
Анализ алгоритмов → Другие системы счисления

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1. Строится троичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
    а) если число N делится на 3, то к этой записи справа дописываются две последние троичные цифры;
    б) если число N на 3 не делится, то вычисляется сумма цифр полученной троичной записи, эта сумма умножается на 3, переводится в троичную систему счисления и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.

Укажите минимальное нечётное число R, большее 555, которое может быть получено с помощью описанного алгоритма.

В ответе запишите это число в десятичной системе счисления.

Анализ алгоритмов → Двоичная система счисления

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
    а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 10;
    б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.

Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, не превышающее 50. В ответе запишите это число в десятичной системе счисления 

Оцените статью

Другие статьи по предмету

Другие статьи не найдены