Файл: Позиционные системы счисления.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.11.2023

Просмотров: 1054

Скачиваний: 9

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



где – целое число из множества {0, 1, 2,3,4} (поскольку система счисления имеет основание 5 и цифр, больших 4, в записи числа быть не может)

  1. используя эту формулу, находим интересующие нас двузначные числа – 15, 16, 17, 18 и 19

  2. таким образом, верный ответ – 3, 15, 16, 17, 18, 19 .

Решение (вариант 2, предложен Сенькиной Т.С., г. Комсомольск-на-Амуре ):

  1. нас интересуют числа от 1 до 30; сначала определим, сколько цифр может быть в пятеричной записи эти чисел

  2. поскольку , в интересующих нас числах может быть не более 2 цифр (все трехзначные пятеричные числа, начинающиеся с 3, больше 30)

  3. есть всего одно однозначное число, начинающееся на 3, это 3

  4. выпишем все пятеричные двузначные числа, которые начинаются с 3, и переведем их в десятичную систему: 305 = 15, 315 = 16, 325 = 17, 335 = 18 и 345 = 19

  5. таким образом, верный ответ – 3, 15, 16, 17, 18, 19 .

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

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

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

x = i

x5 = ''

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

x5 += str(x%5)

x //= 5

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

if x5[0]== "3":

print(i, end=",")

  1. ответ: 3, 15, 16, 17, 18, 19.

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


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

Решение (1 способ):

  1. Если число в системе с основанием оканчивается на 13, то

    1. , потому что в системах с меньшим основанием нет цифры 3

    2. это число можно представить в виде , где – целое неотрицательное число

  2. определим наибольшее возможное с учетом условия . Из уравнения следует .

  3. очевидно, что чем меньше , тем больше , поэтому значение не превышает


здесь мы подставили – наименьшее допустимое значение

  1. остается перебрать все допустимые значения (от 0 до ), решая для каждого из них уравнение

или равносильное

относительно , причем нас интересуют только натуральные числа

  1. получаем

    1. при :

    2. при : решения – не целые числа

    3. при : и , второе решение не подходит

  2. таким образом, верный ответ: 4, 68.

Решение (2 способ, М.В. Кузнецова и её ученики):

  1. запись числа71 в системе с основанием оканчивается на 13, т.е. в разряде единиц – 3, это значит, что остаток от деления 71 на равен 3, то есть для некоторого целого имеем



  1. таким образом, искомые основания – делители числа 68; остается выбрать из них те, которые соответствуют другим условиям задачи

  2. среди чисел, оканчивающихся на 13 в системе счисления с основанием ,минимальное – это само число ; отсюда найдем максимальное основание:




так что первый ответ: 68.

  1. остальные числа, окачивающиеся в этой системе на 13, имеют не менее 3-х знаков ( , …), т.е. все они больше

  2. поэтому , следовательно,

  3. по условию в записи числа есть цифра 3, поэтому (в системах с основанием  3 цифры 3 нет)

  4. итак: , и при этом – делитель 68; единственное возможное значение (на 5,6,7 и 8 число 68 не делится)

  5. таким образом, верный ответ: 4, 68.

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

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

  • можно забыть рассмотреть двузначное число, записанное заданными в условии цифрами (в примере – 13x ), и пропустить максимальное основание

  • нужно помнить, что

  1. максимальная цифра на 1 меньше основания системы счисления

  2. 100 в системе с основанием p равно p2

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

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

for i in range(4,100):# перебираем возможные основания

x = 71 # число по условию

x_N = ''

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

if x%i>9:break # пропускаем цифры в виде букв

else: x_N += str(x%i)

x //= i

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

if x_N[-2:]== "13":

print(i, end=",")

  1. ответ: 4, 68.

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

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

for x in range(4, 72): # x - основание от 4 до 71

# (дальше перебирать нет смысла)

# справа число 13 переведено в 10-ую систему

if 71 % (x*x) == x + 3:

print( x, end = ',' )

  1. Ответ: 4, 68.

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


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

Решение (1 способ):

  1. Если число в системе с основанием оканчивается на 22, то

    1. , потому что в системах с меньшим основанием нет цифры 2

    2. это число можно представить в виде , где – целое неотрицательное число

  2. определим наибольшее возможное с учетом условия . Из уравнения следует .

  3. очевидно, что чем меньше , тем больше , поэтому значение не превышает

здесь мы подставили – наименьшее допустимое значение

  1. остается перебрать все допустимые значения (от 0 до ), решая для каждого из них уравнение

или равносильное


относительно , причем нас интересуют только натуральные числа

  1. получаем

    1. при :

    2. при : решения – не целые числа

    3. при : и , второе решение не подходит

    4. при : решения – не целые числа

  2. таким образом, верный ответ: 6, 42.

Решение (2 способ, М.В. Кузнецова и её ученики):

  1. запись числа 86 в системе с основанием оканчивается на 22, т.е. в разряде единиц – 2, это значит, что остаток от деления 86 на равен 2, то есть для некоторого целого имеем



  1. таким образом, искомые основания – делители числа 84; остается выбрать из них те, которые соответствуют другим условиям задачи

  2. среди чисел, оканчивающихся на 22 в системе счисления с основанием ,минимальное – это само число ; отсюда найдем максимальное основание:



так что первый ответ: 42.

  1. остальные числа, окачивающиеся в этой системе на 22, имеют не менее 3-х знаков ( , …), т.е. все они больше

  2. поэтому , следовательно,

  3. по условию в записи числа есть цифра 2, поэтому

  4. итак: , и при этом – делитель 84; возможные значения (на 5,8 и 9 число 84 не делится)

  5. переводя число 86 в системы счисления с основаниями , находим, что только для основания 6 запись числа оканчивается на 22 (при делении на 3, 4 и 7 «вторые» остатки не равны 2):

    8

    6




    3










    Дальше делить
    нет смысла

    8

    6




    4



















    8

    6




    6













    8

    6




    7













    8

    4




    2

    8




    3

    8

    4




    2

    1







    4







    8

    4




    1

    4




    6




    8

    4




    1

    2




    7







    2




    2

    7




    9…




    2




    2

    0






    5…










    2




    1

    2




    2







    2







    7




    1
















    1



















    1




























    2






















    5










  6. таким образом, верный ответ: 6, 42.