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

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

Задача 1#59231

Решите задачу, используя рекурсивное решение или библиотеку itertools.

Дамир составляет 5-буквенные коды из букв О, Л, Ь, Г, А. Слова должны соответствовать следующим условиям: Каждую букву нужно использовать ровно 1 раз; Ь нельзя ставить первым и нельзя ставить после гласной. Сколько различных кодов может составить Дамир?

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

ans = []
gl = ’ОА’

for i in permutations(’ОЛЬГА’, 5):
    s = ’’.join(i)
    if s[0] != ’Ь’ and s[s.index(’Ь’) - 1] not in gl:
        ans.append(s)

print(len(ans))

Ответ: 48

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

Задача 2#59230

Решите задачу, используя рекурсивное решение или библиотеку itertools.

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

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

ans = []

for i in product(’МАШИНА’, repeat = 6):
    s = ’’.join(i)
    s1 = s[0::2]
    s2 = s[1::2]
    if s1 == ’’.join(sorted(s1)) and s2 == ’’.join(sorted(s2)):
        ans.append(s)

print(len(set(ans)))

Ответ: 1225

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

Задача 3#59228

Решите задачу, используя рекурсивное решение или библиотеку itertools.

Дарья составляет пятибуквенные слова из букв слова УСПЕХ, причем известно, что буквы в словах могут повторяться любое количество раз или же не встречаться вовсе. Помогите Дарье найти количество различных слов, являющимися палиндромами и содержащими в середине гласную букву.

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

ans = []
gl =  ’ЕУ’

for i in product(’УСПЕХ’, repeat = 5):
    s = ’’.join(i)
    if s == s[::-1] and s[2] in gl:
        ans.append(s)

print(len(ans))

Ответ: 50

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

Задача 4#59227

Решите задачу, используя рекурсивное решение или библиотеку itertools.

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

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

ans = []
gl =  ’ОЕА’

for i in product(’КОНФЕТА’, repeat = 5):
    s = ’’.join(i)
    count = 0

    for j in gl:
        count += s.count(j)
    if count >= 2:
        ans.append(s)

print(len(ans))

Ответ: 11943

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

Задача 5#56309

Крабоед составляет 7  -буквенные слова из букв А, Р, М, И, Я, Ж, Д, Ё, Т. Каждую букву можно использовать любое количество раз, либо не использовать совсем. При этом гласная и согласная буква не должны стоять рядом. Сколько слов сможет составить Крабоед?

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

Если согласная и гласная буква не должны стоять рядом, значит, наши слова могут выглядеть так: ГГГГГГГ и ССССССС. Согласных букв 5  , а гласных 4  , значит, общее количество слов будет равно 57 + 47  =94509  .

 

Ответ: 94509

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

Задача 6#41283

Сколько трёхбуквенных слов можно составить из букв A, B,C,D  , если буквы в слове не должны повторяться?

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

На первое место можно поставить любую из четырёх букв. На второе — любую из трёх, ведь одну мы уже поставили. На третье — любую из двух букв, ведь две буквы мы уже поставили. Значит, ответ равен 4⋅3 ⋅2 = 4! = 24  .

 

Ответ: 24

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

Задача 7#30312

Сколько 8-буквенных слов может составить Петя из букв П, Е, Т, Я, если буква П должна использоваться менее трёх раз и при этом должна стоять рядом с Е и не может быть на последней позиции? Каждая буква может использоваться несколько раз или не использоваться совсем.

 

Примечение: буква П может не использоваться. Около П должна обязательно стоять Е, но около Е не обязательно должна быть буква П.

Показать ответ и решение
from itertools import product
ans = 0
for i in product("ПЕТЯ", repeat=8):
    s = "".join(i)
    if s.count("П") < 3 and s[-1] != "П":
        count = 0
        if s[0] == "П" and s[1] == "Е":
            count += 1
        for j in range(1, 7):
            if s[j] == "П" and (s[j - 1] == "Е" or s[j + 1] == "Е"):
                count += 1
        if count == s.count("П"):
            ans += 1
print(ans)

 

Ответ: 18306

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

Задача 8#30311

Петя составляет шестибуквенные слова из символов Щ, Е, Л, Ч, О, К. В каждом слове хотя бы одна буква О и ровно на трёх позициях стоят согласные. Каждая буква может использоваться любое количество раз. Сколько слов может составить Петя?

Показать ответ и решение
from itertools import product  
 
count = 0  
for i in product(’ЩЕЛЧОК’, repeat = 6):  
    s = ’’  
    for j in i: #формируем строку из символов  
        s += j  
    if (s.count(’Щ’) + s.count(’Л’) + s.count(’Ч’) + s.count(’К’) == 3):  
        if (s.count(’О’) > 0):  
            count += 1  
