Форум » Электронные таблицы » Задание 9. (№ 5523) (А. Рогов) » Ответить

Задание 9. (№ 5523) (А. Рогов)

Нияз: Здравствуйте. (№ 5523) (А. Рогов) В файле электронной таблицы 9-170.xls в каждой строке содержатся шесть неотрицательных целых чисел. Определите количество строк таблицы, для которых выполнены оба условия: – в строке хотя бы одно число повторяется дважды (ровно 2 раза); – каждое из повторяющихся дважды (ровно 2 раза) чисел превышает каждое неповторяющееся. Вот первая программа f = open("9-170.txt") cnt = 0 for a in f: ----a = sorted(int(i) for i in a.split()) ----if any(a.count(i) == 2 for i in a) and not any(a.count(i) == 4 for i in a) : --------g = sorted(set(x for x in a if a.count(x) == 2)) --------t = sorted(set(x for x in a if a.count(x) == 1)) --------if all(g1 > t1 for g1 in g for t1 in t): ------------cnt += 1 print(cnt) Выдаёт 664, но правильный 665. Однако когда переделываю программу так, f = open("9-170.txt") cnt = 0 for a in f: ----a = sorted(int(i) for i in a.split()) ----if any(a.count(i) == 2 for i in a) : --------g = sorted(set(x for x in a if a.count(x) == 2)) --------t = sorted(set(x for x in a if a.count(x) == 1)) --------if all(g1 > t1 for g1 in g for t1 in t): ------------if any(a.count(i) == 4 for i in a) : ----------------print(a) ----------------print(g, t) ----------------cnt += 1 print(cnt) То ответ верный, и выводит: [1, 1, 1, 1, 3, 3] [3] [] 665 получается он проверяет и засчитывает, потому что там там нет уникальный. хотя в условии сказано [quote]каждое из повторяющихся дважды (ровно 2 раза) чисел превышает каждое неповторяющееся[/quote] Помогите понять это ошибка в программе или в том что я не правильно понял условие, то есть в условии имелось в виду «превышает каждое неповторяющееся дважды (ровно 2 раза)»

Ответов - 3

MrAndrewson: Немного не в том разделе вопрос задали, по 9 заданию есть отдельный. По теме: каждое из повторяющихся дважды (ровно 2 раза) чисел превышает каждое неповторяющееся. Если в строке нет уникальных чисел, например, 2 2 3 3 4 4, то возникает вопрос, подходит ли строка под данное условие? Я бы обратился к понятиям математики, а именно, пустое множество. Пустое множество тривиальным образом является разрешимым (а значит, перечислимым и арифметическим) Раз оно перечислимо, значит, мы можем говорить, что все повторяющиеся числа больше всех неповторяющихся. Т.е. данная строка подходит под условие.

СветланаВ: Второй вопрос этого задания решается в Ексель?

MrAndrewson: СветланаВ пишет: Второй вопрос этого задания решается в Ексель? Можно. Строится 6 дополнительных столбцов, в которых СЧЕТЕСЛИ - узнаем, какое число сколько раз встречается. Еще 6 дополнительных столбцов - там будут повторяющиеся числа: Если в СЧЕТЕСЛИ 2, пишем само число. Еще 6 столбцов аналогично предыдущему - неповторяющиеся. Наконец, условие через И, в котором проверяем все повторяющиеся превышают неповторяющиеся.




полная версия страницы