Тема 8. Комбинаторика

8.02 Подсчет количества слов/чисел

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

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

Задача 1#5986

Саша выбрал 5  букв (А, Б, В, Г, Д) и составляет различные слова, состоящие из 5  букв. Сколько способов составить слово есть у Саши? Каждую букву можно использовать неограниченное количество раз.

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

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

Есть 5  способов выбрать первую букву, 5  способов выбрать вторую, ..., 5  способов выбрать пятую.

Для второй буквы есть 5  способов выбрать первую. Следовательно, количество возможных способов выбрать первые две буквы равно 5 ⋅ 5 = 25.  Для третьей буквы есть 25  способов выбрать первые две. Следовательно, количество возможных способов выбрать первые три буквы: 5 ⋅ 25 = 125.  Для четвёртой буквы есть 125  способов выбрать первые три. Следовательно, количество возможных способов выбрать первые четыре буквы: 5 ⋅ 125 = 625.  Для пятой буквы есть 625  способов выбрать первые четыре. Следовательно, общее количество возможных способов равно 5 ⋅ 625 = 3125  .

Решение через циклы

a = ’АБВГД’ # наше слово
count = 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 # составляем слово
                    count += 1
print(count)

Решение через itertools

from itertools import product # импортируем product

count = 0
for x in product(’АБВГД’,repeat = 5): # проходимся по различным 5-буквенным словам
    s = ’’.join(x) # составляем слово
    count += 1
print(count)

Ответ: 3125

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

Задача 2#6211

Кирилл составляет 6-буквенные слова из букв Р, Е, Ц, П, Т. Каждая из букв может встречаться в слове сколько угодно раз или не встречаться совсем. Сколько различных слов может составить Кирилл?

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

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

На любое из 6 мест Кирилл может поставить любую из 5 букв, а значит на каждое из этих мест букву можно поставить 5 способами. Всего Кирилл может составить 5 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 5 = 15625  различных слов.

Решение через циклы

a = ’РЕЦПТ’ # наше слово
count = 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 # составляем слово
                        count += 1
print(count)

Решение через itertools

from itertools import product # импортируем product

count = 0
for x in product(’РЕЦПТ’,repeat = 6): # проходимся по различным словам
    s = ’’.join(x) # составляем слово
    count += 1
print(count)

Ответ: 15625

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

Задача 3#6212

Алиса составляет 7-буквенные слова из букв П, Р, А, В, Н, У, К. Каждая из букв может встречаться в слове ровно один раз, причём последней буквой должна быть Р, а первой буква П. Сколько различных слов может составить Алиса?

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

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

На последнее место Алиса ставит букву П, а на последнее место букву Р, обе единственным способом. На второе, третье, четвёртое, пятое и шестое место она ставит одну из 5, 4, 3, 2 и 1 из оставшихся букв соответственно, т.к. с постановкой одной из букв, общее количество букв, которые ещё можно поставить уменьшается на 1. Всего Алиса может составить 1 ⋅ 5 ⋅ 4 ⋅ 3 ⋅ 2 ⋅ 1 ⋅ 1 = 120  различных слов.

Решение через циклы

a = ’ПРАВНУК’ # наше слово
count = set() # итоговый счётчик
#переборы для наших букв
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 # составляем слово
                            if len(s) == len(set(s)) and s[0] == ’П’ and s[-1] == ’Р’: # проверка, что все буквы встречаются единожды и начинается с П и заканчивается Р
                                count.add(s)
print(len(count))

Решение через itertools

from itertools import permutations

count = 0
for x in permutations(’ПРАВНУК’):
    s = ’’.join(x) # составляем слово
    if s[0] == ’П’ and s[-1] == ’Р’: # проверка по условию
        count += 1
print(count)

Ответ: 120

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

Задача 4#6213

Вова составляет 4-буквенные слова из букв С, А, М, О, Р, З, В, И, Т, Е. Каждая из букв может встречаться в слове ровно один раз или не встречаться вовсе. Сколько различных слов может составить Вова?

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

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

