помогите - не могу решить

Э.Р.А

Новичок
Пользователь
Июл 14, 2024
12
0
1
Помогите , не могу найти ошибку (вводные 0 0 6 1 1 4 2 1 2 2 и результат 7 пар):
s = input().split()
cnt = 0
if all(i == s[0] for i in s):
cnt = len(s)*(len(s)-1)//2
else:
for i in set(s):
cnt += s.count(i)//2
print(cnt)
 

Edward

Новичок
Пользователь
Мар 30, 2024
2
0
1
Спасибо!!! Точно , где были мои глаза! Я же уже написал в четвертой строке эту формулу. Ее надо было переписать под метод count.
Python:
s = input().split()
cnt = 0
for i in set(s):
    cnt += s.count(i)*(s.count(i)-1) // 2
print(cnt)
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
969
219
43
20
Москва
1) Вставляй код, как код
1647162378032-png.1702


2) Твой код у меня выводит 3 пары, что ты от него ожидаешь, что не так?

1720960065330.png
 
  • Мне нравится
Реакции: Э.Р.А

Э.Р.А

Новичок
Пользователь
Июл 14, 2024
12
0
1
1) Вставляй код, как код
1647162378032-png.1702


2) Твой код у меня выводит 3 пары, что ты от него ожидаешь, что не так?

Посмотреть вложение 2654
Ожидаю 7 пар - это правильный ответ, в тесте который я прохожу
 

Э.Р.А

Новичок
Пользователь
Июл 14, 2024
12
0
1
Python:
s = input().split()
cnt = 0
if all(i == s[0] for i in s):
    cnt = len(s)*(len(s)-1)//2
else:
    for i in set(s):
        cnt += s.count(i) // 2
print(cnt)
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
969
219
43
20
Москва
Я прост не очень понимаю, откуда берётся 7 пар. Единственное что пока приходит в голову, это то, что есть 3 единички, соответственно из них можно собрать 3 пары, 3 двойки, из них тоже можно собрать 3 пары. Ну и 2 нолика - одна пара. Суммарно 7 пар. Тогда надо посчитать сочетания

Python:
from math import factorial

s = "0 0 6 1 1 4 2 1 2 2".split()
cnt = 0

for i in set(s):
    c = s.count(i)
    if c > 1:
        cnt += factorial(c)/factorial(c-2)/2
print(cnt)

1721152443848.png
 
  • Мне нравится
Реакции: Э.Р.А

Форум IT Специалистов