Тема 8. Комбинаторика
8.01 Слова в алфавитном порядке
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела комбинаторика
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#85063

Все шестибуквенные слова, в составе которых могут быть только русские буквы А, П, Р, Е, Л, Ь записаны в алфавитном порядке и пронумерованы начиная с 1.

Ниже приведено начало списка.

1. АААААА

2. АААААЕ

3. АААААЛ

4. АААААП

5. АААААР

6. АААААЬ

Под каким номером идёт первое слово, в котором буква А не стоит рядом с буквами Е и Л и одна буква повторяется дважды, а остальные различны?

Показать ответ и решение

Решение руками Обозначим буквы – А-0, Е-1, Л-2, П-3, Р-4, Ь-5. Тогда первое слово, в котором буква А не стоит рядом с буквами Е и Л и одна буква повторяется дважды, а остальные различны, это

0031246 = 70010

Но так как в списке нумерация начинается с единицы, то номер слова равен 700 +1 = 701  .

Решение программой

a = ’АЕЛПРЬ’
c = 0
for i in a:
    for j in a:
        for n in a:
            for k in a:
                for m in a:
                    for p in a:
                        s = i + j + n + k + m + p
                        c += 1
                        # так как нужно наименьший номер, то двумя одинаковыми буквами будут буквы А
                        if (’АЕ’ not in s and ’АЛ’ not in s and s.count(’А’) == 2 and s.count(’Е’) < 2
                                and s.count(’Л’) < 2 and s.count(’П’) < 2  and s.count(’Р’) < 2
                                and s.count(’Ь’) < 2):
                            print(c, s)
#смотрим на первое выведенное число. Это и будет ответом.

Ответ: 701

Ошибка.
Попробуйте повторить позже

Задача 2#85062

Все восьмибуквенные слова, в составе которых могут быть только русские буквы А, Б, Ж, К, П, записаны в алфавитном порядке и пронумерованы, начиная с 1.

Ниже приведено начало списка.

1. АААААААА

2. АААААААБ

3. АААААААЖ

4. АААААААК

5. АААААААП

6. ААААААБА

Сколько слов находится между первым и последним словами, начинающимися на БЖ и заканчивающимися на КП?

Показать ответ и решение

Решение руками Пронумеруем буквы: A – 0, Б – 1, Ж – 2, К – 3, П – 4.

Тогда первое слово будет БЖААААКП или 120000345 = 10939410  .

Последнее слово будет БЖППППКП или 12444434  = 124994
       5        10

Получаем количество слов (исключая первое и последнее): 124994 − 109394 − 1 = 15599

Решение программой

a = ’АБЖКП’
c = 0
arr = []
for i in a:
    for j in a:
        for n in a:
            for k in a:
                for m in a:
                    for p in a:
                        for q in a:
                            for w in a:
                                s = i + j + n + k + m + p + q + w
                                c += 1
                                if s[0:2] == ’БЖ’ and s[-2] == ’К’ and s[-1] == ’П’:
                                    # print(c, s)
                                    arr.append(c)
print(max(arr) - min(arr)-1)

Ответ: 15599

Ошибка.
Попробуйте повторить позже

Задача 3#72483

Все шестибуквенные слова, составленные из букв Л, Ю, М, И, К, С записаны в алфавитном порядке и пронумерованы, начиная с 1. Начало списка выглядит так:

1. ИИИИИИ

2. ИИИИИК

3. ИИИИИЛ

4. ИИИИИМ

5. ИИИИИС

6. ИИИИИЮ

Под каким номером в списке идёт первое слово, в котором две буквы М стоят рядом?

Показать ответ и решение
#Решение через модуль itertools
from itertools import product
c = 0
for x in product(’ИКЛМСЮ’,repeat = 6):
    s = ’’.join(x)
    c += 1
    if ’ММ’ in s:
        print(c)
        break
#Решение через циклы
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:
                        s = x1+x2+x3+x4+x5+x6
                        c += 1
                        if ’ММ’ in s:
                            print(c)

Ответ: 22

Ошибка.
Попробуйте повторить позже

Задача 4#72453

Все пятибуквенные слова, составленные из букв Н, У, Б, А, С записаны в алфавитном порядке и пронумерованы, начиная с 1. Начало списка выглядит так:

1. ААААА

2. ААААБ

3. ААААН

4. ААААС

5. ААААУ

6. АААБА

Под каким номером в списке идёт слово НУБАС?

Показать ответ и решение
#Решение через модуль itertools
from itertools import product
c = 0
for x in product(’АБНСУ’,repeat = 5):
    s = ’’.join(x)
    c += 1
    if s == ’НУБАС’:
        print(c)