print(count)

 

Ответ: 8960

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

Задача 9#30310

Петя составляет четырехбуквенные слова из букв слова ПРОКРАСТИНАЦИЯ, при этом буква в полученном слове не должна встречаться больше раз, чем она встречается в исходном слове. Сколько слов он может составить, если они должны состоять из 4 букв, начинаться и оканчиваться гласной буквой, содержать сочетание АР и не содержать сочетание АС?

Примечание: следует считать, что повторяющиеся буквы ничем друг от друга не отличаются.

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

ans = set()
gl = ’ОАИЯ’
for i in permutations(’ПРОКРАСТИНАЦИЯ’, 4):
    s = ’’.join(i)
    if (s[0] in gl) and (s[-1] in gl) and (s.count(’АР’) > 0) and (s.count(’АС’) == 0):
        ans.add(s)
print(len(ans))

 

Ответ: 54

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

Задача 10#30309

Сколько слов из шести символов может составить Петя перестановкой букв слова БАОБАБ?

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

Недостаточно просто посчитать количество шестибуквенных последовательностей из букв слова БАОБАБ, потому что есть одинаковые буквы, из-за чего некоторые слова будут посчитаны несколько раз.

Решение программой: в массив сохраняем только уникальные слова (аналог множества), после чего находим длину массива.

Решение математикой: три буквы Б дадут 3! повторений, две буквы А дадут 2! повторений, поэтому можно общее количество шестибуквенных слов поделить на (3!⋅2!)  .

from itertools import permutations  
 
count = 0  
arr = []  
for i in permutations(’БАОБАБ’, 6):  
    s = ’’  
    for j in i: #формируем строку из символов  
        s += j  
    if not(s in arr): # учитываем повторения  
        arr.append(s)  
    count += 1  
print(len(arr), count/((3*2*1)*(2*1)))

 

Ответ: 60

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

Задача 11#30308

Петя составляет слова, состоящие из 6 букв, из символов С, О, Н. В каждом слове есть хотя бы две буквы Н и нет сочетания НС. Каждая буква может встречаться любое количество раз. Сколько слов может составить Петя?

Показать ответ и решение
from itertools import product  
 
count = 0  
for i in product(’СОН’, repeat=6):  
    s = ’’  
    for j in i: #формируем строку из символов  
        s += j  
    if (s.count(’Н’) > 1) and (s.count(’НС’) == 0):  
        count += 1  
print(count)

Ответ: 201

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

Задача 12#30307

Сколько слов можно составить из букв слова ’ХИНКАЛИ’, если каждое слово состоит из пяти букв, при этом каждая буква встречается не более 1 раза, а буквы Л и Х не стоят рядом?

Примечание: буквы И считаются одинаковыми.

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

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

from itertools import permutations  
 
count = 0  
for i in permutations("ХИНКАЛ", 5):  
    if (’Л’ in i) and (’Х’ in i):  
        # если Л и Х есть и стоят рядом  
        if abs(i.index(’Л’) - i.index(’Х’)) != 1:  
            count+=1  
    else:  
        #если хотя бы одной из букв Л и Х нет  
        count += 1  
print(count)

 

Ответ: 528

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

Задача 13#30306

Сколько слов можно составить из букв С, Т, О, Л, если каждое слово состоит из четырёх букв и в каждом слове есть по крайней мере одна буква О?

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

Подходящие четырёхбуквенные слова +  неподходящие четырёхбуквенные слова =  все четырёхбуквенные слова.

Из букв С, Т, О, Л возможно составить 4 ⋅4⋅4 ⋅4 = 256  четырёхбуквенных слов, так как на каждой позиции может стоять одна из четырёх букв.

Не подходят те четырёхбуквенные слова, в которых нет букв О. Их количество равно 3 ⋅3⋅3⋅3 = 81  , так как на каждой позиции может стоять одна из букв С, Т, Л.

Подходящие четырёхбуквенные =  все четырёхбуквенные слова − неподходящие четырёхбуквенные слова = 256− 81 = 175

 

Ответ: 175

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

Задача 14#30305

Сколько слов можно составить из букв К, Е, Г, Э, если каждое слово состоит из пяти букв, на первом месте стоит Э и каждая буква используется любое количество раз?

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

Чтобы решить эту проблему, мы можем использовать следующие шаги:

Шаг 1  : Поскольку Э стоит на первом месте, нам нужно рассмотреть только оставшиеся 4  позиции.

