Tournament blocks

This article is meant as a repository for tournament and competitive blocks used for seating arragements. The content is mainly present in tabular form: reading it for the sake of reading is not recommended.

Ideal tournament blocks

Ideal blocks require the organizer to plan according to the situation hey are planning for.

Tournament criteria to consider

Tournaments often require a single hanchan between 4 players and then a shuffling of new opponents, aiming to complete a maximum or a set number of hanchan with minimal or no repeats between players. That being said, there are imperatives making it impossible to satisfy every need at once.

Opponent mixity

The zero principle: Never assume that your unique circumstances are the template for a fair tournament. Always assume that the model should work in all circumstances, not just tournaments of a specific length.

The first principle: Maximize the player base that any individual can play against. This implies one of the following:

  • With many players (P >= 6*R): The goal is to have people play against everyone once, with the rest at zero. No repeats.
  • With few players (P < 6*R): The goal is to try to have every player play with everyone else once, with a minimal amount of repeats. Gaps may occur, with some players never playing against each other, a best fit is sufficient, as it is not always possible to make an optimal setup.

The second principle: A tournament should present an equitable but not necessarily equal state at every stage in the tournament, with future stages building on preceding ones, contributing to a balanced state.

  • If (R % 4) != 0; then maxWind - minWind = 1.
  • If (R % 4) = 0; then maxWind - minWind can take two values: either zero, giving a wind balance after 4 matches (e.g.: 1111, 2222...),
    or two, with an imbalance. Note that the other two wind counts MUST BE EQUAL to R/4 (e.g.: 2110 or 0121, 1322 or 3221...). Wind counts such as {2200} are unacceptable.
  • If (R % 4) = 1 AND R >= 5; then any wind imbalance must be corrected at this round. {2110} must become {2111} for any concerned player. Players who had a balanced wind count in a round that was a multiple of 4 can be anything, they do not have to repeat the previous order.
  • A player can play the same wind back-to-back as long as the above rules are enforced.

The third principle: A tournament grid should be acceptable regardless of the length of the tournament. Checks and balances should occur at every round when possible before proceeding with the next. A player who is caught with a number of front-loaded matches as the same wind or north-heavy should be assured that the tournament will give him a fair chance throughout the competition. Otherwise, the tournament organizer is technically responsible for inducing players in tilt or runaway positions.

The fourth principle: Players should not play on the same table an abnormal amount of times. Empirically, it shouldn't exceed one of every 3 rounds.

The final principle: Never assume that human intervention will "self-correct" one of the system's flaws. It won't. An example would be the fourth principle above: For multi-day tournaments, the tiles could be picked up, taken away, and replaced the next day. This not only does not guarantee that the same sets can't go back to the same table, if the loading and unloading are done in a consistent manner (by human reflex), there is a much greater chance that the same sets will return to the same location.

Pitfalls and criticism of tournament blocks used for mahjong

Unfair draws leading to player tier protection or segregation

Prior to drawing lots, everyone should have the same chance of facing off against any other opponent. Lots must be established by one of two ways:

  • A computerized draw witnessed by many assigning all players with no preference, or
  • Lots must be drawn at a specific time that anyone can reasonably assist.

Lots cannot be half-drawn prior to the main event at a side event without players' knowledge, nor should it be done at an "optional event" that caters to only a specific in-group of people.

Guest player exception

It is permissible to separate players from a guest organization (e.g.: Japanese pros). However, this exception cannot be used simply to split players by country, club or by other nefarious methods of discrimination. This is mahjong, not the UN. The only time it could be viewed as acceptable is during a specific inter-club rally, or at an event where each faction has equal representation, none of which has occured in NA/EU riichi mahjong. It is never acceptable to do it to avoid one specific player (the top gun, their spouse, their parent or child) and tournament organizers should show enough integrity to not allow or perform such tricks.

Same-table issues with marked tiles

The other mathematically unobservable fact resides in the truth that mahjong tiles can develop scratches and other identifying marks. Simply rotating players by [x,x,x,x]:->[x,x+1,x+2,x+3] will leave a quarter of the table with a potential opportunity to learn and exploit the tile markings. Luckily, the easiest way to minimize that impact is to change the transformation posited above to [x,x,x,x]:->[x+1,x+2,x+3,x+4] for Dutch cycle blocks. Other tournament blocks must show some care for this.

EMA tournaments have tried implementing in some of their events a "final round" where players are then re-ranked 1,2,3,4; 5,6,7,8; et cetera, enabling them to have 8 hanchan in an event where 24 or 48 people show up, as it is mathematically difficult or impossible to satisfy for more than 7. Otherwise, most of their tournament seating arrangements occur though Dutch cycles (transparent but with risks), or through software which may or may not be easily verifiable or reproducible (trusting the black box, security through obscurity). However, they have not statuated on a method for running tournaments. The two main software solutions have benefits but have significant drawbacks. Criticism for these kinds of points in participative tournaments is not generally a thing in Japan, as most tournaments there are knock-out events or small groups that accept duplication of pairings.