Вова ставит на первое место любую из 10 букв, выбрать её он может 10 способами. На второе место он ставит любую из 9 оставшихся букв, на третье — любую из 8 оставшихся, а на 4 — любую из 7 оставшихся. Всего Вова может составить 10 ⋅ 9 ⋅ 8 ⋅ 7 = 5040  различных слов.

Решение через циклы

a = ’САМОРЗВИТЕ’ # наше слово
count = set() # итоговый счётчик
#переборы для наших букв
for x1 in a:
    for x2 in a:
        for x3 in a:
            for x4 in a:
                s = x1+x2+x3+x4
                if len(s) == len(set(s)): # проверка, что каждая буква в слове встречается единожды
                    count.add(s)
print(len(count))

Решение через itertools

from itertools import permutations

count = 0
for x in permutations(’САМОРЗВИТЕ’,r= 4): # проход по различным словам
    s = ’’.join(x) # составляем слово
    count += 1
print(count)

Ответ: 5040

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

Задача 5#6215

Азат составляет пары слов. Первое 3-буквенное слово состоит из букв П, Ш, К, а второе 4-буквенное из букв Д, М, Ш, К. Каждая из букв слов может встречаться в них любое количество раз или не встречаться совсем, причём оба слова должны начинаться с буквы Ш. Сколько различных пар слов может составить Азат?

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

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

В первом слове первой буквой должна стоять Ш, а на каждое из 2 оставшихся мест в слове можно поставить любую из 3 различных букв. Значит первое слово можно составить 1 ⋅ 3 ⋅ 3 = 9  способами. Во втором слове первой должна стоять буква Ш, а на каждое из 3 оставшихся мест в слове можно поставить любую из 4 различных букв. Значит второе слово можно составить 1 ⋅ 4 ⋅ 4 ⋅ 4 = 64  способами.

Представим, что первые слова — чашки, а вторые слова — блюдца. Сколько различных вариаций кружка+чашка можно составить?

Можно составить 9 ⋅ 64 = 576  различных пар слов (блюдец с чашкой).

Решение через циклы

a = ’ПШК’
count1 = 0 # количество слов для первого слова

for x1 in a:
    for x2 in a:
        for x3 in a:
            s = x1+x2+x3
            if s[0] == ’Ш’:
                count1 += 1
b = ’ДМШК’
count2 = 0 # количество слов для второго слова
for x1 in b:
    for x2 in b:
        for x3 in b:
            for x4 in b:
                s = x1+x2+x3+x4
                if s[0] == ’Ш’:
                    count2 += 1
print(count1*count2)

Решение через itertools

from itertools import product

count1 = 0 # количество слов для первого слова
for x in product(’ШПК’,repeat =3):
    s = ’’.join(x)
    if s[0] == ’Ш’:
        count1 += 1

count2 = 0 # количество слов для второго слова
for x in product(’ДШМК’,repeat =4):
    s = ’’.join(x)
    if s[0] == ’Ш’:
        count2 += 1
print(count1*count2)

Ответ: 576

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

Задача 6#6216

Максим составляет пары слов. Первое 6-буквенное слово состоит из букв М, О, Щ, Н, а второе 2-буквенное из букв В, Е, Б. Каждая из букв в словах может встречаться любое количество раз или не встречаться совсем, причём в первом слове должно быть 5 подряд идущих согласных. Сколько различных пар слов может составить Максим?

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

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

В первом слове Максим должен получить 5 подряд идущих согласных, а значит либо на 1, 2, 3, 4 и 5 местах должны стоять согласные, а на 6 – гласная, либо на 2, 3, 4, 5, 6 местах должны стоять согласные, а на 1 – гласная, либо на всех местах должны стоять согласные. Всего согласных 3. Значит первое слово можно составить 3 ⋅ 3 ⋅ 3 ⋅ 3 ⋅ 3 ⋅ 1 + 1 ⋅ 3 ⋅ 3 ⋅ 3 ⋅ 3 ⋅ 3 + 3 ⋅ 3 ⋅ 3 ⋅ 3 ⋅ 3 ⋅ 3 = 1215  способами. Во втором слове на каждое из 2  мест можно поставить любую из 3  букв. Значит второе слово можно составить 3 ⋅ 3 = 9  способами.

