2.33M
Category: programmingprogramming

Cистемы счисления и основы изучения типов данных в Python на примерах

1.

«Cистемы счисления и
основы изучения типов
данных в Python на
примерах»
Троицкая Л.П.

2.

* Строка состоит из последовательности
символов. Узнать количество символов
(длину строки) можно при помощи функции
len.
* Любой объект можно привести к строке,
которая ему соответствует. Для этого нужно
вызвать функцию str(), передав ей в
качестве параметра объект, переводимый в
строку
*

3.

* Срез – извлечение из данной строки одного
символа или некоторого фрагмента подстроки
или подпоследовательности.
* S[i] – срез, состоящий из одного символа,
который имеет номер i(нумерация с 0).
* Можно указывать отрицательные индексы (номер
будет отсчитываться с конца, начиная с номера 1)
!!! В питоне нет отдельного типа для символов
строки, каждый объект который получается в
результате среза S[i] – это тоже строка типа str
*

4.

*

5.

# Выводим с конца через один
символ
срезы

6.

ЕГЭ-5
На вход алгоритма подаётся натуральное число N. Алгоритм строит
по нему новое число R следующим образом
1) Строится двоичная запись числа N.
2) К этой записи дописываются справа ещё два разряда по
следующему правилу:
а) находится остаток от деления на 2 суммы двоичных разрядов N,
полученный результат дописывается в конец двоичной
последовательности N.
б) пункт а повторяется .
Укажите минимальное число R, которое превышает 123 и может
являться результатом работы алгоритма.
for n in range(1, 100):
s = bin(n)[2:] #перевод в 2-с.с. и получение строки
s = s + str(s.count('1') % 2) #определяем сумму «1» в строке
s = s + str(s.count('1') % 2) # и определяем остаток от деления на 2
# в скобках мы получили число , которое преобразуем в строку
r = int(s, 2) # переводим строку из 2 с.с. В 10 с.с.
if r > 123: # r – число
print(r)
break
#126

7.

На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему
правилу:
складываются все цифры двоичной записи, если
а) сумма нечетная к числу дописывается 11,
б) сумма четная, дописывается 00.
Укажите такое наименьшее число R, которое превышает 114 и может
являться результатом работы алгоритма.
for n in range(1,1000):
r = bin(n)[2:] # переводим в 2 с.с. И получаем строку
if (r.count("1") % 2 == 1): # считаем сколько «1» в строке
r += "11" # сумма «1» нечетная к строке дописывается 11
else :
r += " 00“ # сумма «1» четная к строке дописывается 00
if (int(r,2)) > 114:
# перевод строки r из 2 с.с. В 10 с.с.
print(int(r,2))
break

8.

for i in range(10000,100000): # перебираем числа
n=str(i) # из числа i делаем строку I и записываем в n
a=int(n[0])+int(n[2])+int(n[4]) # из строки n делаем срез
b=int(n[1])+int(n[3])#срезы
if min(a,b)== 7 and max(a,b)==23: #применяем функции
print(i) # мин число при котором автомат выдает 723
break
#ответ 50979

9.

Способ перевода числа в n-ую систему счисления
x=156 способ перевода числа в любую с.с.
ss=[ ] # создаем пустой список
while x>0: # пока есть цифры в числе
ss.append(x%2) # добавляем остатки в список
x=x//2 # отбрасываем последнюю цифру
print(ss) # печатаем получившийся список
ss=ss[::-1] # распечатываем его с конца
print(ss) # ss- это наше число в 2 с.с.
И так во все с.с
Только меняя ss.append(x%n) , где n – искомая с.с.
*
Использование списков

10.

-
73x1y67+49y6x
Дано арифметическое выражение:
73x1y67+49y6x
В записи чисел переменными x и y обозначены неизвестные цифры из
допустимого алфавита для указанных систем счисления. Определите,
сколько различных значений может принимать выражение при
всех возможных x и y.
Использование set()
множества

11.

* Операнды арифметического выражения записаны в системе
счисления с основаниями 15 и 13:
*4Cx415 + x62A13
* В записи чисел переменной x обозначена неизвестная цифра из
алфавита десятичной системы счисления. Определите
наименьшее значение x, при котором значение данного
арифметического выражения кратно 121. Для найденного
значения x вычислите частное от деления значения
арифметического выражения на 121 и укажите его в ответе в
десятичной системе счисления. Основание системы счисления в
ответе указывать не нужно.

12.

десятичной
системы счисления
for x in range(10):
t = int('4C' + x + '4', 15) + int( x + '62A', 13)
if
t % 121 == 0:
print( t // 121)
break
• Ответ: 234.

13.

• Операнды арифметического выражения записаны в
системе счисления с основаниями 19 и 16:
• 2x8419 + 2B3x16
• В записи чисел переменной x обозначены
допустимые в данных системах счисления
неизвестные цифры. Определите наименьшее
значение x, при котором значение данного
арифметического выражения кратно 88. Для
найденного значения x вычислите частное от
деления значения арифметического выражения на
88 и укажите его в ответе в десятичной системе
счисления

14.

* for x in '0123456789ABCDEF':
*
t = int('2' +
x + '84', 19) + int('2B3' + x , 16)
* if t % 88 == 0:
* print(t // 88)
* break
* Ответ: 345.
*
# 16 выбираем меньшую
English     Русский Rules