Для решения задачи о подсчёте количества строк таблицы, где выполняется строго одно из двух условий — наличие повторяющихся чисел и наличие ровно трёх нечётных чисел, мы можем использовать следующий алгоритм:
Шаги решения:
Проверка на повторяющиеся числа:
Нам нужно определить, есть ли в строке повторяющиеся числа. Для этого мы можем использовать множество. Если длина множества (уникальных значений) меньше, чем длина исходного списка чисел, значит, есть повторяющиеся числа.Проверка на ровно три нечётных числа:
Идём по всем числам в строке и считаем, сколько из них нечётные. Если это количество равно трём, это условие выполнено.Суммирование результатов:
Для каждой строки мы проверяем, выполняется ли только одно из условий. Мы будем использовать булевы переменные, чтобы отследить истинность выполнения каждого из условий и затем суммируем строки, где верно только одно из условии.
Примерный алгоритм:
def count_valid_rows(table):
valid_count = 0
for row in table:
has_duplicates = len(set(row)) < len(row)
odd_count = sum(1 for number in row if number % 2 != 0)
has_three_odds = (odd_count == 3)
# Проверяем, выполняется ли строго одно из условий
if (has_duplicates and not has_three_odds) or (not has_duplicates and has_three_odds):
valid_count += 1
return valid_count
Объяснение кода:
- Для каждой строки
row:has_duplicates: Мы создаем множество из элементов строки. Если длина этого множества меньше длины строки, значит, есть повторы.odd_count: Мы перебираем числа в строке и счётчик увеличивается на один каждый раз, когда находим нечётное число.has_three_odds: Условие, выполняющееся, если ровно три числа нечётные.
- В конце для каждой строки проверяем, выполняется ли строго одно из условий. Если да, увеличиваем счётчик.
Таким образом, данный подход позволит подсчитать количество строк, удовлетворяющих заданным условиям.
Итог:
Чтобы получить ответ, необходимо применить описанный алгоритм к таблице. Ответ будет равен количеству строк, для которых выполнено строго одно из заданных условий.