Skip to content

tomazinhal/topcut

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Swiss Top-Cut Point Estimate (4-player FFA)

Tournament model

  • P: number of players in Swiss
  • N: number of Swiss rounds
  • K: number of players who advance to elimination ("top K")
  • Each round consists of 4-player free-for-all tables
  • Table outcome is either:
    • Win table: exactly 1 winner, 3 losers
    • Draw table: all 4 players draw
  • Scoring:
    • Win: X points
    • Draw: Y points
    • Loss: 0 points

A player’s total Swiss points can be written as:

$$ S = wX + dY $$

where w is number of wins, d number of draws, and w + d + l = N.

Consistency check: win rate vs draw rate in 4-player FFA

If a table is not a draw, there is exactly 1 win among the 4 players. Therefore, for an "average" player:

  • Let pD be the probability the table is a draw
  • Then the probability a given player wins is

$$ p_W = \frac{1 - p_D}{4} $$

and the probability the player loses is

$$ p_L = 1 - p_W - p_D $$

So you cannot set an arbitrary per-player win rate and interpret the remainder as "draws"; the remainder is mostly losses.

Approximate cutoff logic (brainstorming model)

This is an estimate for the points needed to finish in the top K of P.

Step 1: single-round points distribution

Per round, the player’s points R is a random variable:

  • R = X with probability pW
  • R = Y with probability pD
  • R = 0 with probability pL

Compute:

  • Mean per round:

$$ \mu = \mathbb{E}[R] = p_W X + p_D Y $$

  • Variance per round:

$$ \sigma^2 = \mathrm{Var}(R) = \mathbb{E}[(R-\mu)^2] $$

Step 2: multi-round total

After N rounds:

$$ S = \sum_{i=1}^{N} R_i $$

$$ \mathbb{E}[S] = N\mu $$

$$ \mathrm{SD}[S] \approx \sqrt{N},\sigma $$

Step 3: convert top-K to a quantile

Top K out of P corresponds to approximately the quantile:

$$ q = 1 - \frac{K}{P} $$

Using a normal approximation:

$$ S_{\mathrm{cut}} \approx \mathbb{E}[S] + z_q,\mathrm{SD}[S] $$

where z_q is the standard-normal quantile for probability q.

This yields a single-number estimate for the points required.

Worked example

Given:

  • P = 100
  • N = 5
  • K = 16
  • X = 5 (win)
  • Y = 1 (draw)
  • Assume average per-player win probability pW = 0.24

From the consistency relation pW = (1 - pD)/4, we get:

  • pD = 1 - 4*pW = 1 - 0.96 = 0.04
  • pL = 1 - pW - pD = 1 - 0.24 - 0.04 = 0.72

Round mean

$$ \mu = 0.24\cdot 5 + 0.04\cdot 1 = 1.24 $$

Round variance (numerical)

$$ \sigma \approx 2.122 $$

Total after N rounds

$$ \mathbb{E}[S] = 5\cdot 1.24 = 6.2 $$

$$ \mathrm{SD}[S] \approx 2.122\sqrt{5} \approx 4.744 $$

Top-K quantile

$$ q = 1 - \frac{16}{100} = 0.84 $$

$$ z_q \approx 0.99 $$

Estimated cutoff:

$$ S_{\mathrm{cut}} \approx 6.2 + 0.99\cdot 4.744 \approx 10.9 $$

So the estimate is ~11 points.

Translate points to wins/draws (N=5)

We need combinations (w, d) such that:

5w + 1d >= 11 with w + d <= 5.

Minimal examples:

  • w=2, d=1 gives 11 points
  • w=3, d=0 gives 15 points (very safe)
  • w=2, d=0 gives 10 points (likely just short vs this estimate)

Sample run

python3 topcut_estimator.py --players 64 --rounds 6 --cut 8 --win-points 3 --draw-points 1
Inputs
  P=64  N=6  K=8
  X=3.0  Y=1.0
  Assumed pW=0.2400 -> implied pD=0.0400, pL=0.7200

Round stats
  E[R]=0.7600  SD[R]=1.2737

Total stats
  E[S]=4.5600  SD[S]=3.1200
  Quantile q=0.8750 (top K of P), z=1.1503

Estimated cutoff
  cutoff ≈ 8.1491
  suggested integer target = 9 points

Minimal (wins, draws) examples reaching suggested target
  w=2, d=3 -> 9.0 points

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages