Задача 11. У турнірі без нічиїх брало участь N команд. Кожна зіграла з кожною по одному матчу. Переможцями вважаються всі команди, які виграли не менш партій, ніж інші. Яку найбільшу кількість переможців може бути в такому турнірі?
програма (Python)
будь ласка допоможіть!!
Answers & Comments
Ответ:
from math import comb, floor
def num_of_winners(n: int) -> int:
max_wins = 0
for i in range(1, n+1):
wins = floor(i * comb(n-i, 2) / (n-i+1))
if wins >= max_wins:
max_wins = wins
else:
break
return i-1
print(num_of_winners(5)) # 3
Объяснение:
У цьому прикладі використовується формула для обчислення кількості перемог команди, що перемогла найбільше матчів. Далі розглядаються менші кількості перемог і визначається максимальна кількість команд, які можуть здобути таку ж кількість перемог.