Block repository

Tournament blocks

Simplest solution: Dutch cycles

Round Table East South West North
1 1 01 02 03 04
2 1 32 35 38 41
3 1 23 16 37 30
4 1 22 33 44 11
5 1 29 14 43 28
6 1 12 31 06 25
7 1 19 40 21 42
8 1 44 26 19 01
9 1 34 17 24 07
10 1 13 26 39 08
11 1 36 27 18 09
2 5 04 07 10 13
3 9 11 04 18 25
4 2 26 37 04 15
5 6 05 34 19 04
6 10 04 23 42 17
7 3 27 04 29 06
8 7 14 41 04 31
9 11 09 22 35 04
10 4 04 39 30 21
11 8 43 04 33 38
Notes: This is a sample of the table matching for a 44-person tournament. Players are assigned in a linear manner to the tables in Round 1. In further rounds, note the players on Table 1 being backfilled by the people at higher tables in Round 1, and the numerical step downward. Also note the tables that Player 4 will be at in subsequent rounds, also with the numerical step upward.

Balances achieved: Opponent, Wind, Table. This match-up is solved if the number of players is sufficiently large or prime. Works for 7 (maybe more) hanchan for 28, 44, 52, 56, 64, 68, 76++. Works for 6 hanchan with 72. Works for 5 hanchan with 20, 40, 60. Do not use with 24, 32, 36, 48.
Source: User:Senechal.

Dutch cycles (also called ____) serve a purpose of fairly distributing players across a set number of games, all while reducing/preventing repeats between pairs of players. This system works best when prime factors are in play, but breaks down when composite factors are used. Large player bases can mitigate some issues.

The obvious flaw with this solution is that players are segregated into blocks. The method is fair as long as players draw from one pool with all entries mixed AND that the draw occurs fairly, in the presence of all players, or failing that, that the location and time of draw be published beforehand with a fair chance for all to attend. Both NMB tournaments (2011 in Utrecht) and the 2014 WRC used this method, however they both had flaws in their implementation.

The general formula is that table t consists of players [t, t + n/4, t + 2n/4, t + 3n/4] in hanchan 0 {mathematically speaking so the formula works}, and for future hanchan h, tables consist of [t, ((t + 1*h) % n/4) + n/4, ((t + 2*h) % n/4) + 2n/4, ((t + 3*h) % n/4) + 3n/4]. Its usefulness can be demonstrated as soon as there are 44 or more participants, and preferably not a multiple of 3. Heavily composite numbers of players will lead to collisions when tables = h * factor. The 2014 WRC had 120 players over 30 tables: as 120 (as well as 30) is divisible by 10, it would lead to a collision when h = 10, making the 11th hanchan place naively two players who met before across all 30 tables. It is also divisible by 5, but for larger events, a collision cannot occur if 1*factor, 2*factor or 3*factor does not equal or surpass the number of tables.

Tested blocks of 4

These blocks should be as close to optimal as humanly possible. Tournaments aiming to run only 4 rounds may require using a different set of tables as balancing may require different pairings to obtain a specific goal at 4 rounds which is potentially unattainable in a solution aimed for 5 or more rounds. Comments and sources included when possible.

Format is in CSV with extra spaces between tables when possible.

16 Players Round Out of Raw data Balanced data
16 1 4/5 01,05,09,13, 02,06,10,14, 03,07,11,15, 04,08,12,16 AEIM BFJN CGKO DHLP
16 2 4/5 07,04,13,10, 06,01,16,11, 05,02,15,12, 08,03,14,09 GDMJ FAPK EBOL HCNI
16 3 4/5 09,15,06,04, 10,16,05,03, 13,11,02,08, 14,12,01,07 IOFD JPEC MKBH NLAG
16 4 4/5 12,13,03,06, 11,14,04,05, 15,10,08,01, 16,09,07,02 LMCF KNDE OJHA PIGB
16 5 5 01,02,03,04, 05,06,07,08, 09,10,11,12, 13,14,15,16 ABCD EFGH IJKL MNOP
Notes: In 4 rounds, players 13 and 15 will have to play the same table 3 times. In 5 rounds, add players 4, 6, 11 and 14. This is unavoidable, the alternative being that players will play 4 times on a table.

Balances achieved: Opponent, Wind, Table. This match-up is solved.
Source: Pegg, adapted by User:Senechal.

20 Players A Round Out of Raw data
20 1 6/7 01,02,03,04, 05,06,07,08, 09,10,11,12, 13,14,15,16, 17,18,19,20
20 2 6/7 14,03,06,17, 18,04,10,13, 16,05,09,19, 15,08,01,11, 20,07,12,02
20 3 6/7 12,17,16,01, 03,11,13,05, 08,20,14,10, 19,15,04,07, 06,09,02,18
20 4 6/7 18,11,07,03, 04,12,20,06, 17,13,02,15, 14,01,05,09, 10,16,08,19
20 5 6/7 08,19,12,13, 20,15,09,03, 07,01,18,14, 11,06,04,16, 02,05,17,10
20 6 6/7 07,09,13,01, 15,19,10,06, 02,08,16,18, 05,20,11,17, 03,04,14,12
20 7 7/7 04,17,08,09, 12,18,05,15, 11,14,19,02, 06,13,01,20, 10,16,03,07
Notes: This is not a solution to the Social Golfer Problem but it does balance out fairly well to get players to play against almost everyone.