Представим, что первые слова — чашки, а вторые слова — блюдца. Сколько различных вариаций чашка+блюдце можно составить?

Можно составить 1215 ⋅ 9 = 10935  различных пар слов (блюдец с чашкой).

Решение через циклы

a = ’МОЩН’
a1 = ’МЩН’ # согласные буквы слова a
m = [x1+x2+x3+x4+x5 for x1 in a1 for x2 in a1 for x3 in a1 for x4 in a1 for x5 in a1] # 5-буквенные комбинации состоящие только из согласных букв
count1 = 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
                        if s[0:5] in m or s[1:] in m: # если хотя бы одна комбинация 5-буквенных слов из согласных букв есть в текущем слове
                            count1 += 1


b = ’ВЕБ’
count2 = 0 # количество слов для второго слова
for x1 in b:
    for x2 in b:
        s = x1+x2
        count2 += 1

print(count1*count2)

Решение через itertools

from itertools import product

sogl = ’МЩН’ # согласные буквы слова МОЩН
count1 = 0
for x in product(’МОЩН’,repeat = 6):
    s = ’’.join(x)
    if all(s[i] in sogl for i in range(len(s)-1)) or all(s[i] in sogl for i in range(1,len(s))): # проверка, что в слове есть 5 подряд идуших согласные буквы
        count1 += 1

count2 = 0
for x in product(’ВЕБ’,repeat = 2):
    s = ’’.join(x)
    count2 += 1
print(count1*count2)

Ответ: 10935

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

Задача 7#6220

Друг составляет пятизначные числа, используя цифры от 2 до 7 включительно. Цифры в числе могут повторяться. Сколько различных чисел, начинающихся с цифры 5, друг может составить?

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

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

Первой цифрой числа должна быть цифрой 5. На 2, 3, 4 и 5 месте в слове может стоять любая из 6 цифр. Значит друг может составить 6 ⋅ 6 ⋅ 6 ⋅ 6 = 1296  различных чисел.

Решение через циклы

a = ’234567’ # наше слово

count = 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
                    if s[0] == ’5’: # проверка по условию
                        count += 1
print(count)

Решение через itertools

from itertools import product

count = 0
for x in product(’234567’,repeat = 5): # перебор слов
    s = ’’.join(x)
    if s[0] == ’5’: # проверка по условию
        count += 1
print(count)

Ответ: 1296

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

Задача 8#6221

Друг составляет трёхзначные числа, используя цифры от 1 до 5 включительно. Цифры в числе могут повторяться. Сколько различных чисел, не начинающихся с цифр 2 и 3, друг может составить?

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

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

Первой цифрой числа может быть любая из цифр, кроме 2 и 3, т.е. любая из 3 оставшихся. На 2 и 3 месте в слове может стоять любая из 5 цифр. Значит друг может составить 3 ⋅ 5 ⋅ 5 = 75  различных чисел.

Решение через циклы

a = ’12345’ # наше слово
count = 0
# переборы букв слова
for x1 in a:
    for x2 in a:
        for x3 in a:
            s = x1+x2+x3
            if s[0] not in ’23’: # проверка по условию
                count += 1
print(count)

Решение через itertools

from itertools import product

count = 0
for x in product(’12345’,repeat = 3): # перебор слов
    s = ’’.join(x)
    if s[0] not in ’23’: # проверка по условию
        count += 1
print(count)

Ответ: 75

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

Задача 9#6222

Друг составляет четырёхзначные числа, используя цифры от 0 до 9 включительно. Цифры в числе могут повторяться. Сколько различных чисел, не начинающихся с цифры 7, друг может составить?

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

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

Первой цифрой числа может быть любая из цифр, кроме 7 и 0 (т.к. числа не могут начинаться на 0), т.е. любая из 8 оставшихся. На 2, 3 и 4 месте в слове может стоять любая из 10 цифр. Значит друг может составить 8 ⋅ 10 ⋅ 10 ⋅ 10 = 8000  различных чисел.

