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 blocks
Ideal blocks require the organizer to plan according to the situation hey are planning for. Block sizes of 4 and of 5 change the dynamic completely.
Tournament
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.
League play
Leagues may require being able to shift between blocks of 4 and 5 players who end up playing 4 hanchan among each other per session.
Pitfalls and criticism of tournament blocks used for mahjong
Block repository
Tournament blocks
Simplest solution: Dutch cycles
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 1, 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 6. Heavily composite numbers of players will lead to collisions when {...}
Notes:
Mathpuzzle.com has a few non-Dutch solutions for the "Social Golfer Problem".
Players | Method | Dutch | Social Golfer | Comment |
---|---|---|---|---|
16 (4*4) | SG | 5 | ABCD EFGH IJKL MNOP, AEIM BFJN CGKO DHLP, AFKP BELO CHIN DGJM, AGLN BHKM CEJP DFIO, AHJO BGIP CFLM DEKN. | |
20 (5*4) | Both | 5 | 5 | ABCD EFGH IJKL MNOP QRST, AEIM BFJQ CGNR DKOS HLPT, AFOT BELR CIPS DGJM HKNQ, AJPR BHMS CEKT DFIN GLOQ, ALNS BGIT CHJO DEPQ FKMR. |
24 (6*4) | SG | 7 | ABKU IJSE QRCM DGFX HLNO PTVW, ACLV IKTF QSDN EHGR BMOP JUWX, ADMW ILUG QTEO FBHS CJNP KRVX, AENX IMVH QUFP GCBT DJKO LRSW, AFOR INWB QVGJ HDCU EKLP MSTX, AEPS IOXC QWHK BEDV FJLM NRTU, AHJT IPRD QXBL CFEW GKMN OSUV. | |
28 (7*4) | SG | 9 | ABCD EFGH IJKL MNab cdef ghij klmn, AEgk BFMc Ndhl GIem HJai CKbn DLfj, AFjn BEae bfim HKcl GLMh CINk DJdg, AIci BJNn EKMj FLdm begl CGaf DHhk, AGbd BHgm ELNi achn FKfk CJej DIMl, AKeh BLbk FIag EJfl Ncjm CHMd DGin, AHNf BGjl FJbh Meik EIdn CLcg DKam, ALal BKdi GJck Mfgn HIbj CEhm DFNe, AJMm BIfh CFil DEbc GKNg HLen adjk. | |
32 (8*4) | SG | 10 | ABCD EFGH IJKL MNPO abcd efgh ijkl mnop, AEIm BgcH DFKp kPdf Maei ChbG jNoL lJnO, Alof Bhkm DNGi FaLO MbHK CPeJ Ejcp gIdn, AciL BjdK DkbJ FgoP fGOp CIla EhMn NeHm, AgNK BElP DIoH hdiO beLp Cjfm FMcJ kaGn, AhJp BFin DcmO INbf leGK CMod EgkL jPaH, AFde BoGJ DEaf hlNc PiKm CHLn gjbO IkMp, APbn BNap DglM koce fHiJ CEKO FhIj dGLm, AjMG BIeO DhPL gaJm cfKn CFkN Eobi ldHp, AkHO BMfL Djen Flbm IPcG Cgip ENdJ hoaK. | |
40 (10*4) | Unkn. | 5/6ND | ||
44 (11*4) | Dutch | 11 | ||
52 (13*4) | Dutch | 13 | ||
68 (17*4) | Dutch | 17 | ||
76 (19*4) | Dutch | 19 |
League play blocks
Considering that league blocks contain 5 players, the counting mechanism has to be recalculated for Dutch cycles. These numbers are for 6-session events or seasons. These Dutch cycle blocks can drop the last fifth in order to make groups of 4, expanding the solved ranges of players from 80% to 100% of the maximal solutions. For 40, using the social golfer solution below will work for 32 to 40 players. Given the distribution of primes, there is a solution within that 20% range except for 66 and 67 players. A way around it would be to have two "separable" leagues running up to 35 players per side, thus covering 66 and 67.
Players | P1 | P2 | P3 | P4 | P5 | Comment |
---|---|---|---|---|---|---|
30 | 0 | 0 | 0 | 0 | 0 | 2 sessions. |
30 | 0 | 1 | 2 | 3 | 4 | |
35 | 0 | 0 | 0 | 0 | 0 | 7 sessions (28P-35P) |
35 | 0 | 1 | 2 | 3 | 4 | |
35 | 0 | 2 | 4 | 6 | 1 | |
35 | 0 | 3 | 6 | 2 | 5 | |
35 | 0 | 4 | 1 | 5 | 2 | |
35 | 0 | 5 | 3 | 1 | 6 | |
35 | 0 | 6 | 5 | 4 | 3 | |
45 | 0 | 0 | 0 | 0 | 0 | 3 sessions |
45 | 0 | 1 | 2 | 3 | 4 | |
45 | 0 | 2 | 4 | 6 | 8 | |
50 | 0 | 0 | 0 | 0 | 0 | 5/6 sessions (40P-50P) |
50 | 0 | 1 | 2 | 3 | 4 | |
50 | 0 | 2 | 4 | 6 | 8 | |
50 | 0 | 3 | 6 | 9 | 2 | |
50 | 0 | 4 | 8 | 2 | 6 | |
50 | 0 | 9 | 5 | 4 | X0 | (non-Dutch, one repeat for 10 pairs.) |
55 | 0 | 0 | 0 | 0 | 0 | 11 sessions (44P-55P) |
55 | 0 | 1 | 2 | 3 | 4 | |
55 | 0 | 2 | 4 | 6 | 8 | |
55 | 0 | 3 | 6 | 9 | 1 | |
55 | 0 | 4 | 8 | 1 | 5 | |
55 | 0 | 5 | 10 | 4 | 9 | |
55 | 0 | 6 | 1 | 7 | 2 | |
55 | 0 | 7 | 3 | 10 | 6 | |
55 | 0 | 8 | 5 | 2 | 10 | |
55 | 0 | 9 | 7 | 5 | 3 | |
55 | 0 | 10 | 9 | 8 | 7 |
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. |
15-player season
Session and Table | Player 1 | Player 2 | Player 3 | Player 4 | Player 5 | Deadline |
---|---|---|---|---|---|---|
Session 1 - Table 1 (+1) | P1 | P2 | P3 | P4 | P5 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 2 | P6 | P7 | P8 | P9 | P10 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 3 | P11 | P12 | P13 | P14 | P15 | Saturday 2015-04-04 23:59 UTC |
Session 2 - Table 1 (+3) | P1 | P4 | P7 | P10 | P13 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 2 | P2 | P5 | P8 | P11 | P14 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 3 | P3 | P6 | P9 | P12 | P15 | Saturday 2015-04-18 23:59 UTC |
Session 3 - Table 1 (+8) | P1 | P9 | P2 | P10 | P3 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 2 | P11 | P4 | P12 | P5 | P13 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 3 | P6 | P14 | P7 | P15 | P8 | Saturday 2015-05-02 23:59 UTC |
Session 4 - Table 1 (+11) | P1 | P12 | P8 | P4 | P15 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 2 | P11 | P7 | P3 | P14 | P10 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 3 | P6 | P2 | P13 | P9 | P5 | Saturday 2015-05-16 23:59 UTC |
Session 5 - Table 1 (+5) | P1 | P6 | P11 | P5 | P10 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 2 | P15 | P4 | P9 | P14 | P3 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 3 | P8 | P13 | P2 | P7 | P12 | Saturday 2015-05-30 23:59 UTC |
Session 6 - Table 1 (+7) | P1 | P8 | P15 | P7 | P14 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 2 | P6 | P13 | P5 | P12 | P4 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 3 | P11 | P3 | P10 | P2 | P9 | Saturday 2015-06-13 23:59 UTC |
25-player season
An ideal number of participants would be 25. 24 is easy, 21 to 23 require a minor adjustment.
Session and Table | Player 1 | Player 2 | Player 3 | Player 4 | Player 5 | Deadline |
---|---|---|---|---|---|---|
Session 1 - Table 1 (+1) | P1 | P2 | P3 | P4 | P5 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 2 | P6 | P7 | P8 | P9 | P10 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 3 | P11 | P12 | P13 | P14 | P15 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 4 | P16 | P17 | P18 | P19 | P20 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 5 | P21 | P22 | P23 | P24 | P25 | Saturday 2015-04-04 23:59 UTC |
Session 2 - Table 1 (-4) | P1 | P22 | P18 | P14 | P10 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 2 | P6 | P2 | P23 | P19 | P15 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 3 | P11 | P7 | P3 | P24 | P20 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 4 | P16 | P12 | P8 | P4 | P25 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 5 | P21 | P17 | P13 | P9 | P5 | Saturday 2015-04-18 23:59 UTC |
Session 3 - Table 1 (+7) | P1 | P17 | P8 | P24 | P15 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 2 | P6 | P22 | P13 | P4 | P20 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 3 | P11 | P2 | P18 | P9 | P25 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 4 | P16 | P7 | P23 | P14 | P5 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 5 | P21 | P12 | P3 | P19 | P10 | Saturday 2015-05-02 23:59 UTC |
Session 4 - Table 1 (+11) | P1 | P12 | P23 | P9 | P20 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 2 | P6 | P17 | P3 | P14 | P25 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 3 | P11 | P22 | P8 | P19 | P5 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 4 | P16 | P2 | P13 | P24 | P10 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 5 | P21 | P7 | P18 | P4 | P15 | Saturday 2015-05-16 23:59 UTC |
Session 5 - Table 1 (+6) | P1 | P7 | P13 | P19 | P25 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 2 | P6 | P12 | P18 | P24 | P5 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 3 | P11 | P17 | P23 | P4 | P10 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 4 | P16 | P22 | P3 | P9 | P15 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 5 | P21 | P2 | P8 | P14 | P20 | Saturday 2015-05-30 23:59 UTC |
Session 6 - Table 1 (+5) | P1 | P6 | P11 | P16 | P21 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 2 | P2 | P7 | P12 | P17 | P22 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 3 | P3 | P8 | P13 | P18 | P23 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 4 | P4 | P9 | P14 | P19 | P24 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 5 | P5 | P10 | P15 | P20 | P25 | Saturday 2015-06-13 23:59 UTC |
35-player season
Solved via Dutch cycles up to 7 sessions.
40-player season
With 40, it has been a problem optimally solved with the "social golfer problem", up to 8 sessions.
Session and Table | Player 1 | Player 2 | Player 3 | Player 4 | Player 5 | Deadline |
---|---|---|---|---|---|---|
Session 1 - Table 1 (+8) | P1 | P9 | P17 | P25 | P33 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 2 | P2 | P10 | P18 | P26 | P34 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 3 | P3 | P11 | P19 | P27 | P35 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 4 | P4 | P12 | P20 | P28 | P36 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 5 | P5 | P13 | P21 | P29 | P37 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 6 | P6 | P14 | P22 | P30 | P38 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 7 | P7 | P15 | P23 | P31 | P39 | Saturday 2015-04-04 23:59 UTC |
Session 1 - Table 8 | P8 | P16 | P24 | P32 | P40 | Saturday 2015-04-04 23:59 UTC |
Session 2 - Table 1 | P1 | P10 | P19 | P28 | P37 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 2 | P2 | P9 | P20 | P27 | P38 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 3 | P3 | P12 | P17 | P26 | P39 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 4 | P4 | P11 | P18 | P25 | P40 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 5 | P5 | P14 | P23 | P32 | P33 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 6 | P6 | P13 | P24 | P31 | P34 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 7 | P7 | P16 | P21 | P30 | P35 | Saturday 2015-04-18 23:59 UTC |
Session 2 - Table 8 | P8 | P15 | P22 | P29 | P36 | Saturday 2015-04-18 23:59 UTC |
Session 3 - Table 1 | P1 | P11 | P21 | P31 | P36 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 2 | P2 | P12 | P22 | P32 | P35 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 3 | P3 | P9 | P23 | P29 | P34 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 4 | P4 | P10 | P24 | P30 | P33 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 5 | P5 | P15 | P17 | P27 | P40 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 6 | P6 | P16 | P18 | P28 | P39 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 7 | P7 | P13 | P19 | P25 | P38 | Saturday 2015-05-02 23:59 UTC |
Session 3 - Table 8 | P8 | P14 | P20 | P26 | P37 | Saturday 2015-05-02 23:59 UTC |
Session 4 - Table 1 | P1 | P12 | P23 | P30 | P40 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 2 | P2 | P11 | P24 | P29 | P39 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 3 | P3 | P10 | P21 | P32 | P38 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 4 | P4 | P9 | P22 | P31 | P37 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 5 | P5 | P16 | P19 | P26 | P36 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 6 | P6 | P15 | P20 | P25 | P35 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 7 | P7 | P14 | P17 | P28 | P34 | Saturday 2015-05-16 23:59 UTC |
Session 4 - Table 8 | P8 | P13 | P18 | P27 | P33 | Saturday 2015-05-16 23:59 UTC |
Session 5 - Table 1 | P1 | P13 | P20 | P32 | P39 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 2 | P2 | P14 | P19 | P31 | P40 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 3 | P3 | P15 | P18 | P30 | P37 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 4 | P4 | P16 | P17 | P29 | P38 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 5 | P5 | P9 | P24 | P28 | P35 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 6 | P6 | P10 | P23 | P27 | P36 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 7 | P7 | P11 | P22 | P26 | P33 | Saturday 2015-05-30 23:59 UTC |
Session 5 - Table 8 | P8 | P12 | P21 | P25 | P34 | Saturday 2015-05-30 23:59 UTC |
Session 6 - Table 1 | P1 | P14 | P18 | P29 | P35 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 2 | P2 | P13 | P17 | P30 | P36 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 3 | P3 | P16 | P20 | P31 | P33 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 4 | P4 | P15 | P19 | P32 | P34 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 5 | P5 | P10 | P22 | P25 | P39 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 6 | P6 | P9 | P21 | P26 | P40 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 7 | P7 | P12 | P24 | P27 | P37 | Saturday 2015-06-13 23:59 UTC |
Session 6 - Table 8 | P8 | P11 | P23 | P28 | P38 | Saturday 2015-06-13 23:59 UTC |
Session 7 - Table 1 | P1 | P15 | P24 | P26 | P38 | (not played) |
Session 7 - Table 2 | P2 | P16 | P23 | P25 | P37 | (not played) |
Session 7 - Table 3 | P3 | P13 | P22 | P28 | P40 | (not played) |
Session 7 - Table 4 | P4 | P14 | P21 | P27 | P39 | (not played) |
Session 7 - Table 5 | P5 | P11 | P20 | P30 | P34 | (not played) |
Session 7 - Table 6 | P6 | P12 | P19 | P29 | P33 | (not played) |
Session 7 - Table 7 | P7 | P9 | P18 | P32 | P36 | (not played) |
Session 7 - Table 8 | P8 | P10 | P17 | P31 | P35 | (not played) |
Session 8 - Table 1 | P1 | P16 | P22 | P27 | P34 | (not played) |
Session 8 - Table 2 | P2 | P15 | P21 | P28 | P33 | (not played) |
Session 8 - Table 3 | P3 | P14 | P24 | P25 | P36 | (not played) |
Session 8 - Table 4 | P4 | P13 | P23 | P26 | P35 | (not played) |
Session 8 - Table 5 | P5 | P12 | P18 | P31 | P38 | (not played) |
Session 8 - Table 6 | P6 | P11 | P17 | P32 | P37 | (not played) |
Session 8 - Table 7 | P7 | P10 | P20 | P29 | P40 | (not played) |
Session 8 - Table 8 | P8 | P9 | P19 | P30 | P39 | (not played) |