Balances achieved: Wind, Table. This match-up is imperfect. 20 Players B is a simple Dutch cycle of players, more suitable for 4 or 5 rounds.
Source: User:Yazphier, balanced by User:Senechal.

28 Players Dutch Round Out of Raw data
28 1 7 01,08,15,22, 02,09,16,23, 03,10,17,24, 04,11,18,25, 05,12,19,26, 06,13,20,27, 25,26,27,28
28 2 7 13,07,25,19, 14,01,26,20, 08,02,27,21, 09,03,28,15, 10,04,22,16, 11,05,23,17, 12,06,24,18
28 3 7 16,28,06,11, 17,22,07,12, 18,23,01,13, 19,24,02,14, 20,25,03,08, 21,26,04,09, 15,27,05,10
28 4 7 24,20,09,05, 25,21,10,06, 26,15,11,07, 27,16,12,01, 28,17,13,02, 22,18,14,03, 23,19,08,04
28 5 7 04,14,17,27, 05,08,18,28, 06,09,19,22, 07,10,20,23, 01,11,21,24, 02,12,15,25, 03,13,16,26
28 6 7 12,03,23,21, 13,04,24,15, 14,05,25,16, 08,06,26,17, 09,07,27,18, 10,01,28,19, 11,02,22,20
28 7 7 18,26,02,10, 19,27,03,11, 20,28,04,12, 21,22,05,13, 15,23,06,14, 16,24,07,08, 17,25,01,09
Notes: This is a Dutch solution to the seating of 28 players. There are ways to guarantee a shuffle for more rounds but in the context of running a contest with 7 or 8 rounds, a final table solution could be used at this stage with a sense of equitable fairness.

Balances achieved: Opponent, Wind, Table. This match-up is sufficiently fair. Standard warnings apply for a fair draw.
Source: User:Senechal.

44 Players Dutch Round Out of Raw data
44 1 7 01,12,23,34, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, 11,22,33,44
44 2 7 xx,11,xx,xx, 22,01,xx,xx, 12,xx,xx,33, xx,xx,44,23, xx,xx,34,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx
44 3 7 xx,xx,xx,xx, xx,xx,11,xx, xx,xx,01,xx, xx,xx,xx,22, xx,xx,xx,12, 33,xx,xx,xx, 23,xx,xx,xx, xx,44,xx,xx, xx,34,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx
44 4 7 44,xx,xx,xx, 34,xx,xx,xx, xx,xx,xx,11, xx,xx,xx,01, xx,xx,xx,xx, xx,xx,22,xx, xx,xx,12,xx, xx,xx,xx,xx, xx,33,xx,xx, xx,23,xx,xx, xx,xx,xx,xx
44 5 7 xx,xx,xx,xx, xx,xx,23,xx, xx,xx,xx,xx, xx,xx,xx,xx, 01,xx,xx,xx, xx,xx,xx,34, xx,xx,xx,xx, xx,22,xx,xx, xx,12,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx
44 6 7 xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,xx,33, xx,xx,xx,23, xx,01,xx,xx, xx,xx,xx,xx, xx,xx,xx,xx, xx,xx,44,xx, 22,xx,34,xx, 12,xx,xx,xx
44 7 7 xx,xx,06,22, xx,44,07,12, xx,34,08,xx, xx,xx,09,xx, xx,xx,10,xx, xx,xx,11,xx, 33,xx,01,xx, 23,xx,02,xx, xx,xx,03,xx, xx,xx,04,xx, xx,xx,05,xx
Notes: This is a Dutch solution to the seating of 44 players. Should there be a need to extend beyond 7 rounds, this can go up to 11.

Balances achieved: Opponent, Wind, Table. This match-up is sufficiently fair. Standard warnings apply for a fair draw.
Source: User:Senechal.


