Все 5-буквенные слова, составленные из букв Л,О,С,Ь, записаны в алфавитном порядке. Вот начало списка:
1. ЛЛЛЛЛ
2. ЛЛЛЛО
3. ЛЛЛЛС
4. ЛЛЛЛЬ
5. ЛЛЛОЛ
…..
Укажите количество слов, которые стоят между словами ОЛЬСЬ и СОЬЬЛ(включая эти слова).
Решение руками:
Заменим буквы на цифры: Л — 0, О — 1, С — 2, Ь — 3.
Теперь запишем 5-буквенные слова в новом алфавите.
1. 00000
2. 00001
3. 00002
4. 00003
5. 00010
…..
Полученный ряд — числа в четверичной системе счисления, записанные по возрастанию. Тогда слово СОЬЬЛ в числовом алфавите будет иметь вид , а слово ОЛЬСЬ
.
Переведем полученные значения в десятичную систему счисления:
Тогда получится, что между словами СОЬЬЛ и ОЛЬСЬ находится слов (+1, так как учитываются оба этих слова).
Решение Python:
s = ’ЛОСЬ’
k = 0
for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
w = a+b+c+d+e
if ’ОЛЬСЬ’<=w<=’СОЬЬЛ’:
k += 1
print(k)
Решение Python:
from itertools import *
c = 0
res1 = 0
res2 = 0
for i in product(’ЛОСЬ’, repeat = 5):
s = ’’.join(i)
c += 1
if s == ’ОЛЬСЬ’:
res1 = c
if s == ’СОЬЬЛ’:
res2 = c
print(abs(res2 - res1) + 1)