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

Игорь со­став­ля­ет пя­ти­знач­ные числа, ис­поль­зуя цифры де­вя­те­рич­ной си­сте­мы счис­ле­ния. Сколь­ко раз­лич­ных чисел может со­ста­вить Игорь, в ко­то­рых ровно две цифры 3 и нечётные цифры не стоят рядом с циф­рой 2?

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

Ре­ше­ние.

При­ведём ре­ше­ние Га­ли­ны Мо­ро­зо­вой на языке Python.

from itertools import *

c=0

p=product('012345678', repeat=5)

for i in p:

s=''.join(i)

if s[0]!='0' and s.count('3')==2:

for j in s:

if j in '1357': s=s.replace(j,'*')

if '2*' not in s and '*2' not in s:

c+=1

 

print(c)

 

Ответ: 3352.

 

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

from itertools import *

count = 0

w = ['12', '32', '52', '72', '21', '23', '25', '27']

for i in product('012345678', repeat=5):

s = ''.join(i)

if s[0] != '0' and s.count('3') == 2 and all (not i in s for i in w):

count += 1

print(count)

 

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

s = '012345678'

count = 0

for a in s:

for b in s:

for c in s:

for d in s:

for e in s:

temp = a + b + c + d + e

if temp[0] != '0' or a != '0':

if temp.count('3') == 2:

if all(x not in temp for x in '12 21 23 32 52 25 72 27'.split()):

count += 1

print(count)

 

При­ведём ре­ше­ние Сер­гея Донец на языке PascalABC.NET.

begin

'012345678'.Cartesian(5) // 9-рич­ная 5-знач­ных

.Where(s->s[1] <> '0') // Пер­вой циф­рой не может быть 0

.Where(s->s.CountOf('3')=2) // ровно две цифры 3

.Where(s->not s.IsMatch('[1357][2]'))//рядом с 2 НЕ стоят нечётные цифры /слева

.Where(s->not s.IsMatch('[2][1357]'))//рядом с 2 НЕ стоят нечётные цифры /спра­ва

.Count.Print;

end.

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