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

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

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

—  в стро­ке есть по­вто­ря­ю­щи­е­ся числа;

—  мак­си­маль­ное число в стро­ке не по­вто­ря­ет­ся;

—  сумма всех по­вто­ря­ю­щих­ся чисел в стро­ке боль­ше мак­си­маль­но­го числа этой стро­ки. При подсчёте суммы по­вто­ря­ю­щих­ся чисел каж­дое число учи­ты­ва­ет­ся столь­ко раз, сколь­ко оно встре­ча­ет­ся.

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

За­да­ние 9

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

Ре­ше­ние.

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

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

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

Те­перь про­ве­рим пер­вое усло­вие. Для этого в ячей­ку M1 впи­шем фор­му­лу:

=ЕСЛИ(СУММ(G1:L1)>6;1;0)

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

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

=МАКС(A1:F1)

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

Те­перь про­ве­рим вто­рое усло­вие. Для этого в ячей­ку O1 впи­шем фор­му­лу:

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

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

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

=ЕСЛИ(И(G1>1;A1<>$N1);A1;0)

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

Те­перь про­ве­рим тре­тье усло­вие. Для этого в ячей­ку V1 впи­шем фор­му­лу:

=ЕСЛИ(СУММ(P1:U1)>N1;1;0)

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

В столб­це W будем про­ве­рять стро­ки на со­от­вет­ствие всем усло­ви­ям за­да­чи, для этого в ячей­ку W1 вве­дем фор­му­лу:

=ЕСЛИ(И(M1=1;O1=1;V1=1);1;0)

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

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

=СУММ(W1:W16000)

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

 

Ответ: 941.

 

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

count = 0

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

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

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

if M.count(max(M)) == 1:

A = [x for x in M if M.count(x) > 1]

if sum(A) > max(M):

count += 1

print(count)

 

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

f = open('09.txt')

count = 0

for i in f:

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

if len(set(a))!=len(a) and a.count(max(a))==1:

summa=0

for j in range (0,len(a)):

if a.count(a[j]) > 1:

summa += a[j]

if summa>max(a):

count += 1

print(count)

 

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

f=open('09.txt')

k=0

for s in f:

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

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

if len(mp)>0 and max(m) not in mp:

if sum(mp)>max(m):

k+=1

print(k)

 

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


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