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

В каж­дой стро­ке элек­трон­ной таб­ли­цы за­пи­са­ны шесть на­ту­раль­ных чисел.

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

—  число в дан­ной ячей­ке не встре­ча­ет­ся в дру­гих ячей­ках этой же стро­ки;

—  число в дан­ной ячей­ке ровно 50 раз встре­ча­ет­ся в дру­гих стро­ках таб­ли­цы.

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

За­да­ние 9

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

Ре­ше­ние.

Для на­ча­ла по­счи­та­ем, сколь­ко раз встре­ча­ет­ся то или иное число в стро­ках, для этого в ячей­ку G1 впи­шем =СЧЁТЕСЛИ($A1:$F1;A1) и рас­тя­нем до ячей­ки L1 и вниз, до са­мо­го конца таб­ли­цы. Те­перь най­дем сколь­ко раз число встре­ча­ет­ся в таб­ли­це, в ячей­ку M1 впи­шем фор­му­лу:

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

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

От­ме­тим хо­ро­шие ячей­ки, для этого вве­дем в ячей­ку S1 фор­му­лу и ско­пи­ру­ем ее до ячей­ки X6000:

=ЕСЛИ(И(G1=1;M1=51);1;0).

В столб­це Y будем счи­тать ко­ли­че­ство хо­ро­ших ячеек в стро­ке, для этого в ячей­ку Y1 вве­дем фор­му­лу и ско­пи­ру­ем ее до ячей­ки Y6000:

=СУММ(S1:X1).

В столб­це Z будем счи­тать ко­ли­че­ство строк, со­дер­жа­щих хо­ро­шие ячей­ки, для этого в ячей­ку Z1 вве­дем фор­му­лу и ско­пи­ру­ем ее до ячей­ки Z6000:

=ЕСЛИ(Y1>=1;1;0).

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

=СУММ(Z1:Z6000)

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

 

Ответ: 250.

 

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

В ячей­ку G1 за­пи­шем фор­му­лу =И(СЧЁТЕСЛИ($A1:$F1;A1)=1;СЧЁТЕСЛИ($A$:F;A1)=51)

Ско­пи­ру­ем её в ячей­ки H1:L1.

В ячей­ку M1 за­пи­шем фор­му­лу =ИЛИ(G1:L1) и ско­пи­ру­ем ее до конца спис­ка.

В ячей­ку N1 за­пи­шем фор­му­лу =СУММ(M:M) и по­лу­чим ответ.

 

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

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

b = [n for x in a for n in x]

d = {n:b.count(n) for n in set(b)}

ans = sum(any([x.count(n) == 1 and d[n] == 51 for n in x]) for x in a)

print(ans)


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