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

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

—  наи­боль­шее из четырёх чисел мень­ше суммы трёх дру­гих;

—  че­ты­ре числа можно раз­бить на две пары чисел с рав­ны­ми сум­ма­ми.

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

За­да­ние 9

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

Ре­ше­ние.

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

=МАКС(A1:D1)

и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на E1:E3100.

В ячей­ку F1 вве­дем фор­му­лу =СУММ(A1:D1)-E1 и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на F1:F3100.

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

=ЕСЛИ(E1 < F1;1;0)

и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на G1:G3100.

Про­ве­рим вто­рое усло­вие за­да­чи, для этого в ячей­ку H1 вве­дем фор­му­лу:

=ЕСЛИ(ИЛИ(A1+B1=C1+D1;A1+C1=B1+D1;A1+D1=B1+C1);1;0)

и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на H1:H3100.

Про­ве­рим со­от­вет­ствие строк усло­ви­ям за­да­чи. Для этого в ячей­ку I1 вве­дем фор­му­лу:

=ЕСЛИ(И(G1=1;H1=1);1;0)

и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на I1:I3100.

Окон­ча­тель­но с по­мо­щью фор­му­лы =СУММ(I1:I3100) по­лу­чим ответ  — 118.

 

Ответ: 118.

 

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

from itertools import permutations

def f(s):

for p in permutations(s):

if p[0]+p[1] == p[2]+p[3]:

return True

return False

t = tuple(map(lambda x: sorted(tuple(map(int, x.split(';')))), open('1_9.csv').read().splitlines()))

cnt = 0

for s in t:

if s[-1] < sum(s[:3]) and f(s):

cnt += 1

print(cnt)

 

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

 

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

f = open('1_9.csv')

cnt = 0

for s in f:

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

for i in range(len(a)-3):

if max(a)<(sum(a)-max(a)):

if ((int(a[i])+int(a[i+1]))==(int(a[i+2])+int(a[i+3]))) or \

((int(a[i])+int(a[i+2]))==(int(a[i+1])+int(a[i+3]))) or \

((int(a[i])+int(a[i+3]))==(int(a[i+1])+int(a[i+2]))):

cnt += 1

print(cnt)

 

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

 

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

data = [[int(j) for j in i.split(';')] for i in open('1_9.csv').readlines()]

counter = 0

for i in data:

i = sorted(i)

test1 = i[3] < i[0] + i[1] + i[2]

test2 = (i[0] + i[1] == i[2] + i[3]) or (i[0] + i[2] == i[1] + i[3]) or (i[0] + i[3] == i[1] + i[2])

if test1 and test2:

counter += 1

print(counter)

 

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

 

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

f = open('1_9.txt')

count = 0

for s in f:

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

m.sort()

if (m[0]+m[-1])==(m[1]+m[2]) and m[3]<(sum(m)-m[3]):

count += 1

print(count)

 

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

 

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

k = 0

for s in open('1_9.csv'):

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

if 2 * max(a) < sum(a) and 2 * (max(a) + min(a)) == sum(a):

k += 1

print(k)

 

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


Аналоги к заданию № 68242: 68271 68510 Все

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