Sunday Times Teaser 3157 – End-of-Season Analysis
by Howard Williams
Published Sunday March 26 2023 (link)
In our local football league each team plays each other once every season. The winner of a game is awarded one point, the loser no points and each team half a point if the game is drawn.
In the end-of-season analysis, it was found that for each team, exactly half of the points that they were awarded had been awarded for their games against the 15 teams with the lowest number of points.
How many teams were in the league?
One Comment
Leave one →
-
Brian Gladman permalink1234567891011121314151617181920212223242526272829303132333435# a subgroup of T teams, when playing amongst each# other, will obtain T.(T - 1) / 2 points in total# amongst them; and the minimum top score within# the sub group is (T - 1) / 2 points.# the points shared among the bottom 15 teams gained# when playing each other and the minimum best scorebot_15 = 15 * 14 // 2top_bot_min = 7# the minimum score of the bottom team in the top N# teams = (N - 1) / 2, which must be greater than# the minimum score of the top team in the bottom 15for N in range(2 * top_bot_min + 2, 100):# the points shared among the top N teams gained# when playing each othertop_n = N * (N - 1) // 2# the points shared among the whole leagueall_pts = (N + 15) * (N + 14) // 2# the points shared between the top N and# the bottom 15 when they play each othert_vs_b = all_pts - top_n - bot_15# this is equal to the sum of the points# which the top N and bottom 15 teams# obtain when they each play amongst# themselvesif t_vs_b == (top_n + bot_15):print(f"The number of teams in the league was {N + 15}.")break