Players Block Of Raw data Balanced data
20 1 5 ABCD EFGH IJKL MNOP QRST
20 2 5 AEIM BFJQ CGNR DKOS HLPT
20 3 5 AFOT BELR CIPS DGJM HKNQ
20 4 5 AJPR BHMS CEKT DFIN GLOQ
20 5 5 ALNS BGIT CHJO DEPQ FKMR
24 1 7 ABKU IJSE QRCM DGFX HLNO PTVW
24 2 7 ACLV IKTF QSDN EHGR BMOP JUWX
24 3 7 ADMW ILUG QTEO FBHS CJNP KRVX
24 4 7 AENX IMVH QUFP GCBT DJKO LRSW
24 5 7 AFOR INWB QVGJ HDCU EKLP MSTX
24 6 7 AEPS IOXC QWHK BEDV FJLM NRTU
24 7 7 AHJT IPRD QXBL CFEW GKMN OSUV
28 1 9 ABCD EFGH IJKL MNab cdef ghij klmn ABCD EFGH IJKL MNab cdef ghij klmn
28 2 9 AEgk BFMc Ndhl GIem HJai CKbn DLfj AEgk cBMF hNld eIGm JaHi bKnC LfDj
28 3 9 AFjn BEae bfim HKcl GLMh CINk DJdg FAjn aeBE fimb HlKc MhLG CkNI DgdJ
28 4 9 AIci BJNn EKMj FLdm begl CGaf DHhk iIAc NnJB KjEM mdFL gbel GCaf HDkh
28 5 9 AGbd BHgm ELNi achn FKfk CJej DIMl dGbA BmHg ELiN ncha kFfK jJCe lMID (c and H wind-imbalanced)
28 6 9 AKeh BLbk FIag EJfl Ncjm CHMd DGin A... .B.. .N.. ..G. ..c. .H.. ...D
28 7 9 AHNf BGjl FJbh Meik EIdn CLcg DKam .A.. ..B. ..N. ...G .... .... D...
28 8 9 ALal BKdi GJck Mfgn HIbj CEhm DFNe ..A. ...B ...N G... .... .... .D..
28 9 9 AJMm BIfh CFil DEbc GKNg HLen adjk ...A B... N... .G.. .... .... ..D.
32 1 10 ABCD EFGH IJKL MNPO abcd efgh ijkl mnop
32 2 10 AEIm BgcH DFKp kPdf Maei ChbG jNoL lJnO
32 3 10 Alof Bhkm DNGi FaLO MbHK CPeJ Ejcp gIdn
32 4 10 AciL BjdK DkbJ FgoP fGOp CIla EhMn NeHm
32 5 10 AgNK BElP DIoH hdiO beLp Cjfm FMcJ kaGn
32 6 10 AhJp BFin DcmO INbf leGK CMod EgkL jPaH
32 7 10 AFde BoGJ DEaf hlNc PiKm CHLn gjbO IkMp
32 8 10 APbn BNap DglM koce fHiJ CEKO FhIj dGLm
32 9 10 AjMG BIeO DhPL gaJm cfKn CFkN Eobi ldHp
32 10 10 AkHO BMfL Djen Flbm IPcG Cgip ENdJ hoaK.
36 1 8 [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24], [25, 26, 27, 28], [29, 30, 31, 32], [33, 34, 35, 36] ]
36 2 8 [ [1, 5, 9, 13], [2, 6, 10, 17], [3, 7, 11, 21], [4, 8, 12, 25], [14, 18, 22, 29], [15, 19, 23, 33], [16, 26, 30, 34], [20, 27, 31, 35], [24, 28, 32, 36] ]
36 3 8 [ [1, 6, 11, 25], [2, 7, 9, 16], [3, 5, 10, 20], [4, 14, 21, 33], [8, 15, 18, 32], [12, 13, 17, 22], [19, 27, 30, 36], [23, 28, 31, 34], [24, 26, 29, 35] ]
36 4 8 [ [1, 10, 18, 21], [2, 8, 13, 29], [3, 14, 31, 36], [4, 9, 20, 23], [5, 15, 17, 28], [6, 12, 16, 19], [7, 26, 32, 33], [11, 24, 27, 34], [22, 25, 30, 35] ]
36 5 8 [ [1, 14, 24, 30], [2, 12, 18, 34], [3, 9, 17, 32], [4, 6, 28, 35], [5, 21, 29, 36], [7, 10, 19, 25], [8, 16, 23, 27], [11, 13, 20, 33], [15, 22, 26, 31] ]
36 6 8 [ [1, 12, 23, 26], [2, 11, 22, 36], [3, 6, 13, 24], [4, 10, 16, 32], [5, 18, 27, 33], [7, 20, 28, 30], [8, 14, 19, 35], [9, 15, 29, 34], [17, 21, 25, 31] ]
36 7 8 [ [1, 19, 28, 29], [2, 5, 23, 30], [3, 12, 15, 27], [4, 11, 18, 31], [6, 9, 26, 36], [7, 14, 17, 34], [8, 10, 22, 33], [13, 21, 32, 35], [16, 20, 24, 25] ]
36 8 8 [ [1, 7, 15, 35], [2, 14, 25, 32], [3, 16, 18, 28], [4, 17, 27, 29], [5, 11, 19, 26], [6, 20, 22, 34], [8, 9, 21, 30], [10, 13, 23, 36], [12, 24, 31, 33] ]
40 all of 5/8ND Dutch cycles break after 5.
40A 1 9 [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24], [25, 26, 27, 28], [29, 30, 31, 32], [33, 34, 35, 36], [37, 38, 39, 40] ]
40A 2 9 [ [1, 5, 9, 13], [2, 6, 10, 17], [3, 7, 11, 21], [4, 8, 12, 25], [14, 18, 22, 29], [15, 19, 23, 33], [16, 20, 24, 37], [26, 30, 34, 38], [27, 31, 35, 39], [28, 32, 36, 40] ]
40A 3 9 [ [1, 6, 11, 25], [2, 7, 9, 29], [3, 5, 10, 15], [4, 13, 17, 24], [8, 14, 21, 34], [12, 16, 22, 39], [18, 23, 28, 37], [19, 26, 31, 36], [20, 32, 35, 38], [27, 30, 33, 40] ]
40A 4 9 [ [1, 12, 15, 29], [2, 22, 28, 34], [3, 6, 30, 35], [4, 9, 14, 36], [5, 25, 33, 37], [7, 10, 24, 32], [8, 13, 19, 27], [11, 17, 23, 40], [16, 18, 31, 38], [20, 21, 26, 39] ]
40A 5 9 [ [1, 8, 24, 28], [2, 5, 11, 39], [3, 19, 22, 25], [4, 15, 21, 38], [6, 14, 26, 32], [7, 18, 35, 40], [9, 20, 23, 27], [10, 30, 36, 37], [12, 13, 31, 34], [16, 17, 29, 33] ]
40A 6 9 [ [1, 14, 17, 39], [2, 8, 35, 37], [3, 18, 27, 32], [4, 22, 31, 33], [5, 16, 23, 26], [6, 12, 21, 36], [7, 13, 28, 38], [9, 15, 24, 30], [10, 20, 25, 40], [11, 19, 29, 34] ]
40A 7 9 [ [1, 22, 36, 38], [2, 23, 25, 32], [3, 26, 29, 37], [4, 5, 18, 34], [6, 13, 33, 39], [7, 15, 17, 27], [8, 11, 20, 30], [9, 21, 28, 31], [10, 16, 19, 35], [12, 14, 24, 40] ]
40A 8 9 [ [1, 19, 21, 40], [2, 12, 18, 33], [3, 8, 17, 31], [4, 7, 16, 30], [5, 20, 28, 29], [6, 24, 27, 34], [9, 22, 26, 35], [10, 14, 23, 38], [11, 13, 32, 37], [15, 25, 36, 39] ]
40A 9 9 [ [1, 7, 23, 31], [2, 13, 20, 36], [3, 16, 34, 40], [4, 10, 29, 39], [5, 12, 27, 38], [6, 15, 22, 37], [8, 9, 32, 33], [11, 18, 24, 26], [14, 19, 28, 30], [17, 21, 25, 35] ]
40B 1 8 [ [1, 11, 21, 31], [2, 12, 22, 32], [3, 13, 23, 33], [4, 14, 24, 34], [5, 15, 25, 35], [6, 16, 26, 36], [7, 17, 27, 37], [8, 18, 28, 38], [9, 19, 29, 39], [10, 20, 30, 40] ]
40B 2 8 [ [37, 28, 19, 10], [38, 29, 20, 1], [39, 30, 11, 2], [40, 21, 12, 3], [31, 22, 13, 4], [32, 23, 14, 5], [33, 24, 15, 6], [34, 25, 16, 7], [35, 26, 17, 8], [36, 27, 18, 9] ]
40B 3 8 [ [25, 33, 9, 17], [26, 34, 10, 18], [27, 35, 1, 19], [28, 36, 2, 20], [29, 37, 3, 11], [30, 38, 4, 12], [21, 39, 5, 13], [22, 40, 6, 14], [23, 31, 7, 15], [24, 32, 8, 16] ]
40B 4 8 [ [1x, x, 3x, 2x], [1x, x, 3x, 2x], [1x, x, 3x, 2x], [1x, x, 3x, 2x], [1x, x, 3x, 2x], [1x, x, 3x, 2x], [1x, x, 3x, 2x], [1x, x, 3x, 2x], [1x, x, 3x, 2x], [1x, x, 3x, 2x] ]
40B 5 8 [ [x, 1x, 2x, 3x],  ]
40B 6 8 [ [1, 7, 23, 31], [2, 13, 20, 36], [3, 16, 34, 40], [4, 10, 29, 39], [5, 12, 27, 38], [6, 15, 22, 37], [8, 9, 32, 33], [11, 18, 24, 26], [14, 19, 28, 30], [17, 21, 25, 35] ]
40B 7 8 [ [1, 7, 23, 31], [2, 13, 20, 36], [3, 16, 34, 40], [4, 10, 29, 39], [5, 12, 27, 38], [6, 15, 22, 37], [8, 9, 32, 33], [11, 18, 24, 26], [14, 19, 28, 30], [17, 21, 25, 35] ]
40B 8 8 [ [1, 7, 23, 31], [2, 13, 20, 36], [3, 16, 34, 40], [4, 10, 29, 39], [5, 12, 27, 38], [6, 15, 22, 37], [8, 9, 32, 33], [11, 18, 24, 26], [14, 19, 28, 30], [17, 21, 25, 35] ]
44 (11*4) Dutch 11
52 (13*4) Dutch 13
68 (17*4) Dutch 17
(prime*4) Dutch prime

