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

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

Задача 1#85471

Мишель составляет слова путём перестановки букв своего имени и располагает их в алфавитном порядке. Под каким номером будет находиться слово ШМЕЛЬИ? (Нумерация начинается с 1).

Показать ответ и решение
from itertools import permutations

s = ’МИШЕЛЬ’

r = sorted(permutations(s))

pattern = [x for x in ’ШМЕЛЬИ’]

position = 1

for x in r:
    if list(x) == pattern:
        print(position)
        break
    position += 1

Ответ: 556

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

Задача 2#85470

Теоретик составляет восьмизначные числа и делит его на пары по две цифры. Сколько чисел он может составить, чтобы склеенные попарно цифры числа, образующие двузначные числа, образовывали при чтении слева направо возрастающую арифметическую прогрессию?

Показать ответ и решение
cnt = 0
for a in range(10, 99 + 1):
    for b in range(a + 1, 99 + 1):
        for c in range(b + 1, 99 + 1):
            for d in range(c + 1, 99 + 1):
                if b - a == c - b == d - c:
                    cnt += 1
print(cnt)

Ответ: 1305

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

Задача 3#85469

Вениамин составляет семибуквенные слова из букв своего имени, следуя правилам: каждая буква может встречаться любое количество раз, в слове должна быть последовательность из трёх одинаковых символов, попарно разделенных любыми другими символами. (Например в слове ВЕВИВМН три буквы В разделены буквами Е и И). Сколько различных слов может составить Вениамин?

Показать ответ и решение
from itertools import product

s = set(’ВЕНИАМИН’)
ot = set()

for i in product(s, repeat=7):
    word = ’’.join(i)
    for k in range(3):
        if word[k] == word[k + 2] == word[k + 4] and word[k + 1] != word[k] and word[k + 3] != word[k]:
            ot.add(word)
print(len(ot))

Ответ: 15120

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

Задача 4#85468

Шизофреник составляет пятизначные числа так, чтобы они содержали в своей записи хотя бы один собственный делитель. (Например число 12345 имеет делитель 5, а также имеет 5 в своём составе, значит оно подходит). Сколько таких чисел может составить шизофреник?

Примечание: собственным делителем называется любой его делитель, отличный от самого числа.

