Главная / 10 ноября 2025 г.

№8. Перебор слов и системы счисления

«А»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести на экран всевозможные слова, состоящие из К букв, в которых вторая буква «Ы». Подсчитайте количество таких слов.

Решение
import itertools
K = int(input("Введите длину слова:"))
k = 0
for i in itertools.product('ЫШЧО', repeat=K):
    s = ''.join(i)
    if s[1] == "Ы":
        k += 1
print(k)

«B»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести на экран все возможные слова, состоящие из К букв, в которых есть по крайней мере две одинаковые буквы, стоящие рядом. Подсчитайте количество таких слов. Программа не должна строить другие слова, не соответствующие условию.

Решение
import itertools
L = int(input("Введите длину слова:"))
k = 0
for i in itertools.product('ЫШЧО', repeat=L):
    s = ''.join(i)
    if ("ЫЫ" in s) or ("ШШ" in s) or ("ЧЧ" in s) or ("ОО" in s):
        print(s)
        k += 1
print(k)

«C»: В алфавите языка племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести на экран все возможные слова, состоящие из К букв, в которых есть по крайней мере две одинаковые буквы, не обязательно стоящие рядом. Программа не должна строить другие слова, не соответствующие условию.

Решение
import itertools
L = int(input("Введите длину слова:"))
k = 0
for i in itertools.product('ЫШЧО', repeat=L):
    s = ''.join(i)
    if s.count("Ы") > 1 or s.count("Ш") > 1 or s.count("Ч") > 1 or s.count("О") > 1:
        print(s)
        k += 1
print(k)

451) (А. Минак) Все пятибуквенные слова, составленные из букв А, Э, Р, О, Б, У, С записаны в алфавитном порядке и пронумерованы. Вот начало списка:

1. ААААА
2. ААААБ
3. ААААО
4. ААААР
5. ААААС
6. ААААУ
7. ААААЭ
. . .

Определите в этом списке количество слов с чётными номерами, которые содержат как минимум две буквы Р, между которыми стоит одна другая буква (например, РАР или РСР) и при этом не содержат в своей записи ни одной буквы У.

Решение
from itertools import product
pS = ["РАР", "РЭР", "РОР", "РБР", "РСР"]
n = 0
k = 0
for i in product('АБОРСУЭ', repeat=5):
    s = ''.join(i)
    n += 1
    f = False
    for j in pS:
        if j in s:
            f = True
    if f and s.count("У") == 0 and n % 2 == 0:
        k += 1
        print(n, s)
print(k)

452) (Е. Джобс) Определите количество семизначных чисел, записанных в девятеричной системе счисления, которые не начинаются с нечётных цифр, оканчиваются на цифры, не делящиеся на 3 без остатка, а также содержат в своей записи хотя бы одну цифру 6.

Решение
from itertools import product
k = 0
for i in product('012345678', repeat=7):
    s = ''.join(i)
    if s[o] != "0" and int(s[o]) % 2 == 0 and int(s[6]) % 3 != 0 and s.count("6") > 0:
        k += 1
print(k)

499) (В. Лашин) Все семибуквенные слова, составленные из букв К, O, Т, Е, Н, А записаны в алфавитном порядке и пронумерованы. Ниже приведено начало списка.

1. ААААAAA
2. ААAAAAE
3. ААAAAAK
4. AAAAAAH
5. AAAAAAO
6. AAAAAAT
. . .

Определите, под каким номером в этом списке стоит последнее слово с нечётным номером, которое может быть получено перестановкой букв в слове КОТЕНОК.

Решение

Ответ: 827352