Решение через циклы

a = ’0123456789’ # наше слово

count = 0
# переборы букв слова
for x1 in a:
    for x2 in a:
        for x3 in a:
            for x4 in a:
                s = x1+x2+x3+x4
                if s[0] not in ’07’: # проверка по условию
                    count += 1

print(count)

Решение через itertools

from itertools import product

count = 0
for x in product(’0123456789’,repeat = 4): # перебор слов
    s = ’’.join(x)
    if s[0] not in ’07’: # проверка по условию
        count += 1
print(count)

Ответ: 8000

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

Задача 10#6223

Друг составляет пятизначные числа, используя цифры от 0  до 9  включительно. Цифры в числе могут использоваться только один раз или не использоваться совсем. Число начинается с цифры 5  . Сколько различных чисел, имеющих ровно три подряд идущие четные цифры, друг может составить?

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

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

Первой цифрой числа является 5  , она нечётная. Значит либо на 2  , 3  и 4  месте в слове должны стоять чётные цифры, либо на 3  , 4  и 5  , всего 2  варианта. Изначально у нас есть 5  четных цифр, после того, как мы поставим любую из них, на второе место мы сможем поставить лишь одну из  4  оставшихся цифр,а на третье — одну из 3  оставшихся. В обоих случаях мы используем 4  цифры, тогда на последнее оставшееся место в числе можно поставить любую из 4  оставшихся нечетных цифр. Значит друг может составить 2 ⋅ 5 ⋅ 4 ⋅ 3 ⋅ 4 = 480  различных чисел.

Решение через циклы

a = ’0123456789’ # наше слово
chet = ’02468’ # чётные цифры
# комбинации, из которых одна точно должна быть в подходящем слове
done = [x1+x2+x3 for x1 in chet for x2 in chet for x3 in chet]
# комбинации, из которых ни одна не должна быть в подходящем слове, так как нас интересуют слова, где идут подряд ровно 3 чётные цифры
lock = [x1+x2+x3+x4 for x1 in chet for x2 in chet for x3 in chet for x4 in chet]
count = 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
                    if s[0] == ’5’ and len(set(s)) == len(s): # проверка, что число начинается с 5 и каждая цифра встречается единожды
                        # проверка, что есть в слове тройка подряд идущих чётных цифр и нет при этом чётверки подряд идущих цифр
                        if any(word in s for word in done) and all(word not in s for word in lock):
                            count += 1

print(count)

Решение через itertools

from itertools import permutations
chet = ’02468’ # чётные цифры
done = [x1+x2+x3 for x1 in chet for x2 in chet for x3 in chet]
# комбинации, из которых ни одна не должна быть в подходящем слове, так как нас интересуют слова, где идут подряд ровно 3 чётные цифры
lock = [x1+x2+x3+x4 for x1 in chet for x2 in chet for x3 in chet for x4 in chet]
count = 0
for x in permutations(’0123456789’,r = 5): # перебор слов
    s = ’’.join(x)
    if s[0] == ’5’:# проверка, что число начинается с 5
        # проверка, что есть в слове тройка подряд идущих чётных цифр и нет при этом чётверки подряд идущих цифр
        if any(word in s for word in done) and all(word not in s for word in lock):
            count += 1
print(count)

Ответ: 480

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

Задача 11#6224

Друг составляет шестизначные числа, используя цифры от 1 до 5 включительно. Цифры в числе могут повторяться. Число начинается с нечётной цифры, а заканчивается на чётную цифру. Сколько различных чисел друг может составить?

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

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

Первой цифрой числа может быть одна из 3 нечётных цифр, а последней цифрой числа может быть одна из 2 чётных цифр. На каждое оставшееся место в числе можно поставить любую из 5 цифр. Значит друг может составить 3 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 2 = 3750  различных чисел.

Решение циклами:

