8.01 Слова в алфавитном порядке
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Все 5-буквенные слова, составленные из букв Т,У,Л,А, записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААЛ
3. ААААТ
4. ААААУ
5. АААЛА
.....
Укажите количество слов, которые стоят между словами ЛУАУТ и УЛЛТА (не включая эти слова).
Решение руками
Обозначим буквы: А – 0, Л – 1, Т – 2, У – 3.
Тогда слово ЛУАУТ – это , а слово УЛЛТА – это
.
Между ними находится слов.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Увеличим счётчик, если слово находится между заданными.
s = "АЛТУ" # Алфавит к задаче k = 0 # Счётчик подходящих слов for a in s: for b in s: for c in s: for d in s: for e in s: w = a + b + c + d + e # Формируем слово if w > "ЛУАУТ" and w < "УЛЛТА": # Проверяем, находится ли слово между заданными k += 1 print(k)
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем в переменные номер первого и последнего слова (по условию), вычислим нужное количество.
from itertools import * # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт А, далее добавляется Л, Т, У. # Значит правильный порядок: ‘‘АЛТУ’’. c = 0 # Переменная, обозначающая номер текущего слова res1 = 0 # Номер первого подходящего слова res2 = 0 # Номер последнего подходящего слова for i in product("АЛТУ", repeat = 5): # repeat обозначает количество букв, в заданных словах их 5 s = "".join(i) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово c += 1 # Обновим номер слова if s == "ЛУАУТ": # Запишем номера первого и последнего слова res1 = c if s == "УЛЛТА": res2 = c print(abs(res2 - res1) - 1) # Вычислим, сколько между ними слов. Вычитание учитывает лишнее слово, не забудем его исключить.
Ошибка.
Попробуйте повторить позже
Все четырёхбуквенные слова, составленные из букв К, О, Р, А, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка:
- АААА
- АААК
- АААО
- АААР
-
ААКА
....
На каком месте от начала списка стоит слово РОАК?
Решение аналитически:
Заменим буквы на цифры: А – 0, К – 1, О – 2, Р – 3. Получим новый список:
- 0000
- 0001
- 0002
- 0003
-
0010
....
Используется четырёхбуквенный алфавит, значит, чтобы найти номер слова РОАК, нужно найти
значение числа в десятичной системе. Им является число
, но поскольку номер в списке на
единицу больше самого числа, то остаётся добавить к получившемуся числу единицу. Получаем число
226.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 4-буквенных слов из заданных букв. Для этого организуем
вложенных цикла (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем номер нужного слова.
s = "АКОР" # Алфавит к задаче n = 1 # Счётчик подходящих слов ans = "" # Переменная для записи ответа for x1 in s: for x2 in s: for x3 in s: for x4 in s: w = x1 + x2 + x3 + x4 # Формируем слово if w == "РОАК": # Записываем номер нужного слова ans = n n += 1 # Обновим номер слова print(ans)
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем номер нужного слова.
from itertools import product # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт А, далее добавляется К, О, Р. # Значит правильный порядок: ‘‘АКОР’’. s = "АКОР" # Переменная, обозначающая номер текущего слова n = 1 # Номер текущего слова ans = "" # Переменная для записи ответа for x in product(s, repeat=4): # repeat обозначает количество букв, в заданных словах их 4 w = "".join(x) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово if w == "РОАК": # Записываем номер нужного слова ans = n break n += 1 # Обновим номер слова print(ans)
Ошибка.
Попробуйте повторить позже
Все шестибуквенные слова, составленные из букв Б, Р, У, С, О, К, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка:
- ББББББ
- БББББК
- БББББО
- БББББР
- БББББС
- БББББУ
-
ББББКБ
....
Какое слово стоит под номером 435?
Решение аналитически:
Заменим буквы на цифры: Б – 0, К – 1, О – 2, Р – 3, С – 4, У – 5. Получим новый список:
- 000000
- 000001
- 000002
- 000003
- 000004
- 000005
-
000010
....
Порядковый номер слова всегда больше на единицу, поэтому число переведём в шестиричную систему счисления.
Получается, что
=
. Под номером 435 стоит слово ББОББО.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 6-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем нужное слово.
s = "БКОРСУ" # Алфавит к задаче n = 1 # Счётчик подходящих слов ans = "" # Переменная для записи ответа for x1 in s: for x2 in s: for x3 in s: for x4 in s: for x5 in s: for x6 in s: w = x1 + x2 + x3 + x4 + x5 + x6 # Формируем слово if n == 435: # Записываем нужное слово ans = w n += 1 # Обновим номер слова print(ans)
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем нужное слово.
from itertools import product # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт Б, далее добавляется К, О, Р, С, У. # Значит правильный порядок: ‘‘БКОРСУ’’. s = "БКОРСУ" # Переменная, обозначающая номер текущего слова n = 1 # Номер текущего слова ans = "" # Переменная для записи ответа for x in product(s, repeat=6): # repeat обозначает количество букв, в заданных словах их 6 w = "".join(x) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово if n == 435: # Записываем нужное слово ans = w break n += 1 print(ans)
Ошибка.
Попробуйте повторить позже
Все пятибуквенные слова, составленные из букв В, Я, З, Ь, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка:
- ВВВВВ
- ВВВВЗ
- ВВВВЬ
- ВВВВЯ
-
ВВВЗВ
....
Какое слово стоит под номером 947?
Решение аналитически:
Заменим буквы на цифры: В – 0, З – 1, Ь – 2, Я – 3. Получим новый список:
- 00000
- 00001
- 00002
- 00003
-
00010
....
Порядковый номер слова всегда больше на единицу, поэтому число переведём в четверичную систему
счисления. Получается, что
=
. Под номером 947 стоит слово ЯЬЯВЬ.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем нужное слово.
s = "ВЗЬЯ" # Алфавит к задаче n = 1 # Счётчик подходящих слов ans = "" # Переменная для записи ответа for x1 in s: for x2 in s: for x3 in s: for x4 in s: for x5 in s: w = x1 + x2 + x3 + x4 + x5 # Формируем слово if n == 947: # Записываем нужное слово ans = w n += 1 # Обновляем номер слова print(ans)
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем нужное слово.
from itertools import product # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт В, далее добавляется З, Ь, Я. # Значит правильный порядок: ‘‘ВЗЬЯ’’. s = "ВЗЬЯ" # Алфавит к задаче n = 1 # Номер текущего слова ans = "" # Переменная для записи ответа for x in product(s, repeat=5): # repeat обозначает количество букв, в заданных словах их 5 w = "".join(x) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово if n == 947: # Записываем нужное слово ans = w break n += 1 # Обновляем номер слова print(ans)
Ошибка.
Попробуйте повторить позже
Все пятибуквенные слова, составленные из букв Б, О, Р, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка:
- БББББ
- ББББО
- ББББР
-
БББОБ
....
Укажите количество слов, стоящих между словами ОБРОБ и РОББР (не включая данные слова)
Решение аналитически:
Заменим буквы на цифры: Б - 0, О - 1, Р - 2. Получим новый список:
- 00000
- 00001
- 00002
-
00010
....
Полученный список - числа в троичной системе счисления, записанные по возрастанию. Слово ОБРОБ в списке
будет иметь номер , а слово РОББР -
. Переведем полученные значения в десятичную систему
счисления:
=
,
=
. Между словамм ОБРОБ и РОББР стоит 191-102-1=88 слов (-1 так как
оба слова по условию не учитываются).
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Увеличим счётчик, если слово находится между заданными.
alf = "БОР" # Алфавит к задаче c, res1, res2 = 0, 0, 0 # Номер текущего слова, номер первого нужного слова, номер последнего нужного слова for i in alf: for j in alf: for k in alf: for l in alf: for m in alf: s = i + j + k + l + m # Формируем слово c += 1 # Обновляем номер слова if s == "ОБРОБ": # Запишем номера первого и последнего слова (по условию) res1 = c if s == "РОББР": res2 = c print(abs(res2 - res1) - 1) # Вычислим, сколько между ними слов. Вычитание учитывает лишнее слово, не забудем его исключить.
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем в переменные номер первого и последнего слова (по условию), вычислим нужное количество.
from itertools import * # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт Б, далее добавляется О, Р. # Значит правильный порядок: ‘‘БОР’’. c = 0 # Переменная, обозначающая номер текущего слова res1 = 0 # Номер первого подходящего слова res2 = 0 # Номер последнего подходящего слова for i in product("БОР", repeat = 5): # repeat обозначает количество букв, в заданных словах их 5 s = "".join(i) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово c += 1 # Обновим номер слова if s == "ОБРОБ": # Запишем номера первого и последнего слова (по условию) res1 = c if s == "РОББР": res2 = c print(abs(res2 - res1) - 1) # Вычислим, сколько между ними слов. Вычитание учитывает лишнее слово, не забудем его исключить.
Ошибка.
Попробуйте повторить позже
Все 5-буквенные слова, составленные из букв Р,О,С,А, записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААО
3. ААААР
4. ААААС
5. АААОА
.....
На каком месте от начала списка стоит слово СОРОА?
Решение аналитически:
Заменим буквы на цифры: А - 0, О - 1, Р - 2, С - 3.
Теперь запишем 5-буквенные слова в новом алфавите.
1. 00000
2. 00001
3. 00002
4. 00003
5. 00010
.....
Полученный ряд - числа в четверичной системе счисления, записанные по возрастанию.
Слово СОРОА в пятиричной системе выглядит так – .
Переводим в десятичную систему счисления: .
Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 869.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из букв А, О, Р, С. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. После составления очередного слова необходимо получить его номер, добавив к
счётчику
. Выведем номер нужного слова.
s = "АОРС" # Алфавит к задаче n = 1 # Переменная, обозначающая номер текущего слова ans = "" # Переменная для записи ответа for x1 in s: for x2 in s: for x3 in s: for x4 in s: for x5 in s: w = x1 + x2 + x3 + x4 + x5 # Формируем слово if w == "СОРОА": # Записываем номер нужного слова ans = n n += 1 # Получаем номер текущего слова print(ans)
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Выведем номер нужного слова.
from itertools import product # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт А, далее добавляется О, Р, С. # Значит правильный порядок: ‘‘АОРС’’. s = "АОРС" # Алфавит к задаче n = 1 # Переменная, обозначающая номер текущего слова ans = "" # Переменная для записи ответа for x in product(s, repeat=5): # repeat обозначает количество букв, в заданных словах их 5 w = "".join(x) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово if w == "СОРОА": # Записываем номер нужного слова ans = n break n += 1 print(ans)
Ошибка.
Попробуйте повторить позже
Все 5-буквенные слова, составленные из букв Р,И,С,К, записаны в алфавитном порядке. Вот начало списка:
1. ИИИИИ
2. ИИИИК
3. ИИИИР
4. ИИИИС
5. ИИИКИ
.....
Запишите слово, которое стоит под номером 468.
Решение аналитически:
Обозначим буквы: И – 0, К – 1, Р – 2, С – 3.
Так как в списке нумерация начинается с единицы, то нас интересует номер .
Это слово: КСКИС.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из букв И, К, Р, С. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. После составления очередного слова необходимо получить его номер, добавив к
счётчику
. Выведем нужное слово.
s = "ИКРС" # Алфавит к задаче n = 1 # Переменная, обозначающая номер текущего слова ans = "" # Переменная для записи ответа for x1 in s: for x2 in s: for x3 in s: for x4 in s: for x5 in s: w = x1 + x2 + x3 + x4 + x5 # Формируем слово if n == 468: # Проверяем номер, выводим слово ans = w n += 1 # Обновляем номер слова print(ans)
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Выведем нужное слово.
from itertools import product # Используем product. Порядок использования букв можно заметить в первых четырёх словах из условия. # Сначала идёт И, далее добавляется К, Р, С. # Значит правильный порядок: ‘‘ИКРС’’. s = "ИКРС" n = 1 # Переменная, обозначающая номер текущего слова ans = "" # Переменная для записи ответа for x in product(s, repeat = 5): # repeat обозначает количество букв, в заданных словах их 5 w = "".join(x) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово if n == 468: # Проверяем номер, выводим слово ans = w break n += 1 # Обновим номер слова print(ans)
Ошибка.
Попробуйте повторить позже
Все 5-буквенные слова, составленные из букв М,О,Л,Ь, записаны в алфавитном порядке. Вот начало списка:
1. ЛЛЛЛЛ
2. ЛЛЛЛМ
3. ЛЛЛЛО
4. ЛЛЛЛЬ
5. ЛЛЛМЛ
.....
Укажите количество слов, которые стоят между словами ОМЛОЬ и ЬЛММО(не включая эти слова).
Решение аналитически:
Обозначим буквы: Л – 0, М – 1, О – 2, Ь – 3.
Тогда слово ОМЛОЬ – это , а слово ЬЛММО – это
.
Общее количество слов между ними (не включая их) равно: .
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем в переменные номер первого и последнего слова (по условию),
вычислим нужное количество.
alf = "ЛМОЬ" # Алфавит к задаче c, res1, res2 = 0, 0, 0 # Номер текущего слова, номер первого нужного слова, номер последнего нужного слова for i in alf: for j in alf: for k in alf: for l in alf: for m in alf: s = i + j + k + l + m # Формируем слово c += 1 # Обновляем номер слова if s == "ОМЛОЬ": # Запишем номера первого и последнего слова (по условию) res1 = c if s == "ЬЛММО": res2 = c print(abs(res2 - res1) - 1) # Вычислим, сколько между ними слов. Вычитание учитывает лишнее слово, не забудем его исключить
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем в переменные номер первого и последнего слова (по условию), вычислим нужное количество.
from itertools import * # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт Л, далее добавляется М, О, Ь. # Значит правильный порядок: ‘‘ЛМОЬ’’. c = 0 # Переменная, обозначающая номер текущего слова res1 = 0 # Номер первого подходящего слова res2 = 0 # Номер последнего подходящего слова for i in product("ЛМОЬ", repeat = 5): # repeat обозначает количество букв, в заданных словах их 5 s = "".join(i) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово c += 1 # Обновим номер слова if s == "ОМЛОЬ": # Запишем номера первого и последнего слова (по условию) res1 = c if s == "ЬЛММО": res2 = c print(abs(res2 - res1) - 1) # Вычислим, сколько между ними слов. Вычитание учитывает лишнее слово, не забудем его исключить.
Ошибка.
Попробуйте повторить позже
Все 5-буквенные слова, составленные из букв М,О,Р,Е записаны в алфавитном порядке. Вот начало списка:
1. ЕЕЕЕЕ
2. ЕЕЕЕМ
3. ЕЕЕЕО
4. ЕЕЕЕР
5. ЕЕЕМЕ
.....
Запишите слово, которое стоит под номером 433.
Решение аналитически:
Заменим буквы на цифры: Е – 0, М – 1, О – 2, Р – 3. Тогда список будет иметь вид:
1. 00000
2. 00001
3. 00002
4. 00003
5. 00010
Все числа в списке – числа, записанные в четверичной системе счисления. На 433 месте будет стоять число 432.
Переведем число 432 в четверичную систему счисления: .
Обратно заменим цифры на буквы и получим ответ МОРЕЕ.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем номер нужного слова.
s = "ЕМОР" # Алфавит к задаче n = 1 # Счётчик подходящих слов ans = "" # Переменная для записи ответа for x1 in s: for x2 in s: for x3 in s: for x4 in s: for x5 in s: w = x1 + x2 + x3 + x4 + x5 # Формируем слово if n == 433: # Записываем нужное слово ans = w n += 1 # Обновляем номер слова print(ans)
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем номер нужного слова.
from itertools import product # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт Е, далее добавляется М, О, Р. # Значит правильный порядок: ‘‘ЕМОР’’. s = "ЕМОР" # Переменная, обозначающая номер текущего слова n = 1 # Номер текущего слова ans = "" # Переменная для записи ответа for x in product(s, repeat = 5): # repeat обозначает количество букв, в заданных словах их 5 w = "".join(x) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово if n == 433: # Записываем нужное слово ans = w break n += 1 # Обновляем номер слова print(ans)
Ошибка.
Попробуйте повторить позже
Все 5-буквенные слова, составленные из букв П,Ю,Р,Е, записаны в алфавитном порядке. Вот начало списка:
1. ЕЕЕЕЕ
2. ЕЕЕЕП
3. ЕЕЕЕР
4. ЕЕЕЕЮ
5. ЕЕЕПЕ
.....
Под каким номером в списке идёт первое слово, которое начинается с ЮР?
Решение аналитически:
Заменим буквы на цифры: Е - 0, П - 1, Р - 2, Ю - 3.
Теперь запишем 5-буквенные слова в новом алфавите.
1. 00000
2. 00001
3. 00002
4. 00003
5. 00010
.....
Полученный ряд - числа в четверичной системе счисления, записанные по возрастанию.
Первое слово, которое начинается на ЮР – это ЮРЕЕЕ, тогда в четверичной системе это слово выглядит так —
.
Переводим в десятичную систему счисления: .
Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 897.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем номер нужного слова после проверки главного условия
задачи.
alf = "ЕПРЮ" # Алфавит к задаче c = 0 # Счётчик подходящих слов for i in alf: for j in alf: for k in alf: for l in alf: for m in alf: s = i + j + k + l + m # Формируем слово c += 1 # Обновляем номер слова if (s[0] + s[1]) == "ЮР": # Сложим первые буквы. Выведем номер слова при нужной комбинации print(c) break
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем номер нужного слова.
from itertools import * # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт Е, далее добавляется П, Р, Ю. # Значит правильный порядок: ‘‘ЕПРЮ’’. c = 0 # Переменная, обозначающая номер текущего слова for i in product("ЕПРЮ", repeat = 5): # repeat обозначает количество букв, в заданных словах их 5 s = "".join(i) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово c += 1 # Обновляем номер слова if (s[0] + s[1]) == "ЮР": # Сложим первые буквы. Выведем номер слова при нужной комбинации print(c) break
Ошибка.
Попробуйте повторить позже
Все 5-буквенные слова, составленные из букв Й,О,Г,А, записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААГ
3. ААААЙ
4. ААААО
5. АААГА
.....
Под каким номером в списке идёт первое слово, в котором средняя (третья по счёту) буква – О, а последняя — Й?
Решение аналитически:
Заменим буквы на цифры: А - 0, Г - 1, Й - 2, О - 3.
Теперь запишем 5-буквенные слова в новом алфавите.
1. 00000
2. 00001
3. 00002
4. 00003
5. 00010
.....
Полученный ряд - числа в четверичной системе счисления, записанные по возрастанию.
Первое слово с третьей по счету буквой О и последней буквой Й — это ААОАЙ, тогда в четверичной системе это
слово выглядит так — .
Переводим в десятичную систему счисления: .
Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 51.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем номер нужного слова.
alf = "АГЙО" # Алфавит к задаче c = 0 # Номер текущего слова for i in alf: for j in alf: for k in alf: for l in alf: for m in alf: s = i + j + k + l + m # Формируем слово c += 1 # Обновляем номер слова if s[-1] == "Й" and s[2] == "О": # Проверяем главное условие задачи print(c) break
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем номер нужного слова.
from itertools import * # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт А, далее добавляется Г, Й, О. # Значит правильный порядок: ‘‘АГЙО’’. c = 0 # Номер текущего слова for i in product("АГЙО", repeat = 5): # repeat обозначает количество букв, в заданных словах их 5 s = "".join(i) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово c += 1 # Обновляем номер слова if s[-1] == "Й" and s[2] == "О": # Проверяем главное условие задачи print(c) break
Ошибка.
Попробуйте повторить позже
Все пятибуквенные слова, в составе которых могут быть только русские буквы П, Я, Т, Н, О записаны в алфавитном порядке и пронумерованы начиная с 1.
Ниже приведено начало списка:
- ННННН
- ННННО
- ННННП
- ННННТ
- ННННЯ
-
НННОН
....
Под каким номером в списке идёт последнее слово, которое содержит не более двух букв Т, или не содержит совсем, и содержит буквы ПП, стоящие рядом?
Решение аналитически:
Заменим буквы на цифры: Н - 0, О - 1, П - 2, Т - 3, Я - 4. Получим новый список:
- 00000
- 00001
- 00002
- 00003
- 00004
-
00010
....
Так как в вопросе задачи требуется найти последнее слово с обязательным содержанием комбинации двух букв ПП,
то на первые три места поставим букву Я, а на последние два ПП. Получим слово ЯЯЯПП. Заменяя буквы на цифры
получим, что для нахождения слова ЯЯЯПП, нужно найти значение числа в десятичной системе. Им является
число
, но поскольку номер в списке на единицу больше самого числа, то остаётся добавить к получившемуся
числу единицу. Получаем число 3113.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем номер нужного слова.
alf = "НОПТЯ" # Алфавит к задаче c = 0 # Номер текущего слова for i in alf: for j in alf: for k in alf: for l in alf: for m in alf: s = i + j + k + l + m # Формируем слово c += 1 # Обновляем номер слова if s.count("Т") <= 2 and "ПП" in s: # Проверяем главное условие задачи print(c)
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем номер нужного слова.
from itertools import * # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт Н, далее добавляется О, П, Т, Я. # Значит правильный порядок: ‘‘НОПТЯ’’. c = 0 # Номер текущего слова for i in product("НОПТЯ", repeat = 5): # repeat обозначает количество букв, в заданных словах их 5 s = "".join(i) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово c += 1 # Обновляем номер слова if s.count("Т") <= 2 and "ПП" in s: # Проверяем главное условие задачи print(c)
Ошибка.
Попробуйте повторить позже
Все шестибуквенные слова, в составе которых могут быть только русские буквы О, К, Р, У, Г, записаны в алфавитном порядке и пронумерованы начиная с 1.
Ниже приведено начало списка:
- ГГГГГГ
- ГГГГГК
- ГГГГГО
- ГГГГГР
- ГГГГГУ
-
ГГГГКГ
....
Определите сумму номеров первого и последнего слов в списке, в которых только одна буква К и при этом никакая согласная буква не стоит рядом с буквой Г (в том числе и сама буква Г).
Решение аналитически:
Заменим буквы на цифры: Г - 0, К - 1, О - 2, Р - 3, У - 4. Получим новый список:
- 000000
- 000001
- 000002
- 000003
- 000004
-
000010
....
Найдем сначала первое слово, подходящее под условие. Для того чтобы номер был минимальный
поставим букву Г в начало (так как ее числовой эквивалент 0), получаем Г*****. Так как рядом с Г не
может стоять согласная, то следом ставим гласную букву с минимальной цифрой – О, получаем ГО****.
И на две следующие позиции поставим так же буквы ГО, получаем ГОГО**, далее поставим букву К,
мы не можем поставить букву Г, потому что тогда не останется позиции для буквы К. И на последнюю
позицию ставим букву О, так как это буква с минимальным номером, из тех, что мы можем поставить,
получаем ГОГОКО. Заменяя буквы на цифры получим, что для нахождения слова ГОГОК, нужно найти
значение числа в десятичной системе. Им является число
, но поскольку номер в списке на
единицу больше самого числа, то остаётся добавить к получившемуся числу единицу. Получаем число
1308.
Теперь найдем сначала последнее слово, подходящее под условие. Для того чтобы номер был максимальный
поставим букву К в конец, получаем *****К. На остальные позиции просто поставим букву У, так как она имеем
максимальный числовой эквивалент, получаем УУУУУК. Заменяя буквы на цифры получим, что для нахождения
слова УУУУУК, нужно найти значение числа в десятичной системе. Им является число
, но
поскольку номер в списке на единицу больше самого числа, то остаётся добавить к получившемуся числу единицу.
Получаем число 15622.
Найдем сумму их номеров: 1308 + 15622 = 16930.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 6-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем номер нужного слова.
alf = "ГКОРУ" # Алфавит к задаче c = 0 # Номер текущего слова arr = [] # Номера всех подходящих слов for i in alf: for j in alf: for k in alf: for l in alf: for m in alf: for n in alf: s = i + j + k + l + m + n # Формируем слово c += 1 # Обновляем номер слова # Проверяем главное условие задачи if s.count("К") == 1 and not("ГГ" in s) and not("ГК" in s) and not("КГ" in s) and not("ГР" in s) and not("РГ" in s): arr.append(c) print(arr[0] + arr[-1]) # Сложим номер первого и последнего слова
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем номер нужного слова.
from itertools import * # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт Г, далее добавляется К, О, Р, У. # Значит правильный порядок: ‘‘ГКОРУ’’. c = 0 # Номер текущего слова m = [] # Номера всех подходящих слов for i in product("ГКОРУ", repeat = 6): # repeat обозначает количество букв, в заданных словах их 6 s = "".join(i) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово c += 1 # Обновляем номер слова # Проверяем главное условие задачи if s.count("К") == 1 and not("ГГ" in s) and not("ГК" in s) and not("КГ" in s) and not("ГР" in s) and not("РГ" in s): m.append(c) print(m[0] + m[-1]) # Сложим номер первого и последнего слова
Ошибка.
Попробуйте повторить позже
Выпускник выписывает все семисимвольные комбинации, составленные из букв Д, Е, Н, С, Т, У. При этом упорядочивая их по алфавиту.
Ниже записано начало списка.
- ДДДДДДД
- ДДДДДДЕ
- ДДДДДДН
- ДДДДДДС
- ДДДДДДТ
- ДДДДДДУ
- ДДДДДЕД
...
Определите, на какой позиции будет стоять слово СТУДЕНТ.
Решение аналитически:
Обозначим буквы: Д – 0, Е – 1, Н – 2, С – 3, Т – 4, У – 5.
Тогда слово СТУДЕНТ – это .
Так как в списке нумерация начинается с единицы, то искомый номер – .
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 7-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем номер нужного слова.
s = "ДЕНСТУ" # Алфавит к задаче n = 1 # Номер текущего слова for a in s: for b in s: for c in s: for d in s: for e in s: for f in s: for g in s: w = a + b + c + d + e + f + g # Формируем слово if w == "СТУДЕНТ": # Проверяем главное условие задачи print(n) n += 1 # Обновляем номер слова
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем номер нужного слова.
from itertools import * # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт Д, далее добавляется Е, Н, С, Т, У. # Значит правильный порядок: ‘‘ДЕНСТУ’’. c = 0 # Номер текущего слова for i in product("ДЕНСТУ", repeat = 7): # repeat обозначает количество букв, в заданных словах их 7 s = "".join(i) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово c += 1 # Обновляем номер слова if s == "СТУДЕНТ": # Проверяем главное условие задачи print(c)
Ошибка.
Попробуйте повторить позже
Эмилия выписывает все пятисимвольные комбинации, составленные из букв К, У, Х, Н, Я. При этом упорядочивая их по алфавиту.
Ниже записано начало списка:
- ККККК
- ККККН
- ККККУ
- ККККХ
- ККККЯ
- КККНК
...
Определите, сколько слов запишет Эмилия, содержащих ровно две гласные буквы.
Решение аналитически:
Число способов переставить две гласные буквы в пятибуквенном слове по формуле сочетаний : .
Если поставить две гласные буквы в начале слова имеем количество слов: .
Значит, общее число таких слов: .
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем количество нужных слов.
s = "КНУХЯ" # Алфавит к задаче k = 0 # Количество подходящих слов for a in s: for b in s: for c in s: for d in s: for e in s: w = a + b + c + d + e # Формируем слово if (w.count("У") + w.count("Я")) == 2: # Проверяем главное условие задачи и обновляем количество подходящих слов k += 1 print(k)
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем количество нужных слов.
from itertools import product # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт К, далее добавляется Н, У, Х, Я. # Значит правильный порядок: ‘‘КНУХЯ’’. c = 0 # Номер текущего слова for x in product("КНУХЯ", repeat = 5): # repeat обозначает количество букв, в заданных словах их 5 word = "".join(x) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово if (word.count("У") + word.count("Я")) == 2: # Проверяем главное условие задачи и обновляем количество подходящих слов c += 1 print(c)
Ошибка.
Попробуйте повторить позже
София выписывает все четырехбуквенные комбинации, составленные из букв У, Л, Ы, Б, К, А. При этом упорядочивая их по алфавиту.
Ниже записано начало списка:
- АААА
- АААБ
- АААК
- АААЛ
- АААУ
- АААЫ
...
Определите, под каким номером в списке идёт первое слово, которое начинается на К и заканчивается на УЛ?
Решение аналитически:
Обозначим буквы: А – 0, Б – 1, К – 2, Л – 3, У – 4, Ы – 5.
Тогда первое слово, которое начинается на К и заканчивается на УЛ:
Так как в списке нумерация начинается с единицы, то искомый номер – .
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 4-буквенных слов из заданных букв. Для этого организуем
вложенных цикла (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем номер нужного слова.
s = "АБКЛУЫ" # Алфавит к задаче n = 1 # Номер текущего слова nums = [] for a in s: for b in s: for c in s: for d in s: w = a + b + c + d # Формируем слово if a == "К" and c + d == "УЛ": # Проверяем главное условие задачи, добавляем номер подходящего слова в список nums.append(n) n += 1 # Обновляем номер слова print(min(nums)) # Возьмём номер первого подходящего слова
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем номер нужного слова.
from itertools import product # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт А, далее добавляется Б, К, Л, У, Ы. # Значит правильный порядок: ‘‘АБКЛУЫ’’. c = 0 # Номер текущего слова for x in product("АБКЛУЫ", repeat = 4): # repeat обозначает количество букв, в заданных словах их 4 word = "".join(x) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово c += 1 # Обновляем номер слова if word[0] == "К" and word[-2:] == "УЛ": # Проверяем главное условие задачи print(c) break
Ошибка.
Попробуйте повторить позже
Все семибуквенные слова, в составе которых могут быть только русские буквы Б, Д, Ж, И, О, П, Ф записаны в алфавитном порядке и пронумерованы начиная с 1. Ниже приведено начало списка.
- БББББББ
- ББББББД
- ББББББЖ
- ББББББИ
- ББББББО
- ББББББП
- ББББББФ
- БББББДБ
...
Под каким номером в списке идёт первое слово, которое содержит не более одной буквы Б, ровно две буквы Ф, не содержит ни одной буквы Д и Ж?
Решение аналитически:
Присвоим буквам числовое значение в зависимости от алфавитного порядка. Буквы получат такие значения: Б = 0; Д = 1; Ж = 2; И = 3; О = 4; П = 5; Ф = 6.
Первое слово, которое будет удовлетворять условию выглядит так: БИИИФФ. В числовом представлении это будет выглядеть таким образом: 0333366.
Как можем заметить, наш алфавит записан в 7-ричной системе счисления.Данное значение нам нужно перевести в десятичную систему счисления. Значение будет равняться 58848.
Нужно увеличить данное значение на единицу, поскольку отсчёт в задаче начинается с 1. Ответ: 58849.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 7-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем номер нужного слова.
a = "БДЖИОПФ" # Алфавит к задаче c = 0 # Номер текущего слова for x1 in a: for x2 in a: for x3 in a: for x4 in a: for x5 in a: for x6 in a: for x7 in a: s = x1 + x2 + x3 + x4 + x5 + x6 + x7 # Формируем слово c += 1 # Номер текущего слова if s.count("Б") <= 1 and s.count("Ф") == 2 and s.count("Д") == 0 and s.count("Ж") == 0: # Проверяем главное условие задачи print(c) break
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все возможные слова из заданного алфавита. Запишем номер нужного слова.
from itertools import product # Используем product. Порядок использования букв можно заметить в первых словах из условия. # Сначала идёт Б, далее добавляется Д, Ж, И, О, П, Ф. # Значит правильный порядок: ‘‘БДЖИОПФ’’. c = 0 # Номер текущего слова for x in product("БДЖИОПФ", repeat=7): # repeat обозначает количество букв, в заданных словах их 7 word = "".join(x) # join обьединит символы, оставим кавычки пустыми, чтобы получилось единое слово c += 1 # Обновляем номер слова if word.count("Б") <= 1 and word.count("Ф") == 2 and word.count("Д") == 0 and word.count("Ж") == 0: # Проверяем главное условие задачи print(c) break
Ошибка.
Попробуйте повторить позже
Все 5-буквенные слова, составленные из букв К,Н,И,Г,А, записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААГ
3. ААААИ
4. ААААК
5. ААААН
6. АААГА
.....
Под каким номером в списке идёт слово КНИГА?
Решение руками
Заменим буквы на цифры: А - 0, Г - 1, И - 2, К - 3, Н – 4.
Теперь запишем 5-буквенные слова в новом алфавите.
1. 00000
2. 00001
3. 00002
4. 00003
5. 00004
6. 00010
.....
Полученный ряд - числа в пятиричной системе счисления, записанные по возрастанию.
Слово КНИГА в пятиричной системе выглядит так – .
Переводим в десятичную систему счисления: .
Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 2431.
Решение программой с помощью циклов
Напишем программу для перебора всевозможных 5-буквенных слов из букв К,Н,И,Г,А в алфавитном порядке. Для этого организуем 5 вложенных циклов for, каждый из которых будет перебирать буквы в порядке А → Г → И → К → Н, что соответствует алфавитному списку. Вложенные циклы работают как разряды в числе: сначала меняется последняя буква (самый внутренний цикл), затем предпоследняя и так далее. Это аналогично перебору чисел в порядке возрастания (например, 000, 001, 002...).
После составления очередного слова необходимо его проверить на соответствие слову "КНИГА и если совпадение найдено, выведем его порядковый номер в списке.
alf = ’АГИКН’ # Алфавитный порядок букв: А, Г, И, К, Н c = 0 # Счётчик для нумерации слов # Генерация всех 5-буквенных слов через вложенные циклы for i in alf: # 1-я буква for j in alf: # 2-я буква for k in alf: # 3-я буква for l in alf: # 4-я буква for m in alf: # 5-я буква s = i + j + k + l + m # Собираем слово c += 1 # Увеличиваем счётчик if s == ’КНИГА’: # Если текущее слово — "КНИГА" print(c) # Выводим его номер
Решение программой с помощью модуля itertools
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все комбинации заданной длины с повторениями из заданного алфавита. Функция product Сохраняет алфавитный порядок, так как перебирает символы в том же порядке, в котором они указаны алфавите.
После составления очередного слова необходимо его проверить на соответствие слову "КНИГА и если совпадение найдено, выведем его порядковый номер в списке.
from itertools import * # Импортируем функцию product c = 0 # Счётчик для нумерации слов # Генерируем все возможные 5-буквенные комбинации из букв А,Г,И,К,Н for i in product(’АГИКН’, repeat = 5): s = ’’.join(i) # Преобразуем кортеж символов в строку c += 1 # Увеличиваем счётчик на 1 для каждого нового слова if s == ’КНИГА’: # Если текущее слово — "КНИГА" print(c) # Выводим его номер и завершаем поиск
Ошибка.
Попробуйте повторить позже
Все 6-буквенные слова, составленные из букв А,М,Б,Р, записаны в алфавитном порядке. Вот начало списка:
1. АААААА
2. АААААБ
3. АААААМ
4. АААААР
5. ААААБА
.....
Под каким номером в списке идёт последнее слово, которое содержит сочетание букв АМБАР?
Заменим буквы на цифры: А - 0, Б - 1, М - 2, Р - 3.
Теперь запишем 6-буквенные слова в новом алфавите.
1. 000000
2. 000001
3. 000002
4. 000003
5. 000010
.....
Полученный ряд - числа в четверичной системе счисления, записанные по возрастанию.
Последнее слово, которое содержит сочетание букв АМБАР будет выглядеть так РАМБАР в четверичной системе
выглядит так — .
Переводим в десятичную систему счисления: .
Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу
единицу. Получаем число 3220.
Решение через циклы
Перебираем все 6-буквенные слова из букв АБМР в алфавитном порядке, где каждый цикл отвечает за один символ.
Для каждого слова проверяем, содержит ли оно подстроку АМБАР. Если условие выполняется, запоминаем его номер,
и в конце получаем номер последнего подходящего слова.
s = "АБМР" # Алфавитный порядок букв (как в примере) n = 1 # Счётчик для нумерации слов ans = "" # Для номера последнего слова, содержащего подстроку АМБАР # Генерация всех 6-буквенных слов через вложенные циклы for x1 in s: # 1-я буква for x2 in s: # 2-я буква for x3 in s: # 3-я буква for x4 in s: # 4-я буква for x5 in s: # 5-я буква for x6 in s: # 6-я буква w = x1 + x2 + x3 + x4 + x5 + x6 # Собираем слово if "АМБАР" in w: # Если слово содержит подстроку АМБАР, # запоминаем его номер ans = n n += 1 # увеличиваем счётчик print(ans) # выводим ответ
Решение через itertools
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все комбинации
заданной длины с повторениями из заданного алфавита. Функция product сохраняет алфавитный порядок, так как
перебирает символы в том же порядке, в котором они указаны алфавите.
После составления очередного слова необходимо его проверить на содержание подстроки АМБАР. Если
условие выполняется, запоминаем номер слова. В итоге сохранится номер последнего слова, содержащего
АМБАР.
from itertools import product s = "АБМР" # Алфавитный порядок букв n = 1 # Счётчик для нумерации слов ans = "" # Для номера последнего слова, содержащего подстроку АМБАР # Генерируем все возможные 6-буквенные комбинации for x in product(s, repeat=6): w = "".join(x) # Преобразуем кортеж символов в строку if "АМБАР" in w: ans = n # Запоминаем номер, если слово содержит подстроку АМБАР n += 1 # Увеличиваем счётчик на 1 для каждого нового слова print(ans)
Ошибка.
Попробуйте повторить позже
Все 4-буквенные слова, составленные из букв Л, Р, записаны в алфавитном порядке. Вот начало списка:
1. ЛЛЛЛ
2. ЛЛЛР
3. ЛЛРЛ
.....
Сколько всего будет слов в списке?
Решение руками: Для того, чтобы найти общее количество слов нужно возвести число количества букв в алфавите в
степень количества букв в слове: .
Решение через циклы
Перебираем все 4-буквенные слова из букв ЛР в алфавитном порядке, где каждый цикл отвечает за один символ. Для
каждого составленного слова увеличиваем счётчик на 1. В итоге получим общее количество возможных
слов.
alf = "ЛР" # Алфавитный порядок букв c = 0 # Счётчик количества слов # Генерация всех 4-буквенных слов через вложенные циклы for i in alf: # 1-я буква for j in alf: # 2-я буква for k in alf: # 3-я буква for l in alf: # 4-я буква s = i + j + k + l # Собираем слово c += 1 # Увеличиваем счётчик на 1 print(c) # Выводим общее количество слов
Решение через itertools
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все комбинации
заданной длины с повторениями из заданного алфавита. Каждое новое слово увеличивает счётчик на 1, и в итоге
получаем общее количество всех слов.
from itertools import product c = 0 # Счётчик количества слов # Генерация всех возможных 4-буквенных комбинаций из букв Л и Р for i in product("ЛР", repeat=4): c += 1 # Увеличиваем счётчик на 1 для каждой комбинации print(c) # Выводим общее количество слов