League play blocks

This section may receive heavy edits or be deleted in the future. It is not worth the effort to consider the league issues until a far off future.

Considering that league blocks contain 5 players, the counting mechanism has to be recalculated almost from scratch. These numbers are to satisfy 6-session events or seasons. For all Dutch cycles, as well as some non-Dutch SGP blocks can drop the last fifth in order to make groups of 4, expanding the solved ranges of players from as low as 80% to 100% of the maximal solutions. Considering all our solutions for 25+ are good for 6+ sessions, solutions for larger numbers can concatenate smaller groups with the minimum amount of sessions needed to make a larger group that satisfies that lower bound. The solution for 25 players in 6 sessions can drop one player, the solution for 40 present below can drop 5, although it may be possible that a solution allowing to drop 8 exists.

Players Round Of Match-ups
25 1st of 6 [ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25] ]
25 2nd of 6 [ [1, 6, 11, 16, 21], [2, 7, 12, 17, 22], [3, 8, 13, 18, 23], [4, 9, 14, 19, 24], [5, 10, 15, 20, 25] ]
25 3rd of 6 [ [1, 7, 13, 19, 25], [2, 8, 14, 20, 21], [3, 9, 15, 16, 22], [4, 10, 11, 17, 23], [5, 6, 12, 18, 24] ]
25 4th of 6 [ [1, 8, 15, 17, 24], [2, 9, 11, 18, 25], [3, 10, 12, 19, 21], [4, 6, 13, 20, 22], [5, 7, 14, 16, 23] ]
25 5th of 6 [ [1, 9, 12, 20, 23], [2, 10, 13, 16, 24], [3, 6, 14, 17, 25], [4, 7, 15, 18, 21], [5, 8, 11, 19, 22] ]
25 6th of 6 [ [1, 10, 14, 18, 22], [2, 6, 15, 19, 23], [3, 7, 11, 20, 24], [4, 8, 12, 16, 25], [5, 9, 13, 17, 21] ]
30 1st of 6 [ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28, 29, 30] ]
30 2nd of 6 [ [1, 6, 11, 16, 21], [2, 7, 13, 19, 30], [3, 8, 14, 24, 29], [4, 9, 20, 25, 28], [5, 15, 18, 23, 27], [10, 12, 17, 22, 26] ]
30 3rd of 6 [ [1, 8, 13, 20, 22], [2, 6, 12, 23, 28], [3, 9, 11, 18, 30], [4, 15, 16, 24, 26], [5, 7, 17, 25, 29], [10, 14, 19, 21, 27] ]
30 4th of 6 [ [1, 7, 18, 24, 28], [2, 10, 11, 20, 29], [3, 6, 15, 19, 22], [4, 14, 17, 23, 30], [5, 9, 13, 21, 26], [8, 12, 16, 25, 27] ]
30 5th of 6 [ [1, 10, 15, 25, 30], [2, 9, 17, 24, 27], [3, 7, 12, 20, 21], [4, 6, 13, 18, 29], [5, 14, 16, 22, 28], [8, 11, 19, 23, 26] ]
30 6th of 6 [ [1, 9, 12, 19, 29], [5, 6, 20, 24, 30], [4, 7, 11, 22, 27], [8, 15, 17, 21, 28], [3, 10, 13, 16, 23], [2, 14, 18, 25, 26] ]
35 all of 7 Dutch cycles. {28P-35P}
40 1st of 6 [ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28, 29, 30], [31, 32, 33, 34, 35], [36, 37, 38, 39, 40] ]
40 2nd of 6 [ [1, 6, 11, 16, 21], [2, 7, 12, 26, 31], [3, 8, 13, 17, 36], [4, 9, 14, 27, 32], [5, 10, 15, 22, 37], [18, 23, 28, 33, 38], [19, 24, 29, 34, 39], [20, 25, 30, 35, 40] ]
40 3rd of 6 [ [1, 7, 14, 17, 22], [2, 6, 13, 28, 34], [3, 10, 11, 27, 40], [4, 8, 12, 20, 33], [5, 9, 16, 25, 39], [15, 21, 29, 31, 38], [18, 24, 26, 35, 36], [19, 23, 30, 32, 37] ]
40 4th of 6 [ [1, 8, 15, 19, 35], [2, 16, 22, 27, 33], [3, 9, 12, 24, 38], [4, 6, 30, 31, 36], [5, 14, 23, 34, 40], [7, 11, 20, 28, 39], [10, 17, 21, 26, 32], [13, 18, 25, 29, 37] ]
40 5th of 6 [ [1, 9, 13, 31, 40], [2, 15, 20, 24, 32], [3, 14, 21, 33, 39], [4, 16, 26, 34, 37], [5, 7, 27, 35, 38], [6, 12, 17, 23, 29], [8, 11, 18, 22, 30], [10, 19, 25, 28, 36] ]
40 6th of 6 [ [1, 10, 12, 18, 39], [2, 9, 11, 23, 35], [3, 6, 15, 25, 26], [4, 13, 19, 22, 38], [5, 17, 24, 30, 33], [7, 16, 29, 32, 40], [8, 14, 28, 31, 37], [20, 21, 27, 34, 36] ]
45 1st of 6 [ [20, 24, 32, 39, 43], [6, 29, 31, 33, 42], [7, 11, 17, 34, 45], [12, 14, 15, 18, 25], [2, 5, 8, 9, 19], [1, 4, 16, 27, 28], [3, 13, 23, 30, 35], [10, 22, 26, 38, 40], [21, 36, 37, 41, 44] ]
45 2nd of 6 [ [5, 17, 28, 40, 41], [11, 13, 22, 24, 27], [8, 25, 32, 33, 37], [9, 10, 20, 30, 45], [2, 12, 16, 29, 44], [3, 15, 36, 42, 43], [4, 6, 18, 23, 26], [1, 14, 19, 21, 34], [7, 31, 35, 38, 39] ]
45 3rd of 6 [ [4, 21, 25, 31, 40], [13, 16, 41, 43, 45], [2, 20, 22, 33, 34], [9, 14, 23, 27, 38], [17, 18, 19, 29, 32], [7, 8, 12, 30, 36], [1, 15, 26, 37, 39], [3, 5, 6, 24, 44], [10, 11, 28, 35, 42] ]
45 4th of 6 [ [19, 27, 40, 42, 45], [4, 12, 17, 22, 39], [8, 13, 20, 26, 44], [18, 24, 30, 37, 38], [7, 23, 28, 29, 43], [6, 11, 15, 21, 32], [3, 9, 16, 25, 34], [1, 5, 33, 35, 36], [2, 10, 14, 31, 41] ]
45 5th of 6 [ [4, 7, 9, 15, 41], [11, 25, 26, 29, 36], [8, 16, 18, 39, 40], [27, 30, 31, 34, 44], [14, 22, 35, 37, 43], [5, 12, 13, 21, 42], [6, 19, 20, 28, 38], [1, 2, 3, 32, 45], [10, 17, 23, 24, 33] ]
45 6th of 6 [ [4, 8, 24, 29, 45], [6, 13, 14, 36, 40], [15, 16, 19, 22, 23], [5, 7, 10, 18, 27], [3, 17, 20, 31, 37], [1, 11, 38, 43, 44], [9, 21, 26, 28, 33], [12, 32, 34, 35, 41], [2, 25, 30, 39, 42] ]
50 all of 5 Dutch cycles work for 5 sessions only.
50 1st of 7 [ [5, 16, 18, 25, 29], [1, 7, 27, 42, 46], [4, 6, 15, 21, 41], [3, 11, 26, 30, 32], [9, 19, 24, 37, 38], [8, 13, 33, 43, 45], [35, 40, 47, 48, 49], [17, 23, 31, 34, 50], [2, 12, 14, 20, 36], [10, 22, 28, 39, 44] ]
50 2nd of 7 [ [8, 20, 40, 42, 44], [15, 16, 17, 22, 47], [1, 10, 23, 29, 38], [3, 6, 28, 36, 48], [2, 24, 27, 33, 39], [7, 11, 13, 21, 31], [4, 32, 35, 45, 46], [9, 14, 18, 34, 41], [25, 30, 37, 43, 50], [5, 12, 19, 26, 49] ]
50 3rd of 7 [ [19, 21, 29, 32, 47], [8, 24, 25, 28, 34], [3, 18, 31, 44, 46], [4, 14, 39, 43, 49], [2, 10, 15, 42, 45], [9, 11, 16, 20, 50], [5, 7, 23, 37, 40], [1, 13, 26, 41, 48], [22, 33, 35, 36, 38], [6, 12, 17, 27, 30] ]
50 4th of 7 [ [10, 14, 16, 21, 26], [23, 25, 36, 39, 42], [9, 13, 32, 44, 49], [3, 5, 8, 22, 27], [4, 11, 17, 38, 40], [12, 24, 43, 46, 48], [2, 7, 19, 41, 50], [1, 18, 28, 30, 33], [6, 34, 37, 45, 47], [15, 20, 29, 31, 35] ]
50 5th of 7 [ [13, 20, 22, 30, 34], [26, 27, 38, 45, 50], [1, 11, 36, 43, 44], [16, 32, 33, 37, 41], [4, 9, 12, 31, 47], [14, 28, 29, 40, 46], [5, 6, 24, 35, 42], [7, 15, 18, 39, 48], [2, 8, 21, 23, 49], [3, 10, 17, 19, 25] ]
50 6th of 7 [ [6, 26, 31, 39, 40], [11, 14, 22, 37, 42], [2, 5, 9, 17, 48], [4, 24, 29, 44, 50], [15, 19, 34, 36, 46], [3, 7, 20, 33, 49], [10, 18, 27, 32, 43], [13, 16, 23, 28, 35], [1, 12, 21, 25, 45], [8, 30, 38, 41, 47] ]
50 7th of 7 [ [11, 18, 23, 24, 47], [22, 31, 41, 45, 49], [3, 9, 21, 40, 43], [2, 6, 13, 38, 46], [14, 25, 27, 35, 44], [12, 15, 28, 32, 50], [4, 5, 10, 33, 34], [7, 8, 26, 29, 36], [1, 17, 20, 37, 39], [16, 19, 30, 42, 48] ]
55 all of 11 Dutch cycles. {44P-55P}
60 all of 6 G(25+35) or G(30+30).
65 all of 13 Dutch cycles. {52P-65P}
70 all of 7 G(35+35).
75 all of 6 G(35+40), G(30+45) {both 60P-75P}; G(25+25+25) {72P-75P}.
{5*prime} all of {prime} Dutch cycles. {{4*prime}P-{5*prime}P}; prime>=5. (25 is the special case, where it gets the sixth extra session by virtue of being 25 = 5^2.)