all_num = ’12345’
chet_num = ’24’
nechet_num = ’135’
c = 0
for x in nechet_num:
    for y in all_num:
        for z in all_num:
            for w in all_num:
                for k in all_num:
                    for l in chet_num:
                        c += 1
print(c)

Решение itertools:

from itertools import product

all_num = ’12345’
chet_num = ’24’
nechet_num = ’135’
c = 0
for x in product(all_num, repeat = 6):
    s = ’’.join(x)
    if s[0] in nechet_num and s[-1] in chet_num:
        c += 1
print(c)

Ответ: 3750

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

Задача 12#6225

Друг составляет пары чисел, используя цифры от 0 до 9. Первое число состоит из 2 цифр, а второе — из 7. Цифры в каждом из чисел могут использоваться любое количество раз, причём второе число не содержит в себе чётных цифр. Сколько различных пар чисел друг может составить?

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

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

В первом числе друг может на первое место поставить любую из 9  цифр (числа не могут получаться с нуля), а на второе любую из 10  цифр. Значит первое число можно составить 9 ⋅ 10 = 90  различными способами. Во втором числе на каждой из позиций может стоять любая из 5 нечётных цифр. Значит второе число можно составить 5 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 5 = 78125  различными способами.

Представим, что первые числа — чашки, а вторые числа — блюдца. Сколько различных вариаций кружка+чашка можно составить?

Можно составить 90 ⋅ 78125 = 7031250  различных пар чисел (блюдец с чашкой).

Решение циклами:

all_num = ’0123456789’
all_num_first_place = ’123456789’
nechet_num = ’13579’
c = 0
for x in all_num_first_place:
    for y in all_num:
        for z in nechet_num:
            for w in nechet_num:
                for u in nechet_num:
                    for p in nechet_num:
                        for t in nechet_num:
                            for k in nechet_num:
                                for o in nechet_num:
                                    c += 1
print(c)

Ответ: 7031250

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

Задача 13#6226

Друг составляет пары чисел, используя цифры от 4 до 9. Оба числа состоят из 4 цифр. Каждая из цифр в первом числе может использоваться ровно 1 раз, а во втором любое количество раз, причём второе число не может начинаться с цифры 6, а первое с цифры 7. Сколько различных пар чисел друг может составить?

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

В первом числе друг может на первом месте поставить любую из цифр, кроме 7, всего таких цифр 5. На второе место можно поставить любую из 5 оставшихся цифр, т.к. одна из них уже стоит на первом месте. По той же логике, на третье место можно поставить любую из 4 оставшихся цифр, а на четвёртое — любую из 3 оставшихся. Значит первое число можно составить 5 ⋅ 5 ⋅ 4 ⋅ 3 = 300  различными способами. Во втором числе на первом месте может стоять любая цифра, кроме 6, всего таких цифр 5. На каждой из оставшихся позиций может стоять любая из 6 цифр. Значит второе число можно составить 5 ⋅ 6 ⋅ 6 ⋅ 6 = 1080  различными способами.

Представим, что первые числа — чашки, а вторые числа — блюдца. Сколько различных вариаций кружка+чашка можно составить?

Можно составить 300 ⋅ 1080 = 324000  различных пар чисел (блюдец с чашкой).
Решение программой (циклы):

ans = set()
alf = ’456789’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                w1 = x1 + x2 + x3 + x4
                if len(w1) == len(set(w1)):
                    for y1 in alf:
                        for y2 in alf:
                            for y3 in alf:
                                for y4 in alf:
                                    w2 = y1 + y2 + y3 + y4
                                    if w1[0] != ’7’ and w2[0] != ’6’:
                                        ans.add((w1, w2))
print(len(ans))

Решение программой (itertools):

from itertools import permutations, product

ans = set()
alf = ’456789’

for x in permutations(alf, 4):
    for y in product(alf, repeat=4):
        if x[0] != ’7’ and y[0] != ’6’:
            ans.add((x, y))

print(len(ans))

Ответ: 324000

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

Задача 14#6330

Аслан составляет пары слов. Первое 3-буквенное слово состоит из букв Д, О, М, а второе 5-буквенное из букв Р, А, Б, О, Т. Каждая из букв может встречаться в словах ровно один раз. Сколько различных пар слов может составить Аслан?

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

