Когда группы разной длины, сравнивать только суммы нельзя. Но вычислять дроби тоже необязательно: достаточно умножить крест-накрест.
sum(A) * len(B) < sum(B) * len(A)
Знак неравенства не меняется, потому что длины списков положительны.
Если одно значение встречается три раза, его можно взять как triple[0].
triple[0]
Сначала проверяем структуру: одна тройка и четыре одиночных значения. Только после этого обращаемся к triple[0] и сравниваем средние.
В I:O находятся частоты. P — повторяющееся число, Q и R — сумма и количество одиночных. S сравнивает средние без явного деления.
Измени одно одиночное число и наблюдай, как меняются Q и S. Формула в S сравнивает средние умножением крест-накрест.
Для строки 8 8 8 2 4 6 10 чему равна правая часть 8 * len(uniq)?
8 8 8 2 4 6 10
8 * len(uniq)
Если повторяющихся позиций шесть, а одиночное число одно, средние сравниваются так: