Главная страница
Навигация по странице:

  • Укажите наименьшее число, большее 52

  • Запись «переворачивается

  • ЕГЭ-22. ЗАДАНИЕ 5. ШАБЛОНЫ. Четное, то в конец полученной записи (справа) дописывается 0


    Скачать 18.02 Kb.
    НазваниеЧетное, то в конец полученной записи (справа) дописывается 0
    АнкорЕГЭ-22. ЗАДАНИЕ 5. ШАБЛОНЫ
    Дата13.07.2022
    Размер18.02 Kb.
    Формат файлаdocx
    Имя файла5.docx
    ТипДокументы
    #630286

    5.

    '''Автомат обрабатывает натуральное число N по следующему алгоритму.

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

    2. Если N четное, то в конец полученной записи (справа) дописывается 0, в начало 1; если N— нечётное в конец и начало дописывается по две единицы.

    3. Результат переводится в десятичную систему и выводится на экран.

    Укажите наименьшее число, большее 52, которое может является результатом работы автомата.'''
    numbers = []

    for n in range(1, 1000):

    if n % 2 == 0:

    s = '1' + bin(n)[2:] + '0'

    else:

    s = '11' + bin(n)[2:] + '11'

    if int(s, 2) > 52:

    numbers.append(int(s, 2))

    print(min(numbers))

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

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

    2. К этой записи дописываются справа ещё два разряда по следующему правилу:

    а) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;

    б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на 2.

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

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

    '''

    for n in range(1, 1000):

    s = bin(n)[2:]

    if s.count('1') % 2 == 0:

    s += '0'

    else:

    s += '1'

    if s.count('1') % 2 == 0:

    s += '0'

    else:

    s += '1'

    if int(s, 2) > 43:

    print(int(s, 2))

    break

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

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

    2. К этой записи дописываются справа ещё два разряда по следующему правилу:

    а) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;

    б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на 2.

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

    Сколько различных чисел, меньших 50, могут появиться на экране в результате работы автомата?

    '''

    k = 0

    for n in range(1, 1000):

    s = bin(n)[2:]

    if s.count('1') % 2 == 0:

    s += '0'

    else:

    s += '1'

    if s.count('1') % 2 == 0:

    s += '0'

    else:

    s += '1'

    if int(s, 2) < 50:

    k += 1

    print(k)

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

    1. Строится двоичная запись числа N без ведущих нулей.

    2. Если в полученной записи единиц больше, чем нулей, то справа приписывается единица. Если нулей больше или нулей и единиц поровну, справа приписывается ноль.

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

    Какое наибольшее число, меньшее 90, может быть получено в результате работы автомата?

    '''

    for n in range(1, 1000):

    s = bin(n)[2:]

    if s.count('1') > s.count('0'):

    s += '1'

    else:

    s += '0'

    if int(s, 2) < 90:

    print(int(s, 2))

    '''Автомат обрабатывает натуральное число N < 256 по следующему алгоритму:

    1) Строится восьмибитная двоичная запись числа N.

    2) Инвертируются все разряды исходного числа (0 заменяется на 1, 1 на 0).

    3) Полученное число переводится в десятичную систему счисления.

    4) Из нового числа вычитается исходное, полученная разность выводится на экран.

    Для какого значения N результат работы алгоритма равен 45?

    '''

    for n in range(1, 256):

    s = bin(n)[2:]

    s = (8 - len(s)) * '0' + s

    s1 = ''

    for x in s:

    if x == '1':

    s1 += '0'

    else:

    s1 += '1'

    if int(s1, 2) - n == 45:

    print(n)

    '''Автомат обрабатывает натуральное число N по следующему алгоритму:

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

    2) Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.

    3) Полученное число переводится в десятичную систему счисления и выводится на экран.

    Какое наименьшее число, превышающее 100, после обработки автоматом даёт результат 9?

    '''

    for n in range(100, 1000):

    s = bin(n)[2:]

    if int(s[::-1], 2) == 9:

    print(n)

    break

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

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

    2) К этой записи дописываются ещё несколько разрядов по следующему правилу:

    а) если N чётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;

    б) если N нечётное, то к нему справа приписываются два нуля, а слева единица.

    Например, двоичная запись числа 1101 будет преобразована в 1110100.

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

    Сколько существует различных чисел N, для которых результат работы данного алгоритма принадлежит отрезку [500; 700]?'''

    k = 0

    for n in range(1, 1000):

    s = bin(n)[2:]

    if n % 2 == 0:

    s += bin(sum([int(i) for i in s]))[2:]

    else:

    s = '1' + s + '00'

    if 500 <= int(s, 2) <= 700:

    k += 1

    print(k)

    '''Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:

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

    2. В конец записи (справа) дописывается вторая справа цифра двоичной записи.

    3. В конец записи (справа) дописывается вторая слева цифра двоичной записи.

    4. Результат переводится в десятичную систему.

    При каком наименьшем числе N в результате работы алгоритма получится R > 150? В ответе запишите это число в десятичной системе счисления.

    '''

    for n in range(2, 1000):

    s = bin(n)[2:]

    s += s[-2]

    s += s[1]

    if int(s, 2) > 150:

    print(n)

    break


    написать администратору сайта