Шаг 2  : Есть 4  буквы на выбор для каждой из оставшихся 4  позиций, так как каждая буква может быть использована любое количество раз. Итак, у нас есть 4  варианта для каждой из оставшихся 4  позиций.

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

4⋅4 ⋅4⋅4 = 256

Таким образом, существует 256  слов, которые могут состоять из букв К, Е, Г, Э, если каждое слово состоит из пяти букв, то E стоит первой, и каждая буква используется любое количество раз.

 

Ответ: 256

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

Задача 15#28804

АНАСТАСИЯ из букв своего имени составляет слова перестановкой исходных букв. Сколько различных слов может составить АНАСТАСИЯ, если первая буква не может быть согласной?

Показать ответ и решение
s = ’АНТСИЯ’
count = 0
for x1 in s:
    for x2 in s:
        for x3 in s:
            for x4 in s:
                for x5 in s:
                    for x6 in s:
                        for x7 in s:
                            for x8 in s:
                                for x9 in s:
                                    f = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
                                    a = f.count(’А’) == 3
                                    n = f.count(’Н’) == 1
                                    c = f.count(’С’) == 2
                                    t = f.count(’Т’) == 1
                                    i = f.count(’И’) == 1
                                    y = f.count(’Я’) == 1
                                    if a and n and c and t and t and i and y \
                                       and f[0] not in ’НСТ’:
                                        count += 1
print(count)

Ответ: 16800

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

Задача 16#27451

Азат составляет 5-буквенные слова из букв Д, Е, М, О, Н, причём если слово начинается на гласную, то оно обязательно должно оканчиваться на согласную. Все буквы используются ровно один раз. Сколько слов может составить Азат?

 

Показать ответ и решение
s = ’ДЕМОН’
count = 0
for x1 in s:
    for x2 in s:
        for x3 in s:
            for x4 in s:
                for x5 in s:
                    a = x1 + x2 + x3 + x4 + x5
                    d = a.count(’Д’) == 1
                    e = a.count(’Е’) == 1
                    m = a.count(’М’) == 1
                    o = a.count(’О’) == 1
                    n = a.count(’Н’) == 1
                    if ((a[0] in ’ЕО’ and a[-1] in ’ДМН’) or a[0] not in ’ЕО’)
                       and d and e and m and o and n:
                        count += 1
print(count)

Ответ: 108

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

Задача 17#26675

Сколько 7  -буквенных слов можно составить из букв К, О, М, П, Ь, Ю, Т, Е, Р? Буквы Ю и Т должны быть использованы по два раза. Остальные буквы можно использовать сколько угодно раз.

Показать ответ и решение
from itertools import product
ans = 0
comb = set(product(’КОМПЬЮТЕР’, repeat=7))
for i in comb:
    s = ’’.join(i)
    if s.count(’Ю’) == 2 and s.count(’Т’) == 2:
        ans += 1
print(ans)

Ответ: 72030

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

Задача 18#26168

Лёша составляет слова(не обязательно осмысленные) из букв С, О, Т, К, А максимальной длины 5 и минимальной длины 3. Каждую букву можно использовать только один раз или не использовать совсем. Выписав все слова, Лёша позвал Руслана чтобы похвастаться. Узнав об этом, Руслан незамедлительно стёр треть всех слов, а потом половину от оставшихся. Сколько всего слов осталось после действий Руслана?

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

Сначала посчитаем сколько слов составил Лёша:

для слов длины 3: 5 * 4 * 3

для слов длины 4: 5 * 4 * 3 * 2

для слов длины 5: 5 * 4 * 3 * 2 * 1

Получается: 5*4*3 + 5*4*3*2 + 5*4*3*2*1 = 300.

Руслан стёр и получилось: (300 - 300/3)*(1/2) = 100.

Ответ: 100

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

Задача 19#26114

Гоша составляет слова длины 6  . Он использует буквы Г, О, Ш, А, причём каждая буква может быть использована любое количество раз. Найдите, сколько различных слов может составить Гоша, и запишите в ответ степень, в которую нужно возвести 2  , чтобы получить искомый ответ.

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

Так как любая буква может быть использована любое количество раз, а ограничений никаких нет, то на любой из семи позиций может стоять любая из 4 букв, тогда у Гоши есть возможность составить 46 = 212  слов.
Получим ответ: 12

Ответ: 12

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

Задача 20#26087

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

Показать ответ и решение
s = ’ЦИФРА’
count = 0
for x1 in s:
    for x2 in s:
        for x3 in s:
            for x4 in s:
                for x5 in s:
                    word = x1 + x2 + x3 + x4 + x5
                    if word[0] not in ’ИА’:
                        count += 1
print(count)

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