Показать ответ и решение
from itertools import product
def f(x):
    c = set()
    for k in range(2, int(x ** 0.5) + 1):
        if x % k == 0:
            c.add(str(k))
            c.add(str(x // k))
    return c

s = ’0123456789’
cnt = 0

t = set()

for i in product(s, repeat=5):
    i = ’’.join(i)
    if i[0] == ’0’:
        continue
    if ’1’ in i:
        t.add(i)
        continue
    for j in f(int(i)):
        if j in i:
            t.add(i)
            continue
print(len(t))

Ответ: 73655

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

Задача 5#85467

Виктор составляет слова длины 6 из букв русского алфавита в верхнем и нижнем регистрах. Все составляемые слова являются палиндромами, в которых все буквы могут встречаться любое количество раз, а символ Й может стоять только рядом с другим символом Й. Сколько слов может составить Виктор?

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

Решение:

from itertools import product

# Алфавит в верхнем регистре
s = ’АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ’
# Добавляем также алфавит в нижнем регистре
s = s + s.lower()
cnt = 0

# Палиндром - значит последние 3 символа это перевернутые первые 3 символа
# значит можем составить только первую половину и мысленно её продублировать и развернуть
for i in product(s, repeat=3):
    word = ’’.join(i)
    # Нужно пропустить неподходящие слова:
    # **Й -> **ЙЙ** - подходит
    # *Й* -> *Й**Й* - не подходит
    # Й** -> Й****Й - не подходит
    # *ЙЙ -> *ЙЙЙЙ* - подходит
    # Й*Й -> Й*ЙЙ*Й - не подходит
    # ЙЙ* -> ЙЙ**ЙЙ - подходит
    # ЙЙЙ -> ЙЙЙЙЙЙ - подходит
    # Делаем вывод, что не подходят слова с одной Й, у которых она не на последнем месте,
    # а также с двумя Й, которые не стоят рядом (в центре не Й)
    if ’Й’ in word:
        if word.count(’Й’) == 1 and word[-1] != ’Й’ or word.count(’Й’) == 2 and word[1] != ’Й’:
            continue
    cnt += 1

print(cnt)

Ответ: 278981

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

Задача 6#85466

Суперкомпьютер для разминки генерирует тройки слов. Первое слово имеет длину 5 и состоит из букв слова ПИРОГ, в нём каждая буква может встречаться любое количество раз, при этом буква Р может стоять только после буквы О. Второе слово имеет длину 4 и состоит из цифр шестеричной системы счисления. Третье слово имеет также длину 4 и состоит из цифр пятеричной системы счисления. Причём количество чётных цифр во втором и третьем словах должно быть одинаковым.

Необходимо найти общее число троек, которое может составить Суперкомпьютер.

Показать ответ и решение
from itertools import product

s1 = ’ПИРОГ’
cnt1 = 0

for i in product(s1, repeat=5):
    word = ’’.join(i)
    if word.count(’Р’) == word.count(’ОР’):
        cnt1 += 1

s2 = ’012345’
s3 = ’01234’
cnt23 = 0

for i in product(s2, repeat=4):
    i = ’’.join(i)
    if i[0] != ’0’:
        for j in product(s3, repeat=4):
            j = ’’.join(j)
            if j[0] != ’0’:
                i = i.replace(’2’, ’0’).replace(’4’, ’0’)
                j = j.replace(’2’, ’0’).replace(’4’, ’0’)
                if i.count(’0’) == j.count(’0’):
                    cnt23 += 1
print(cnt1 * cnt23)

Ответ: 184257288

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

Задача 7#85465

Методист составляет для задачи пятизначные числа в четырнадцатиричной системе счисления. Сколько чисел из тех, что он составит, будут делиться на 38?

Показать ответ и решение
from itertools import product

s = ’0123456789ABCD’
cnt = 0

for k in product(s, repeat=5):
    num = ’’.join(k)
    if num[0] != ’0’ and int(num, 14) % 38 == 0:
        cnt += 1
print(cnt)

Ответ: 13143

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

Задача 8#85464

Арез составляет шестибуквенные слова из букв слова НАКОВАЛЬНЯ. Каждая буква может встречаться в слове только один раз, на первом месте не может стоять буква Ь, а буква Л может стоять только в окружении гласных. Сколько слов может составить Арез?

Показать ответ и решение
from itertools import permutations

s = set(’НАКОВАЛЬНЯ’)
gl = ’АОЯ’

cnt = 0
for i in permutations(s, 6):
    i = ’’.join(i)
    if i[0] == ’Ь’ or i[0] == ’Л’ or i[-1] == ’Л’:
        continue
    flag = True
    for j in range(1, len(i) - 1):
        if i[j] == ’Л’:
            if not ((i[j - 1] in gl) and (i[j + 1] in gl)):
                flag = False
                break
    if flag:
        cnt += 1
print(cnt)

Ответ: 5544

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

Задача 9#85463

Гоша составляет восьмизначные числа. Причём рядом не должны состоять цифры с одинаковым остатком от деления на 5, а также на последнем месте может быть только чётная цифра. Сколько слов может составить Гоша?

Показать ответ и решение
a1 = ’123456789’
a2 = ’0123456789’
a3 = ’02468’

cnt = 0

for x1 in a1:
    for x2 in a2:
        if int(x1) % 5 == int(x2) % 5:
            continue
        for x3 in a2:
            if int(x2) % 5 == int(x3) % 5:
                continue
            for x4 in a2:
                if int(x3) % 5 == int(x4) % 5:
                    continue
                for x5 in a2:
                    if int(x4) % 5 == int(x5) % 5:
                        continue
                    for x6 in a2:
                        if int(x5) % 5 == int(x6) % 5:
                            continue
                        for x7 in a2:
                            if int(x6) % 5 == int(x7) % 5:
                                continue
                            for x8 in a3:
                                if int(x7) % 5 != int(x8) % 5:
                                    cnt += 1
print(cnt)

Ответ: 9437184

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

Задача 10#85462

Студент составляет для отчёта названия источников. Названия должны иметь длину от 5 до 10 символов и состоять только из первых пятнадцати символов русского алфавита в верхнем регистре. Каждое название должно начинаться и заканчиваться гласной буквой, а в между ними содержать неповторяющиеся согласные буквы. Сколько названий студент вписал в отчёт, если он из всех составленных выбрал только те, в которых получилось сочетание символов БВГ.

Показать ответ и решение
from itertools import permutations

# АБВГДЕЁЖЗИЙКЛМН
gl = ’АЕЁИ’
sogl = ’БВГДЖЗЙКЛМН’

cnt = 0

for i in range(3, 8 + 1):
    for x2 in permutations(sogl, i):
        x2 = ’’.join(x2)
        if ’БВГ’ in x2:
            for x1 in gl:
                for x3 in gl:
                    cnt += 1
print(cnt)

Ответ: 803984

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

Задача 11#85069

Иван составляет 9-разрядные двадцатипятиричные числа, в которых цифры, которые кратны трем и кратны восьми, чередуются. Сколько различных слов может составить Иван?

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

Для составления чисел можно использовать цифры от 0 до 9 и числа от 10 до 24 включительно. Из них кратны трем: 0, 3, 6, 9, 12, 15, 18, 21, 24. Кратны восьми: 0, 8, 16, 24. Кратны и трем, и восьми: 0, 24

Количество 9-разрядных чисел, которые начинаются с цифры, кратной трем:

8⋅4⋅9 ⋅4⋅9⋅4 ⋅9⋅4⋅9 = 13436928

Количество 9-разрядных чисел, которые начинаются с цифры, кратной восьми:

3 ⋅9 ⋅4⋅9 ⋅4 ⋅9⋅4 ⋅9 ⋅4 = 5038848

Также нам необходимо из общего количества вычесть те числа, которые находятся и в первом случае, и во втором случае. Их число равно:

1⋅2 ⋅2⋅2⋅2 ⋅2⋅2⋅2 ⋅2 = 28 = 256

Получаем общее число слов:

13436928 + 5038848 − 256 = 18475520
Ответ: 18475520

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

Задача 12#85068

В классе занимаются 14 человек. Учитель каждый день выборочно проверяет домашнее задание и всегда опрашивает четное количество учащихся, при этом ситуация, когда никто не опрошен, невозможна. Сколькими различными способами учитель может провести опрос?

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

Возможны варианты опроса 2, 4, 6, 8, 10, 12 и 14 человек. Найдем по формуле сочетаний количество способов для каждого варианта:

2 ученика:   14!    13 ⋅14
------= ------= 91
12!⋅2!    2

4 ученика: --14!--= 1001
10!⋅4!

6 учеников: -14!-
6!⋅8! = 3003

8 учеников:  14!
8!⋅6! = 3003

10 учеников:  14!
------= 1001
4!⋅10!

12 учеников: -14!--= 91
12!⋅2!

14 учеников: -14!--
14!⋅0! = 1

Всего возможных вариантов: 2 ⋅(91 + 1001 + 3003)+ 1 = 8191

Ответ: 8191

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

Задача 13#85067

Демид составляет пятибуквенные слова из букв КРОВАТЬ, содержащие букву Р, но не более четырех раз. Остальные буквы не могут повторяться. Сколько различных слов может составить Демид?

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

Допустим, что в слове 1 буква Р. Ее можно поставить на 5 позиций пятью способами. Способов расстановки остальных букв по четырем позициям: 6⋅5 ⋅4⋅3 = 360  . Итого получаем 360 ⋅5 = 1800  слов.

Допустим, что в слове 2 буквы Р. Их можно поставить на 5 позиций  5!
-----= 10
3!⋅2!  способами. Способов расстановки остальных букв по трем позициям: 6⋅5⋅4 = 120  . Итого получаем 120⋅10 = 1200  слов.

Допустим, что в слове 3 буквы Р. Их можно поставить на 5 позиций  5!
-----= 10
3!⋅2!  способами. Способов расстановки остальных букв по двум позициям: 6⋅5 = 30  . Итого получаем 30 ⋅10 = 300  слов.

Допустим, что в слове 4 буквы Р. Их можно поставить на 5 позиций -5!--= 5
4!⋅1!  способами. Способов расстановки остальных букв на оставшуюся позицию: 6  . Итого получаем 5⋅6 = 30  слов.

Общее число слов: 1800+ 1200+ 300 +30 = 3330

Ответ: 3330

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

Задача 14#85066

Ира составляет пятизначные числа в девятиричной системе счисления. Сколько различных чисел, делящихся на 25 без остатка, может составить Ира?

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

Алфавит девятиричной системы счисления: 0, 1, 2, 3, 4, 5, 6, 7, 8.

Переведем первое пятизначное число из девятиричной системы счисления в десятичную: 100009 = 656110

Переведем последнее пятизначное число из девятиричной системы счисления в десятичную: 88888 = 59048
     9       10

Все числа в десятичной системе счисления, которые больше 6561 и меньше 59048 в девятиричной системе счисления будут являться пятизначными.

Вспомним признак делимости на 25: число, составленное из двух последних цифр, делится на 25.

Первое кратное 25 число в десятичной системе счисления из нужного диапазона - 6575, последнее - 59025. Осталось посчитать количество чисел между ними, кратных 25: (конечное - начальное)∕25+ 1  .

(59025− 6575)∕25 + 1 = 2099
Ответ: 2099

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

Задача 15#85065

АЛЕКСЕЙ из букв своего имени составил алфавит для генерации шестибуквенных слов. Буквы в слова могут входить любое количество раз, либо не входить совсем. Все слова записали в алфавитном порядке и пронумеровали с 1. На каком месте будет стоять слово КСЕЛЕА ?

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

Запишем буквы в алфавитном порядке: А, Е, К, Л, С, Й и пронумеруем от 0 до 5.

А - 0, Е - 1, Й - 2, К - 3, Л - 4, С - 5.

Тогда слово КСЕЛЕА имеет вид 351410  = 30174
     6        10  . То есть слово КСЕЛЕА стоит на 30174+ 1 = 30175  месте.

Ответ: 30175

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

Задача 16#85064

Гоша составляет словосочетания длины 7 из пробелов и букв своего имени. При этом никакие две гласные и две согласные не стоят рядом. Словосочетанием считается три слова, разделённых между собой пробелами. Слова не обязательно должны быть осмысленными словами русского языка. Сколько различных словосочетаний может составить Гоша?

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

Запишем возможные варианты словосочетаний:

-∗ -∗--- здесь количество словосочетаний: 4 ⋅4⋅4⋅2 ⋅2 = 256

-∗ -∗ -- здесь количество словосочетаний: 4 ⋅4⋅2⋅4 ⋅2 = 256

-∗ --∗ - здесь количество словосочетаний: 4 ⋅4⋅2⋅2 ⋅4 = 256

--∗-∗ -- здесь количество словосочетаний: 4 ⋅2⋅4⋅4 ⋅2 = 256

--∗--∗ - здесь количество словосочетаний: 4 ⋅2⋅4⋅2 ⋅4 = 256

---∗-∗ - здесь количество словосочетаний: 4 ⋅2⋅2⋅4 ⋅4 = 256

Получаем общее количество словосочетаний: 6 ⋅256 = 1536

Ответ: 1536

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

Задача 17#85061

Иван составляет 7-разрядные двадцатеричные числа, в которых цифры, которые кратны двум и девяти, чередуются. Сколько различных слов может составить Иван?

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

Для составления чисел можно использовать цифры от 0 до 9 и числа от 10 до 19 включительно. Из них кратны двум: 0, 2, 4, 6, 8, 10, 12, 14, 16, 18. Кратны девяти: 0, 9, 18. Кратны и двум, и девяти: 0, 18.

Количество 7-разрядных чисел, которые начинаются с разряда, кратного двум:

9⋅3⋅10 ⋅3 ⋅10⋅3⋅10 = 234000

Количество 7-разрядных чисел, которые начинаются с разряда, кратного девяти:

2⋅10 ⋅3⋅10⋅3 ⋅10⋅3 = 54000

Также нам необходимо из общего количества вычесть те числа, которые находятся и в первом случае, и во втором случае. Их число равно:

1⋅2⋅2 ⋅2⋅2⋅2 ⋅2 = 26 = 64

Получаем общее число слов:

234000+ 54000− 64 = 296936
Ответ: 296936

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

Задача 18#85060

Петя составляет 7-буквенные слова, содержащие в себе только заглавные буквы латинского алфавита, содержащиеся в восьменадцатиричной системе счисления. Сколько различных слов может составить Петя с учётом того, что все согласные буквы в слове различны и не могут стоять в начале, в середине и в конце слова?

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

Алфавит для составления слов включает в себя следующие буквы: A, B, C, D, E, F, G, H. Из них гласные – A, E; согласные – B, C, D, F, G, H.

На четыре доступных для согласных позиции можем расставить соответственно от нуля до четырех согласных. Причём если эти четыре позиции заняты не полностью гласными или не полностью согласными, нужно также домножать на количество возможных позиционных расстановок - сочетаний C из n по k:

Допустим, что в слове 0 согласных: 2⋅2 ⋅2⋅2⋅2 ⋅2⋅2 = 128  .

Допустим, что в слове 1 согласная. Ее можно поставить на 4 позиции четыремя способами: (2⋅6 ⋅2⋅2⋅2 ⋅2⋅2)⋅4 = 1536  .

Допустим, что в слове 2 согласные. Их можно поставить на 4 позиции  4!
-----= 6
2!⋅2!  способами: (2⋅6 ⋅5⋅2⋅2 ⋅2⋅2)⋅6 = 5760  .

Допустим, что в слове 3 согласные. Их можно поставить на 4 позиций -4!--= 4
3!⋅1!  способами: (2⋅6 ⋅5⋅2⋅4 ⋅2⋅2)⋅4 = 7680  .

Допустим, что в слове 4 согласные: (2⋅6⋅5 ⋅2⋅4⋅3 ⋅2) = 2880  .

Для конечного ответа сложим все получившиеся результаты.

Ответ: 17984

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

Задача 19#84848

Максим составляет 5-буквенные слова перестановкой букв слова САПОГ. При этом в слове не могут стоять рядом две гласные и две согласные буквы. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько слов может составить Максим?

Показать ответ и решение
from itertools import permutations
count = 0
for x in permutations(’САПОГ’):
    s = ’’.join(x)
    if (’СП’ not in s) and (’ПС’ not in s) and (’СГ’ not in s) and (’ГС’ not in s) and (’ПГ’ not in s) and (’ГП’ not in s) and (’ОА’ not in s) and (’АО’ not in s):
        count += 1
print(count)

Ответ: 12

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

Задача 20#84847

Таина составляет 6-буквенные слова перестановкой букв слова МАШИНА. При этом в слове буква А не может стоять на первом, а буква Ш не может стоять на последнем месте. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько слов может составить Таина?

Показать ответ и решение
from itertools import permutations
count = 0
for x in permutations(’МАШИНА’):
    s = ’’.join(x)
    if s[0] != ’А’ and s[-1] != ’Ш’:
        count += 1
print(count/2)

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