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

  • Общий подход

  • Решение (вариант 1, через десятичную систему)

  • Возможные ловушки и проблемы

  • Решение (вариант 2, через четверичную систему, предложен О.А. Тузовой)

  • Решение (программа на Python , А.Н. Носкин): можно решить задачу с помощью программы: for i in range(1,31): перебираем ответы

  • > 1 - выход за 25 int - переводит из 4-ой в 10-ую систему print( int( d+11, 4 ), end = , )

  • ЦУЙУ. Позиционные системы счисления


    Скачать 0.86 Mb.
    НазваниеПозиционные системы счисления
    Дата15.09.2022
    Размер0.86 Mb.
    Формат файлаdoc
    Имя файлаege14 (1).doc
    ТипДокументы
    #678195
    страница9 из 15
    1   ...   5   6   7   8   9   10   11   12   ...   15

    Еще пример задания:


    Р-11. Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 25, запись которых в системе счисления с основанием четыре оканчивается на 11?

    Общий подход:

    • вспомним алгоритм перевода числа из десятичной системы в систему с основанием (см. презентацию), из него следует, что младшая цифра результата – это остаток от деления исходного числа на , а две младших цифры – это остаток от деления на и т.д.

    • в данном случае , остаток от деления числа на должен быть равен 114 = 5

    • потому задача сводится к тому, чтобы определить все числа, которые меньше или равны 25 и дают остаток 5 при делении на 16

    Решение (вариант 1, через десятичную систему):

    1. общий вид чисел, которые дают остаток 5 при делении на 16:



    где – целое неотрицательное число (0, 1, 2, …)

    1. среди всех таких чисел нужно выбрать те, что меньше или равны 25 («не превосходят 25»); их всего два: 5 (при ) и 21 (при )

    2. таким образом, верный ответ – 5, 21 .

    Возможные ловушки и проблемы:

      • выражение «не превосходящие » означает «меньшие или равные », а не строго меньшие

      • остаток, состоящий из нескольких цифр (здесь – 114), нужно не забыть перевести в десятичную систему

      • найденные числа нужно записать именно в порядке возрастания, как требуется

    Решение (вариант 2, через четверичную систему, предложен О.А. Тузовой):

    1. переведем 25 в четверичную систему счисления: 25 = 1214, все интересующие нас числа не больше этого значения

    2. из этих чисел выделим только те, которые заканчиваются на 11, таких чисел всего два:
      это 114 = 5 и 1114 = 21

    3. таким образом, верный ответ – 5, 21 .

    Возможные ловушки и проблемы:

      • есть риск случайно «забыть» какое-то число или найти «лишнее» (в данном случае – большее 25)

      • можно сделать ошибки при переводе чисел из четверичной системы в десятичную или вообще «забыть» перевести

    Решение (программа на Python, А.Н. Носкин):

    1. можно решить задачу с помощью программы:

    for i in range(1,31):# перебираем ответы

    x = i

    x4 = ''

    while x > 0:# перевод в 4-ю систему

    x4 += str(x%4)

    x //=4

    x4 = x4[::-1]# разворот числа

    if x4[-2:]== "11":

    print(i, end=",")

    1. ответ: 5, 21.

    Решение (программа на Python, Б.С. Михлин):

    1. полная программа:

    for d in '0', '1': # d - цифра (digit). При d > 1 - выход за 25

    # int - переводит из 4-ой в 10-ую систему

    print( int( d+'11', 4 ), end = ',' )

    1. Ответ: 5, 21.
    1   ...   5   6   7   8   9   10   11   12   ...   15


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