Задания
Версия для печати и копирования в MS Word
Тип 8 № 68509
i

Все пя­ти­бук­вен­ные слова, в со­ста­ве ко­то­рых могут быть толь­ко буквы П, А, Р, У, С, за­пи­са­ны в ал­фа­вит­ном по­ряд­ке и про­ну­ме­ро­ва­ны на­чи­ная с 1.

Ниже при­ве­де­но на­ча­ло спис­ка.

1.  ААААА

2.  ААААП

3.  ААААР

4.  ААААС

5.  ААААУ

6.  АААПА

...

 

Под каким но­ме­ром в спис­ке идёт по­след­нее слово, ко­то­рое со­дер­жит не более одной буквы У и не со­дер­жит букв А, сто­я­щих рядом?

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

from itertools import product

count = 0

m = []

for p in product(sorted("ПАРУС"), repeat=5):

count += 1

s = ''.join(p)

if ("АА" not in s) and s.count("У") <= 1:

m.append(count)

print(max(m))

 

Ответ: 2969.

 

При­ведём ре­ше­ние Артёма Гри­ди­на на языке Python.

from itertools import product

for i, p in enumerate(product(sorted('ПАРУС'), repeat=5)):

if p.count('У') <= 1 and 'АА' not in p:

a = i+1

print(a)

 

При­ведём ре­ше­ние Алек­сандра Коз­ло­ва на языке Python.

num = []

for x1 in '01234':

for x2 in '01234':

for x3 in '01234':

for x4 in '01234':

for x5 in '01234':

s = x1+x2+x3+x4+x5

if '00' not in s and s.count('4')<=1:

num.append(int(s,5)+1)

print('Ответ:',max(num))

 

При­ведём ре­ше­ние Алек­сандра Коз­ло­ва на языке Python.

def five(x):

s = ''

while x:

s = str(x%5) + s

x = x//5

return s

otvet = []

end = int('44444',5)

for i in range(1,end):

s = five(i-1)

if '00' not in s and s.count('4') == 1:

otvet.append(i)

print(max(otvet))

 

При­ведём ре­ше­ние Алек­сандра Коз­ло­ва на языке Python.

def sys_5(n):

return str(n % 5) + sys_5(n // 5) if n else ''

end = int('44444', 5)

otvet = max(i for i in range(1, end) if '00' not in sys_5(i - 1) and sys_5(i - 1).count('4') == 1)

print(otvet)

 

При­ведём про­грам­му Сер­гея Донец на PascalABC.NET:

begin

'П, А, Р, У, С, '.Remove(', ')// уда­ле­ние за­пя­тых и про­бе­лов

.Sorted.JoinToString// сор­ти­ров­ка по ал­фа­ви­ту

.Cartesian(5).Numerate// ну­ме­ра­ция на­чи­ная с 1

.Where(t->not t[1].isMatch('АА'))//не со­дер­жит букв А, сто­я­щих рядом

.Where(t->t[1].Matches('У').count<=1)//Не более одной буквы У

.Last//// (2969,УСССС) - номер и само слово

.item1.print;//2969

end.

Источник: ЕГЭ по ин­фор­ма­ти­ке 09.04.2024. До­сроч­ная волна