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

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

—  все числа в стро­ке раз­лич­ны;

—  сред­нее ариф­ме­ти­че­ское наи­боль­ше­го и наи­мень­ше­го чисел в стро­ке боль­ше сред­не­го ариф­ме­ти­че­ско­го всех осталь­ных чисел.

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

За­да­ние 9

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

Ре­ше­ние.

Для на­ча­ла най­дем, сколь­ко раз числа по­вто­ря­ют­ся в стро­ке. Для этого в ячей­ку вве­дем фор­му­лу:

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

и ско­пи­ру­ем ее на диа­па­зон G1:L16000.

Те­перь най­дем, сколь­ко раз число встре­ча­ет­ся в таб­ли­це, в ячей­ку M1 впи­шем фор­му­лу:

=СУММ(G1:L1)

и ско­пи­ру­ем фор­му­лу до ячей­ки M16000.

В ячей­ке N1 сред­нее ариф­ме­ти­че­ское наи­боль­ше­го и наи­мень­ше­го чисел в стро­ке, для этого вве­дем фор­му­лу:

=(МАКС(A1:F1)+МИН(A1:F1))/2

и ско­пи­ру­ем фор­му­лу до ячей­ки N16000.

В ячей­ке O1 най­дем сред­нее ариф­ме­ти­че­ское всех осталь­ных чисел, для этого вве­дем фор­му­лу:

=(СУММ(A1:F1)-МАКС(A1:F1)-МИН(A1:F1))/4

и ско­пи­ру­ем фор­му­лу до ячей­ки O16000. За­ме­тим, что если мак­си­маль­ное число или ми­ни­маль­ное число в стро­ке по­вто­ря­ют­ся, то такая стро­ка нам не по­дой­дет по пер­во­му пунк­ту за­да­чи.

В столб­це P по­счи­та­ем стро­ки, удо­вле­тво­ря­ю­щие вто­ро­му усло­вию за­да­чи, для этого вве­дем фор­му­лу:

=ЕСЛИ(N1>O1;1;0)

и ско­пи­ру­ем фор­му­лу до ячей­ки P16000.

В столб­це Q будем пи­сать 1, если стро­ка удо­вле­тво­ря­ет всем усло­ви­ям за­да­чи, и 0  — в осталь­ных слу­ча­ях, для этого в ячей­ку Q1 вве­дем фор­му­лу:

=ЕСЛИ(И(M1=6;P1=1);1;0)

и ско­пи­ру­ем ее до ячей­ки Q16000.

Окон­ча­тель­но на­хо­дим ко­ли­че­ство ис­ко­мых строк. Для этого в ячей­ку S1 за­пи­сы­ва­ем сле­ду­ю­щее:

=СУММ(Q1:Q16000)

и по­лу­ча­ем ответ  — 6840.

 

Ответ: 6840.

 

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

f = open('9.txt')

count = 0

for s in f:

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

if len(set(a)) == len(a):

sr1 = (min(a) + max(a))/2

sr2 = (sum(a) - max(a) - min(a)) / 4

if sr1 > sr2:

count += 1

print(count)

 

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

 

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

count = 0

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

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

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

if ((M[0] + M[-1]) / 2) > (sum(M[1:-1]) / len(M[1:-1])):

count += 1

print(count)

 

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


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