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

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

—  в стро­ке есть ровно три числа, каж­дое из ко­то­рых по­вто­ря­ет­ся два­жды, осталь­ные числа без по­вто­ре­ний;

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

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

За­да­ние 9

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

Ре­ше­ние.

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

f = open('9.txt')

st = 0

otv = []

for s in f:

st += 1

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

tri = [x for x in m if m.count(x) == 2]

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

if len(tri) == 6 and len(no_repeat) == 2:

if (max(tri)-min(tri))**2 > 2 * (no_repeat[0]**2 + no_repeat[1]**2):

otv.append(st)

print(otv[-1])

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

 

Ответ: 29938.

 

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

# Не­об­хо­ди­мо пред­ва­ри­тель­но со­хра­нить дан­ные из таб­ли­цы LibreOffice Calc

# в файл .csv с раз­де­ли­те­лем ';'

ответ,номер = 0,0

for стро­ка in open('9.csv'):

    номер += 1

    числа = list(map(int, стро­ка.split(';')))

    по­вто­ры = [x for x in числа if числа.count(x)==2]

    уни­ку­мы = [x**2 for x in числа if числа.count(x)==1] # квад­ра­ты уни­каль­ных

    if len(по­вто­ры)==6 and len(уни­ку­мы) == 2 and (max(по­вто­ры)-min(по­вто­ры))**2 > 2*sum(уни­ку­мы):

        ответ = номер

print(ответ)

 

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

От­кры­ва­ем файл с дан­ны­ми.

В ячей­ку I1 впи­сы­ва­ем фор­му­лу =ЕСЛИ(СЧЁТЕСЛИ($A1:$H1;A1)=2;A1;"") и ко­пи­ру­ем её в ячей­ки J1:P1.

(В ячей­ки I1:P1 пе­ре­но­сим числа, ко­то­рые встре­ча­ют­ся два раза.)

В ячей­ку Q1 впи­сы­ва­ем фор­му­лу =ЕСЛИ(СЧЁТЕСЛИ($A1:$H1;A1)=1;A1^2;"") и ко­пи­ру­ем её в ячей­ки R1:X1.

(В ячей­ки Q1:X1 пе­ре­но­сим квад­ра­ты чисел, ко­то­рые встре­ча­ют­ся один раз.)

В ячей­ку Y1 впи­сы­ва­ем фор­му­лу =И(СЧЁТЕСЛИ(I1:P1;»")=2;СЧЁТЕСЛИ(Q1:X1;"")=6) - это пер­вое усло­вие.

(Под­счи­ты­ва­ем пу­стые ячей­ки в груп­пах из вось­ми ячеек.)

В ячей­ку Z1 впи­сы­ва­ем фор­му­лу =(МАКС(I1:P1)-МИН(I1:P1))^2>2*СУММ(Q1:X1) - это вто­рое усло­вие.

В ячей­ку AA1 впи­сы­ва­ем фор­му­лу =И(Y1:Z1) - это вы­пол­не­ние обоих усло­вий.

В ячей­ку AB1 впи­сы­ва­ем фор­му­лу =ЕСЛИ(AA1;СТРО­КА();"") - номер стро­ки, если усло­вия вы­пол­не­ны.

Раз­мно­жа­ем стро­ку I1:AB1 до конца дан­ных.

В ячей­ку AC1 впи­сы­ва­ем фор­му­лу =МАКС(AB:AB) и по­лу­ча­ем в ней ответ 29938.


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