#Решение через циклы
a = ’АБНСУ’
c = 0
for x1 in a:
    for x2 in a:
        for x3 in a:
            for x4 in a:
                for x5 in a:
                    s = x1+x2+x3+x4+x5
                    c += 1
                    if s == ’НУБАС’:
                        print(c)

Ответ: 1779

Ошибка.
Попробуйте повторить позже

Задача 5#72414

Все шестибуквенные слова, составленные из букв Ш, Л, Я, П, А записаны в алфавитном порядке и пронумерованы, начиная с 1. Начало списка выглядит так:

1. АААААА

2. АААААЛ

3. АААААП

4. АААААШ

5. АААААЯ

6. ААААЛА

Под каким номером в списке идёт первое слово, которое начинается буквой П, и заканчивается буквой Ш?

Показать ответ и решение
#Решение через модуль itertools
from itertools import product
c = 0
for x in product(’АЛПШЯ’,repeat = 6):
    s = ’’.join(x)
    c += 1
    if s[0] == ’П’ and s[-1] == ’Ш’:
        print(c)
        break
#Решение через циклы
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:
                        s = x1+x2+x3+x4+x5+x6
                        c += 1
                        if s[0] == ’П’ and s[-1] == ’Ш’:
                            print(c)

Ответ: 6254

Ошибка.
Попробуйте повторить позже

Задача 6#63506

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

1. ААААА

2. ААААК

3. ААААО

4. ААААР

5. АААКА

.....

Запишите слово, которое стоит под номером 318.

Показать ответ и решение

Заменим буквы на цифры: А - 0, К - 1, О - 2, Р - 3.

Теперь запишем 5-буквенные слова в новом алфавите.

1. 00000

2. 00001

3. 00002

4. 00003

5. 00010

.....

Полученный ряд - числа в четверичной системе счисления, записанные по возрастанию. Так как порядковый номер слова всегда на единицу больше, чем само слово, то переведем 317 в четверичную систему счисления: 31710 = 103314  .
Значит на 318 месте стоит слово КАРРК.

Программное решение

a = ’АКОР’
c = 0
for x1 in a:
    for x2 in a:
        for x3 in a:
            for x4 in a:
                for x5 in a:
                    c += 1
                    s = x1+x2+x3+x4+x5
                    if c == 318:
                        print(s)

Ответ: КАРРК

Ошибка.
Попробуйте повторить позже

Задача 7#63002

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

1. ААААА

2. ААААК

3. ААААЛ

4. ААААО

5. АААКА

.....

Запишите слово, которое стоит под номером 423.

Показать ответ и решение
a = ’АКЛО’
c = 0
for i in a:
    for j in a:
        for n in a:
            for k in a:
                for m in a:
                    s = i + j + n + k + m
                    c += 1
                    if c == 423:
                        print(s)


Ответ: КЛЛКЛ

Ошибка.
Попробуйте повторить позже

Задача 8#62659

Все 5-буквенные слова, составленные из букв Э,Г,О записаны в алфавитном порядке. Вот начало списка:

1. ГГГГГ

2. ГГГГО

3. ГГГГЭ

4. ГГГОГ

.....

Запишите слово, которое стоит под номером 78.

Показать ответ и решение

Решение руками

Заменим буквы на цифры: Г - 0, О - 1, Э - 2.

Теперь запишем 5-буквенные слова в новом алфавите.

1. 00000

2. 00001

3. 00002

5. 00010

.....

Полученный ряд - числа в троичной системе счисления, записанные по возрастанию. Так как порядковый номер слова всегда на единицу больше, чем само слово, то переведем 77 в троичную систему счисления: 7710 = 22123  .
Значит на 78 месте стоит слово ГЭЭОЭ.

Решение программой

a = ’ГОЭ’
c = 0
for i in a:
    for j in a:
        for n in a:
            for k in a:
                for m in a:
                        s = i + j + n + k + m
                        c += 1
                        if c == 78:
                            print(s)

Ответ: ГЭЭОЭ

Ошибка.
Попробуйте повторить позже

Задача 9#62658

Все 5-буквенные слова, составленные из букв К,О,Ф,Е, записаны в алфавитном порядке. Вот начало списка:

1. ЕЕЕЕЕ

2. ЕЕЕЕК

3. ЕЕЕЕО

4. ЕЕЕЕФ

5. ЕЕЕКЕ

.....

На каком месте от начала списка стоит слово ФЕФКО?

Показать ответ и решение

Заменим буквы на цифры: Е - 0, К - 1, О - 2, Ф - 3.

Теперь запишем 5-буквенные слова в новом алфавите.

1. 00000

2. 00001

3. 00002

4. 00003

5. 00010

.....

Полученный ряд - числа в четверичной системе счисления, записанные по возрастанию. Тогда слово ФЕФКО числовом алфавите будет иметь вид 303124  .