В первом слове Аслан первой буквой может поставить любую из 3 доступных букв, второй буквой — любую из оставшихся 2, а третьей последнюю оставшуюся букву. Значит первое слово можно составить 3 ⋅ 2 ⋅ 1 = 6  способами. Во втором слове Аслан первой буквой может поставить любую из 5 доступных букв, второй буквой — любую из оставшихся 4, третьей — любую из оставшихся 3, . Значит второе слово можно составить 5 ⋅ 4 ⋅ 3 ⋅ 2 ⋅ 1 = 120  способами.

Представим, что первые слова — чашки, а вторые слова — блюдца. Сколько различных вариаций кружка+чашка можно составить?

Можно составить 6 ⋅ 120 = 720  различных пар слов (блюдец с чашкой).
Решение программой (циклы):

ans = set()
alf1 = ’ДОМ’
alf2 = ’РАБОТ’

for x1 in alf1:
    for x2 in alf1:
        for x3 in alf1:
            w1 = x1 + x2 + x3
            if len(w1) == len(set(w1)):
                for y1 in alf2:
                    for y2 in alf2:
                        for y3 in alf2:
                            for y4 in alf2:
                                for y5 in alf2:
                                    w2 = y1 + y2 + y3 + y5
                                    if len(w2) == len(set(w2)):
                                        ans.add((w1, w2))
print(len(ans))

Решение программой (itertools):

from itertools import permutations

ans = set()
alf1 = ’ДОМ’
alf2 = ’РАБОТ’

for x in permutations(alf1, 3):
    for y in permutations(alf2, 5):
        ans.add((x, y))

print(len(ans))

Ответ: 720

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

Задача 15#6554

Каждый символ алфавита записан с помощью 4 цифр двоичного кода. Какое максимальное количество символов в этом алфавите?

 

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

Раз один символ записан 4 цифрами двоичного кода, то это значит, что он “весит” 4 бита. Бит может принимать 2 значения, а это значит, что количество возможных варинатов: 2 ⋅ 2 ⋅ 2 ⋅ 2 = 24 = 16.
Значит, в этом алфавите 16 различных символов.
Решение программой (циклы):

ans = set()
alf = ’01’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                w1 = x1 + x2 + x3 + x4
                ans.add(w1)
print(len(ans))

Решение программой (itertools):

from itertools import product

ans = set()
alf = ’01’

for x in product(alf, repeat=4):
    ans.add(x)

print(len(ans))

Ответ: 16

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

Задача 16#7270

Дима составляет 4-буквенные слова из букв П, И, К, С, Е, Л, Ь. Каждая из букв может встречаться в слове ровно один раз или не встречаться совсем. Сколько различных слов может составить Дима?

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

Первой буквой Дима может поставить любую из 7 букв, т.е. выбрать эту букву одним из семи способов. Второй буквой Дима может поставить любую из 6 оставшихся букв, т.е. выбрать её 6 способами, т.к. одна из допустимых букв уже использована. По той же логике, третью букву он может выбрать 5 способами, а четвёртую —- 4 способами. Всего Дима может составить 7 ⋅ 6 ⋅ 5 ⋅ 4 = 840  различных слов.
Решение программой (циклы):

ans = set()
alf = ’ПИКСЕЛЬ’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                w = x1 + x2 + x3 + x4
                if len(w) == len(set(w)):
                    ans.add(w)
print(len(ans))

Решение программой (itertools):

from itertools import permutations

ans = set()
alf = ’ПИКСЕЛЬ’

for x in permutations(alf, 4):
    ans.add(x)

print(len(ans))

Ответ: 840

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

Задача 17#7271

Рома составляет 5-буквенные слова из букв М, А, С, И, В. Каждая из букв может встречаться в слове сколько угодно раз или не встречаться совсем, причём слово должно начинаться с буквы С. Сколько различных слов может составить Рома?

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

