Меню
Разработки
Разработки  /  Информатика  /  Подготовка к ЕГЭ  /  10 класс  /  Перебор слов и системы счисления. Способы решения на Python

Перебор слов и системы счисления. Способы решения на Python

Перебор слов и системы счисления. Способы решения на Python
26.01.2023

Содержимое разработки

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

Р-03. Все 4-буквенные слова, составленные из букв К, Л, Р, Т, записаны в алфавитном порядке и пронумерованы. Вот начало списка:

1. КККК

2. КККЛ

3. КККР

4. КККТ

……

Запишите слово, которое стоит на 67-м месте от начала списка.

Решение:

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

  2. выполним замену К0, Л1, Р2, Т3; поскольку нумерация слов начинается с единицы, а первое число КККК0000 равно 0, под номером 67 будет стоять число 66, которое нужно перевести в четверичную систему: 66 = 10024

  3. Выполнив обратную замену (цифр на буквы), получаем слово ЛККР.

  4. Ответ: ЛККР.

Решение (с помощью программы, А.И. Козлов):

  1. программа на языке Python, реализующая метод М. Густокашина:

ss = ['К', 'Л', 'Р', 'Т'] # буквы К, Л, Р, Т в алфавитном порядке

s = '' # строка для формирования ответа

x = 66 # числовой код слова: 67-1 = 66

while x: # перевод в четверичную систему счисления

s = ss[(x%4)] + s # с одновременной перекодировкой

x //= 4

print(s)

  1. Ответ: ЛККР.

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

  1. на компьютерном ЕГЭ можно использовать программу (язык Python):

a = ["К", "Л", "Р", "Т"] # буквы К, Л, Р, Т записаны в алфавитном

# порядке

s = ""    # строка для формирования ответа

x = 66 # числовой код слова: 67-1 = 66

while x 0: # перевод в 4-ю систему счисления

    s += str(x%4)

    x //= 4

s =  s[::-1] # реверс строки ответа

for x in s: # формирование СЛОВА

    i = int(x)

    print( a[i], end="" )

  1. Ответ: ЛККР.

Решение (с помощью программы, С.С. Поляков):

  1. программа на языке Python использует модуль itertools:

from itertools import product

print(*list(product('КЛРТ',repeat=4))[67-1])

  1. Ответ: ЛККР.

Решение (с помощью программы, Б.С. Михлин):

  1. можно использовать «метод грубой силы» – перебор всех вариантов:

n=0

s='клрт'

for a in s:

for b in s:

for c in s:

for d in s:

n+=1

if n==67:

print(a+b+c+d)

exit() # выход из Python

  1. другой вариант (с «флажком» для входа из вложенного цикла) :

n=0

s='клрт'

fl=False # флажок сброшен

for a in s:

if fl: break

for b in s:

if fl: break

for c in s:

if fl: break

for d in s:

n+=1

if n==67:

print(a+b+c+d)

fl=True # флажок установлен для выхода

break

  1. Ответ: ЛККР.



-75%
Курсы повышения квалификации

Компьютерная грамотность для учителей

Продолжительность 72 часа
Документ: Удостоверение о повышении квалификации
4000 руб.
1000 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Перебор слов и системы счисления. Способы решения на Python (18.47 KB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт