📋 Условие
Открываем файл и записываем каждую строку в список. Используем Python для обработки данных и ответа на вопрос.
🔍 Подробное решение
Код на Python для решения задач типа 9 из файла '9.txt':
```python
f = open('9.txt')
for s in f:
a = [int(x) for x in s.split()] # сплитуем по пробелу (или ';' если файл CSV)
povt = [x for x in a if a.count(x) == 2] # элементы встречаются ровно 2 раза
razl = [x for x in a if a.count(x) == 1] # уникальные элементы
kr5 = [x for x in a if x % 5 == 0] # элементы кратные 5
dv = [x for x in len(str(x)) == 2] # двухзначные элементы
a = sorted(a) # когда нужно найти мин, макс (сортировка от меньшего к большему)
```
Типичные вопросы:
- Определите количество строк таблицы, в которых сумма наибольшего и наименьшего чисел меньше суммы двух оставшихся
- Найдите максимальное/минимальное значение
- Подсчёт элементов, удовлетворяющих условию
```python
f = open('9.txt')
for s in f:
a = [int(x) for x in s.split()] # сплитуем по пробелу (или ';' если файл CSV)
povt = [x for x in a if a.count(x) == 2] # элементы встречаются ровно 2 раза
razl = [x for x in a if a.count(x) == 1] # уникальные элементы
kr5 = [x for x in a if x % 5 == 0] # элементы кратные 5
dv = [x for x in len(str(x)) == 2] # двухзначные элементы
a = sorted(a) # когда нужно найти мин, макс (сортировка от меньшего к большему)
```
Типичные вопросы:
- Определите количество строк таблицы, в которых сумма наибольшего и наименьшего чисел меньше суммы двух оставшихся
- Найдите максимальное/минимальное значение
- Подсчёт элементов, удовлетворяющих условию
📚 Теория
Обработка CSV-файлов. Подсчёт строк по условиям на числа.
🐍 Шаблон Python
Python
f = open('9.txt')
for s in f:
a = [int(x) for x in s.split()] # или split(';') если файл csv
povt = [x for x in a if a.count(x) == 2] # ровно 2 раза
razl = [x for x in a if a.count(x) == 1] # уникальные
kr5 = [x for x in a if x % 5 == 0] # кратные 5
dv = [x for x in a if len(str(x)) == 2] # двухзначные
a = sorted(a) # для min/max
# Определите количество строк таблицы, в которых сумма
# наибольшего и наименьшего чисел меньше суммы двух оставшихся
k = 0
for s in open('09.txt'):
a = sorted([int(x) for x in s.split()])
if a[0]+a[3] < a[1]+a[2]:
k += 1
print(k)
# Квадрат суммы макс и мин больше суммы квадратов остальных
k = 0
for s in open('09.txt'):
a = sorted([int(x) for x in s.split()])
if (a[0]+a[3])**2 > a[1]**2 + a[2]**2:
k += 1
print(k)
# Наибольшее меньше суммы трёх остальных + ровно 1 пара равных
k = 0
for s in open('09.txt'):
a = sorted([int(x) for x in s.split()])
a2 = [x for x in a if a.count(x)==2]
if a[3] < a[0]+a[1]+a[2] and len(a2)==2:
k += 1
print(k)
# Все различны + квадрат макс меньше суммы квадратов остальных
k = 0
for s in open('09.txt'):
a = sorted([int(x) for x in s.split()])
if len(set(a))==3 and a[2]**2 < a[0]**2 + a[1]**2:
k += 1
print(k) 🐍 Альтернативный способ
Способ 2
# Ровно три числа повторяются дважды + 1 без повторений
# Среднее арифметическое повторяющихся меньше неповторяющегося
k = 0
for s in open('09.txt'):
a = [int(x) for x in s.split()]
a2 = [x for x in a if a.count(x)==2]
a1 = [x for x in a if a.count(x)==1]
if len(a2)==6 and len(a1)==1 and (min(a2)+max(a2))/2 < a1[0]:
k += 1
print(k)
# Ровно одно число повторяется трижды + чётных больше нечётных
k = 0
for s in open('09.txt'):
a = [int(x) for x in s.split()]
a3 = [x for x in a if a.count(x)==3]
ach = [x for x in a if x%2==0]
anch = [x for x in a if x%2!=0]
if len(a3)==3 and len(a1)==4 and len(ach)>len(anch):
k += 1
print(k)