Trying to group a league with a variable amount of entries poses its own challenges. In order to start a league asymmetrically, it is possible to start seeding groups from 17 members and every 5 onward. However, this alone will guarantee that groups can be made but not that no rematches will occur. For an ideal solution like 35, in theory, 7 groups of 4 can use the same solution, however, with 3 groups pre-formed at 27 members, the minimum requirement would be to end up with 31 players [31, 35]. Likewise, for the 55 solution, overloading groups of 5 may render the ability to make 11 groups but with more groups of 4. If [48, 50] players are present, two separate blocks of 24/25 are usable for 6-session seasons.

Min Groups of 5 Groups of 4 Spare Max Comment
27 3 0 12 35 <=30 : 6 groups, >=31 : 7 groups.
32 4 0 12 40 <=35 : 7 groups, >=36 : 8 groups.
37 5 0 12 45 <=40 : 8 groups, >=41 : 9 groups.
42 5 0 17 50 <=45 : 9 groups, >=46 : 10 groups.
48 7 0 12 50 <=50 : 10 groups in 25s, >=51 : 11 groups in 55.
52 7 0 17 60 <=55 : 11 groups in 55, >=56 : 12 groups in 25 and 35.
57 8 0 17 60 <=60 : 12 groups in 25 and 35, >=61 : 14 groups in 35s (5*8 + 4*4 + 5*1).
62 10 0 12 60 <=65 : 13 groups, >=66 : 14 groups.
67 11 0 12 60 <=70 : 14 groups, >=71 : 15 groups.
72 12 0 12 60 <=75 : 15 groups, >=76 : 16 groups.