Переведем полученное значение в десятичную систему счисления: 303124 = 82210

Тогда получится, что слово ФЕФКО стоит на 823 месте (+1, так как на первом месте стоит 0, на втором - 1, на третьем - 2 и тд).

Ответ: 823

Ошибка.
Попробуйте повторить позже

Задача 10#60304

Все 5-буквенные слова, составленные из букв Б,Л,Ю,Д,О, записаны в алфавитном порядке. Вот начало списка:

1. БББББ

2. ББББД

3. ББББЛ

4. ББББО

5. ББББЮ

6. БББДБ

.....

Под каким номером в списке идёт первое слово, в котором нет буквы Б?

Показать ответ и решение

Присвоим буквам номера: Б - 0, Д - 1, Л - 2, О - 3, Ю - 4. Тогда первое 5-буквенное слово, в котором нет буквы Б - ДДДДД или же 111115  .

Переведём число 111115  в десятичную. 111115 = 78110  .

Поскольку номер в списке на единицу больше самого числа, то остается прибавить к числу 781 единицу. Получаем 782.

from itertools import *
coun=0
num=0
for x in product(’БДЛОЮ’, repeat  = 5):
    s=’’.join(x)
    coun+=1
    if s.count(’Б’)==0:
        num=coun
        print(num)
        break

Ответ: 782

Ошибка.
Попробуйте повторить позже

Задача 11#60303

Все 5-буквенные слова, составленные из букв Л,А,Н,Ь записаны в алфавитном порядке. Вот начало списка:

1. ААААА

2. ААААЛ

3. ААААН

4. ААААЬ

5. АААЛА

.....

Под каким номером в списке идёт последнее слово, в котором буквы Л и Ь встречаются ровно по два раза?

Показать ответ и решение

Присвоим буквам номера: А - 0, Л - 1, Н - 2, Ь - 3. Тогда последнее 5-буквенное слово, в котором будет две буквы Л и Ь - ЬЬНЛЛ или же 33211.

Переведём число 332114  в десятичную. 332114 = 99710  .

Поскольку номер в списке на единицу больше самого числа, то остается прибавить к числу 997 единицу. Получаем 998.

from itertools import *
coun=0
num=0
for x in product(’АЛНЬ’, repeat  = 5):
    s=’’.join(x)
    coun+=1
    if s.count(’Л’)==2 and s.count(’Ь’)==2:
        num=coun
print(num)

Ответ: 998

Ошибка.
Попробуйте повторить позже

Задача 12#60302

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

1. ККККК

2. ККККО

3. ККККР

4. ККККТ

5. КККОК

.....

Под каким номером в списке идёт последнее слово, в котором буквы О и Р встречаются по одному разу?

Показать ответ и решение

Заменим буквы на цифры: К - 0, О - 1, Р - 2, Т - 3. Последнее слово, которое содержит по одной из букв О и Р будет ТТТРО или же под номером 33321.

Так как мы использовали четырехбуквенный алфавит, то нужно перевести число 33321 из четверичной системы счисления в десятичную. 333214 = 101710  . Поскольку номер в списке на единицу больше самого числа, то остается прибавить к числу 1017 единицу. Получаем 1018.

from itertools import *
coun=0
num=0
for x in product(’КОРТ’, repeat  = 5):
    s=’’.join(x)
    coun+=1
    if s.count(’Р’)==1 and s.count(’О’)==1:
        num=coun
print(num)

Ответ: 1018

Ошибка.
Попробуйте повторить позже

Задача 13#59586

Все 5-буквенные слова, составленные из букв C,О,К, записаны в алфавитном порядке. Вот начало списка:

1. ККККК

2. ККККО

3. ККККС

4. КККОК

.....

Запишите слово, которое стоит под номером 147.

Показать ответ и решение

Заменим буквы К, О, С на цифры 0, 1 и 2 соответственно. Тогда начало списка выглядит следующим образом:

1. 00000

2. 00001

3. 00002

4. 00010

...

Получаем, что в нашем списке стоят числа, записанные в троичной системе счисления. На 147 месте будет стоять число 14610  . Переведем его в троичную систему счисления: 14610 = 121023  .

Заменим цифры на буквы и получим слово ОСОКС.

Вариант программной реализации номера:

a = {0: "К", 1: "О", 2: "С"}
k = 0
for i in range(0, len(a)):
    for j in range(0, len(a)):
        for g in range(0, len(a)):
            for m in range(0, len(a)):
                for n in range(0, len(a)):
                    k += 1
                    if k == 147:
                        print(a[i], a[j], a[g], a[m], a[n])

Ответ: ОСОКС

Ошибка.
Попробуйте повторить позже

Задача 14#59466

Все 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

.....

Полученный ряд - числа в пятиричной системе счисления, записанные по возрастанию.

На первое место мы не можем поставить А, следовательно там должна быть буква, с минимальным числовым эквивалентом – Д. С последней позицией аналогично, таким образом в слове уже есть 2 буквы Д. Тогда на остальные позиции ставим букву А (так как она эквивалентна числу 0). В итоге получаем слово ДАААД, в пятиричной системе это слово выглядит так — 100015  .

Переводим в десятичную систему счисления: 100015 = 62610  .

Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 627.

Ответ: 627

Ошибка.
Попробуйте повторить позже

Задача 15#59465

Все 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

.....

Полученный ряд - числа в пятиричной системе счисления, записанные по возрастанию.

Последнее слово, которое содержит хотя бы одну букву Я и одну букву Д будет выглядеть так ЯЯЯЯД в пятиричной системе выглядит так — 444425  .

Переводим в десятичную систему счисления: 44442 = 3122
     5      10  .

Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 3123.

Ответ: 3123

Ошибка.
Попробуйте повторить позже

Задача 16#59464

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

1. ЛЛЛЛ

2. ЛЛЛР

3. ЛЛРЛ

.....

Сколько всего будет слов в списке?

Показать ответ и решение

Для того, чтобы найти общее количество слов нужно возвести число количества букв в алфавите в степень количества букв в слове: 24 = 16  .

Ответ: 16

Ошибка.
Попробуйте повторить позже

Задача 17#59463

Все 6-буквенные слова, составленные из букв А,М,Б,Р, записаны в алфавитном порядке. Вот начало списка:

1. АААААА

2. АААААБ

3. АААААМ

4. АААААР

5. ААААБА

.....

Под каким номером в списке идёт последнее слово, которое содержит сочетание букв АМБАР?

Показать ответ и решение

Заменим буквы на цифры: А - 0, Б - 1, М - 2, Р - 3.

Теперь запишем 6-буквенные слова в новом алфавите.

1. 000000

2. 000001

3. 000002

4. 000003

5. 000010

.....

Полученный ряд - числа в четверичной системе счисления, записанные по возрастанию.

Последнее слово, которое содержит сочетание букв АМБАР будет выглядеть так РАМБАР в четверичной системе выглядит так — 3021034  .

Переводим в десятичную систему счисления: 3021034 = 321910  .

Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 3220.

Ответ: 3220

Ошибка.
Попробуйте повторить позже

Задача 18#59462

Все 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

.....

Полученный ряд - числа в пятиричной системе счисления, записанные по возрастанию.

Слово КНИГА в пятиричной системе выглядит так – 342105  .

Переводим в десятичную систему счисления: 342105 = 243010  .

Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 2431.

Ответ: 2431

Ошибка.
Попробуйте повторить позже

Задача 19#58081

Все семибуквенные слова, в составе которых могут быть только русские буквы Б, Д, Ж, И, О, П, Ф записаны в алфавитном порядке и пронумерованы начиная с 1. Ниже приведено начало списка.

  1. БББББББ
  2. ББББББД
  3. ББББББЖ
  4. ББББББИ
  5. ББББББО
  6. ББББББП
  7. ББББББФ
  8. БББББДБ

...

Под каким номером в списке идёт первое слово, которое содержит не более одной буквы Б, ровно две буквы Ф, не содержит ни одной буквы Д и Ж?

Показать ответ и решение

Ручное решение

Присвоим буквам числовое значение в зависимости от алфавитного порядка. Буквы получат такие значения: Б = 0; Д = 1; Ж = 2; И = 3; О = 4; П = 5; Ф = 6.

Первое слово, которое будет удовлетворять условию выглядит так: БИИИФФ. В числовом представлении это будет выглядеть таким образом: 0333366.

Как можем заметить, наш алфавит записан в 7-ричной системе счисления.Данное значение нам нужно перевести в десятичную систему счисления. Значение будет равняться 58848.

Нужно увеличить данное значение на единицу, поскольку отсчёт в задаче начинается с 1. Ответ: 58849.

Программное решение

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)

Ответ: 58849

Ошибка.
Попробуйте повторить позже

Задача 20#57871

София выписывает все четырехбуквенные комбинации, составленные из букв У, Л, Ы, Б, К, А. При этом упорядочивая их по алфавиту.

Ниже записано начало списка:

  1. АААА
  2. АААБ
  3. АААК
  4. АААЛ
  5. АААУ
  6. АААЫ

...

Определите, под каким номером в списке идёт первое слово, которое начинается на К и заканчивается на УЛ?

Показать ответ и решение
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))

Ответ: 460
Рулетка
Вы можете получить скидку в рулетке!