Найти тему

14 задание ЕГЭ. Кодирование чисел. Системы счисления. Python.

Оглавление

Условия задачи. Значение арифметического выражения

16^23 + 4^12 – 32^6 (16 в степени 23 + 4 в степени 12 - 32 в степени 6)

записали в системе счисления с основанием 4. Какая из цифр чаще всего встречается в полученном числе? В ответе укажите, сколько таких цифр в этой записи.

Приведём решение на языке Python (он же Питон):

Все надписи после решётки (например, "считаем кол-во нулей в записи") нужны исключительно для пояснения того, что делает данная строка и на работу программы не влияют, это комментарии.

В первой строке P=16**23+4**12-32**6 двойная звёздочка означает возведение в степень.

Вторая строка print ('Число в нашей человеческой 10-ой системе =', P) нужна больше для себя, чтобы понять, что первая строка работает и число действительно большое. От этой строки во время экзамена можно и отказаться.

С 3 по 6-ую строки мы обнуляем будущие счётчики цифр, чтобы потом иметь право к ним что-то прибавлять (т.е. проводить какие-либо операции). Так как система четверичная, то цифры в числе могут быть только такие: 0,1,2,3.

if P%4==0 означает если остаток от деления P на 4 равен нулю, то мы прибавим к счетчику цифр 0 в нашем числе единицу s0 += 1.

P=P//4 означает, что мы оставляем только целую часть от деления P на 4.

Действие % , а потом // - это классический порядок перевода из десятичной системы. В нашей программе мы делаем эти шаги, но само число в 4-ой системе нас не интересует, мы сразу считаем каких цифр в нём и сколько.

Помните, что отступы в начале строк (табуляция) крайне важны.

Запустим нашу программу.

Ответ: 31.
Ответ: 31.

Надо, конечно, понимать, что это не единственный метод/способ решения. Из существующих стоит выбрать для себя самый удобный или придумать свой собственный. Спасибо за интерес к информатике!

Код для копирования (не забываем про отступы в начале строк):

P=16**23+4**12-32**6

print ('Число в нашей человеческой 10-ой системе =', P)

s0=0

s1=0

s2=0

s3=0

while P>0:

if P%4==0:

s0+=1

elif P%4==1:

s1+=1

elif P%4==2:

s2+=1

elif P%4==3:

s3+=1

P=P//4

print ('0 в четверичной записи', s0)

print ('1 в четверичной записи', s1)

print ('2 в четверичной записи', s2)

print ('3 в четверичной записи', s3)