X-player season

Min. Players Max Players Mechanism Comment
10 10 5P randomize Repeats will forcibly occur.
11 12 Not possible With thirds promotion, 10 in top group, 18 in next, top group gets 13+.
13 15 Mix and randomize Repeats will forcibly occur.
16 16 4P perfect + Siberian or Random (6th) 5 sessions covered, 6th pairing could be done randomly at the start or drawn later (at a pre-announced time) relative to current ranking.
17 23 Mix and randomize Repeats will most likely occur.
24 25 5P perfect For 24 players, ignore 25th player in grid, those sessions are 4P
26 27 Mix and randomize {TBD.}
28 28 Use 4P
29 30 Use 5P For 29 players, ignore 30th player in grid, those sessions are 4P
31 35 Use 5P grid for 35
36 40 Use 5P grid for 40 Grid can ignore last 5 players.


WAML-relevant summary

If we can get player blocks of 25♥, 30♥, 35, 40♥, 45♥, 50♥, 55 or sums of their multiples (60♥ = 25♥ + 35; 65 = 25♥ + 40; 70 = 35 + 35; 75yes; 80yes; 85♥♥yes; 90yes; 95yes; 100♥yes; ...) or a number significantly close, with 80%-100% range (or 100% -1 per heart), then we can cover the whole span from 48+ if we stop forming asymmetrical groups after 4 are made. A fifth group can be drawn at 57 with no dificulty.

2021 Canada WRC options

With the 2020 pandemic forcing a lot of play online, newer interest has been developing into launching a balanced league.

Some new results have come up allowing more flexibility in league play, within reason. The parameters involve a 5-session season, with an intended minimum group size of 16. Data provided in braces, 0-indexed, if differing from above solutions. General descriptors without data remain 1-indexed.

Min. Players Max Players Mechanism Comment
16 19 4P perfect + AABBB + BBCCD + CCAAC First 16 players play each other without repeats. Players 17-19 have between 6-9 duplicates, no triplicates.
20 25 Dutch cycle for 20 + CCABD + AEDCA + BDBDC + DBCEE + EAEAB 20 and 21 have zero duplicates. 22-25 have 5 duplicates, and no triplicates.
26 27 Mix and randomize {TBD.}
28 28 Use 4P
29 30 Use 5P For 29 players, ignore 30th player in grid, those sessions are 4P
31 35 Use 5P grid for 35
36 40 Use 5P grid for 40 Grid can ignore last 5 players.

External links

  • Mathpuzzle.com has a few non-Dutch solutions for the "Social Golfer Problem".
  • Warwick Harvey (web.archive.org) had also published many solutions for groups with 10 or fewer groups and players of sizes in a simple to understand manner.