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

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

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

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

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

За­да­ние 9

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

Ре­ше­ние.

Для ре­ше­ния за­да­чи вы­пи­шем в столб­цы от G до L по­вто­ря­ю­щи­е­ся зна­че­ния. Вы­пи­шем в ячей­ку G1 фор­му­лу:

=ЕСЛИ(СЧЁТЕСЛИ($A1:$F1;A1)=2;A1;"").

Дан­ная фор­му­ла вер­нет в ячей­ку зна­че­ние из ячей­ки A1, если оно встре­ча­ет­ся два раза. Ско­пи­ру­ем фор­му­лу на диа­па­зон G1:L30000. В ячей­ку M1 вы­пи­шем фор­му­лу:

=ЕСЛИ(СЧЁТЕСЛИ(G1:L1;">0")=2;СУММ(G1:L1)/2;0)

и ско­пи­ру­ем ее на диа­па­зон M1:M30000. В дан­ном столб­це будет сред­нее ариф­ме­ти­че­ское чисел, ко­то­рое по­вто­ря­ет­ся в стро­ке 2 раза, или 0, если таких зна­че­ний нет. В ячей­ку N1 вы­пи­шем фор­му­лу:

=ЕСЛИ(СЧЁТЕСЛИ($A1:$G1;A1)=1;A1;"")

и ско­пи­ру­ем ее на диа­па­зон N1:S30000. Дан­ная фор­му­ла вер­нет зна­че­ние в ячей­ки, если они не по­вто­ря­ют­ся. В ячей­ку T1 вы­пи­шем фор­му­лу:

=ЕСЛИ(СЧЁТЕСЛИ(N1:S1;">0")=4;СРЗНАЧ(N1:S1);0)

и ско­пи­ру­ем ее на диа­па­зон T1:T30000. В дан­ном столб­це будет сред­нее ариф­ме­ти­че­ское всех чисел стро­ки, если стро­ка удо­вле­тво­ря­ет усло­вию за­да­чи. В столб­це U будем счи­тать ко­ли­че­ство строк, удо­вле­тво­ря­ю­щих на­ше­му ре­ше­нию. Для этого вве­дем фор­му­лу:

=ЕСЛИ(M1 < T1;1;0)

и ско­пи­ру­ем ее на весь диа­па­зон U1:U30000. По­счи­та­ем ко­ли­че­ство строк, удо­вле­тво­ря­ю­щих на­ше­му усло­вию, фор­му­лой: =СУММ(U1:U30000).

 

Ответ: 1483.

 

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

count = 0

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

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

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

copied = sum(M) - sum(set(M))

if copied < (sum(M) - copied*2) / 4:

count += 1

print(count)

 

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

 

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

f = open('9.txt')

count = 0

for s in f:

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

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

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

if len(nepov) == 4 and len(pov) == 2 and sum(pov)/2 < sum(nepov)/4:

count += 1

print(count)

 

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


Аналоги к заданию № 59833: 59834 Все

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