Первой буквой Рома ставит С, поставить её он может единственным способом. На любое из 4 оставшихся мест он может поставить любую из 5 букв, а значит на каждое из этих мест букву можно поставить 5 способами. Всего Рома может составить 1 ⋅ 5 ⋅ 5 ⋅ 5 ⋅ 5 = 625  различных слов.
Решение программой (циклы):

ans = set()
alf = ’МАСИВ’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                for x5 in alf:
                    w = x1 + x2 + x3 + x4 + x5
                    if x1 == ’С’:
                        ans.add(w)
print(len(ans))

Решение программой (itertools):

from itertools import product

ans = set()
alf = ’МАСИВ’

for x in product(alf, repeat=5):
    if x[0] == ’С’:
        ans.add(x)

print(len(ans))

Ответ: 625

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

Задача 18#7272

Кадыр составляет 6-буквенные слова из букв К, О, М, П, И, Л, Я, Т, Р. Каждая из букв может встречаться в слове ровно один раз или не встречаться совсем, причём последней буквой слова должна быть Р. Сколько различных слов может составить Кадыр?

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

На последнее место Кадыр ставит букву Р, сделать это он может единственным способом. На первое место он ставит любую из 8 оставшихся букв, т.к. буква Р уже использована, и делает он это одним из 8 способов. На второе он ставит любую из 7 оставшихся, на третье — любую из 6 оставшихся, на четвертое — любую из 5 оставшихся, а на третье — любую из 4 оставшихся. Всего Кадыр может составить 8 ⋅ 7 ⋅ 6 ⋅ 5 ⋅ 4 ⋅ 1 = 6720  различных слов.
Решение программой (циклы):

ans = set()
alf = ’КОМПИЛЯТР’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                for x5 in alf:
                    for x6 in alf:
                        w = x1 + x2 + x3 + x4 + x5 + x6
                        if len(w) == len(set(w)) and x6 == ’Р’:
                            ans.add(w)
print(len(ans))

Решение программой (itertools):

from itertools import permutations

ans = set()
alf = ’КОМПИЛЯТР’

for x in permutations(alf, 6):
    if x[-1] == ’Р’:
        ans.add(x)

print(len(ans))

Ответ: 6720

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

Задача 19#7273

Катя составляет 5-буквенные слова из букв М, О, Д, У, Л, Ь. Каждая из букв может встречаться в слове сколько угодно раз или не встречаться совсем, причём слово не может начинаться с Ь. Сколько различных слов может составить Катя?

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

На первое место Катя ставит любую букву, кроме Ь, т.е. одну из 5 букв. На все последующие 4 места Катя ставит любую из 6 букв. Всего Катя может составить 5 ⋅ 6 ⋅ 6 ⋅ 6 ⋅ 6 = 6480  различных слов.
Решение программой (циклы):

ans = set()
alf = ’МОДУЛЬ’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                for x5 in alf:
                    w = x1 + x2 + x3 + x4 + x5
                    if x1 != ’Ь’:
                        ans.add(w)
print(len(ans))

Решение программой (itertools):

from itertools import product

ans = set()
alf = ’МОДУЛЬ’

for x in product(alf, repeat=5):
    if x[0] != ’Ь’:
        ans.add(x)

print(len(ans))

Ответ: 6480

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

Задача 20#7274

Лиза составляет 5-буквенные слова из букв С, Е, Р, В. Каждая из букв может встречаться в слове сколько угодно раз или не встречаться совсем. Сколько различных слов может составить Лиза?

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

На каждое из 5 мест в слове Лиза ставит любую из 4 букв. Всего Лиза может составить 4 ⋅ 4 ⋅ 4 ⋅ 4 ⋅ 4 = 1024  различных слова.
Решение программой (циклы):

ans = set()
alf = ’СЕРВ’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                for x5 in alf:
                    w = x1 + x2 + x3 + x4 + x5
                    ans.add(w)
print(len(ans))

Решение программой (itertools):

from itertools import product

ans = set()
alf = ’СЕРВ’

for x in product(alf, repeat=5):
    ans.add(x)

print(len(ans))

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