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

От­крой­те файл элек­трон­ной таб­ли­цы, со­дер­жа­щей в каж­дой стро­ке шесть на­ту­раль­ных чисел.

За­да­ние 9

Опре­де­ли­те ко­ли­че­ство строк таб­ли­цы, со­дер­жа­щих числа, для ко­то­рых вы­пол­не­ны оба усло­вия:

—  в стро­ке толь­ко одно число по­вто­ря­ет­ся ровно два раза, осталь­ные числа раз­лич­ны;

—  сред­нее ариф­ме­ти­че­ское не­по­вто­ря­ю­щих­ся чисел стро­ки не боль­ше суммы по­вто­ря­ю­щих­ся чисел.

В от­ве­те за­пи­ши­те толь­ко число.

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

Ре­ше­ние.

Со­хра­ним файл в фор­ма­те «.txt» и решим за­да­чу с по­мо­щью языка Python:

count = 0

f = open('9.txt')

for s in f:

arr = list(map(int, s.split()))

rep = sum(arr) - sum(set(arr))

mean_unrep = sum(set(arr) - {rep}) / 4

if len(set(arr)) == 5 and mean_unrep <= 2 * rep:

count += 1

print(count)

 

Ответ: 2241.

 

При­ве­дем дру­гое ре­ше­ние от Мок­ру­ши­на Ни­ко­лая.

В ячей­ку G1 по­ме­ща­ем фор­му­лу =СЧЁТЕСЛИ($A1:$F1;A1) и ко­пи­ру­ем её на диа­па­зон G1:L6400. Дан­ная фор­му­ла вы­даст в ячей­ках ко­ли­че­ство раз, ко­то­рое встре­ча­ет­ся в стро­ке каж­дое число.

В ячей­ку M1 за­пи­шем фор­му­лу =СУММ(G1:L1)-7 и ско­пи­ру­ем ее на диа­па­зон M1:M6400. Если зна­че­ние в ячей­ке равно 1, то в стро­ке есть по­вто­ря­ю­щи­е­ся числа, при­чем толь­ко одно число по­вто­ря­ет­ся ровно два раза, осталь­ные числа раз­лич­ны.

В ячей­ку N1 за­пи­шем фор­му­лу =ЕСЛИ(G1 = 2;A1;0) и ско­пи­ру­ем её на диа­па­зон N1:S6400. В дан­ных ячей­ках вы­ве­дут­ся по­вто­ря­ю­щи­е­ся числа в стро­ках, удо­вле­тво­ря­ю­щих усло­вию за­да­чи.

В ячей­ку T1 за­пи­шем фор­му­лу =ЕСЛИ(M1 = 1; СУММ(A1:F1);0) и ско­пи­ру­ем её на диа­па­зон T1:T6400. Дан­ная фор­му­ла счи­та­ет сумму всех ячеек в стро­ках, удо­вле­тво­ря­ю­щих усло­вию за­да­чи.

В ячей­ку U1 за­пи­шем фор­му­лу =СУММ(N1:S1) и ско­пи­ру­ем её на диа­па­зон U1:U6400. Дан­ная фор­му­ла счи­та­ет сумму всех по­вто­ря­ю­щих­ся чисел в стро­ках, удо­вле­тво­ря­ю­щих усло­вию за­да­чи.

В ячей­ку V1 за­пи­шем фор­му­лу =(T1-U1)/4 и ско­пи­ру­ем её на диа­па­зон V1:V6400. Дан­ная фор­му­ла счи­та­ет сред­нее ариф­ме­ти­че­ское не­по­вто­ря­ю­щих­ся чисел в стро­ках, удо­вле­тво­ря­ю­щих усло­вию за­да­чи.

В ячей­ку W1 за­пи­шем фор­му­лу =ЕСЛИ(И(V1<=U1;M1 = 1);1;0) и ско­пи­ру­ем её на диа­па­зон W1:W6400. Дан­ная фор­му­ла вы­ве­дет зна­че­ние 1, если стро­ка удо­вле­тво­ря­ет всем усло­ви­ям за­да­чи.

В ячей­ке X1 по­счи­та­ем все стро­ки, удо­вле­тво­ря­ю­щие усло­ви­ям за­да­чи, с по­мо­щью фор­му­лы =СУММ(W1:W6400) и по­лу­чим ответ  — 2241.

 

При­ме­ча­ние. В файле при­ве­ден­но­го за­да­ния ФИПИ ис­поль­зу­ют­ся нули, что про­ти­во­ре­чит опре­де­ле­нию на­ту­раль­ные числа. Дан­ная опе­чат­ка не вли­я­ет на ответ.

 

При­ведём ре­ше­ние Фай­зул­ли­на Вла­ди­ми­ра (Пермь) на языке Python.:

def kp(x):

pk=[]

for i in range(len(x)):

pk+=[x.count(x[i])]

return pk

k=0

for a in open('9.txt'):

s1 = 0

s2 = 0

x = list(map(int, a.split()))

kel = kp(x)

id = sum([1,1,1,1,2,2])

if sum(kel) == id:

for i in range(len(x)):

if kel[i] == 2:

s1 += x[i]

if kel[i] == 1:

s2 += x[i]

if s2/4 <= s1:

k += 1

print(k)

 

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

f = open('9.txt')

k = 0

for s in f:

m=[int(x) for x in s.split()]

if len(set(m))==5:

mp = [x for x in m if m.count(x)==2]

mn = [x for x in m if m.count(x)==1]

if sum(mn) / 4 <= sum(mp): k+=1

print(k)

 

При­ме­ча­ние. Файл сле­ду­ет со­хра­нить в фор­ма­те txt.

 

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

print([True if len(set(y)) == 5 and any([y.count(y[0]) == 2 and y[0]*2>=sum([n for n in set(y) if n!=y[0]])/4,

y.count(y[1]) == 2 and y[1]*2>=sum([n for n in set(y) if n!=y[1]])/4,

y.count(y[2]) == 2 and y[2]*2>=sum([n for n in set(y) if n!=y[2]])/4,

y.count(y[3]) == 2 and y[3]*2>=sum([n for n in set(y) if n!=y[3]])/4,

y.count(y[4]) == 2 and y[4]*2>=sum([n for n in set(y) if n!=y[4]])/4,

y.count(y[5]) == 2 and y[5]*2>=sum([n for n in set(y) if n!=y[5]])/4,

]) else False for y in tuple(map(lambda x: sorted(tuple(map(int, x.split(';')))), open('9.csv').read().splitlines()))].count(True))

 

При­ме­ча­ние. Файл сле­ду­ет со­хра­нить в фор­ма­те csv.

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ−2023 по ин­фор­ма­ти­ке