Задания
Версия для печати и копирования в MS Word
Тип 9 № 61389
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)

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

 

Ответ: 6724.

 

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

with open('9.txt', 'r') as file:

count = 0

for line in file:

n = list(map(int, line.split()))

n.sort()

if (n[0] + n[5])/2 < (sum(n)-n[0]-n[5])/4 and len(n)==len(set(n)):

count+=1

print(count)

При­ме­ча­ние. Не­об­хо­ди­мо пре­об­ра­зо­вать .xls файл в тек­сто­вый с раз­де­ли­те­ля­ми та­бу­ля­ции.

 

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

a = [list(map(int,s.split(';'))) for s in open('09.csv')]

b = [x for x in a if len(x)==len(set(x)) and 3*(max(x)+min(x)) < sum(x)]

print(len(b))

При­ме­ча­ние. Не­об­хо­ди­мо пре­об­ра­зо­вать .xls файл в тек­сто­вый с раз­де­ли­те­ля­ми та­бу­ля­ции.

 

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

f=open('9.txt')

k=0

for i in f:

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

if len(set(a))==len(a) and (max(a)+min(a))/2 < (sum(a)-min(a)-max(a))/4:

k+=1

print(k)

При­ме­ча­ние. Не­об­хо­ди­мо пре­об­ра­зо­вать .xls файл в тек­сто­вый.


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