CAT and MBA Entrance Preparation Module 3 – Data Interpretation and Logical Reasoning (DILR)
Tournaments and points tables
Count round-robin and knockout matches, check a points table against the totals its scoring allows, and find the highest and lowest place a team can reach.
What you will learn
- Count matches and results in round-robin and knockout formats
- Check a points table against the totals its scoring rules allow
- Find the best and worst finishing places a team can still reach
Before you start
What you’ll learn · Before you start
What you will learn
- Count matches and results in round-robin and knockout formats
- Check a points table against the totals its scoring rules allow
- Find the best and worst finishing places a team can still reach
Before you start
On this page
An eight-team league plays 28 matches and a sixteen-team knockout: A tournament in which the loser of each match is out, so n teams play n − 1 matches to leave one champion. 15, and those counts settle many questions before a table is read. With 2 points for a win and 1 to each side for a draw, every match hands out 2 points, so an eight-team table that totals 57 is wrong.
Tournaments in DILR sets are round robin: A tournament in which every team plays every other team; n teams playing once each play n(n − 1)/2 matches., knockouts or both, and their points tables obey simple arithmetic: count the matches, check the totals, then push the results still to come to their extremes to find each team’s best and worst place. A program checks every count.
Count the matches before you read the table
Tournaments in these sets come in two formats, and each format fixes its number of matches. In a round robin every pair of teams meets once, so n teams play as many matches as they make pairs: C(n, 2) = n(n − 1)/2. Each team plays the n − 1 others, and n × (n − 1) counts every match twice, once from each side. Eight teams play 8 × 7 ÷ 2 = 28 matches; a double round robin, home and away, plays twice that.
A knockout counts differently: each match removes exactly one team, and n − 1 teams must go before one is left, so n teams play n − 1 matches whatever the bracket. Sixteen teams play 15. Twelve play 11, with a A pass to the next round without a match, given when a round has an odd number of teams or when a bracket must shrink to a power of 2. in a round that has an odd number of teams. The program plays both formats out:
| Teams | Round robin | Knockout |
|---|---|---|
| 4 | 6 | 3 |
| 8 | 28 | 7 |
| 12 | 66 | 11 |
| 16 | 120 | 15 |
"""Matches, points totals and finishing places, each counted by brute force.
The first part counts matches in round robins and knockouts by playing them out.
The second tries all 3^6 = 729 results of a four-team round robin and prints the
points totals that 3-1-0 scoring allows. The third takes the lesson's league,
Ajmer, Bidar, Churu and Dewas, with four results known, tries the 9 ways the last
two matches can end, and prints each team's possible points and places: ties are
broken in a team's favour for its best place and against it for its worst.
"""
from itertools import combinations, product
def knockout_matches(n):
matches = 0
while n > 1: # each round: pairs play, a bye goes through
matches += n // 2
n = n - n // 2
return matches
for n in (4, 8, 16, 12):
print(f"{n:>2} teams: round robin {len(list(combinations(range(n), 2))):>3} matches,"
f" knockout {knockout_matches(n):>2} matches")
TEAMS = "ABCD"
MATCHES = list(combinations(TEAMS, 2))
def points(results):
p = dict.fromkeys(TEAMS, 0)
for (home, away), r in results.items():
if r == "draw":
p[home] += 1
p[away] += 1
else:
p[r] += 3
return p
totals = set()
for rs in product(*[(home, away, "draw") for home, away in MATCHES]):
totals.add(sum(points(dict(zip(MATCHES, rs))).values()))
print("Four teams, 3-1-0, all 729 results: totals from", min(totals), "to", max(totals))
print("Eight teams, 2-1-0: total", 2 * 28, "| 3-1-0: from", 2 * 28, "to", 3 * 28,
"| a total of 76 means", 3 * 28 - 76, "drawn matches")
known = {("A", "B"): "A", ("C", "D"): "draw", ("A", "C"): "A", ("B", "D"): "D"}
print("After four matches:", points(known), "total", sum(points(known).values()))
left = [m for m in MATCHES if m not in known]
tables = [points({**known, **dict(zip(left, rs))}) for rs in product(*[(h, a, "draw") for h, a in left])]
NAMES = {"A": "Ajmer", "B": "Bidar", "C": "Churu", "D": "Dewas"}
for t in TEAMS:
best = min(1 + sum(p[u] > p[t] for u in TEAMS) for p in tables)
worst = max(sum(p[u] >= p[t] for u in TEAMS) for p in tables)
print(f" {NAMES[t]:<6} points {sorted({p[t] for p in tables})}, best place {best}, worst place {worst}") Output
4 teams: round robin 6 matches, knockout 3 matches
8 teams: round robin 28 matches, knockout 7 matches
16 teams: round robin 120 matches, knockout 15 matches
12 teams: round robin 66 matches, knockout 11 matches
Four teams, 3-1-0, all 729 results: totals from 12 to 18
Eight teams, 2-1-0: total 56 | 3-1-0: from 56 to 84 | a total of 76 means 8 drawn matches
After four matches: {'A': 6, 'B': 0, 'C': 1, 'D': 4} total 11
Ajmer points [6, 7, 9], best place 1, worst place 2
Bidar points [0, 1, 3], best place 3, worst place 4
Churu points [1, 2, 4], best place 2, worst place 4
Dewas points [4, 5, 7], best place 1, worst place 3
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 league.py
Runs on this device, in your browser. The first run downloads Python (about 13.5 MB), which is kept for the next runs.
Your run, in this browser
Checkpoint
Check: Counting round-robin and knockout matches
Every match hands out a fixed number of points
Points tables in these sets come with a scoring rule, and the rule fixes what the whole table can add up to. With 2 points for a win and 1 to each side for a draw, every match hands out 2 points, so an eight-team table totals 56, always. With 3 points for a win, a decisive match hands out 3 and a draw only 2. The total is then 3 × matches − draws: from 56, if every match is drawn, to 84, if none is, and a total of 76 means 84 − 76 = 8 drawn matches.
Step through a four-team league with 3 points for a win and check the total after each result:
The drawing shows the whole scene; its 7 steps are listed below.
Every step as text
- Six matches. Four teams play each other once, 4 × 3 ÷ 2 = 6 matches. A win earns 3 points, a draw 1 to each side and a loss nothing.
- A win. Ajmer beat Bidar, 3 points to none. The table's total is 3, one decisive match's worth.
- A draw. Churu and Dewas drew, 1 point each. A draw hands out 2 points, one less than a win, so the total is 3 + 2 = 5.
- The total, checked. Ajmer beat Churu. Three matches with one draw must total 3 × 3 − 1 = 8, and 6 + 0 + 1 + 1 = 8.
- Four results in. Dewas beat Bidar. Four matches with one draw total 3 × 4 − 1 = 11, which the four teams' 6, 0, 1 and 4 points make.
- Two matches left. Ajmer v Dewas and Bidar v Churu can end in 3 × 3 = 9 ways. Each adds 3 points, or 2 if drawn, so the final total will be 15, 16 or 17.
- What is already settled. Bidar has 0 points and can add at most 3, so it can never pass Ajmer's 6 or Dewas's 4 and finishes third at best. Ajmer finishes first or second whatever happens.
Adding a draw to the total once
A draw gives 1 point to each side, so it adds 2 to the table’s total, not 1. Counting it once makes the 3-1-0 total come out one point short for every draw.
Two more checks hold for any table: every decisive match gives one win and one loss, so wins equal losses, and every draw appears in two teams’ records, so the teams’ draws add up to twice the drawn matches.
Key idea
Count the matches, multiply by the points each match hands out, and correct for draws: a table that misses that total, or has more wins than losses, cannot exist.
Checkpoint
Check: Points totals and draws
Best and worst place: push the other results one way
After four of its six matches, the league reads Ajmer 6, Bidar 0, Churu 1 and Dewas 4, with Ajmer v Dewas and Bidar v Churu still to play. A team’s best place comes from letting it win what it can and letting the other results hurt its rivals; its worst place from the opposite. Teams level on points are counted in the team’s favour for its best place and against it for its worst.
Bidar can reach 3 points at most, below Ajmer’s 6 and Dewas’s 4 whatever happens, so third is its best place. Ajmer’s worst case is a loss to Dewas, which takes Dewas to 7, with Churu beating Bidar to reach 4: Ajmer is still second. The program tries all 9 ways the two matches can end:
| Team | Points now | Final points | Best place | Worst place |
|---|---|---|---|---|
| Ajmer | 6 | 6, 7 or 9 | 1 | 2 |
| Bidar | 0 | 0, 1 or 3 | 3 | 4 |
| Churu | 1 | 1, 2 or 4 | 2 | 4 |
| Dewas | 4 | 4, 5 or 7 | 1 | 3 |
So Bidar cannot finish in the top two, and Ajmer is sure of the top two whatever the last two results are.
Checkpoint
Check: Best and worst places
Practise: eleven questions on matches, totals and places
Eleven untimed questions on the lesson’s league and on new ones. Each session starts with your weakest idea, and a question you miss comes back once later.
Practice that adapts to you
Practise this lesson
11 questions about 5 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.
Six tournament sets, fully worked Pro: opens with a Pro, Premium or Ultimate pass
Six sets that push the counting further: byes, a group stage, a table rebuilt from its points, the points that guarantee a place, the rounds in which two teams can meet, and the teams behind a count of matches. A program plays every case out, so each answer can be checked.
In this part:
- A knockout with byes, and a group stage before it, with worked numbers
- A table rebuilt from its points
- The points that guarantee a place
- Which rounds two teams can meet in
- From a count of matches back to the teams
1 runnable example (Python) · about 6 minutes
Opening this part with your pass…
This part opens with any MySmartCoPilot pass.
- Pro pass · 1 week₹79$2.99
- 30 days₹179$5.99
- 1 year₹1,699$45
One payment; a pass never renews. The price shown is the total you pay: no fees or charges are added at checkout.
Passes can’t be bought right now, so this part can’t be opened at the moment. The free part above stands on its own. If you have a pass, enter your licence key.
It also opens every other in-depth part in Learn and every Pro tool. Sales are final, except where the law gives you a right to withdraw, for example in the EU and the UK (refund policy).
Points tables that cannot exist, and the check that catches them Pro: opens with a Pro, Premium or Ultimate pass
Five checks, in the order that catches most tables fastest, each shown failing on a table built to break it. A program runs them on six tables and confirms each verdict by searching every possible record.
In this part:
- Five checks, from the quickest to the slowest
- Six tables, five of which cannot exist, reproduced
- The one total a team can never make, with a proof
- Where a table usually goes wrong
1 runnable example (Python) · about 4 minutes
Opening this part with your pass…
This part opens with any MySmartCoPilot pass.
- Pro pass · 1 week₹79$2.99
- 30 days₹179$5.99
- 1 year₹1,699$45
One payment; a pass never renews. The price shown is the total you pay: no fees or charges are added at checkout.
Passes can’t be bought right now, so this part can’t be opened at the moment. The free part above stands on its own. If you have a pass, enter your licence key.
It also opens every other in-depth part in Learn and every Pro tool. Sales are final, except where the law gives you a right to withdraw, for example in the EU and the UK (refund policy).
Interview questions
Warm-up: how many matches does a round robin of n teams play?
n(n − 1)/2. Every pair of teams meets once, and n teams make C(n, 2) = n(n − 1)/2 pairs: each team plays the n − 1 others, and n × (n − 1) counts every match twice, once from each side. Eight teams play 28 matches and sixteen play 120. A double round robin, home and away, plays twice as many. A knockout plays only n − 1, because each match removes exactly one team.
-
Fresher to mid
An eight-team league gives 2 points for a win and 1 to each side for a draw, and its table totals 57 points. What is wrong, and what totals are possible if a win gives 3 points instead?
-
Fresher to mid
A knockout has 37 teams. How many matches are played, how many byes does round 1 need if 32 teams are to be left after it, and why does the number of matches not depend on the byes?
-
Fresher to mid
Five teams play a round robin with 3 points for a win and 1 for a draw. Two matches are left, A v E and B v C, and the points are A 7, B 4, C 3, D 4 and E 4. D has finished. What are D's best and worst places, and which results decide them?
Flashcards · 5 cards
Recall it, then check
Say the answer to yourself before you look: recalling it is what makes it stick.
-
How many matches do a round robin and a knockout of n teams play?
A round robin plays C(n, 2) = n(n − 1)/2, every pair once: 28 for eight teams. A knockout plays n − 1, since each match removes one team: 15 for sixteen teams.
-
With 2 points for a win and 1 each for a draw, what must an eight-team round robin's table total?
56, always: every match hands out 2 points, and 28 matches are played. A table that totals 57 is wrong.
-
With 3 points for a win and 1 each for a draw, how does the table total reveal the draws?
Each decided match gives out 3 points and each draw 2, so the table's total equals 3 × matches − draws. For eight teams: 84 with no draws, so a total of 76 means 8 drawn matches.
-
Which two checks hold for any points table?
Wins equal losses, since every decided match produces one of each; and summing every team's draws gives twice the number of drawn matches, since each draw sits in two records.
-
How do you find a team's best and worst possible place?
For the best, let it win what it can and let the other results hurt its rivals, counting ties in its favour; for the worst, do the opposite. Bidar, on 0 with one match left, can finish no higher than third.
Key takeaways
- A round robin of n teams plays n(n − 1)/2 matches and a knockout n − 1, one team out per match.
- 2-1-0 hands out 2 points a match; 3-1-0 hands out 3, or 2 for a draw, so the total fixes the draws.
- Wins equal losses, and the teams’ draws add up to twice the drawn matches.
- A team’s best place comes from pushing the other results against its rivals, its worst from the opposite.
Terms in this lesson
- knockout
- A tournament in which the loser of each match is out, so n teams play n − 1 matches to leave one champion.
- round robin
- A tournament in which every team plays every other team; n teams playing once each play n(n − 1)/2 matches.
References
- Mathematics, Class 11, Chapter 6: Permutations and Combinations (National Council of Educational Research and Training (NCERT))
- itertools: combinations and product (Python Software Foundation)
Related tools
Report a problem with this lesson
Kept only in this browser. Your Learn progress