{
 "license": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/",
 "attribution": "Wheel Cue (wheelcue.com)",
 "source": "https://wheelcue.com/research/secret-santa-draw-odds/",
 "slug": "secret-santa-draw-odds",
 "generatedAt": "2026-10-10T14:16:41.001Z",
 "node": "v24.21.0",
 "randomJsSha256": "946e82a3c426d698779d3246c37c732f771db3873c93239ef3952aea39be1e2d",
 "totalSpins": 97173556,
 "rawDraws": 97173556,
 "wheelSpins": 76171953,
 "shuffles": 3017159,
 "seconds": 128.3,
 "checksTotal": 77,
 "checksPassed": 77,
 "checksSimulatedVsExact": 64,
 "checksChiSquare": 10,
 "checksSanity": 3,
 "params": {
  "people": "Person i (0-based in the code, 1-based in the text) is also the i-th to draw. Names are distinct.",
  "hat": {
   "sizes": [
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15,
    16,
    17,
    18,
    19,
    20
   ],
   "sessions": 200000,
   "sessionsAt10": 1000000,
   "method": "a model of a paper hat drawn in turn: each person in turn spins the name picker over the names still on it and takes the result (Remove & spin); the last person gets the last name without a spin. Same chances as a well-mixed paper hat, but not secret on the wheel: every drawn name shows on screen and in the result history"
  },
  "redraw": {
   "rule": "if anyone draws their own name, the whole hat is drawn again, until nobody has their own name",
   "n": 10,
   "sessions": 150000,
   "uniformityN": 5,
   "uniformitySessions": 200000,
   "triesShown": [
    1,
    2,
    3,
    5
   ]
  },
  "putBack": {
   "rule": "a person who draws their own name puts it back and draws again (Spin again); if the last person is left with only their own name the draw dead-ends and starts over from the top",
   "exactSizes": [
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15,
    16,
    17,
    18,
    19,
    20
   ],
   "enumeratedSizes": [
    4,
    5,
    6,
    7,
    8,
    9,
    10
   ],
   "chainSizes": [
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15,
    16,
    17,
    18,
    19,
    20
   ],
   "simulatedSizes": [
    4,
    5,
    6,
    8,
    12,
    15,
    20
   ],
   "sessions": 200000,
   "n": 10,
   "sessionsAtN": 1000000,
   "uniformityN": 5,
   "uniformitySessions": 300000
  },
  "loop": {
   "rule": "press Shuffle once; each person gives to the name below theirs and the last name to the first",
   "n": 10,
   "shuffles": 1000000,
   "uniformityN": 5,
   "uniformityShuffles": 240000
  },
  "couples": {
   "rule": "k couples (persons 1&2, 3&4, ...) who must not draw each other, on top of nobody drawing themselves",
   "tableSizes": [
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15,
    16,
    17,
    18,
    19,
    20
   ],
   "n": 10,
   "k": 3,
   "helper": {
    "n": 10,
    "k": 3,
    "sessions": 100000,
    "uniformityN": 6,
    "uniformityK": 2,
    "uniformitySessions": 200000
   }
  },
  "lastYear": {
   "rule": "last year's draw was one loop (person 1 gave to 2, 2 to 3, ..., the last to 1); nobody may draw themselves or the person they had last year",
   "tableSizes": [
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15,
    16,
    17,
    18,
    19,
    20
   ],
   "loopExactSizes": [
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11
   ],
   "n": 10
  },
  "widgetTableSizes": [
   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
  ],
  "bruteForceUpTo": 8
 },
 "notes": {
  "simulatedVsExact": "results holds simulated draws (never site usage); theory holds exact math (BigInt counts and exact fractions, rounded to 6 decimals) and is identical on every run. Quote theory values; call results values 'simulated'. Only the fields listed in a row's simulationOnly array have no exact counterpart and are not checked.",
  "siteBehavior": "Wheel Cue has no dedicated Secret Santa tool. The random name picker (/tools/random-name-picker/) has a Shuffle button under the Names box (also Sort A–Z, Reset, Clear); Shuffle reorders the non-empty lines with CueRandom.shuffle (Fisher–Yates), so every order is equally likely. Its option 'Remove the winner after each spin' is OFF by default on that page. The result card offers 'Spin again' (the name stays on the wheel) and 'Remove & spin' (the name comes off and the wheel spins again). A wheel needs at least two entries to spin and holds at most 500 entries; two people with the same name must be told apart (e.g. 'Sam R.' and 'Sam T.') or they are two identical lines. The hat and put-back procedures are modeled on the wheel because it gives exactly the chances of a well-mixed paper hat; the wheel is not a way to run a secret draw in front of the group: every spin shows the drawn name on screen and the result history lists every result. Only the loop (Shuffle) or the organizer's helper, run by one organizer alone, keeps the pairings from the participants, and that organizer sees every pairing. Names typed into a wheel are not stored by the site.",
  "people": "People are numbered in the order they draw (person 1 draws first). Couples are persons 1&2, 3&4, 5&6; last year's draw is the loop 1->2->...->n->1.",
  "spins": "totalSpins counts CueRandom draws that pick a result: one per spin of the wheel (wheelSpins) and n - 1 per Shuffle of n names (shuffles = presses of Shuffle simulated). rawDraws also counts the few draws rejected to remove modulo bias. In the article call totalSpins 'random draws' (drawsLabel), not spins.",
  "checks": "Each check: z = (simulated - exact)/se, pass when |z| <= 4. Chi-square checks ('uniformity' against equal chances, 'goodness of fit' against the exact unequal chances of the put-back rule) list the statistic as simulated, its expected value df as exact and sqrt(2 df) as se, but their z (zMethod 'Wilson–Hilferty') is ((chi/df)^(1/3) - (1 - 2/(9 df))) / sqrt(2/(9 df)), an approximately standard normal score that allows for the skew of a chi-square with few degrees of freedom. With about 80 checks at 4 standard errors, a rerun has roughly a 1 in 200 chance of one check failing by luck alone. Sanity checks (se 0) must hold exactly (the loop never gives anyone themselves or a mutual pair). Means use the exact SD where known (geometric number of tries; self-draws SD = 1), otherwise the sample SD.",
  "rounding": "display strings: two decimals below 10% or above 90%, one decimal between; never 100% or 0% unless exact. Ratios are to 4 decimals."
 },
 "results": {
  "hat": {
   "note": "Simulated hats drawn on the name picker, one spin per person (the last person takes the last name). pNobodySelf = share of hats in which nobody drew their own name. at10 adds the couples rule (persons 1&2, 3&4, 5&6) and last year's loop, counted on the same hats.",
   "rows": [
    {
     "people": 4,
     "sessions": 200000,
     "pNobodySelf": 0.3746,
     "pSomeoneSelf": 0.6254,
     "meanSelf": 0.999865,
     "pExactlyOneSelf": 0.332725
    },
    {
     "people": 5,
     "sessions": 200000,
     "pNobodySelf": 0.36677,
     "pSomeoneSelf": 0.63323,
     "meanSelf": 0.998565,
     "pExactlyOneSelf": 0.37551
    },
    {
     "people": 6,
     "sessions": 200000,
     "pNobodySelf": 0.36667,
     "pSomeoneSelf": 0.63333,
     "meanSelf": 1.00138,
     "pExactlyOneSelf": 0.36728
    },
    {
     "people": 7,
     "sessions": 200000,
     "pNobodySelf": 0.36729,
     "pSomeoneSelf": 0.63271,
     "meanSelf": 0.99897,
     "pExactlyOneSelf": 0.36983
    },
    {
     "people": 8,
     "sessions": 200000,
     "pNobodySelf": 0.368835,
     "pSomeoneSelf": 0.631165,
     "meanSelf": 1.000355,
     "pExactlyOneSelf": 0.36691
    },
    {
     "people": 9,
     "sessions": 200000,
     "pNobodySelf": 0.367215,
     "pSomeoneSelf": 0.632785,
     "meanSelf": 1.00076,
     "pExactlyOneSelf": 0.36807
    },
    {
     "people": 10,
     "sessions": 1000000,
     "pNobodySelf": 0.367474,
     "pSomeoneSelf": 0.632526,
     "meanSelf": 1.000406,
     "pExactlyOneSelf": 0.368257
    },
    {
     "people": 11,
     "sessions": 200000,
     "pNobodySelf": 0.366895,
     "pSomeoneSelf": 0.633105,
     "meanSelf": 1.001195,
     "pExactlyOneSelf": 0.369255
    },
    {
     "people": 12,
     "sessions": 200000,
     "pNobodySelf": 0.36477,
     "pSomeoneSelf": 0.63523,
     "meanSelf": 1.00449,
     "pExactlyOneSelf": 0.36982
    },
    {
     "people": 13,
     "sessions": 200000,
     "pNobodySelf": 0.366195,
     "pSomeoneSelf": 0.633805,
     "meanSelf": 1.002805,
     "pExactlyOneSelf": 0.36887
    },
    {
     "people": 14,
     "sessions": 200000,
     "pNobodySelf": 0.36754,
     "pSomeoneSelf": 0.63246,
     "meanSelf": 0.999435,
     "pExactlyOneSelf": 0.369145
    },
    {
     "people": 15,
     "sessions": 200000,
     "pNobodySelf": 0.37037,
     "pSomeoneSelf": 0.62963,
     "meanSelf": 0.9976,
     "pExactlyOneSelf": 0.365795
    },
    {
     "people": 16,
     "sessions": 200000,
     "pNobodySelf": 0.36895,
     "pSomeoneSelf": 0.63105,
     "meanSelf": 0.99719,
     "pExactlyOneSelf": 0.367285
    },
    {
     "people": 17,
     "sessions": 200000,
     "pNobodySelf": 0.36792,
     "pSomeoneSelf": 0.63208,
     "meanSelf": 1.0002,
     "pExactlyOneSelf": 0.36759
    },
    {
     "people": 18,
     "sessions": 200000,
     "pNobodySelf": 0.367095,
     "pSomeoneSelf": 0.632905,
     "meanSelf": 1.00306,
     "pExactlyOneSelf": 0.36676
    },
    {
     "people": 19,
     "sessions": 200000,
     "pNobodySelf": 0.369835,
     "pSomeoneSelf": 0.630165,
     "meanSelf": 0.99518,
     "pExactlyOneSelf": 0.3672
    },
    {
     "people": 20,
     "sessions": 200000,
     "pNobodySelf": 0.367865,
     "pSomeoneSelf": 0.632135,
     "meanSelf": 0.99934,
     "pExactlyOneSelf": 0.36791
    }
   ],
   "at10": {
    "sessions": 1000000,
    "couples": {
     "k": 3,
     "pValid": 0.184711,
     "pNoSelfButCoupleBreaks": 0.182763,
     "pCoupleBreaksGivenNoSelf": 0.497349
    },
    "lastYear": {
     "pValid": 0.121117,
     "pLastYearBreaksGivenNoSelf": 0.670407
    }
   }
  },
  "redraw": {
   "n": 10,
   "sessions": 150000,
   "meanTries": 2.7189,
   "pMoreThan3Tries": 0.251647,
   "pFirstGivesToLast": 0.111127,
   "receiverOfFirst": [
    0.111027,
    0.111567,
    0.11098,
    0.11124,
    0.111107,
    0.11182,
    0.110207,
    0.110927,
    0.111127
   ],
   "pMutualPair": 0.392913,
   "pSingleLoop": 0.271467,
   "meanLoops": 2.024807,
   "uniformity": {
    "people": 5,
    "sessions": 200000,
    "validDraws": 44,
    "chiSquare": 42.8,
    "df": 43,
    "fewest": 4387,
    "most": 4691
   },
   "note": "Each session redraws the whole hat until nobody has their own name. receiverOfFirst[j] = share of sessions in which person 1 gave to person j+2. fewest/most are this run's counts of the least and most frequent of the valid draws and change on every run."
  },
  "putBackUniformity": {
   "people": 5,
   "attempts": 300000,
   "completed": 260624,
   "validDraws": 44,
   "chiSquareVsExact": 28.3,
   "chiSquareVsEqual": 26917.6,
   "df": 43,
   "expectedChiSquareVsEqualApprox": 27206,
   "note": "All three numbers here are SIMULATED and change on every run. chiSquareVsExact tests the simulated draws against the exact put-back chances (should be near df). chiSquareVsEqual is the simulated chi-square against 'every valid draw equally likely' and is far above df: the put-back rule is not fair. expectedChiSquareVsEqualApprox = df + completed × k × sum (p - 1/k)^2 is only a large-sample approximation of what chiSquareVsEqual should be near; do not quote it as the measured statistic. For the size of the bias quote the exact, deterministic values in theory.putBack.biasRows (totalVariation, wholeDrawMostOverLeast, lastGivesToPreviousRatio)."
  },
  "putBack": {
   "note": "Simulated put-back draws on the name picker. People draw in order 1..n. completed = attempts that did not dead-end; the shares about who gets whom are among completed draws. Every row's dead-end share is checked against the exact DP. From 10 people up, the last person's row, person 1 to person n and the last two swapping are checked against exact values (enumeration at 10, the exact chain above 10); only the fields listed in a row's simulationOnly (mutual pair, single loop, loops above 10 people) have no exact value here and are not checked. lastRow[j] = share in which the last person got person j+1.",
   "rows": [
    {
     "people": 4,
     "attempts": 200000,
     "completed": 172449,
     "pDeadEnd": 0.137755,
     "meanPutBacksPerAttempt": 1.06121
    },
    {
     "people": 5,
     "attempts": 200000,
     "completed": 173442,
     "pDeadEnd": 0.13279,
     "meanPutBacksPerAttempt": 1.068145
    },
    {
     "people": 6,
     "attempts": 200000,
     "completed": 177525,
     "pDeadEnd": 0.112375,
     "meanPutBacksPerAttempt": 1.081315
    },
    {
     "people": 8,
     "attempts": 200000,
     "completed": 182086,
     "pDeadEnd": 0.08957,
     "meanPutBacksPerAttempt": 1.08526
    },
    {
     "people": 10,
     "attempts": 1000000,
     "completed": 924458,
     "pDeadEnd": 0.075542,
     "meanPutBacksPerAttempt": 1.087971,
     "lastGivesToPrevious": 0.179327,
     "lastGivesToFirst": 0.09192,
     "firstGivesToLast": 0.119823,
     "lastTwoSwap": 0.015684,
     "pMutualPair": 0.392158,
     "pSingleLoop": 0.27202,
     "meanLoops": 2.022356,
     "lastRow": [
      0.09192,
      0.092849,
      0.094736,
      0.096873,
      0.099765,
      0.104506,
      0.111379,
      0.128646,
      0.179327
     ],
     "fair": 0.111111
    },
    {
     "people": 12,
     "attempts": 200000,
     "completed": 187139,
     "pDeadEnd": 0.064305,
     "meanPutBacksPerAttempt": 1.087685,
     "lastGivesToPrevious": 0.149766,
     "lastGivesToFirst": 0.076489,
     "firstGivesToLast": 0.098665,
     "lastTwoSwap": 0.010554,
     "pMutualPair": 0.391896,
     "pSingleLoop": 0.228055,
     "meanLoops": 2.178001,
     "lastRow": [
      0.076489,
      0.077397,
      0.077568,
      0.078621,
      0.080945,
      0.082313,
      0.084691,
      0.088768,
      0.095282,
      0.10816,
      0.149766
     ],
     "fair": 0.090909,
     "simulationOnly": [
      "pMutualPair",
      "pSingleLoop",
      "meanLoops"
     ]
    },
    {
     "people": 15,
     "attempts": 200000,
     "completed": 189278,
     "pDeadEnd": 0.05361,
     "meanPutBacksPerAttempt": 1.087645,
     "lastGivesToPrevious": 0.122011,
     "lastGivesToFirst": 0.061259,
     "firstGivesToLast": 0.076205,
     "lastTwoSwap": 0.007407,
     "pMutualPair": 0.391498,
     "pSingleLoop": 0.181241,
     "meanLoops": 2.379907,
     "lastRow": [
      0.061259,
      0.061143,
      0.062226,
      0.062332,
      0.063325,
      0.062828,
      0.064218,
      0.066542,
      0.066542,
      0.068745,
      0.071905,
      0.0776,
      0.089324,
      0.122011
     ],
     "fair": 0.071429,
     "simulationOnly": [
      "pMutualPair",
      "pSingleLoop",
      "meanLoops"
     ]
    },
    {
     "people": 20,
     "attempts": 200000,
     "completed": 191621,
     "pDeadEnd": 0.041895,
     "meanPutBacksPerAttempt": 1.08194,
     "lastGivesToPrevious": 0.092547,
     "lastGivesToFirst": 0.046613,
     "firstGivesToLast": 0.0549,
     "lastTwoSwap": 0.003924,
     "pMutualPair": 0.391758,
     "pSingleLoop": 0.13558,
     "meanLoops": 2.642706,
     "lastRow": [
      0.046613,
      0.046644,
      0.046989,
      0.046075,
      0.045778,
      0.046467,
      0.047803,
      0.047599,
      0.047463,
      0.048601,
      0.048601,
      0.050057,
      0.050391,
      0.051659,
      0.053987,
      0.055698,
      0.059628,
      0.067399,
      0.092547
     ],
     "fair": 0.052632,
     "simulationOnly": [
      "pMutualPair",
      "pSingleLoop",
      "meanLoops"
     ]
    }
   ]
  },
  "loop": {
   "n": 10,
   "shuffles": 1000000,
   "pSingleLoop": 1,
   "pSomeoneSelf": 0,
   "pMutualPair": 0,
   "pFirstGivesToLast": 0.111608,
   "receiverOfFirst": [
    0.111338,
    0.111319,
    0.111078,
    0.110713,
    0.110938,
    0.110973,
    0.110574,
    0.111459,
    0.111608
   ],
   "couples": {
    "k": 3,
    "pNoCoupleAdjacent": 0.483925
   },
   "lastYear": {
    "pValid": 0.33016
   },
   "uniformity": {
    "people": 5,
    "shuffles": 240000,
    "loops": 24,
    "chiSquare": 17.7,
    "df": 23
   },
   "note": "Simulated presses of Shuffle; each name gives to the next, the last to the first. receiverOfFirst[j] = share in which person 1 gave to person j+2."
  },
  "helper": {
   "n": 10,
   "couples": 3,
   "sessions": 100000,
   "meanShuffles": 5.38952,
   "pLastGivesToFirst": 0.11595,
   "pairTypes": [
    {
     "type": "single to single",
     "giver": 10,
     "receiver": 7,
     "p": 0.10082
    },
    {
     "type": "single to someone with a partner",
     "giver": 10,
     "receiver": 1,
     "p": 0.11595
    },
    {
     "type": "someone with a partner to a single",
     "giver": 1,
     "receiver": 10,
     "p": 0.11499
    },
    {
     "type": "someone with a partner to a member of another couple",
     "giver": 1,
     "receiver": 3,
     "p": 0.13427
    }
   ],
   "pMutualPair": 0.41769,
   "uniformity": {
    "people": 6,
    "couples": 2,
    "sessions": 200000,
    "validDraws": 116,
    "chiSquare": 143.5,
    "df": 115
   },
   "note": "The widget's method: CueRandom.shuffle gives person i the i-th shuffled name; shuffle again until nobody has themselves or their partner. Couples are persons 1&2, 3&4, 5&6; persons 7-10 are single. pLastGivesToFirst = person 10 (single) gives to person 1 (has a partner). pairTypes = one example pair of each type; every value here is checked against theory.helper."
  }
 },
 "theory": {
  "hat": {
   "formulas": {
    "pWorks": "D(n)/n!, D(n) = derangements of n = n! × sum_{k=0}^{n} (-1)^k/k!; tends to 1/e = 0.367879...",
    "expectedTries": "n!/D(n) = average number of full draws of the hat INCLUDING the first one (geometric), tends to e = 2.718281...",
    "expectedRedraws": "expectedTries - 1 = average number of redraws AFTER the first draw, tends to e - 1 = 1.718281...",
    "pDoneWithin": "1 - (1 - D(n)/n!)^t",
    "expectedSelf": "exactly 1 for every n >= 1 (each of n people draws their own name with chance 1/n)",
    "pExactlyOneSelf": "n × D(n-1)/n!"
   },
   "oneOverE": 0.367879,
   "e": 2.718282,
   "note": "Exact values with BigInt. The hat on the wheel and a paper hat give the same chances: every way of handing out the names is equally likely (the wheel is only a model here: drawn in front of the group it is not secret). expectedTries counts full draws including the first (about 2.72); expectedRedraws counts the redraws after the first (about 1.72). gapTo1OverE = pWorks - 1/e (tiny from about 7 people on).",
   "rows": [
    {
     "people": 4,
     "derangements": "9",
     "permutations": "24",
     "pWorks": 0.375,
     "displayWorks": "37.5%",
     "fraction": "3/8",
     "pFails": 0.625,
     "displayFails": "62.5%",
     "expectedTries": 2.666667,
     "expectedTriesDisplay": "2.67",
     "expectedRedraws": 1.666667,
     "expectedRedrawsDisplay": "1.67",
     "pDoneWithin": {
      "1": 0.375,
      "2": 0.609375,
      "3": 0.755859,
      "5": 0.904633
     },
     "pMoreThan3Tries": 0.244141,
     "displayMoreThan3Tries": "24.4%",
     "pExactlyOneSelf": 0.333333,
     "displayExactlyOneSelf": "33.3%",
     "pTwoOrMoreSelf": 0.291667,
     "displayTwoOrMoreSelf": "29.2%",
     "expectedSelf": 1,
     "gapTo1OverE": 0.007121
    },
    {
     "people": 5,
     "derangements": "44",
     "permutations": "120",
     "pWorks": 0.366667,
     "displayWorks": "36.7%",
     "fraction": "11/30",
     "pFails": 0.633333,
     "displayFails": "63.3%",
     "expectedTries": 2.727273,
     "expectedTriesDisplay": "2.73",
     "expectedRedraws": 1.727273,
     "expectedRedrawsDisplay": "1.73",
     "pDoneWithin": {
      "1": 0.366667,
      "2": 0.598889,
      "3": 0.745963,
      "5": 0.898103
     },
     "pMoreThan3Tries": 0.254037,
     "displayMoreThan3Tries": "25.4%",
     "pExactlyOneSelf": 0.375,
     "displayExactlyOneSelf": "37.5%",
     "pTwoOrMoreSelf": 0.258333,
     "displayTwoOrMoreSelf": "25.8%",
     "expectedSelf": 1,
     "gapTo1OverE": -0.001213
    },
    {
     "people": 6,
     "derangements": "265",
     "permutations": "720",
     "pWorks": 0.368056,
     "displayWorks": "36.8%",
     "fraction": "53/144",
     "pFails": 0.631944,
     "displayFails": "63.2%",
     "expectedTries": 2.716981,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.716981,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.368056,
      "2": 0.600646,
      "3": 0.747631,
      "5": 0.899215
     },
     "pMoreThan3Tries": 0.252369,
     "displayMoreThan3Tries": "25.2%",
     "pExactlyOneSelf": 0.366667,
     "displayExactlyOneSelf": "36.7%",
     "pTwoOrMoreSelf": 0.265278,
     "displayTwoOrMoreSelf": "26.5%",
     "expectedSelf": 1,
     "gapTo1OverE": 0.0001761
    },
    {
     "people": 7,
     "derangements": "1854",
     "permutations": "5040",
     "pWorks": 0.367857,
     "displayWorks": "36.8%",
     "fraction": "103/280",
     "pFails": 0.632143,
     "displayFails": "63.2%",
     "expectedTries": 2.718447,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718447,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367857,
      "2": 0.600395,
      "3": 0.747393,
      "5": 0.899057
     },
     "pMoreThan3Tries": 0.252607,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.368056,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264087,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": -0.0000223
    },
    {
     "people": 8,
     "derangements": "14833",
     "permutations": "40320",
     "pWorks": 0.367882,
     "displayWorks": "36.8%",
     "fraction": "2119/5760",
     "pFails": 0.632118,
     "displayFails": "63.2%",
     "expectedTries": 2.718263,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718263,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367882,
      "2": 0.600427,
      "3": 0.747423,
      "5": 0.899077
     },
     "pMoreThan3Tries": 0.252577,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367857,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264261,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": 0.000002503
    },
    {
     "people": 9,
     "derangements": "133496",
     "permutations": "362880",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": "16687/45360",
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718284,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718284,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600423,
      "3": 0.747419,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.252581,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367882,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264239,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": -2.525e-7
    },
    {
     "people": 10,
     "derangements": "1334961",
     "permutations": "3628800",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": "16481/44800",
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": 2.311e-8
    },
    {
     "people": 11,
     "derangements": "14684570",
     "permutations": "39916800",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": "1468457/3991680",
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": -1.938e-9
    },
    {
     "people": 12,
     "derangements": "176214841",
     "permutations": "479001600",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": "16019531/43545600",
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": 1.498e-10
    },
    {
     "people": 13,
     "derangements": "2290792932",
     "permutations": "6227020800",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": "63633137/172972800",
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": -1.075e-11
    },
    {
     "people": 14,
     "derangements": "32071101049",
     "permutations": "87178291200",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": "2467007773/6706022400",
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": 7.196e-13
    },
    {
     "people": 15,
     "derangements": "481066515734",
     "permutations": "1307674368000",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": "34361893981/93405312000",
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": -4.513e-14
    },
    {
     "people": 16,
     "derangements": "7697064251745",
     "permutations": "20922789888000",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": "15549624751/42268262400",
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": 2.665e-15
    },
    {
     "people": 17,
     "derangements": "130850092279664",
     "permutations": "355687428096000",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": "8178130767479/22230464256000",
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": -1.665e-16
    },
    {
     "people": 18,
     "derangements": "2355301661033953",
     "permutations": "6402373705728000",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": null,
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": 0
    },
    {
     "people": 19,
     "derangements": "44750731559645106",
     "permutations": "121645100408832000",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": "92079694567171/250298560512000",
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": 0
    },
    {
     "people": 20,
     "derangements": "895014631192902121",
     "permutations": "2432902008176640000",
     "pWorks": 0.367879,
     "displayWorks": "36.8%",
     "fraction": null,
     "pFails": 0.632121,
     "displayFails": "63.2%",
     "expectedTries": 2.718282,
     "expectedTriesDisplay": "2.72",
     "expectedRedraws": 1.718282,
     "expectedRedrawsDisplay": "1.72",
     "pDoneWithin": {
      "1": 0.367879,
      "2": 0.600424,
      "3": 0.74742,
      "5": 0.899075
     },
     "pMoreThan3Tries": 0.25258,
     "displayMoreThan3Tries": "25.3%",
     "pExactlyOneSelf": 0.367879,
     "displayExactlyOneSelf": "36.8%",
     "pTwoOrMoreSelf": 0.264241,
     "displayTwoOrMoreSelf": "26.4%",
     "expectedSelf": 1,
     "gapTo1OverE": 0
    }
   ],
   "widgetTable": [
    {
     "people": 3,
     "pWorks": 0.333333333333,
     "expectedTries": 3
    },
    {
     "people": 4,
     "pWorks": 0.375,
     "expectedTries": 2.66666666667
    },
    {
     "people": 5,
     "pWorks": 0.366666666667,
     "expectedTries": 2.72727272727
    },
    {
     "people": 6,
     "pWorks": 0.368055555556,
     "expectedTries": 2.71698113208
    },
    {
     "people": 7,
     "pWorks": 0.367857142857,
     "expectedTries": 2.71844660194
    },
    {
     "people": 8,
     "pWorks": 0.367881944444,
     "expectedTries": 2.71826333176
    },
    {
     "people": 9,
     "pWorks": 0.367879188713,
     "expectedTries": 2.71828369389
    },
    {
     "people": 10,
     "pWorks": 0.367879464286,
     "expectedTries": 2.71828165767
    },
    {
     "people": 11,
     "pWorks": 0.367879439234,
     "expectedTries": 2.71828184278
    },
    {
     "people": 12,
     "pWorks": 0.367879441321,
     "expectedTries": 2.71828182735
    },
    {
     "people": 13,
     "pWorks": 0.367879441161,
     "expectedTries": 2.71828182854
    },
    {
     "people": 14,
     "pWorks": 0.367879441172,
     "expectedTries": 2.71828182845
    },
    {
     "people": 15,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 16,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 17,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 18,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 19,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 20,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 21,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 22,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 23,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 24,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 25,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 26,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 27,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 28,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 29,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 30,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 31,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 32,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 33,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 34,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 35,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 36,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 37,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 38,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 39,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    },
    {
     "people": 40,
     "pWorks": 0.367879441171,
     "expectedTries": 2.71828182846
    }
   ]
  },
  "uniformValid": {
   "formulas": {
    "pMutualPair": "1 - (permutations with every cycle of length >= 3)/D(n); tends to 1 - e^(-1/2) = 0.393469",
    "expectedMutualPairs": "C(n,2) D(n-2)/D(n), tends to 1/2",
    "pSpecificPairSwap": "D(n-2)/D(n): two named people draw each other",
    "pSingleLoop": "(n-1)!/D(n), about e/n",
    "expectedLoops": "sum over loop lengths k >= 2 of C(n,k)(k-1)! D(n-k)/D(n)",
    "pGiverToReceiver": "1/(n-1) exactly, by symmetry"
   },
   "limits": {
    "mutualPair": 0.393469,
    "expectedMutualPairs": 0.5
   },
   "note": "A uniformly random valid draw: every way of handing out the names in which nobody has themselves is equally likely. The redraw rule (a well-mixed hat redrawn in full after any failure) and the organizer's helper with no pairs to keep apart give this. With couples or last year's matches to avoid, the helper is uniform over the draws that respect those rules, which is a different distribution: there the giver-receiver chances are no longer all 1/(n-1) (see theory.helper). The loop method is different: it always gives one single loop and never a mutual pair, while every giver is still equally likely to get each other person (1/(n-1)).",
   "rows": [
    {
     "people": 4,
     "pMutualPair": 0.333333,
     "displayMutualPair": "33.3%",
     "expectedMutualPairs": 0.666667,
     "pSpecificPairSwap": 0.111111,
     "displaySpecificPairSwap": "11.1%",
     "pSingleLoop": 0.666667,
     "displaySingleLoop": "66.7%",
     "expectedLoops": 1.333333,
     "expectedLoopsDisplay": "1.33",
     "pGiverToReceiver": 0.333333,
     "fractionGiverToReceiver": "1/3",
     "displayGiverToReceiver": "33.3%"
    },
    {
     "people": 5,
     "pMutualPair": 0.454545,
     "displayMutualPair": "45.5%",
     "expectedMutualPairs": 0.454545,
     "pSpecificPairSwap": 0.045455,
     "displaySpecificPairSwap": "4.55%",
     "pSingleLoop": 0.545455,
     "displaySingleLoop": "54.5%",
     "expectedLoops": 1.454545,
     "expectedLoopsDisplay": "1.45",
     "pGiverToReceiver": 0.25,
     "fractionGiverToReceiver": "1/4",
     "displayGiverToReceiver": "25.0%"
    },
    {
     "people": 6,
     "pMutualPair": 0.396226,
     "displayMutualPair": "39.6%",
     "expectedMutualPairs": 0.509434,
     "pSpecificPairSwap": 0.033962,
     "displaySpecificPairSwap": "3.40%",
     "pSingleLoop": 0.45283,
     "displaySingleLoop": "45.3%",
     "expectedLoops": 1.603774,
     "expectedLoopsDisplay": "1.60",
     "pGiverToReceiver": 0.2,
     "fractionGiverToReceiver": "1/5",
     "displayGiverToReceiver": "20.0%"
    },
    {
     "people": 7,
     "pMutualPair": 0.385113,
     "displayMutualPair": "38.5%",
     "expectedMutualPairs": 0.498382,
     "pSpecificPairSwap": 0.023732,
     "displaySpecificPairSwap": "2.37%",
     "pSingleLoop": 0.38835,
     "displaySingleLoop": "38.8%",
     "expectedLoops": 1.724919,
     "expectedLoopsDisplay": "1.72",
     "pGiverToReceiver": 0.166667,
     "fractionGiverToReceiver": "1/6",
     "displayGiverToReceiver": "16.7%"
    },
    {
     "people": 8,
     "pMutualPair": 0.394054,
     "displayMutualPair": "39.4%",
     "expectedMutualPairs": 0.500236,
     "pSpecificPairSwap": 0.017866,
     "displaySpecificPairSwap": "1.79%",
     "pSingleLoop": 0.339783,
     "displaySingleLoop": "34.0%",
     "expectedLoops": 1.834828,
     "expectedLoopsDisplay": "1.83",
     "pGiverToReceiver": 0.142857,
     "fractionGiverToReceiver": "1/7",
     "displayGiverToReceiver": "14.3%"
    },
    {
     "people": 9,
     "pMutualPair": 0.394259,
     "displayMutualPair": "39.4%",
     "expectedMutualPairs": 0.49997,
     "pSpecificPairSwap": 0.013888,
     "displaySpecificPairSwap": "1.39%",
     "pSingleLoop": 0.302032,
     "displaySingleLoop": "30.2%",
     "expectedLoops": 1.933721,
     "expectedLoopsDisplay": "1.93",
     "pGiverToReceiver": 0.125,
     "fractionGiverToReceiver": "1/8",
     "displayGiverToReceiver": "12.5%"
    },
    {
     "people": 10,
     "pMutualPair": 0.393349,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.500003,
     "pSpecificPairSwap": 0.011111,
     "displaySpecificPairSwap": "1.11%",
     "pSingleLoop": 0.271828,
     "displaySingleLoop": "27.2%",
     "expectedLoops": 2.023832,
     "expectedLoopsDisplay": "2.02",
     "pGiverToReceiver": 0.111111,
     "fractionGiverToReceiver": "1/9",
     "displayGiverToReceiver": "11.1%"
    },
    {
     "people": 11,
     "pMutualPair": 0.393412,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.5,
     "pSpecificPairSwap": 0.009091,
     "displaySpecificPairSwap": "0.91%",
     "pSingleLoop": 0.247117,
     "displaySingleLoop": "24.7%",
     "expectedLoops": 2.106549,
     "expectedLoopsDisplay": "2.11",
     "pGiverToReceiver": 0.1,
     "fractionGiverToReceiver": "1/10",
     "displayGiverToReceiver": "10.0%"
    },
    {
     "people": 12,
     "pMutualPair": 0.393483,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.5,
     "pSpecificPairSwap": 0.007576,
     "displaySpecificPairSwap": "0.76%",
     "pSingleLoop": 0.226523,
     "displaySingleLoop": "22.7%",
     "expectedLoops": 2.18299,
     "expectedLoopsDisplay": "2.18",
     "pGiverToReceiver": 0.090909,
     "fractionGiverToReceiver": "1/11",
     "displayGiverToReceiver": "9.09%"
    },
    {
     "people": 13,
     "pMutualPair": 0.393473,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.5,
     "pSpecificPairSwap": 0.00641,
     "displaySpecificPairSwap": "0.64%",
     "pSingleLoop": 0.209099,
     "displaySingleLoop": "20.9%",
     "expectedLoops": 2.254033,
     "expectedLoopsDisplay": "2.25",
     "pGiverToReceiver": 0.083333,
     "fractionGiverToReceiver": "1/12",
     "displayGiverToReceiver": "8.33%"
    },
    {
     "people": 14,
     "pMutualPair": 0.393468,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.5,
     "pSpecificPairSwap": 0.005495,
     "displaySpecificPairSwap": "0.55%",
     "pSingleLoop": 0.194163,
     "displaySingleLoop": "19.4%",
     "expectedLoops": 2.320387,
     "expectedLoopsDisplay": "2.32",
     "pGiverToReceiver": 0.076923,
     "fractionGiverToReceiver": "1/13",
     "displayGiverToReceiver": "7.69%"
    },
    {
     "people": 15,
     "pMutualPair": 0.393469,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.5,
     "pSpecificPairSwap": 0.004762,
     "displaySpecificPairSwap": "0.48%",
     "pSingleLoop": 0.181219,
     "displaySingleLoop": "18.1%",
     "expectedLoops": 2.38263,
     "expectedLoopsDisplay": "2.38",
     "pGiverToReceiver": 0.071429,
     "fractionGiverToReceiver": "1/14",
     "displayGiverToReceiver": "7.14%"
    },
    {
     "people": 16,
     "pMutualPair": 0.393469,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.5,
     "pSpecificPairSwap": 0.004167,
     "displaySpecificPairSwap": "0.42%",
     "pSingleLoop": 0.169893,
     "displaySingleLoop": "17.0%",
     "expectedLoops": 2.441239,
     "expectedLoopsDisplay": "2.44",
     "pGiverToReceiver": 0.066667,
     "fractionGiverToReceiver": "1/15",
     "displayGiverToReceiver": "6.67%"
    },
    {
     "people": 17,
     "pMutualPair": 0.393469,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.5,
     "pSpecificPairSwap": 0.003676,
     "displaySpecificPairSwap": "0.37%",
     "pSingleLoop": 0.159899,
     "displaySingleLoop": "16.0%",
     "expectedLoops": 2.496615,
     "expectedLoopsDisplay": "2.50",
     "pGiverToReceiver": 0.0625,
     "fractionGiverToReceiver": "1/16",
     "displayGiverToReceiver": "6.25%"
    },
    {
     "people": 18,
     "pMutualPair": 0.393469,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.5,
     "pSpecificPairSwap": 0.003268,
     "displaySpecificPairSwap": "0.33%",
     "pSingleLoop": 0.151016,
     "displaySingleLoop": "15.1%",
     "expectedLoops": 2.549095,
     "expectedLoopsDisplay": "2.55",
     "pGiverToReceiver": 0.058824,
     "fractionGiverToReceiver": "1/17",
     "displayGiverToReceiver": "5.88%"
    },
    {
     "people": 19,
     "pMutualPair": 0.393469,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.5,
     "pSpecificPairSwap": 0.002924,
     "displaySpecificPairSwap": "0.29%",
     "pSingleLoop": 0.143067,
     "displaySingleLoop": "14.3%",
     "expectedLoops": 2.598964,
     "expectedLoopsDisplay": "2.60",
     "pGiverToReceiver": 0.055556,
     "fractionGiverToReceiver": "1/18",
     "displayGiverToReceiver": "5.56%"
    },
    {
     "people": 20,
     "pMutualPair": 0.393469,
     "displayMutualPair": "39.3%",
     "expectedMutualPairs": 0.5,
     "pSpecificPairSwap": 0.002632,
     "displaySpecificPairSwap": "0.26%",
     "pSingleLoop": 0.135914,
     "displaySingleLoop": "13.6%",
     "expectedLoops": 2.646471,
     "expectedLoopsDisplay": "2.65",
     "pGiverToReceiver": 0.052632,
     "fractionGiverToReceiver": "1/19",
     "displayGiverToReceiver": "5.26%"
    }
   ],
   "loopDistribution": {
    "6": [
     {
      "loops": 1,
      "p": 0.45283,
      "display": "45.3%"
     },
     {
      "loops": 2,
      "p": 0.490566,
      "display": "49.1%"
     },
     {
      "loops": 3,
      "p": 0.056604,
      "display": "5.66%"
     }
    ],
    "10": [
     {
      "loops": 1,
      "p": 0.271828,
      "display": "27.2%"
     },
     {
      "loops": 2,
      "p": 0.466962,
      "display": "46.7%"
     },
     {
      "loops": 3,
      "p": 0.227467,
      "display": "22.7%"
     },
     {
      "loops": 4,
      "p": 0.033035,
      "display": "3.30%"
     },
     {
      "loops": 5,
      "p": 0.000708,
      "display": "0.07%"
     }
    ],
    "20": [
     {
      "loops": 1,
      "p": 0.135914,
      "display": "13.6%"
     },
     {
      "loops": 2,
      "p": 0.33912,
      "display": "33.9%"
     },
     {
      "loops": 3,
      "p": 0.322509,
      "display": "32.3%"
     },
     {
      "loops": 4,
      "p": 0.154708,
      "display": "15.5%"
     },
     {
      "loops": 5,
      "p": 0.041075,
      "display": "4.11%"
     },
     {
      "loops": 6,
      "p": 0.006151,
      "display": "0.62%"
     },
     {
      "loops": 7,
      "p": 0.000501,
      "display": "0.05%"
     },
     {
      "loops": 8,
      "p": 0.00002,
      "display": "<0.01%"
     }
    ]
   },
   "uniformityPeople": 5,
   "uniformityValidDraws": 44
  },
  "putBack": {
   "rule": "a person who draws their own name puts it back and draws again (Spin again); if the last person is left with only their own name the draw dead-ends and starts over from the top",
   "formulas": {
    "pDeadEnd": "exact dynamic program over f = names still in the hat whose owners have not drawn yet (by symmetry every such set of a given size is equally likely); P(dead end) = P(the last person's own name is the last one left)",
    "expectedPutBacksPerAttempt": "sum over draws with m >= 2 names left of P(own name still in the hat) × 1/(m-1)",
    "bias": "exhaustive enumeration of every complete draw (4-10 people); the chance of one complete draw is the product of 1/(names the person could take) over the people, and draws that dead-end are started again, so the result is that product divided by P(no dead end)",
    "chain": "exact Markov chain over the set of names still in the hat (4-20 people), integer weights over the common denominator prod_{m=2..n} m(m-1); it reproduces the DP's dead-end chance at every size and the enumeration's pairing chances for 4-10 people"
   },
   "note": "Exact fractions (BigInt). People are numbered in the order they draw (1 draws first). 'fair' = 1/(n-1), what every giver-receiver pair gets in a uniformly random valid draw and in the loop. ratioMatrix[a][b] = P(person a+1 gives to person b+1)/fair, 0 on the diagonal. lastTwoSwap = P(the last two people to draw get each other); lastTwoSwapUniform is the same in a uniformly random valid draw. mostLikelyPair/leastLikelyPair give one pair; tiedPairs = how many giver-receiver pairs share that exact chance (at 4 people two pairs tie for least likely, so do not name a unique one). pMutualPair, pSingleLoop and expectedLoops barely change under the put-back rule but are not equal to the fair values (the *Diff fields are exact differences, put-back minus fair). wholeDrawMostOverLeast = the most likely complete draw's chance divided by the least likely one's: exactly n-1 for 4-10 people (checked only in that enumerated range, no general proof); wholeDraw*OverFair compare with 1/D(n). totalVariation = the share of probability that would have to move to make every valid draw equally likely. dpRows covers 4-20 people; biasRows 4-10 (enumeration); chainRows 4-20 (exact chain: the last person's row, person 1 to person n, the last two swapping).",
   "dpRows": [
    {
     "people": 4,
     "pDeadEnd": 0.138889,
     "displayDeadEnd": "13.9%",
     "deadEndOneIn": "1 in 7.2",
     "fraction": "5/36",
     "pDeadEndTimesN": 0.5556,
     "expectedPutBacksPerAttempt": 1.055556,
     "expectedAttempts": 1.16129,
     "pDeadEndVsHatFails": 0.2222
    },
    {
     "people": 5,
     "pDeadEnd": 0.131944,
     "displayDeadEnd": "13.2%",
     "deadEndOneIn": "1 in 7.6",
     "fraction": "19/144",
     "pDeadEndTimesN": 0.6597,
     "expectedPutBacksPerAttempt": 1.072917,
     "expectedAttempts": 1.152,
     "pDeadEndVsHatFails": 0.2083
    },
    {
     "people": 6,
     "pDeadEnd": 0.112778,
     "displayDeadEnd": "11.3%",
     "deadEndOneIn": "1 in 8.9",
     "fraction": "203/1800",
     "pDeadEndTimesN": 0.6767,
     "expectedPutBacksPerAttempt": 1.082917,
     "expectedAttempts": 1.127113,
     "pDeadEndVsHatFails": 0.1785
    },
    {
     "people": 7,
     "pDeadEnd": 0.100532,
     "displayDeadEnd": "10.1%",
     "deadEndOneIn": "1 in 9.9",
     "fraction": "4343/43200",
     "pDeadEndTimesN": 0.7037,
     "expectedPutBacksPerAttempt": 1.087778,
     "expectedAttempts": 1.111769,
     "pDeadEndVsHatFails": 0.159
    },
    {
     "people": 8,
     "pDeadEnd": 0.090495,
     "displayDeadEnd": "9.05%",
     "deadEndOneIn": "1 in 11",
     "fraction": "63853/705600",
     "pDeadEndTimesN": 0.724,
     "expectedPutBacksPerAttempt": 1.089989,
     "expectedAttempts": 1.099499,
     "pDeadEndVsHatFails": 0.1432
    },
    {
     "people": 9,
     "pDeadEnd": 0.082382,
     "displayDeadEnd": "8.24%",
     "deadEndOneIn": "1 in 12",
     "fraction": "58129/705600",
     "pDeadEndTimesN": 0.7414,
     "expectedPutBacksPerAttempt": 1.090647,
     "expectedAttempts": 1.089779,
     "pDeadEndVsHatFails": 0.1303
    },
    {
     "people": 10,
     "pDeadEnd": 0.075646,
     "displayDeadEnd": "7.56%",
     "deadEndOneIn": "1 in 13",
     "fraction": "160127/2116800",
     "pDeadEndTimesN": 0.7565,
     "expectedPutBacksPerAttempt": 1.09038,
     "expectedAttempts": 1.081836,
     "pDeadEndVsHatFails": 0.1197
    },
    {
     "people": 11,
     "pDeadEnd": 0.06996,
     "displayDeadEnd": "7.00%",
     "deadEndOneIn": "1 in 14",
     "fraction": "8885501/127008000",
     "pDeadEndTimesN": 0.7696,
     "expectedPutBacksPerAttempt": 1.08955,
     "expectedAttempts": 1.075223,
     "pDeadEndVsHatFails": 0.1107
    },
    {
     "people": 12,
     "pDeadEnd": 0.065093,
     "displayDeadEnd": "6.51%",
     "deadEndOneIn": "1 in 15",
     "fraction": "1500518539/23051952000",
     "pDeadEndTimesN": 0.7811,
     "expectedPutBacksPerAttempt": 1.088377,
     "expectedAttempts": 1.069625,
     "pDeadEndVsHatFails": 0.103
    },
    {
     "people": 13,
     "pDeadEnd": 0.060876,
     "displayDeadEnd": "6.09%",
     "deadEndOneIn": "1 in 16",
     "fraction": "404156337271/6638962176000",
     "pDeadEndTimesN": 0.7914,
     "expectedPutBacksPerAttempt": 1.087,
     "expectedAttempts": 1.064823,
     "pDeadEndVsHatFails": 0.0963
    },
    {
     "people": 14,
     "pDeadEnd": 0.057186,
     "displayDeadEnd": "5.72%",
     "deadEndOneIn": "1 in 17",
     "fraction": "16040576541971/280496151936000",
     "pDeadEndTimesN": 0.8006,
     "expectedPutBacksPerAttempt": 1.085507,
     "expectedAttempts": 1.060655,
     "pDeadEndVsHatFails": 0.0905
    },
    {
     "people": 15,
     "pDeadEnd": 0.053929,
     "displayDeadEnd": "5.39%",
     "deadEndOneIn": "1 in 19",
     "fraction": null,
     "pDeadEndTimesN": 0.8089,
     "expectedPutBacksPerAttempt": 1.083955,
     "expectedAttempts": 1.057003,
     "pDeadEndVsHatFails": 0.0853
    },
    {
     "people": 16,
     "pDeadEnd": 0.05103,
     "displayDeadEnd": "5.10%",
     "deadEndOneIn": "1 in 20",
     "fraction": null,
     "pDeadEndTimesN": 0.8165,
     "expectedPutBacksPerAttempt": 1.082381,
     "expectedAttempts": 1.053775,
     "pDeadEndVsHatFails": 0.0807
    },
    {
     "people": 17,
     "pDeadEnd": 0.048434,
     "displayDeadEnd": "4.84%",
     "deadEndOneIn": "1 in 21",
     "fraction": null,
     "pDeadEndTimesN": 0.8234,
     "expectedPutBacksPerAttempt": 1.080812,
     "expectedAttempts": 1.0509,
     "pDeadEndVsHatFails": 0.0766
    },
    {
     "people": 18,
     "pDeadEnd": 0.046095,
     "displayDeadEnd": "4.61%",
     "deadEndOneIn": "1 in 22",
     "fraction": null,
     "pDeadEndTimesN": 0.8297,
     "expectedPutBacksPerAttempt": 1.079262,
     "expectedAttempts": 1.048323,
     "pDeadEndVsHatFails": 0.0729
    },
    {
     "people": 19,
     "pDeadEnd": 0.043976,
     "displayDeadEnd": "4.40%",
     "deadEndOneIn": "1 in 23",
     "fraction": null,
     "pDeadEndTimesN": 0.8355,
     "expectedPutBacksPerAttempt": 1.077743,
     "expectedAttempts": 1.045999,
     "pDeadEndVsHatFails": 0.0696
    },
    {
     "people": 20,
     "pDeadEnd": 0.042047,
     "displayDeadEnd": "4.20%",
     "deadEndOneIn": "1 in 24",
     "fraction": null,
     "pDeadEndTimesN": 0.8409,
     "expectedPutBacksPerAttempt": 1.076262,
     "expectedAttempts": 1.043892,
     "pDeadEndVsHatFails": 0.0665
    }
   ],
   "biasRows": [
    {
     "people": 4,
     "validDraws": "9",
     "fair": 0.333333,
     "fairFraction": "1/3",
     "fairDisplay": "33.3%",
     "lastGivesToPrevious": 0.451613,
     "lastGivesToPreviousDisplay": "45.2%",
     "lastGivesToPreviousRatio": 1.3548,
     "lastGivesToFirst": 0.258065,
     "lastGivesToFirstDisplay": "25.8%",
     "lastGivesToFirstRatio": 0.7742,
     "firstGivesToLast": 0.387097,
     "firstGivesToLastDisplay": "38.7%",
     "firstGivesToLastRatio": 1.1613,
     "mostLikelyPair": {
      "giver": 4,
      "receiver": 3,
      "p": 0.451613,
      "display": "45.2%",
      "ratio": 1.3548,
      "tiedPairs": 1
     },
     "leastLikelyPair": {
      "giver": 2,
      "receiver": 3,
      "p": 0.258065,
      "display": "25.8%",
      "ratio": 0.7742,
      "tiedPairs": 2
     },
     "lastTwoSwap": 0.129032,
     "lastTwoSwapDisplay": "12.9%",
     "lastTwoSwapUniform": 0.111111,
     "lastTwoSwapUniformDisplay": "11.1%",
     "lastTwoSwapRatio": 1.1613,
     "pMutualPair": 0.322581,
     "pMutualPairUniform": 0.333333,
     "pMutualPairDiff": -0.010753,
     "pMutualPairDisplay": "32.3%",
     "pMutualPairUniformDisplay": "33.3%",
     "pSingleLoop": 0.677419,
     "pSingleLoopUniform": 0.666667,
     "pSingleLoopDiff": 0.010753,
     "pSingleLoopDisplay": "67.7%",
     "pSingleLoopUniformDisplay": "66.7%",
     "expectedLoops": 1.322581,
     "expectedLoopsUniform": 1.333333,
     "expectedLoopsDiff": -0.010753,
     "wholeDrawMostOverLeast": 3,
     "wholeDrawMostOverFair": 1.7419,
     "wholeDrawLeastOverFair": 0.5806,
     "shareOfDrawsMoreLikelyThanFair": 0.3333,
     "totalVariation": 0.11828,
     "totalVariationDisplay": "11.8%",
     "lastRow": [
      {
       "receiver": 1,
       "p": 0.258065,
       "display": "25.8%",
       "ratio": 0.7742
      },
      {
       "receiver": 2,
       "p": 0.290323,
       "display": "29.0%",
       "ratio": 0.871
      },
      {
       "receiver": 3,
       "p": 0.451613,
       "display": "45.2%",
       "ratio": 1.3548
      }
     ],
     "ratioMatrix": [
      [
       0,
       0.9677,
       0.871,
       1.1613
      ],
      [
       1.2581,
       0,
       0.7742,
       0.9677
      ],
      [
       0.9677,
       1.1613,
       0,
       0.871
      ],
      [
       0.7742,
       0.871,
       1.3548,
       0
      ]
     ]
    },
    {
     "people": 5,
     "validDraws": "44",
     "fair": 0.25,
     "fairFraction": "1/4",
     "fairDisplay": "25.0%",
     "lastGivesToPrevious": 0.36,
     "lastGivesToPreviousDisplay": "36.0%",
     "lastGivesToPreviousRatio": 1.44,
     "lastGivesToFirst": 0.192,
     "lastGivesToFirstDisplay": "19.2%",
     "lastGivesToFirstRatio": 0.768,
     "firstGivesToLast": 0.288,
     "firstGivesToLastDisplay": "28.8%",
     "firstGivesToLastRatio": 1.152,
     "mostLikelyPair": {
      "giver": 5,
      "receiver": 4,
      "p": 0.36,
      "display": "36.0%",
      "ratio": 1.44,
      "tiedPairs": 1
     },
     "leastLikelyPair": {
      "giver": 5,
      "receiver": 1,
      "p": 0.192,
      "display": "19.2%",
      "ratio": 0.768,
      "tiedPairs": 1
     },
     "lastTwoSwap": 0.056,
     "lastTwoSwapDisplay": "5.60%",
     "lastTwoSwapUniform": 0.045455,
     "lastTwoSwapUniformDisplay": "4.55%",
     "lastTwoSwapRatio": 1.232,
     "pMutualPair": 0.45,
     "pMutualPairUniform": 0.454545,
     "pMutualPairDiff": -0.004545,
     "pMutualPairDisplay": "45.0%",
     "pMutualPairUniformDisplay": "45.5%",
     "pSingleLoop": 0.55,
     "pSingleLoopUniform": 0.545455,
     "pSingleLoopDiff": 0.004545,
     "pSingleLoopDisplay": "55.0%",
     "pSingleLoopUniformDisplay": "54.5%",
     "expectedLoops": 1.45,
     "expectedLoopsUniform": 1.454545,
     "expectedLoopsDiff": -0.004545,
     "wholeDrawMostOverLeast": 4,
     "wholeDrawMostOverFair": 2.112,
     "wholeDrawLeastOverFair": 0.528,
     "shareOfDrawsMoreLikelyThanFair": 0.5455,
     "totalVariation": 0.126545,
     "totalVariationDisplay": "12.7%",
     "lastRow": [
      {
       "receiver": 1,
       "p": 0.192,
       "display": "19.2%",
       "ratio": 0.768
      },
      {
       "receiver": 2,
       "p": 0.208,
       "display": "20.8%",
       "ratio": 0.832
      },
      {
       "receiver": 3,
       "p": 0.24,
       "display": "24.0%",
       "ratio": 0.96
      },
      {
       "receiver": 4,
       "p": 0.36,
       "display": "36.0%",
       "ratio": 1.44
      }
     ],
     "ratioMatrix": [
      [
       0,
       0.96,
       0.96,
       0.928,
       1.152
      ],
      [
       1.208,
       0,
       0.88,
       0.856,
       1.056
      ],
      [
       1.08,
       1.184,
       0,
       0.776,
       0.96
      ],
      [
       0.944,
       1.024,
       1.2,
       0,
       0.832
      ],
      [
       0.768,
       0.832,
       0.96,
       1.44,
       0
      ]
     ]
    },
    {
     "people": 6,
     "validDraws": "265",
     "fair": 0.2,
     "fairFraction": "1/5",
     "fairDisplay": "20.0%",
     "lastGivesToPrevious": 0.297746,
     "lastGivesToPreviousDisplay": "29.8%",
     "lastGivesToPreviousRatio": 1.4887,
     "lastGivesToFirst": 0.156857,
     "lastGivesToFirstDisplay": "15.7%",
     "lastGivesToFirstRatio": 0.7843,
     "firstGivesToLast": 0.225423,
     "firstGivesToLastDisplay": "22.5%",
     "firstGivesToLastRatio": 1.1271,
     "mostLikelyPair": {
      "giver": 6,
      "receiver": 5,
      "p": 0.297746,
      "display": "29.8%",
      "ratio": 1.4887,
      "tiedPairs": 1
     },
     "leastLikelyPair": {
      "giver": 6,
      "receiver": 1,
      "p": 0.156857,
      "display": "15.7%",
      "ratio": 0.7843,
      "tiedPairs": 1
     },
     "lastTwoSwap": 0.043519,
     "lastTwoSwapDisplay": "4.35%",
     "lastTwoSwapUniform": 0.033962,
     "lastTwoSwapUniformDisplay": "3.40%",
     "lastTwoSwapRatio": 1.2814,
     "pMutualPair": 0.392298,
     "pMutualPairUniform": 0.396226,
     "pMutualPairDiff": -0.003928,
     "pMutualPairDisplay": "39.2%",
     "pMutualPairUniformDisplay": "39.6%",
     "pSingleLoop": 0.455933,
     "pSingleLoopUniform": 0.45283,
     "pSingleLoopDiff": 0.003103,
     "pSingleLoopDisplay": "45.6%",
     "pSingleLoopUniformDisplay": "45.3%",
     "expectedLoops": 1.598857,
     "expectedLoopsUniform": 1.603774,
     "expectedLoopsDiff": -0.004916,
     "wholeDrawMostOverLeast": 5,
     "wholeDrawMostOverFair": 2.489,
     "wholeDrawLeastOverFair": 0.4978,
     "shareOfDrawsMoreLikelyThanFair": 0.3019,
     "totalVariation": 0.124538,
     "totalVariationDisplay": "12.5%",
     "lastRow": [
      {
       "receiver": 1,
       "p": 0.156857,
       "display": "15.7%",
       "ratio": 0.7843
      },
      {
       "receiver": 2,
       "p": 0.164371,
       "display": "16.4%",
       "ratio": 0.8219
      },
      {
       "receiver": 3,
       "p": 0.177207,
       "display": "17.7%",
       "ratio": 0.886
      },
      {
       "receiver": 4,
       "p": 0.20382,
       "display": "20.4%",
       "ratio": 1.0191
      },
      {
       "receiver": 5,
       "p": 0.297746,
       "display": "29.8%",
       "ratio": 1.4887
      }
     ],
     "ratioMatrix": [
      [
       0,
       0.9768,
       0.9745,
       0.9706,
       0.951,
       1.1271
      ],
      [
       1.1725,
       0,
       0.9275,
       0.9236,
       0.9056,
       1.0708
      ],
      [
       1.1013,
       1.1604,
       0,
       0.8727,
       0.8559,
       1.0097
      ],
      [
       1.0214,
       1.0743,
       1.1662,
       0,
       0.7988,
       0.9393
      ],
      [
       0.9205,
       0.9667,
       1.0457,
       1.214,
       0,
       0.8532
      ],
      [
       0.7843,
       0.8219,
       0.886,
       1.0191,
       1.4887,
       0
      ]
     ]
    },
    {
     "people": 7,
     "validDraws": "1854",
     "fair": 0.166667,
     "fairFraction": "1/6",
     "fairDisplay": "16.7%",
     "lastGivesToPrevious": 0.255038,
     "lastGivesToPreviousDisplay": "25.5%",
     "lastGivesToPreviousRatio": 1.5302,
     "lastGivesToFirst": 0.132666,
     "lastGivesToFirstDisplay": "13.3%",
     "lastGivesToFirstRatio": 0.796,
     "firstGivesToLast": 0.185295,
     "firstGivesToLastDisplay": "18.5%",
     "firstGivesToLastRatio": 1.1118,
     "mostLikelyPair": {
      "giver": 7,
      "receiver": 6,
      "p": 0.255038,
      "display": "25.5%",
      "ratio": 1.5302,
      "tiedPairs": 1
     },
     "leastLikelyPair": {
      "giver": 7,
      "receiver": 1,
      "p": 0.132666,
      "display": "13.3%",
      "ratio": 0.796,
      "tiedPairs": 1
     },
     "lastTwoSwap": 0.0315,
     "lastTwoSwapDisplay": "3.15%",
     "lastTwoSwapUniform": 0.023732,
     "lastTwoSwapUniformDisplay": "2.37%",
     "lastTwoSwapRatio": 1.3273,
     "pMutualPair": 0.381988,
     "pMutualPairUniform": 0.385113,
     "pMutualPairDiff": -0.003125,
     "pMutualPairDisplay": "38.2%",
     "pMutualPairUniformDisplay": "38.5%",
     "pSingleLoop": 0.390395,
     "pSingleLoopUniform": 0.38835,
     "pSingleLoopDiff": 0.002046,
     "pSingleLoopDisplay": "39.0%",
     "pSingleLoopUniformDisplay": "38.8%",
     "expectedLoops": 1.721101,
     "expectedLoopsUniform": 1.724919,
     "expectedLoopsDiff": -0.003818,
     "wholeDrawMostOverLeast": 6,
     "wholeDrawMostOverFair": 2.8628,
     "wholeDrawLeastOverFair": 0.4771,
     "shareOfDrawsMoreLikelyThanFair": 0.3765,
     "totalVariation": 0.122346,
     "totalVariationDisplay": "12.2%",
     "lastRow": [
      {
       "receiver": 1,
       "p": 0.132666,
       "display": "13.3%",
       "ratio": 0.796
      },
      {
       "receiver": 2,
       "p": 0.136964,
       "display": "13.7%",
       "ratio": 0.8218
      },
      {
       "receiver": 3,
       "p": 0.143475,
       "display": "14.3%",
       "ratio": 0.8608
      },
      {
       "receiver": 4,
       "p": 0.154515,
       "display": "15.5%",
       "ratio": 0.9271
      },
      {
       "receiver": 5,
       "p": 0.177343,
       "display": "17.7%",
       "ratio": 1.0641
      },
      {
       "receiver": 6,
       "p": 0.255038,
       "display": "25.5%",
       "ratio": 1.5302
      }
     ],
     "ratioMatrix": [
      [
       0,
       0.9828,
       0.9821,
       0.9807,
       0.9777,
       0.9649,
       1.1118
      ],
      [
       1.1472,
       0,
       0.9499,
       0.9486,
       0.9458,
       0.9337,
       1.0747
      ],
      [
       1.1022,
       1.1408,
       0,
       0.9133,
       0.9106,
       0.8991,
       1.0339
      ],
      [
       1.0515,
       1.0877,
       1.143,
       0,
       0.8705,
       0.8597,
       0.9876
      ],
      [
       0.9911,
       1.0247,
       1.0759,
       1.1637,
       0,
       0.8124,
       0.9323
      ],
      [
       0.912,
       0.9422,
       0.9882,
       1.0667,
       1.2313,
       0,
       0.8596
      ],
      [
       0.796,
       0.8218,
       0.8608,
       0.9271,
       1.0641,
       1.5302,
       0
      ]
     ]
    },
    {
     "people": 8,
     "validDraws": "14833",
     "fair": 0.142857,
     "fairFraction": "1/7",
     "fairDisplay": "14.3%",
     "lastGivesToPrevious": 0.223385,
     "lastGivesToPreviousDisplay": "22.3%",
     "lastGivesToPreviousRatio": 1.5637,
     "lastGivesToFirst": 0.115289,
     "lastGivesToFirstDisplay": "11.5%",
     "lastGivesToFirstRatio": 0.807,
     "firstGivesToLast": 0.157071,
     "firstGivesToLastDisplay": "15.7%",
     "firstGivesToLastRatio": 1.0995,
     "mostLikelyPair": {
      "giver": 8,
      "receiver": 7,
      "p": 0.223385,
      "display": "22.3%",
      "ratio": 1.5637,
      "tiedPairs": 1
     },
     "leastLikelyPair": {
      "giver": 8,
      "receiver": 1,
      "p": 0.115289,
      "display": "11.5%",
      "ratio": 0.807,
      "tiedPairs": 1
     },
     "lastTwoSwap": 0.024388,
     "lastTwoSwapDisplay": "2.44%",
     "lastTwoSwapUniform": 0.017866,
     "lastTwoSwapUniformDisplay": "1.79%",
     "lastTwoSwapRatio": 1.3651,
     "pMutualPair": 0.391544,
     "pMutualPairUniform": 0.394054,
     "pMutualPairDiff": -0.00251,
     "pMutualPairDisplay": "39.2%",
     "pMutualPairUniformDisplay": "39.4%",
     "pSingleLoop": 0.341228,
     "pSingleLoopUniform": 0.339783,
     "pSingleLoopDiff": 0.001446,
     "pSingleLoopDisplay": "34.1%",
     "pSingleLoopUniformDisplay": "34.0%",
     "expectedLoops": 1.831579,
     "expectedLoopsUniform": 1.834828,
     "expectedLoopsDiff": -0.003248,
     "wholeDrawMostOverLeast": 7,
     "wholeDrawMostOverFair": 3.2359,
     "wholeDrawLeastOverFair": 0.4623,
     "shareOfDrawsMoreLikelyThanFair": 0.3972,
     "totalVariation": 0.120872,
     "totalVariationDisplay": "12.1%",
     "lastRow": [
      {
       "receiver": 1,
       "p": 0.115289,
       "display": "11.5%",
       "ratio": 0.807
      },
      {
       "receiver": 2,
       "p": 0.117967,
       "display": "11.8%",
       "ratio": 0.8258
      },
      {
       "receiver": 3,
       "p": 0.12174,
       "display": "12.2%",
       "ratio": 0.8522
      },
      {
       "receiver": 4,
       "p": 0.127452,
       "display": "12.7%",
       "ratio": 0.8922
      },
      {
       "receiver": 5,
       "p": 0.137119,
       "display": "13.7%",
       "ratio": 0.9598
      },
      {
       "receiver": 6,
       "p": 0.157048,
       "display": "15.7%",
       "ratio": 1.0993
      },
      {
       "receiver": 7,
       "p": 0.223385,
       "display": "22.3%",
       "ratio": 1.5637
      }
     ],
     "ratioMatrix": [
      [
       0,
       0.987,
       0.9866,
       0.986,
       0.9849,
       0.9826,
       0.9734,
       1.0995
      ],
      [
       1.1283,
       0,
       0.9635,
       0.9629,
       0.9618,
       0.9596,
       0.9507,
       1.0733
      ],
      [
       1.0974,
       1.1244,
       0,
       0.9374,
       0.9364,
       0.9342,
       0.9256,
       1.0445
      ],
      [
       1.0628,
       1.0887,
       1.1255,
       0,
       0.9077,
       0.9057,
       0.8974,
       1.0121
      ],
      [
       1.0227,
       1.0474,
       1.0824,
       1.1357,
       0,
       0.8725,
       0.8647,
       0.9746
      ],
      [
       0.9738,
       0.9971,
       1.0301,
       1.0802,
       1.1656,
       0,
       0.8245,
       0.9287
      ],
      [
       0.908,
       0.9294,
       0.9597,
       1.0057,
       1.0838,
       1.2462,
       0,
       0.8672
      ],
      [
       0.807,
       0.8258,
       0.8522,
       0.8922,
       0.9598,
       1.0993,
       1.5637,
       0
      ]
     ]
    },
    {
     "people": 9,
     "validDraws": "133496",
     "fair": 0.125,
     "fairFraction": "1/8",
     "fairDisplay": "12.5%",
     "lastGivesToPrevious": 0.198973,
     "lastGivesToPreviousDisplay": "19.9%",
     "lastGivesToPreviousRatio": 1.5918,
     "lastGivesToFirst": 0.102106,
     "lastGivesToFirstDisplay": "10.2%",
     "lastGivesToFirstRatio": 0.8168,
     "firstGivesToLast": 0.136222,
     "firstGivesToLastDisplay": "13.6%",
     "firstGivesToLastRatio": 1.0898,
     "mostLikelyPair": {
      "giver": 9,
      "receiver": 8,
      "p": 0.198973,
      "display": "19.9%",
      "ratio": 1.5918,
      "tiedPairs": 1
     },
     "leastLikelyPair": {
      "giver": 9,
      "receiver": 1,
      "p": 0.102106,
      "display": "10.2%",
      "ratio": 0.8168,
      "tiedPairs": 1
     },
     "lastTwoSwap": 0.019416,
     "lastTwoSwapDisplay": "1.94%",
     "lastTwoSwapUniform": 0.013888,
     "lastTwoSwapUniformDisplay": "1.39%",
     "lastTwoSwapRatio": 1.398,
     "pMutualPair": 0.392194,
     "pMutualPairUniform": 0.394259,
     "pMutualPairDiff": -0.002065,
     "pMutualPairDisplay": "39.2%",
     "pMutualPairUniformDisplay": "39.4%",
     "pSingleLoop": 0.30309,
     "pSingleLoopUniform": 0.302032,
     "pSingleLoopDiff": 0.001059,
     "pSingleLoopDisplay": "30.3%",
     "pSingleLoopUniformDisplay": "30.2%",
     "expectedLoops": 1.930962,
     "expectedLoopsUniform": 1.933721,
     "expectedLoopsDiff": -0.002758,
     "wholeDrawMostOverLeast": 8,
     "wholeDrawMostOverFair": 3.6082,
     "wholeDrawLeastOverFair": 0.451,
     "shareOfDrawsMoreLikelyThanFair": 0.3955,
     "totalVariation": 0.117786,
     "totalVariationDisplay": "11.8%",
     "lastRow": [
      {
       "receiver": 1,
       "p": 0.102106,
       "display": "10.2%",
       "ratio": 0.8168
      },
      {
       "receiver": 2,
       "p": 0.103891,
       "display": "10.4%",
       "ratio": 0.8311
      },
      {
       "receiver": 3,
       "p": 0.106282,
       "display": "10.6%",
       "ratio": 0.8503
      },
      {
       "receiver": 4,
       "p": 0.109647,
       "display": "11.0%",
       "ratio": 0.8772
      },
      {
       "receiver": 5,
       "p": 0.114738,
       "display": "11.5%",
       "ratio": 0.9179
      },
      {
       "receiver": 6,
       "p": 0.123341,
       "display": "12.3%",
       "ratio": 0.9867
      },
      {
       "receiver": 7,
       "p": 0.141021,
       "display": "14.1%",
       "ratio": 1.1282
      },
      {
       "receiver": 8,
       "p": 0.198973,
       "display": "19.9%",
       "ratio": 1.5918
      }
     ],
     "ratioMatrix": [
      [
       0,
       0.9898,
       0.9896,
       0.9892,
       0.9887,
       0.9878,
       0.986,
       0.9791,
       1.0898
      ],
      [
       1.1137,
       0,
       0.9721,
       0.9718,
       0.9713,
       0.9704,
       0.9686,
       0.9618,
       1.0703
      ],
      [
       1.0912,
       1.1112,
       0,
       0.9526,
       0.9521,
       0.9513,
       0.9496,
       0.943,
       1.049
      ],
      [
       1.0662,
       1.0857,
       1.1117,
       0,
       0.9308,
       0.93,
       0.9283,
       0.9219,
       1.0253
      ],
      [
       1.0378,
       1.0566,
       1.0819,
       1.1175,
       0,
       0.9058,
       0.9041,
       0.898,
       0.9983
      ],
      [
       1.0045,
       1.0226,
       1.0468,
       1.0811,
       1.1331,
       0,
       0.8757,
       0.8697,
       0.9665
      ],
      [
       0.9631,
       0.9804,
       1.0035,
       1.0361,
       1.0855,
       1.1694,
       0,
       0.8347,
       0.9272
      ],
      [
       0.9066,
       0.9227,
       0.9442,
       0.9745,
       1.0205,
       1.0984,
       1.2595,
       0,
       0.8736
      ],
      [
       0.8168,
       0.8311,
       0.8503,
       0.8772,
       0.9179,
       0.9867,
       1.1282,
       1.5918,
       0
      ]
     ]
    },
    {
     "people": 10,
     "validDraws": "1334961",
     "fair": 0.111111,
     "fairFraction": "1/9",
     "fairDisplay": "11.1%",
     "lastGivesToPrevious": 0.179527,
     "lastGivesToPreviousDisplay": "18.0%",
     "lastGivesToPreviousRatio": 1.6157,
     "lastGivesToFirst": 0.091739,
     "lastGivesToFirstDisplay": "9.17%",
     "lastGivesToFirstRatio": 0.8257,
     "firstGivesToLast": 0.120204,
     "firstGivesToLastDisplay": "12.0%",
     "firstGivesToLastRatio": 1.0818,
     "mostLikelyPair": {
      "giver": 10,
      "receiver": 9,
      "p": 0.179527,
      "display": "18.0%",
      "ratio": 1.6157,
      "tiedPairs": 1
     },
     "leastLikelyPair": {
      "giver": 10,
      "receiver": 1,
      "p": 0.091739,
      "display": "9.17%",
      "ratio": 0.8257,
      "tiedPairs": 1
     },
     "lastTwoSwap": 0.015854,
     "lastTwoSwapDisplay": "1.59%",
     "lastTwoSwapUniform": 0.011111,
     "lastTwoSwapUniformDisplay": "1.11%",
     "lastTwoSwapRatio": 1.4269,
     "pMutualPair": 0.39161,
     "pMutualPairUniform": 0.393349,
     "pMutualPairDiff": -0.001739,
     "pMutualPairDisplay": "39.2%",
     "pMutualPairUniformDisplay": "39.3%",
     "pSingleLoop": 0.272628,
     "pSingleLoopUniform": 0.271828,
     "pSingleLoopDiff": 0.0008,
     "pSingleLoopDisplay": "27.3%",
     "pSingleLoopUniformDisplay": "27.2%",
     "expectedLoops": 2.021456,
     "expectedLoopsUniform": 2.023832,
     "expectedLoopsDiff": -0.002376,
     "wholeDrawMostOverLeast": 9,
     "wholeDrawMostOverFair": 3.9799,
     "wholeDrawLeastOverFair": 0.4422,
     "shareOfDrawsMoreLikelyThanFair": 0.3619,
     "totalVariation": 0.115751,
     "totalVariationDisplay": "11.6%",
     "lastRow": [
      {
       "receiver": 1,
       "p": 0.091739,
       "display": "9.17%",
       "ratio": 0.8257
      },
      {
       "receiver": 2,
       "p": 0.09299,
       "display": "9.30%",
       "ratio": 0.8369
      },
      {
       "receiver": 3,
       "p": 0.094604,
       "display": "9.46%",
       "ratio": 0.8514
      },
      {
       "receiver": 4,
       "p": 0.096763,
       "display": "9.68%",
       "ratio": 0.8709
      },
      {
       "receiver": 5,
       "p": 0.099802,
       "display": "9.98%",
       "ratio": 0.8982
      },
      {
       "receiver": 6,
       "p": 0.104395,
       "display": "10.4%",
       "ratio": 0.9396
      },
      {
       "receiver": 7,
       "p": 0.112146,
       "display": "11.2%",
       "ratio": 1.0093
      },
      {
       "receiver": 8,
       "p": 0.128034,
       "display": "12.8%",
       "ratio": 1.1523
      },
      {
       "receiver": 9,
       "p": 0.179527,
       "display": "18.0%",
       "ratio": 1.6157
      }
     ],
     "ratioMatrix": [
      [
       0,
       0.9917,
       0.9916,
       0.9914,
       0.9911,
       0.9907,
       0.99,
       0.9885,
       0.9831,
       1.0818
      ],
      [
       1.102,
       0,
       0.9779,
       0.9778,
       0.9775,
       0.9771,
       0.9764,
       0.9749,
       0.9696,
       1.0668
      ],
      [
       1.085,
       1.1003,
       0,
       0.9629,
       0.9626,
       0.9622,
       0.9615,
       0.9601,
       0.9549,
       1.0504
      ],
      [
       1.0662,
       1.0812,
       1.1006,
       0,
       0.9462,
       0.9458,
       0.9452,
       0.9438,
       0.9386,
       1.0324
      ],
      [
       1.0451,
       1.0598,
       1.0788,
       1.1042,
       0,
       0.9274,
       0.9268,
       0.9254,
       0.9204,
       1.0121
      ],
      [
       1.0209,
       1.0352,
       1.0537,
       1.0784,
       1.1133,
       0,
       0.9057,
       0.9044,
       0.8995,
       0.9889
      ],
      [
       0.9922,
       1.0061,
       1.0239,
       1.0479,
       1.0817,
       1.1328,
       0,
       0.8794,
       0.8747,
       0.9614
      ],
      [
       0.9563,
       0.9696,
       0.9868,
       1.0097,
       1.0421,
       1.091,
       1.174,
       0,
       0.8435,
       0.9269
      ],
      [
       0.9066,
       0.9191,
       0.9353,
       0.9568,
       0.9873,
       1.0333,
       1.1111,
       1.2713,
       0,
       0.8792
      ],
      [
       0.8257,
       0.8369,
       0.8514,
       0.8709,
       0.8982,
       0.9396,
       1.0093,
       1.1523,
       1.6157,
       0
      ]
     ]
    }
   ],
   "chainRows": [
    {
     "people": 4,
     "fair": 0.333333,
     "fairDisplay": "33.3%",
     "lastGivesToPrevious": 0.451613,
     "lastGivesToPreviousDisplay": "45.2%",
     "lastGivesToPreviousRatio": 1.3548,
     "lastGivesToFirst": 0.258065,
     "lastGivesToFirstDisplay": "25.8%",
     "lastGivesToFirstRatio": 0.7742,
     "firstGivesToLast": 0.387097,
     "firstGivesToLastDisplay": "38.7%",
     "firstGivesToLastRatio": 1.1613,
     "lastTwoSwap": 0.129032,
     "lastTwoSwapUniform": 0.111111,
     "lastTwoSwapRatio": 1.1613,
     "lastRow": [
      0.258065,
      0.290323,
      0.451613
     ],
     "lastRowRatio": [
      0.7742,
      0.871,
      1.3548
     ]
    },
    {
     "people": 5,
     "fair": 0.25,
     "fairDisplay": "25.0%",
     "lastGivesToPrevious": 0.36,
     "lastGivesToPreviousDisplay": "36.0%",
     "lastGivesToPreviousRatio": 1.44,
     "lastGivesToFirst": 0.192,
     "lastGivesToFirstDisplay": "19.2%",
     "lastGivesToFirstRatio": 0.768,
     "firstGivesToLast": 0.288,
     "firstGivesToLastDisplay": "28.8%",
     "firstGivesToLastRatio": 1.152,
     "lastTwoSwap": 0.056,
     "lastTwoSwapUniform": 0.045455,
     "lastTwoSwapRatio": 1.232,
     "lastRow": [
      0.192,
      0.208,
      0.24,
      0.36
     ],
     "lastRowRatio": [
      0.768,
      0.832,
      0.96,
      1.44
     ]
    },
    {
     "people": 6,
     "fair": 0.2,
     "fairDisplay": "20.0%",
     "lastGivesToPrevious": 0.297746,
     "lastGivesToPreviousDisplay": "29.8%",
     "lastGivesToPreviousRatio": 1.4887,
     "lastGivesToFirst": 0.156857,
     "lastGivesToFirstDisplay": "15.7%",
     "lastGivesToFirstRatio": 0.7843,
     "firstGivesToLast": 0.225423,
     "firstGivesToLastDisplay": "22.5%",
     "firstGivesToLastRatio": 1.1271,
     "lastTwoSwap": 0.043519,
     "lastTwoSwapUniform": 0.033962,
     "lastTwoSwapRatio": 1.2814,
     "lastRow": [
      0.156857,
      0.164371,
      0.177207,
      0.20382,
      0.297746
     ],
     "lastRowRatio": [
      0.7843,
      0.8219,
      0.886,
      1.0191,
      1.4887
     ]
    },
    {
     "people": 7,
     "fair": 0.166667,
     "fairDisplay": "16.7%",
     "lastGivesToPrevious": 0.255038,
     "lastGivesToPreviousDisplay": "25.5%",
     "lastGivesToPreviousRatio": 1.5302,
     "lastGivesToFirst": 0.132666,
     "lastGivesToFirstDisplay": "13.3%",
     "lastGivesToFirstRatio": 0.796,
     "firstGivesToLast": 0.185295,
     "firstGivesToLastDisplay": "18.5%",
     "firstGivesToLastRatio": 1.1118,
     "lastTwoSwap": 0.0315,
     "lastTwoSwapUniform": 0.023732,
     "lastTwoSwapRatio": 1.3273,
     "lastRow": [
      0.132666,
      0.136964,
      0.143475,
      0.154515,
      0.177343,
      0.255038
     ],
     "lastRowRatio": [
      0.796,
      0.8218,
      0.8608,
      0.9271,
      1.0641,
      1.5302
     ]
    },
    {
     "people": 8,
     "fair": 0.142857,
     "fairDisplay": "14.3%",
     "lastGivesToPrevious": 0.223385,
     "lastGivesToPreviousDisplay": "22.3%",
     "lastGivesToPreviousRatio": 1.5637,
     "lastGivesToFirst": 0.115289,
     "lastGivesToFirstDisplay": "11.5%",
     "lastGivesToFirstRatio": 0.807,
     "firstGivesToLast": 0.157071,
     "firstGivesToLastDisplay": "15.7%",
     "firstGivesToLastRatio": 1.0995,
     "lastTwoSwap": 0.024388,
     "lastTwoSwapUniform": 0.017866,
     "lastTwoSwapRatio": 1.3651,
     "lastRow": [
      0.115289,
      0.117967,
      0.12174,
      0.127452,
      0.137119,
      0.157048,
      0.223385
     ],
     "lastRowRatio": [
      0.807,
      0.8258,
      0.8522,
      0.8922,
      0.9598,
      1.0993,
      1.5637
     ]
    },
    {
     "people": 9,
     "fair": 0.125,
     "fairDisplay": "12.5%",
     "lastGivesToPrevious": 0.198973,
     "lastGivesToPreviousDisplay": "19.9%",
     "lastGivesToPreviousRatio": 1.5918,
     "lastGivesToFirst": 0.102106,
     "lastGivesToFirstDisplay": "10.2%",
     "lastGivesToFirstRatio": 0.8168,
     "firstGivesToLast": 0.136222,
     "firstGivesToLastDisplay": "13.6%",
     "firstGivesToLastRatio": 1.0898,
     "lastTwoSwap": 0.019416,
     "lastTwoSwapUniform": 0.013888,
     "lastTwoSwapRatio": 1.398,
     "lastRow": [
      0.102106,
      0.103891,
      0.106282,
      0.109647,
      0.114738,
      0.123341,
      0.141021,
      0.198973
     ],
     "lastRowRatio": [
      0.8168,
      0.8311,
      0.8503,
      0.8772,
      0.9179,
      0.9867,
      1.1282,
      1.5918
     ]
    },
    {
     "people": 10,
     "fair": 0.111111,
     "fairDisplay": "11.1%",
     "lastGivesToPrevious": 0.179527,
     "lastGivesToPreviousDisplay": "18.0%",
     "lastGivesToPreviousRatio": 1.6157,
     "lastGivesToFirst": 0.091739,
     "lastGivesToFirstDisplay": "9.17%",
     "lastGivesToFirstRatio": 0.8257,
     "firstGivesToLast": 0.120204,
     "firstGivesToLastDisplay": "12.0%",
     "firstGivesToLastRatio": 1.0818,
     "lastTwoSwap": 0.015854,
     "lastTwoSwapUniform": 0.011111,
     "lastTwoSwapRatio": 1.4269,
     "lastRow": [
      0.091739,
      0.09299,
      0.094604,
      0.096763,
      0.099802,
      0.104395,
      0.112146,
      0.128034,
      0.179527
     ],
     "lastRowRatio": [
      0.8257,
      0.8369,
      0.8514,
      0.8709,
      0.8982,
      0.9396,
      1.0093,
      1.1523,
      1.6157
     ]
    },
    {
     "people": 11,
     "fair": 0.1,
     "fairDisplay": "10.0%",
     "lastGivesToPrevious": 0.16365,
     "lastGivesToPreviousDisplay": "16.4%",
     "lastGivesToPreviousRatio": 1.6365,
     "lastGivesToFirst": 0.083356,
     "lastGivesToFirstDisplay": "8.34%",
     "lastGivesToFirstRatio": 0.8336,
     "firstGivesToLast": 0.107522,
     "firstGivesToLastDisplay": "10.8%",
     "firstGivesToLastRatio": 1.0752,
     "lastTwoSwap": 0.013204,
     "lastTwoSwapUniform": 0.009091,
     "lastTwoSwapRatio": 1.4525,
     "lastRow": [
      0.083356,
      0.084268,
      0.08541,
      0.086882,
      0.088852,
      0.091622,
      0.095807,
      0.102862,
      0.11729,
      0.16365
     ],
     "lastRowRatio": [
      0.8336,
      0.8427,
      0.8541,
      0.8688,
      0.8885,
      0.9162,
      0.9581,
      1.0286,
      1.1729,
      1.6365
     ]
    },
    {
     "people": 12,
     "fair": 0.090909,
     "fairDisplay": "9.09%",
     "lastGivesToPrevious": 0.150427,
     "lastGivesToPreviousDisplay": "15.0%",
     "lastGivesToPreviousRatio": 1.6547,
     "lastGivesToFirst": 0.076428,
     "lastGivesToFirstDisplay": "7.64%",
     "lastGivesToFirstRatio": 0.8407,
     "firstGivesToLast": 0.097239,
     "firstGivesToLastDisplay": "9.72%",
     "firstGivesToLastRatio": 1.0696,
     "lastTwoSwap": 0.011177,
     "lastTwoSwapUniform": 0.007576,
     "lastTwoSwapRatio": 1.4753,
     "lastRow": [
      0.076428,
      0.077113,
      0.077952,
      0.079003,
      0.080356,
      0.082167,
      0.084714,
      0.088558,
      0.095033,
      0.108249,
      0.150427
     ],
     "lastRowRatio": [
      0.8407,
      0.8482,
      0.8575,
      0.869,
      0.8839,
      0.9038,
      0.9319,
      0.9741,
      1.0454,
      1.1907,
      1.6547
     ]
    },
    {
     "people": 13,
     "fair": 0.083333,
     "fairDisplay": "8.33%",
     "lastGivesToPrevious": 0.139235,
     "lastGivesToPreviousDisplay": "13.9%",
     "lastGivesToPreviousRatio": 1.6708,
     "lastGivesToFirst": 0.070599,
     "lastGivesToFirstDisplay": "7.06%",
     "lastGivesToFirstRatio": 0.8472,
     "firstGivesToLast": 0.088735,
     "firstGivesToLastDisplay": "8.87%",
     "firstGivesToLastRatio": 1.0648,
     "lastTwoSwap": 0.009589,
     "lastTwoSwapUniform": 0.00641,
     "lastTwoSwapRatio": 1.496,
     "lastRow": [
      0.070599,
      0.071127,
      0.071762,
      0.072539,
      0.073512,
      0.074765,
      0.076441,
      0.078798,
      0.082353,
      0.088337,
      0.100533,
      0.139235
     ],
     "lastRowRatio": [
      0.8472,
      0.8535,
      0.8611,
      0.8705,
      0.8821,
      0.8972,
      0.9173,
      0.9456,
      0.9882,
      1.06,
      1.2064,
      1.6708
     ]
    },
    {
     "people": 14,
     "fair": 0.076923,
     "fairDisplay": "7.69%",
     "lastGivesToPrevious": 0.129633,
     "lastGivesToPreviousDisplay": "13.0%",
     "lastGivesToPreviousRatio": 1.6852,
     "lastGivesToFirst": 0.065622,
     "lastGivesToFirstDisplay": "6.56%",
     "lastGivesToFirstRatio": 0.8531,
     "firstGivesToLast": 0.081589,
     "firstGivesToLastDisplay": "8.16%",
     "firstGivesToLastRatio": 1.0607,
     "lastTwoSwap": 0.008322,
     "lastTwoSwapUniform": 0.005495,
     "lastTwoSwapRatio": 1.5147,
     "lastRow": [
      0.065622,
      0.066038,
      0.06653,
      0.067122,
      0.067845,
      0.068751,
      0.069918,
      0.071479,
      0.073672,
      0.07698,
      0.082543,
      0.093866,
      0.129633
     ],
     "lastRowRatio": [
      0.8531,
      0.8585,
      0.8649,
      0.8726,
      0.882,
      0.8938,
      0.9089,
      0.9292,
      0.9577,
      1.0007,
      1.0731,
      1.2203,
      1.6852
     ]
    },
    {
     "people": 15,
     "fair": 0.071429,
     "fairDisplay": "7.14%",
     "lastGivesToPrevious": 0.1213,
     "lastGivesToPreviousDisplay": "12.1%",
     "lastGivesToPreviousRatio": 1.6982,
     "lastGivesToFirst": 0.06132,
     "lastGivesToFirstDisplay": "6.13%",
     "lastGivesToFirstRatio": 0.8585,
     "firstGivesToLast": 0.0755,
     "firstGivesToLastDisplay": "7.55%",
     "firstGivesToLastRatio": 1.057,
     "lastTwoSwap": 0.007294,
     "lastTwoSwapUniform": 0.004762,
     "lastTwoSwapRatio": 1.5318,
     "lastRow": [
      0.06132,
      0.061654,
      0.062044,
      0.062504,
      0.063058,
      0.063735,
      0.064583,
      0.065675,
      0.067135,
      0.069187,
      0.07228,
      0.077478,
      0.088047,
      0.1213
     ],
     "lastRowRatio": [
      0.8585,
      0.8632,
      0.8686,
      0.8751,
      0.8828,
      0.8923,
      0.9042,
      0.9195,
      0.9399,
      0.9686,
      1.0119,
      1.0847,
      1.2327,
      1.6982
     ]
    },
    {
     "people": 16,
     "fair": 0.066667,
     "fairDisplay": "6.67%",
     "lastGivesToPrevious": 0.113997,
     "lastGivesToPreviousDisplay": "11.4%",
     "lastGivesToPreviousRatio": 1.71,
     "lastGivesToFirst": 0.057563,
     "lastGivesToFirstDisplay": "5.76%",
     "lastGivesToFirstRatio": 0.8634,
     "firstGivesToLast": 0.070252,
     "firstGivesToLastDisplay": "7.03%",
     "firstGivesToLastRatio": 1.0538,
     "lastTwoSwap": 0.006448,
     "lastTwoSwapUniform": 0.004167,
     "lastTwoSwapRatio": 1.5474,
     "lastRow": [
      0.057563,
      0.057835,
      0.058149,
      0.058515,
      0.058948,
      0.059468,
      0.060105,
      0.060902,
      0.061928,
      0.0633,
      0.065227,
      0.068132,
      0.073011,
      0.082921,
      0.113997
     ],
     "lastRowRatio": [
      0.8634,
      0.8675,
      0.8722,
      0.8777,
      0.8842,
      0.892,
      0.9016,
      0.9135,
      0.9289,
      0.9495,
      0.9784,
      1.022,
      1.0952,
      1.2438,
      1.71
     ]
    },
    {
     "people": 17,
     "fair": 0.0625,
     "fairDisplay": "6.25%",
     "lastGivesToPrevious": 0.107542,
     "lastGivesToPreviousDisplay": "10.8%",
     "lastGivesToPreviousRatio": 1.7207,
     "lastGivesToFirst": 0.054251,
     "lastGivesToFirstDisplay": "5.43%",
     "lastGivesToFirstRatio": 0.868,
     "firstGivesToLast": 0.065681,
     "firstGivesToLastDisplay": "6.57%",
     "firstGivesToLastRatio": 1.0509,
     "lastTwoSwap": 0.005742,
     "lastTwoSwapUniform": 0.003676,
     "lastTwoSwapRatio": 1.5619,
     "lastRow": [
      0.054251,
      0.054476,
      0.054732,
      0.055028,
      0.055374,
      0.055782,
      0.056273,
      0.056874,
      0.057626,
      0.058594,
      0.059888,
      0.061705,
      0.064443,
      0.069041,
      0.078371,
      0.107542
     ],
     "lastRowRatio": [
      0.868,
      0.8716,
      0.8757,
      0.8804,
      0.886,
      0.8925,
      0.9004,
      0.91,
      0.922,
      0.9375,
      0.9582,
      0.9873,
      1.0311,
      1.1047,
      1.2539,
      1.7207
     ]
    },
    {
     "people": 18,
     "fair": 0.058824,
     "fairDisplay": "5.88%",
     "lastGivesToPrevious": 0.101793,
     "lastGivesToPreviousDisplay": "10.2%",
     "lastGivesToPreviousRatio": 1.7305,
     "lastGivesToFirst": 0.051309,
     "lastGivesToFirstDisplay": "5.13%",
     "lastGivesToFirstRatio": 0.8723,
     "firstGivesToLast": 0.061666,
     "firstGivesToLastDisplay": "6.17%",
     "firstGivesToLastRatio": 1.0483,
     "lastTwoSwap": 0.005148,
     "lastTwoSwapUniform": 0.003268,
     "lastTwoSwapRatio": 1.5753,
     "lastRow": [
      0.051309,
      0.051497,
      0.051709,
      0.051952,
      0.052232,
      0.052559,
      0.052946,
      0.053411,
      0.053979,
      0.054691,
      0.055607,
      0.056832,
      0.058551,
      0.061141,
      0.065489,
      0.074303,
      0.101793
     ],
     "lastRowRatio": [
      0.8723,
      0.8754,
      0.8791,
      0.8832,
      0.8879,
      0.8935,
      0.9001,
      0.908,
      0.9176,
      0.9297,
      0.9453,
      0.9661,
      0.9954,
      1.0394,
      1.1133,
      1.2632,
      1.7305
     ]
    },
    {
     "people": 19,
     "fair": 0.055556,
     "fairDisplay": "5.56%",
     "lastGivesToPrevious": 0.09664,
     "lastGivesToPreviousDisplay": "9.66%",
     "lastGivesToPreviousRatio": 1.7395,
     "lastGivesToFirst": 0.048677,
     "lastGivesToFirstDisplay": "4.87%",
     "lastGivesToFirstRatio": 0.8762,
     "firstGivesToLast": 0.058111,
     "firstGivesToLastDisplay": "5.81%",
     "firstGivesToLastRatio": 1.046,
     "lastTwoSwap": 0.004642,
     "lastTwoSwapUniform": 0.002924,
     "lastTwoSwapRatio": 1.5877,
     "lastRow": [
      0.048677,
      0.048835,
      0.049013,
      0.049215,
      0.049445,
      0.049711,
      0.050022,
      0.050389,
      0.050831,
      0.05137,
      0.052046,
      0.052916,
      0.054078,
      0.05571,
      0.058167,
      0.062291,
      0.070644,
      0.09664
     ],
     "lastRowRatio": [
      0.8762,
      0.879,
      0.8822,
      0.8859,
      0.89,
      0.8948,
      0.9004,
      0.907,
      0.9149,
      0.9247,
      0.9368,
      0.9525,
      0.9734,
      1.0028,
      1.047,
      1.1212,
      1.2716,
      1.7395
     ]
    },
    {
     "people": 20,
     "fair": 0.052632,
     "fairDisplay": "5.26%",
     "lastGivesToPrevious": 0.091993,
     "lastGivesToPreviousDisplay": "9.20%",
     "lastGivesToPreviousRatio": 1.7479,
     "lastGivesToFirst": 0.046308,
     "lastGivesToFirstDisplay": "4.63%",
     "lastGivesToFirstRatio": 0.8799,
     "firstGivesToLast": 0.054942,
     "firstGivesToLastDisplay": "5.49%",
     "firstGivesToLastRatio": 1.0439,
     "lastTwoSwap": 0.004209,
     "lastTwoSwapUniform": 0.002632,
     "lastTwoSwapRatio": 1.5993,
     "lastRow": [
      0.046308,
      0.046443,
      0.046593,
      0.046762,
      0.046954,
      0.047174,
      0.047427,
      0.047723,
      0.048073,
      0.048493,
      0.049006,
      0.049649,
      0.050477,
      0.051583,
      0.053136,
      0.055474,
      0.059396,
      0.067335,
      0.091993
     ],
     "lastRowRatio": [
      0.8799,
      0.8824,
      0.8853,
      0.8885,
      0.8921,
      0.8963,
      0.9011,
      0.9067,
      0.9134,
      0.9214,
      0.9311,
      0.9433,
      0.9591,
      0.9801,
      1.0096,
      1.054,
      1.1285,
      1.2794,
      1.7479
     ]
    }
   ]
  },
  "loop": {
   "formulas": {
    "loops": "(n-1)! possible loops, each produced by n of the n! shuffles (one per starting point), so each loop has chance 1/(n-1)!",
    "giverToReceiver": "1/(n-1) for every giver and receiver",
    "pSingleLoop": "1 (always)",
    "pMutualPair": "0 for n >= 3",
    "pSelf": "0"
   },
   "note": "Shuffle in app.js calls CueRandom.shuffle (Fisher–Yates) on the non-empty lines of the Names box, so every order is equally likely. Reading the list as a loop gives every person a giver and a receiver, never themselves, never a mutual pair. Whoever presses Shuffle sees the whole list, and so every pairing.",
   "rows": [
    {
     "people": 4,
     "possibleLoops": "6",
     "possibleValidDraws": "9",
     "shareOfValidDrawsThatAreLoops": 0.666667
    },
    {
     "people": 5,
     "possibleLoops": "24",
     "possibleValidDraws": "44",
     "shareOfValidDrawsThatAreLoops": 0.545455
    },
    {
     "people": 6,
     "possibleLoops": "120",
     "possibleValidDraws": "265",
     "shareOfValidDrawsThatAreLoops": 0.45283
    },
    {
     "people": 7,
     "possibleLoops": "720",
     "possibleValidDraws": "1854",
     "shareOfValidDrawsThatAreLoops": 0.38835
    },
    {
     "people": 8,
     "possibleLoops": "5040",
     "possibleValidDraws": "14833",
     "shareOfValidDrawsThatAreLoops": 0.339783
    },
    {
     "people": 9,
     "possibleLoops": "40320",
     "possibleValidDraws": "133496",
     "shareOfValidDrawsThatAreLoops": 0.302032
    },
    {
     "people": 10,
     "possibleLoops": "362880",
     "possibleValidDraws": "1334961",
     "shareOfValidDrawsThatAreLoops": 0.271828
    },
    {
     "people": 11,
     "possibleLoops": "3628800",
     "possibleValidDraws": "14684570",
     "shareOfValidDrawsThatAreLoops": 0.247117
    },
    {
     "people": 12,
     "possibleLoops": "39916800",
     "possibleValidDraws": "176214841",
     "shareOfValidDrawsThatAreLoops": 0.226523
    },
    {
     "people": 13,
     "possibleLoops": "479001600",
     "possibleValidDraws": "2290792932",
     "shareOfValidDrawsThatAreLoops": 0.209099
    },
    {
     "people": 14,
     "possibleLoops": "6227020800",
     "possibleValidDraws": "32071101049",
     "shareOfValidDrawsThatAreLoops": 0.194163
    },
    {
     "people": 15,
     "possibleLoops": "87178291200",
     "possibleValidDraws": "481066515734",
     "shareOfValidDrawsThatAreLoops": 0.181219
    },
    {
     "people": 16,
     "possibleLoops": "1307674368000",
     "possibleValidDraws": "7697064251745",
     "shareOfValidDrawsThatAreLoops": 0.169893
    },
    {
     "people": 17,
     "possibleLoops": "20922789888000",
     "possibleValidDraws": "130850092279664",
     "shareOfValidDrawsThatAreLoops": 0.159899
    },
    {
     "people": 18,
     "possibleLoops": "355687428096000",
     "possibleValidDraws": "2355301661033953",
     "shareOfValidDrawsThatAreLoops": 0.151016
    },
    {
     "people": 19,
     "possibleLoops": "6402373705728000",
     "possibleValidDraws": "44750731559645106",
     "shareOfValidDrawsThatAreLoops": 0.143067
    },
    {
     "people": 20,
     "possibleLoops": "121645100408832000",
     "possibleValidDraws": "895014631192902121",
     "shareOfValidDrawsThatAreLoops": 0.135914
    }
   ]
  },
  "couples": {
   "rule": "k couples (persons 1&2, 3&4, ...) who must not draw each other, on top of nobody drawing themselves",
   "formulas": {
    "validDraws": "inclusion–exclusion with the rook polynomial (1 + 4x + 2x^2)^k (1 + x)^(n-2k): sum_j (-1)^j r_j (n-j)!",
    "validLoops": "sum_j (-1)^j C(k,j) 2^j (n-j-1)!: loops with no couple next to each other (glue j couples, either order)",
    "expectedHatTries": "n!/validDraws full draws of the hat (or shuffles in the helper) until nobody has themselves or their partner",
    "expectedShuffles": "(n-1)!/validLoops presses of Shuffle until no couple sits next to each other in the loop"
   },
   "note": "Exact BigInt counts, cross-checked by brute force for n <= 8. pNoSelfDrawBreaksCouples = share of draws with nobody drawing themselves in which some couple draws each other. In the loop, a couple breaks the rule when the two names are next to each other in the shuffled list (first and last count as next to each other).",
   "rows": [
    {
     "people": 4,
     "couples": 0,
     "validDraws": "9",
     "pHatValid": 0.375,
     "displayHatValid": "37.5%",
     "expectedHatTries": 2.666667,
     "expectedHatTriesDisplay": "2.67",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "6",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 4,
     "couples": 1,
     "validDraws": "4",
     "pHatValid": 0.166667,
     "displayHatValid": "16.7%",
     "expectedHatTries": 6,
     "expectedHatTriesDisplay": "6.00",
     "pNoSelfDrawBreaksCouples": 0.555556,
     "displayNoSelfDrawBreaksCouples": "55.6%",
     "validLoops": "2",
     "pLoopValid": 0.333333,
     "displayLoopValid": "33.3%",
     "expectedShuffles": 3,
     "expectedShufflesDisplay": "3.00"
    },
    {
     "people": 4,
     "couples": 2,
     "validDraws": "4",
     "pHatValid": 0.166667,
     "displayHatValid": "16.7%",
     "expectedHatTries": 6,
     "expectedHatTriesDisplay": "6.00",
     "pNoSelfDrawBreaksCouples": 0.555556,
     "displayNoSelfDrawBreaksCouples": "55.6%",
     "validLoops": "2",
     "pLoopValid": 0.333333,
     "displayLoopValid": "33.3%",
     "expectedShuffles": 3,
     "expectedShufflesDisplay": "3.00"
    },
    {
     "people": 5,
     "couples": 0,
     "validDraws": "44",
     "pHatValid": 0.366667,
     "displayHatValid": "36.7%",
     "expectedHatTries": 2.727273,
     "expectedHatTriesDisplay": "2.73",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "24",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 5,
     "couples": 1,
     "validDraws": "24",
     "pHatValid": 0.2,
     "displayHatValid": "20.0%",
     "expectedHatTries": 5,
     "expectedHatTriesDisplay": "5.00",
     "pNoSelfDrawBreaksCouples": 0.454545,
     "displayNoSelfDrawBreaksCouples": "45.5%",
     "validLoops": "12",
     "pLoopValid": 0.5,
     "displayLoopValid": "50.0%",
     "expectedShuffles": 2,
     "expectedShufflesDisplay": "2.00"
    },
    {
     "people": 5,
     "couples": 2,
     "validDraws": "16",
     "pHatValid": 0.133333,
     "displayHatValid": "13.3%",
     "expectedHatTries": 7.5,
     "expectedHatTriesDisplay": "7.50",
     "pNoSelfDrawBreaksCouples": 0.636364,
     "displayNoSelfDrawBreaksCouples": "63.6%",
     "validLoops": "8",
     "pLoopValid": 0.333333,
     "displayLoopValid": "33.3%",
     "expectedShuffles": 3,
     "expectedShufflesDisplay": "3.00"
    },
    {
     "people": 6,
     "couples": 0,
     "validDraws": "265",
     "pHatValid": 0.368056,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.716981,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "120",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 6,
     "couples": 1,
     "validDraws": "168",
     "pHatValid": 0.233333,
     "displayHatValid": "23.3%",
     "expectedHatTries": 4.285714,
     "expectedHatTriesDisplay": "4.29",
     "pNoSelfDrawBreaksCouples": 0.366038,
     "displayNoSelfDrawBreaksCouples": "36.6%",
     "validLoops": "72",
     "pLoopValid": 0.6,
     "displayLoopValid": "60.0%",
     "expectedShuffles": 1.666667,
     "expectedShufflesDisplay": "1.67"
    },
    {
     "people": 6,
     "couples": 2,
     "validDraws": "116",
     "pHatValid": 0.161111,
     "displayHatValid": "16.1%",
     "expectedHatTries": 6.206897,
     "expectedHatTriesDisplay": "6.21",
     "pNoSelfDrawBreaksCouples": 0.562264,
     "displayNoSelfDrawBreaksCouples": "56.2%",
     "validLoops": "48",
     "pLoopValid": 0.4,
     "displayLoopValid": "40.0%",
     "expectedShuffles": 2.5,
     "expectedShufflesDisplay": "2.50"
    },
    {
     "people": 6,
     "couples": 3,
     "validDraws": "80",
     "pHatValid": 0.111111,
     "displayHatValid": "11.1%",
     "expectedHatTries": 9,
     "expectedHatTriesDisplay": "9.00",
     "pNoSelfDrawBreaksCouples": 0.698113,
     "displayNoSelfDrawBreaksCouples": "69.8%",
     "validLoops": "32",
     "pLoopValid": 0.266667,
     "displayLoopValid": "26.7%",
     "expectedShuffles": 3.75,
     "expectedShufflesDisplay": "3.75"
    },
    {
     "people": 7,
     "couples": 0,
     "validDraws": "1854",
     "pHatValid": 0.367857,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718447,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "720",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 7,
     "couples": 1,
     "validDraws": "1280",
     "pHatValid": 0.253968,
     "displayHatValid": "25.4%",
     "expectedHatTries": 3.9375,
     "expectedHatTriesDisplay": "3.94",
     "pNoSelfDrawBreaksCouples": 0.309601,
     "displayNoSelfDrawBreaksCouples": "31.0%",
     "validLoops": "480",
     "pLoopValid": 0.666667,
     "displayLoopValid": "66.7%",
     "expectedShuffles": 1.5,
     "expectedShufflesDisplay": "1.50"
    },
    {
     "people": 7,
     "couples": 2,
     "validDraws": "920",
     "pHatValid": 0.18254,
     "displayHatValid": "18.3%",
     "expectedHatTries": 5.478261,
     "expectedHatTriesDisplay": "5.48",
     "pNoSelfDrawBreaksCouples": 0.503776,
     "displayNoSelfDrawBreaksCouples": "50.4%",
     "validLoops": "336",
     "pLoopValid": 0.466667,
     "displayLoopValid": "46.7%",
     "expectedShuffles": 2.142857,
     "expectedShufflesDisplay": "2.14"
    },
    {
     "people": 7,
     "couples": 3,
     "validDraws": "672",
     "pHatValid": 0.133333,
     "displayHatValid": "13.3%",
     "expectedHatTries": 7.5,
     "expectedHatTriesDisplay": "7.50",
     "pNoSelfDrawBreaksCouples": 0.63754,
     "displayNoSelfDrawBreaksCouples": "63.8%",
     "validLoops": "240",
     "pLoopValid": 0.333333,
     "displayLoopValid": "33.3%",
     "expectedShuffles": 3,
     "expectedShufflesDisplay": "3.00"
    },
    {
     "people": 8,
     "couples": 0,
     "validDraws": "14833",
     "pHatValid": 0.367882,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718263,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "5040",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 8,
     "couples": 1,
     "validDraws": "10860",
     "pHatValid": 0.269345,
     "displayHatValid": "26.9%",
     "expectedHatTries": 3.712707,
     "expectedHatTriesDisplay": "3.71",
     "pNoSelfDrawBreaksCouples": 0.267849,
     "displayNoSelfDrawBreaksCouples": "26.8%",
     "validLoops": "3600",
     "pLoopValid": 0.714286,
     "displayLoopValid": "71.4%",
     "expectedShuffles": 1.4,
     "expectedShufflesDisplay": "1.40"
    },
    {
     "people": 8,
     "couples": 2,
     "validDraws": "8132",
     "pHatValid": 0.201687,
     "displayHatValid": "20.2%",
     "expectedHatTries": 4.95819,
     "expectedHatTriesDisplay": "4.96",
     "pNoSelfDrawBreaksCouples": 0.451763,
     "displayNoSelfDrawBreaksCouples": "45.2%",
     "validLoops": "2640",
     "pLoopValid": 0.52381,
     "displayLoopValid": "52.4%",
     "expectedShuffles": 1.909091,
     "expectedShufflesDisplay": "1.91"
    },
    {
     "people": 8,
     "couples": 3,
     "validDraws": "6176",
     "pHatValid": 0.153175,
     "displayHatValid": "15.3%",
     "expectedHatTries": 6.528497,
     "expectedHatTriesDisplay": "6.53",
     "pNoSelfDrawBreaksCouples": 0.583631,
     "displayNoSelfDrawBreaksCouples": "58.4%",
     "validLoops": "1968",
     "pLoopValid": 0.390476,
     "displayLoopValid": "39.0%",
     "expectedShuffles": 2.560976,
     "expectedShufflesDisplay": "2.56"
    },
    {
     "people": 8,
     "couples": 4,
     "validDraws": "4752",
     "pHatValid": 0.117857,
     "displayHatValid": "11.8%",
     "expectedHatTries": 8.484848,
     "expectedHatTriesDisplay": "8.48",
     "pNoSelfDrawBreaksCouples": 0.679633,
     "displayNoSelfDrawBreaksCouples": "68.0%",
     "validLoops": "1488",
     "pLoopValid": 0.295238,
     "displayLoopValid": "29.5%",
     "expectedShuffles": 3.387097,
     "expectedShufflesDisplay": "3.39"
    },
    {
     "people": 9,
     "couples": 0,
     "validDraws": "133496",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718284,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "40320",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 9,
     "couples": 1,
     "validDraws": "101976",
     "pHatValid": 0.281019,
     "displayHatValid": "28.1%",
     "expectedHatTries": 3.558484,
     "expectedHatTriesDisplay": "3.56",
     "pNoSelfDrawBreaksCouples": 0.236112,
     "displayNoSelfDrawBreaksCouples": "23.6%",
     "validLoops": "30240",
     "pLoopValid": 0.75,
     "displayLoopValid": "75.0%",
     "expectedShuffles": 1.333333,
     "expectedShufflesDisplay": "1.33"
    },
    {
     "people": 9,
     "couples": 2,
     "validDraws": "78976",
     "pHatValid": 0.217637,
     "displayHatValid": "21.8%",
     "expectedHatTries": 4.594814,
     "expectedHatTriesDisplay": "4.59",
     "pNoSelfDrawBreaksCouples": 0.408402,
     "displayNoSelfDrawBreaksCouples": "40.8%",
     "validLoops": "23040",
     "pLoopValid": 0.571429,
     "displayLoopValid": "57.1%",
     "expectedShuffles": 1.75,
     "expectedShufflesDisplay": "1.75"
    },
    {
     "people": 9,
     "couples": 3,
     "validDraws": "61792",
     "pHatValid": 0.170282,
     "displayHatValid": "17.0%",
     "expectedHatTries": 5.872605,
     "expectedHatTriesDisplay": "5.87",
     "pNoSelfDrawBreaksCouples": 0.537125,
     "displayNoSelfDrawBreaksCouples": "53.7%",
     "validLoops": "17760",
     "pLoopValid": 0.440476,
     "displayLoopValid": "44.0%",
     "expectedShuffles": 2.27027,
     "expectedShufflesDisplay": "2.27"
    },
    {
     "people": 9,
     "couples": 4,
     "validDraws": "48768",
     "pHatValid": 0.134392,
     "displayHatValid": "13.4%",
     "expectedHatTries": 7.440945,
     "expectedHatTriesDisplay": "7.44",
     "pNoSelfDrawBreaksCouples": 0.634686,
     "displayNoSelfDrawBreaksCouples": "63.5%",
     "validLoops": "13824",
     "pLoopValid": 0.342857,
     "displayLoopValid": "34.3%",
     "expectedShuffles": 2.916667,
     "expectedShufflesDisplay": "2.92"
    },
    {
     "people": 10,
     "couples": 0,
     "validDraws": "1334961",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "362880",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 10,
     "couples": 1,
     "validDraws": "1053136",
     "pHatValid": 0.290216,
     "displayHatValid": "29.0%",
     "expectedHatTries": 3.445709,
     "expectedHatTriesDisplay": "3.45",
     "pNoSelfDrawBreaksCouples": 0.211111,
     "displayNoSelfDrawBreaksCouples": "21.1%",
     "validLoops": "282240",
     "pLoopValid": 0.777778,
     "displayLoopValid": "77.8%",
     "expectedShuffles": 1.285714,
     "expectedShufflesDisplay": "1.29"
    },
    {
     "people": 10,
     "couples": 2,
     "validDraws": "838324",
     "pHatValid": 0.23102,
     "displayHatValid": "23.1%",
     "expectedHatTries": 4.328637,
     "expectedHatTriesDisplay": "4.33",
     "pNoSelfDrawBreaksCouples": 0.372024,
     "displayNoSelfDrawBreaksCouples": "37.2%",
     "validLoops": "221760",
     "pLoopValid": 0.611111,
     "displayLoopValid": "61.1%",
     "expectedShuffles": 1.636364,
     "expectedShufflesDisplay": "1.64"
    },
    {
     "people": 10,
     "couples": 3,
     "validDraws": "672240",
     "pHatValid": 0.185251,
     "displayHatValid": "18.5%",
     "expectedHatTries": 5.398072,
     "expectedHatTriesDisplay": "5.40",
     "pNoSelfDrawBreaksCouples": 0.496435,
     "displayNoSelfDrawBreaksCouples": "49.6%",
     "validLoops": "175680",
     "pLoopValid": 0.484127,
     "displayLoopValid": "48.4%",
     "expectedShuffles": 2.065574,
     "expectedShufflesDisplay": "2.07"
    },
    {
     "people": 10,
     "couples": 4,
     "validDraws": "542480",
     "pHatValid": 0.149493,
     "displayHatValid": "14.9%",
     "expectedHatTries": 6.689279,
     "expectedHatTriesDisplay": "6.69",
     "pNoSelfDrawBreaksCouples": 0.593636,
     "displayNoSelfDrawBreaksCouples": "59.4%",
     "validLoops": "140160",
     "pLoopValid": 0.386243,
     "displayLoopValid": "38.6%",
     "expectedShuffles": 2.589041,
     "expectedShufflesDisplay": "2.59"
    },
    {
     "people": 10,
     "couples": 5,
     "validDraws": "440192",
     "pHatValid": 0.121305,
     "displayHatValid": "12.1%",
     "expectedHatTries": 8.243675,
     "expectedHatTriesDisplay": "8.24",
     "pNoSelfDrawBreaksCouples": 0.670259,
     "displayNoSelfDrawBreaksCouples": "67.0%",
     "validLoops": "112512",
     "pLoopValid": 0.310053,
     "displayLoopValid": "31.0%",
     "expectedShuffles": 3.225256,
     "expectedShufflesDisplay": "3.23"
    },
    {
     "people": 11,
     "couples": 0,
     "validDraws": "14684570",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "3628800",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 11,
     "couples": 1,
     "validDraws": "11881152",
     "pHatValid": 0.297648,
     "displayHatValid": "29.8%",
     "expectedHatTries": 3.359674,
     "expectedHatTriesDisplay": "3.36",
     "pNoSelfDrawBreaksCouples": 0.190909,
     "displayNoSelfDrawBreaksCouples": "19.1%",
     "validLoops": "2903040",
     "pLoopValid": 0.8,
     "displayLoopValid": "80.0%",
     "expectedShuffles": 1.25,
     "expectedShufflesDisplay": "1.25"
    },
    {
     "people": 11,
     "couples": 2,
     "validDraws": "9672904",
     "pHatValid": 0.242327,
     "displayHatValid": "24.2%",
     "expectedHatTries": 4.126661,
     "expectedHatTriesDisplay": "4.13",
     "pNoSelfDrawBreaksCouples": 0.341288,
     "displayNoSelfDrawBreaksCouples": "34.1%",
     "validLoops": "2338560",
     "pLoopValid": 0.644444,
     "displayLoopValid": "64.4%",
     "expectedShuffles": 1.551724,
     "expectedShufflesDisplay": "1.55"
    },
    {
     "people": 11,
     "couples": 3,
     "validDraws": "7917280",
     "pHatValid": 0.198345,
     "displayHatValid": "19.8%",
     "expectedHatTries": 5.041732,
     "expectedHatTriesDisplay": "5.04",
     "pNoSelfDrawBreaksCouples": 0.460844,
     "displayNoSelfDrawBreaksCouples": "46.1%",
     "validLoops": "1895040",
     "pLoopValid": 0.522222,
     "displayLoopValid": "52.2%",
     "expectedShuffles": 1.914894,
     "expectedShufflesDisplay": "1.91"
    },
    {
     "people": 11,
     "couples": 4,
     "validDraws": "6511008",
     "pHatValid": 0.163114,
     "displayHatValid": "16.3%",
     "expectedHatTries": 6.130664,
     "expectedHatTriesDisplay": "6.13",
     "pNoSelfDrawBreaksCouples": 0.556609,
     "displayNoSelfDrawBreaksCouples": "55.7%",
     "validLoops": "1543680",
     "pLoopValid": 0.425397,
     "displayLoopValid": "42.5%",
     "expectedShuffles": 2.350746,
     "expectedShufflesDisplay": "2.35"
    },
    {
     "people": 11,
     "couples": 5,
     "validDraws": "5377280",
     "pHatValid": 0.134712,
     "displayHatValid": "13.5%",
     "expectedHatTries": 7.423233,
     "expectedHatTriesDisplay": "7.42",
     "pNoSelfDrawBreaksCouples": 0.633814,
     "displayNoSelfDrawBreaksCouples": "63.4%",
     "validLoops": "1263360",
     "pLoopValid": 0.348148,
     "displayLoopValid": "34.8%",
     "expectedShuffles": 2.87234,
     "expectedShufflesDisplay": "2.87"
    },
    {
     "people": 12,
     "couples": 0,
     "validDraws": "176214841",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "39916800",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 12,
     "couples": 1,
     "validDraws": "145510740",
     "pHatValid": 0.303779,
     "displayHatValid": "30.4%",
     "expectedHatTries": 3.291864,
     "expectedHatTriesDisplay": "3.29",
     "pNoSelfDrawBreaksCouples": 0.174242,
     "displayNoSelfDrawBreaksCouples": "17.4%",
     "validLoops": "32659200",
     "pLoopValid": 0.818182,
     "displayLoopValid": "81.8%",
     "expectedShuffles": 1.222222,
     "expectedShufflesDisplay": "1.22"
    },
    {
     "people": 12,
     "couples": 2,
     "validDraws": "120695300",
     "pHatValid": 0.251973,
     "displayHatValid": "25.2%",
     "expectedHatTries": 3.968685,
     "expectedHatTriesDisplay": "3.97",
     "pNoSelfDrawBreaksCouples": 0.315067,
     "displayNoSelfDrawBreaksCouples": "31.5%",
     "validLoops": "26853120",
     "pLoopValid": 0.672727,
     "displayLoopValid": "67.3%",
     "expectedShuffles": 1.486486,
     "expectedShufflesDisplay": "1.49"
    },
    {
     "people": 12,
     "couples": 3,
     "validDraws": "100511168",
     "pHatValid": 0.209835,
     "displayHatValid": "21.0%",
     "expectedHatTries": 4.765655,
     "expectedHatTriesDisplay": "4.77",
     "pNoSelfDrawBreaksCouples": 0.42961,
     "displayNoSelfDrawBreaksCouples": "43.0%",
     "validLoops": "22176000",
     "pLoopValid": 0.555556,
     "displayLoopValid": "55.6%",
     "expectedShuffles": 1.8,
     "expectedShufflesDisplay": "1.80"
    },
    {
     "people": 12,
     "couples": 4,
     "validDraws": "84004368",
     "pHatValid": 0.175374,
     "displayHatValid": "17.5%",
     "expectedHatTries": 5.702103,
     "expectedHatTriesDisplay": "5.70",
     "pNoSelfDrawBreaksCouples": 0.523284,
     "displayNoSelfDrawBreaksCouples": "52.3%",
     "validLoops": "18385920",
     "pLoopValid": 0.460606,
     "displayLoopValid": "46.1%",
     "expectedShuffles": 2.171053,
     "expectedShufflesDisplay": "2.17"
    },
    {
     "people": 12,
     "couples": 5,
     "validDraws": "70439872",
     "pHatValid": 0.147056,
     "displayHatValid": "14.7%",
     "expectedHatTries": 6.800149,
     "expectedHatTriesDisplay": "6.80",
     "pNoSelfDrawBreaksCouples": 0.600261,
     "displayNoSelfDrawBreaksCouples": "60.0%",
     "validLoops": "15298560",
     "pLoopValid": 0.383261,
     "displayLoopValid": "38.3%",
     "expectedShuffles": 2.609187,
     "expectedShufflesDisplay": "2.61"
    },
    {
     "people": 12,
     "couples": 6,
     "validDraws": "59245120",
     "pHatValid": 0.123685,
     "displayHatValid": "12.4%",
     "expectedHatTries": 8.085081,
     "expectedHatTriesDisplay": "8.09",
     "pNoSelfDrawBreaksCouples": 0.66379,
     "displayNoSelfDrawBreaksCouples": "66.4%",
     "validLoops": "12771840",
     "pLoopValid": 0.319962,
     "displayLoopValid": "32.0%",
     "expectedShuffles": 3.125376,
     "expectedShufflesDisplay": "3.13"
    },
    {
     "people": 13,
     "couples": 0,
     "validDraws": "2290792932",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "479001600",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 13,
     "couples": 1,
     "validDraws": "1923678680",
     "pHatValid": 0.308924,
     "displayHatValid": "30.9%",
     "expectedHatTries": 3.237038,
     "expectedHatTriesDisplay": "3.24",
     "pNoSelfDrawBreaksCouples": 0.160256,
     "displayNoSelfDrawBreaksCouples": "16.0%",
     "validLoops": "399168000",
     "pLoopValid": 0.833333,
     "displayLoopValid": "83.3%",
     "expectedShuffles": 1.2,
     "expectedShufflesDisplay": "1.20"
    },
    {
     "people": 13,
     "couples": 2,
     "validDraws": "1620776048",
     "pHatValid": 0.260281,
     "displayHatValid": "26.0%",
     "expectedHatTries": 3.842,
     "expectedHatTriesDisplay": "3.84",
     "pNoSelfDrawBreaksCouples": 0.292483,
     "displayNoSelfDrawBreaksCouples": "29.2%",
     "validLoops": "333849600",
     "pLoopValid": 0.69697,
     "displayLoopValid": "69.7%",
     "expectedShuffles": 1.434783,
     "expectedShufflesDisplay": "1.43"
    },
    {
     "people": 13,
     "couples": 3,
     "validDraws": "1369712544",
     "pHatValid": 0.219963,
     "displayHatValid": "22.0%",
     "expectedHatTries": 4.546225,
     "expectedHatTriesDisplay": "4.55",
     "pNoSelfDrawBreaksCouples": 0.402079,
     "displayNoSelfDrawBreaksCouples": "40.2%",
     "validLoops": "280143360",
     "pLoopValid": 0.584848,
     "displayLoopValid": "58.5%",
     "expectedShuffles": 1.709845,
     "expectedShufflesDisplay": "1.71"
    },
    {
     "people": 13,
     "couples": 4,
     "validDraws": "1160772928",
     "pHatValid": 0.186409,
     "displayHatValid": "18.6%",
     "expectedHatTries": 5.364547,
     "expectedHatTriesDisplay": "5.36",
     "pNoSelfDrawBreaksCouples": 0.493288,
     "displayNoSelfDrawBreaksCouples": "49.3%",
     "validLoops": "235791360",
     "pLoopValid": 0.492256,
     "displayLoopValid": "49.2%",
     "expectedShuffles": 2.031464,
     "expectedShufflesDisplay": "2.03"
    },
    {
     "people": 13,
     "couples": 5,
     "validDraws": "986253184",
     "pHatValid": 0.158383,
     "displayHatValid": "15.8%",
     "expectedHatTries": 6.313816,
     "expectedHatTriesDisplay": "6.31",
     "pNoSelfDrawBreaksCouples": 0.569471,
     "displayNoSelfDrawBreaksCouples": "56.9%",
     "validLoops": "199019520",
     "pLoopValid": 0.415488,
     "displayLoopValid": "41.5%",
     "expectedShuffles": 2.406807,
     "expectedShufflesDisplay": "2.41"
    },
    {
     "people": 13,
     "couples": 6,
     "validDraws": "839996160",
     "pHatValid": 0.134895,
     "displayHatValid": "13.5%",
     "expectedHatTries": 7.413154,
     "expectedHatTriesDisplay": "7.41",
     "pNoSelfDrawBreaksCouples": 0.633316,
     "displayNoSelfDrawBreaksCouples": "63.3%",
     "validLoops": "168422400",
     "pLoopValid": 0.351611,
     "displayLoopValid": "35.2%",
     "expectedShuffles": 2.844049,
     "expectedShufflesDisplay": "2.84"
    },
    {
     "people": 14,
     "couples": 0,
     "validDraws": "32071101049",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "6227020800",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 14,
     "couples": 1,
     "validDraws": "27313300344",
     "pHatValid": 0.313304,
     "displayHatValid": "31.3%",
     "expectedHatTries": 3.191789,
     "expectedHatTriesDisplay": "3.19",
     "pNoSelfDrawBreaksCouples": 0.148352,
     "displayNoSelfDrawBreaksCouples": "14.8%",
     "validLoops": "5269017600",
     "pLoopValid": 0.846154,
     "displayLoopValid": "84.6%",
     "expectedShuffles": 1.181818,
     "expectedShufflesDisplay": "1.18"
    },
    {
     "people": 14,
     "couples": 2,
     "validDraws": "23320432244",
     "pHatValid": 0.267503,
     "displayHatValid": "26.8%",
     "expectedHatTries": 3.738279,
     "expectedHatTriesDisplay": "3.74",
     "pNoSelfDrawBreaksCouples": 0.272852,
     "displayNoSelfDrawBreaksCouples": "27.3%",
     "validLoops": "4470681600",
     "pLoopValid": 0.717949,
     "displayLoopValid": "71.8%",
     "expectedShuffles": 1.392857,
     "expectedShufflesDisplay": "1.39"
    },
    {
     "people": 14,
     "couples": 3,
     "validDraws": "19958184848",
     "pHatValid": 0.228935,
     "displayHatValid": "22.9%",
     "expectedHatTries": 4.368047,
     "expectedHatTriesDisplay": "4.37",
     "pNoSelfDrawBreaksCouples": 0.377689,
     "displayNoSelfDrawBreaksCouples": "37.8%",
     "validLoops": "3802982400",
     "pLoopValid": 0.610723,
     "displayLoopValid": "61.1%",
     "expectedShuffles": 1.637405,
     "expectedShufflesDisplay": "1.64"
    },
    {
     "people": 14,
     "couples": 4,
     "validDraws": "17118248592",
     "pHatValid": 0.196359,
     "displayHatValid": "19.6%",
     "expectedHatTries": 5.092711,
     "expectedHatTriesDisplay": "5.09",
     "pNoSelfDrawBreaksCouples": 0.466241,
     "displayNoSelfDrawBreaksCouples": "46.6%",
     "validLoops": "3242695680",
     "pLoopValid": 0.520746,
     "displayLoopValid": "52.1%",
     "expectedShuffles": 1.920322,
     "expectedShufflesDisplay": "1.92"
    },
    {
     "people": 14,
     "couples": 5,
     "validDraws": "14712698368",
     "pHatValid": 0.168766,
     "displayHatValid": "16.9%",
     "expectedHatTries": 5.925377,
     "expectedHatTriesDisplay": "5.93",
     "pNoSelfDrawBreaksCouples": 0.541247,
     "displayNoSelfDrawBreaksCouples": "54.1%",
     "validLoops": "2771112960",
     "pLoopValid": 0.445014,
     "displayLoopValid": "44.5%",
     "expectedShuffles": 2.247119,
     "expectedShufflesDisplay": "2.25"
    },
    {
     "people": 14,
     "couples": 6,
     "validDraws": "12669752128",
     "pHatValid": 0.145332,
     "displayHatValid": "14.5%",
     "expectedHatTries": 6.880821,
     "expectedHatTriesDisplay": "6.88",
     "pNoSelfDrawBreaksCouples": 0.604948,
     "displayNoSelfDrawBreaksCouples": "60.5%",
     "validLoops": "2373073920",
     "pLoopValid": 0.381093,
     "displayLoopValid": "38.1%",
     "expectedShuffles": 2.624032,
     "expectedShufflesDisplay": "2.62"
    },
    {
     "people": 14,
     "couples": 7,
     "validDraws": "10930514688",
     "pHatValid": 0.125381,
     "displayHatValid": "12.5%",
     "expectedHatTries": 7.97568,
     "expectedHatTriesDisplay": "7.98",
     "pNoSelfDrawBreaksCouples": 0.659179,
     "displayNoSelfDrawBreaksCouples": "65.9%",
     "validLoops": "2036229120",
     "pLoopValid": 0.326999,
     "displayLoopValid": "32.7%",
     "expectedShuffles": 3.058114,
     "expectedShufflesDisplay": "3.06"
    },
    {
     "people": 15,
     "couples": 0,
     "validDraws": "481066515734",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "87178291200",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 15,
     "couples": 1,
     "validDraws": "414633520704",
     "pHatValid": 0.317077,
     "displayHatValid": "31.7%",
     "expectedHatTries": 3.153808,
     "expectedHatTriesDisplay": "3.15",
     "pNoSelfDrawBreaksCouples": 0.138095,
     "displayNoSelfDrawBreaksCouples": "13.8%",
     "validLoops": "74724249600",
     "pLoopValid": 0.857143,
     "displayLoopValid": "85.7%",
     "expectedShuffles": 1.166667,
     "expectedShufflesDisplay": "1.17"
    },
    {
     "people": 15,
     "couples": 2,
     "validDraws": "358083241336",
     "pHatValid": 0.273832,
     "displayHatValid": "27.4%",
     "expectedHatTries": 3.651873,
     "expectedHatTriesDisplay": "3.65",
     "pNoSelfDrawBreaksCouples": 0.255647,
     "displayNoSelfDrawBreaksCouples": "25.6%",
     "validLoops": "64186214400",
     "pLoopValid": 0.736264,
     "displayLoopValid": "73.6%",
     "expectedShuffles": 1.358209,
     "expectedShufflesDisplay": "1.36"
    },
    {
     "people": 15,
     "couples": 3,
     "validDraws": "309821600800",
     "pHatValid": 0.236926,
     "displayHatValid": "23.7%",
     "expectedHatTries": 4.220733,
     "expectedHatTriesDisplay": "4.22",
     "pNoSelfDrawBreaksCouples": 0.355969,
     "displayNoSelfDrawBreaksCouples": "35.6%",
     "validLoops": "55244851200",
     "pLoopValid": 0.6337,
     "displayLoopValid": "63.4%",
     "expectedShuffles": 1.578035,
     "expectedShufflesDisplay": "1.58"
    },
    {
     "people": 15,
     "couples": 4,
     "validDraws": "268535518560",
     "pHatValid": 0.205354,
     "displayHatValid": "20.5%",
     "expectedHatTries": 4.869651,
     "expectedHatTriesDisplay": "4.87",
     "pNoSelfDrawBreaksCouples": 0.441791,
     "displayNoSelfDrawBreaksCouples": "44.2%",
     "validLoops": "47638886400",
     "pLoopValid": 0.546454,
     "displayLoopValid": "54.6%",
     "expectedShuffles": 1.829982,
     "expectedShufflesDisplay": "1.83"
    },
    {
     "people": 15,
     "couples": 5,
     "validDraws": "233138248448",
     "pHatValid": 0.178285,
     "displayHatValid": "17.8%",
     "expectedHatTries": 5.609008,
     "expectedHatTriesDisplay": "5.61",
     "pNoSelfDrawBreaksCouples": 0.515372,
     "displayNoSelfDrawBreaksCouples": "51.5%",
     "validLoops": "41153495040",
     "pLoopValid": 0.472061,
     "displayLoopValid": "47.2%",
     "expectedShuffles": 2.118369,
     "expectedShufflesDisplay": "2.12"
    },
    {
     "people": 15,
     "couples": 6,
     "validDraws": "202726598528",
     "pHatValid": 0.155028,
     "displayHatValid": "15.5%",
     "expectedHatTries": 6.450433,
     "expectedHatTriesDisplay": "6.45",
     "pNoSelfDrawBreaksCouples": 0.578589,
     "displayNoSelfDrawBreaksCouples": "57.9%",
     "validLoops": "35611269120",
     "pLoopValid": 0.408488,
     "displayLoopValid": "40.8%",
     "expectedShuffles": 2.448053,
     "expectedShufflesDisplay": "2.45"
    },
    {
     "people": 15,
     "couples": 7,
     "validDraws": "176547098112",
     "pHatValid": 0.135008,
     "displayHatValid": "13.5%",
     "expectedHatTries": 7.406943,
     "expectedHatTriesDisplay": "7.41",
     "pNoSelfDrawBreaksCouples": 0.633009,
     "displayNoSelfDrawBreaksCouples": "63.3%",
     "validLoops": "30865121280",
     "pLoopValid": 0.354046,
     "displayLoopValid": "35.4%",
     "expectedShuffles": 2.824492,
     "expectedShufflesDisplay": "2.82"
    },
    {
     "people": 16,
     "couples": 0,
     "validDraws": "7697064251745",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "1307674368000",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 16,
     "couples": 1,
     "validDraws": "6702860119228",
     "pHatValid": 0.320362,
     "displayHatValid": "32.0%",
     "expectedHatTries": 3.121472,
     "expectedHatTriesDisplay": "3.12",
     "pNoSelfDrawBreaksCouples": 0.129167,
     "displayNoSelfDrawBreaksCouples": "12.9%",
     "validLoops": "1133317785600",
     "pLoopValid": 0.866667,
     "displayLoopValid": "86.7%",
     "expectedShuffles": 1.153846,
     "expectedShufflesDisplay": "1.15"
    },
    {
     "people": 16,
     "couples": 2,
     "validDraws": "5846279777476",
     "pHatValid": 0.279422,
     "displayHatValid": "27.9%",
     "expectedHatTries": 3.578821,
     "expectedHatTriesDisplay": "3.58",
     "pNoSelfDrawBreaksCouples": 0.240453,
     "displayNoSelfDrawBreaksCouples": "24.0%",
     "validLoops": "983869286400",
     "pLoopValid": 0.752381,
     "displayLoopValid": "75.2%",
     "expectedShuffles": 1.329114,
     "expectedShufflesDisplay": "1.33"
    },
    {
     "people": 16,
     "couples": 3,
     "validDraws": "5106792862560",
     "pHatValid": 0.244078,
     "displayHatValid": "24.4%",
     "expectedHatTries": 4.097051,
     "expectedHatTriesDisplay": "4.10",
     "pNoSelfDrawBreaksCouples": 0.336527,
     "displayNoSelfDrawBreaksCouples": "33.7%",
     "validLoops": "855496857600",
     "pLoopValid": 0.654212,
     "displayLoopValid": "65.4%",
     "expectedShuffles": 1.528555,
     "expectedShufflesDisplay": "1.53"
    },
    {
     "people": 16,
     "couples": 4,
     "validDraws": "4467191476112",
     "pHatValid": 0.213508,
     "displayHatValid": "21.4%",
     "expectedHatTries": 4.683656,
     "expectedHatTriesDisplay": "4.68",
     "pNoSelfDrawBreaksCouples": 0.419624,
     "displayNoSelfDrawBreaksCouples": "42.0%",
     "validLoops": "745007155200",
     "pLoopValid": 0.569719,
     "displayLoopValid": "57.0%",
     "expectedShuffles": 1.755251,
     "expectedShufflesDisplay": "1.76"
    },
    {
     "people": 16,
     "couples": 5,
     "validDraws": "3913002190400",
     "pHatValid": 0.187021,
     "displayHatValid": "18.7%",
     "expectedHatTries": 5.346992,
     "expectedHatTriesDisplay": "5.35",
     "pNoSelfDrawBreaksCouples": 0.491624,
     "displayNoSelfDrawBreaksCouples": "49.2%",
     "validLoops": "649729382400",
     "pLoopValid": 0.496859,
     "displayLoopValid": "49.7%",
     "expectedShuffles": 2.012645,
     "expectedShufflesDisplay": "2.01"
    },
    {
     "people": 16,
     "couples": 6,
     "validDraws": "3432012995136",
     "pHatValid": 0.164032,
     "displayHatValid": "16.4%",
     "expectedHatTries": 6.096361,
     "expectedHatTriesDisplay": "6.10",
     "pNoSelfDrawBreaksCouples": 0.554114,
     "displayNoSelfDrawBreaksCouples": "55.4%",
     "validLoops": "567422392320",
     "pLoopValid": 0.433917,
     "displayLoopValid": "43.4%",
     "expectedShuffles": 2.304587,
     "expectedShufflesDisplay": "2.30"
    },
    {
     "people": 16,
     "couples": 7,
     "validDraws": "3013890045952",
     "pHatValid": 0.144048,
     "displayHatValid": "14.4%",
     "expectedHatTries": 6.942121,
     "expectedHatTriesDisplay": "6.94",
     "pNoSelfDrawBreaksCouples": 0.608436,
     "displayNoSelfDrawBreaksCouples": "60.8%",
     "validLoops": "496199854080",
     "pLoopValid": 0.379452,
     "displayLoopValid": "37.9%",
     "expectedShuffles": 2.635378,
     "expectedShufflesDisplay": "2.64"
    },
    {
     "people": 16,
     "couples": 8,
     "validDraws": "2649865335040",
     "pHatValid": 0.12665,
     "displayHatValid": "12.7%",
     "expectedHatTries": 7.895794,
     "expectedHatTriesDisplay": "7.90",
     "pNoSelfDrawBreaksCouples": 0.65573,
     "displayNoSelfDrawBreaksCouples": "65.6%",
     "validLoops": "434469611520",
     "pLoopValid": 0.332246,
     "displayLoopValid": "33.2%",
     "expectedShuffles": 3.009818,
     "expectedShufflesDisplay": "3.01"
    },
    {
     "people": 17,
     "couples": 0,
     "validDraws": "130850092279664",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "20922789888000",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 17,
     "couples": 1,
     "validDraws": "114974897260440",
     "pHatValid": 0.323247,
     "displayHatValid": "32.3%",
     "expectedHatTries": 3.093609,
     "expectedHatTriesDisplay": "3.09",
     "pNoSelfDrawBreaksCouples": 0.121324,
     "displayNoSelfDrawBreaksCouples": "12.1%",
     "validLoops": "18307441152000",
     "pLoopValid": 0.875,
     "displayLoopValid": "87.5%",
     "expectedShuffles": 1.142857,
     "expectedShufflesDisplay": "1.14"
    },
    {
     "people": 17,
     "couples": 2,
     "validDraws": "101154543501280",
     "pHatValid": 0.284392,
     "displayHatValid": "28.4%",
     "expectedHatTries": 3.516277,
     "expectedHatTriesDisplay": "3.52",
     "pNoSelfDrawBreaksCouples": 0.226943,
     "displayNoSelfDrawBreaksCouples": "22.7%",
     "validLoops": "16040805580800",
     "pLoopValid": 0.766667,
     "displayLoopValid": "76.7%",
     "expectedShuffles": 1.304348,
     "expectedShufflesDisplay": "1.30"
    },
    {
     "people": 17,
     "couples": 3,
     "validDraws": "89103900704992",
     "pHatValid": 0.250512,
     "displayHatValid": "25.1%",
     "expectedHatTries": 3.991828,
     "expectedHatTriesDisplay": "3.99",
     "pNoSelfDrawBreaksCouples": 0.319038,
     "displayNoSelfDrawBreaksCouples": "31.9%",
     "validLoops": "14073067008000",
     "pLoopValid": 0.672619,
     "displayLoopValid": "67.3%",
     "expectedShuffles": 1.486726,
     "expectedShufflesDisplay": "1.49"
    },
    {
     "people": 17,
     "couples": 4,
     "validDraws": "78580493379072",
     "pHatValid": 0.220926,
     "displayHatValid": "22.1%",
     "expectedHatTries": 4.526409,
     "expectedHatTriesDisplay": "4.53",
     "pNoSelfDrawBreaksCouples": 0.399462,
     "displayNoSelfDrawBreaksCouples": "39.9%",
     "validLoops": "12362073292800",
     "pLoopValid": 0.590842,
     "displayLoopValid": "59.1%",
     "expectedShuffles": 1.692498,
     "expectedShufflesDisplay": "1.69"
    },
    {
     "people": 17,
     "couples": 5,
     "validDraws": "69377574908288",
     "pHatValid": 0.195052,
     "displayHatValid": "19.5%",
     "expectedHatTries": 5.126836,
     "expectedHatTriesDisplay": "5.13",
     "pNoSelfDrawBreaksCouples": 0.469793,
     "displayNoSelfDrawBreaksCouples": "47.0%",
     "validLoops": "10872058982400",
     "pLoopValid": 0.519628,
     "displayLoopValid": "52.0%",
     "expectedShuffles": 1.924455,
     "expectedShufflesDisplay": "1.92"
    },
    {
     "people": 17,
     "couples": 6,
     "validDraws": "61318432279040",
     "pHatValid": 0.172394,
     "displayHatValid": "17.2%",
     "expectedHatTries": 5.800661,
     "expectedHatTriesDisplay": "5.80",
     "pNoSelfDrawBreaksCouples": 0.531384,
     "displayNoSelfDrawBreaksCouples": "53.1%",
     "validLoops": "9572600217600",
     "pLoopValid": 0.45752,
     "displayLoopValid": "45.8%",
     "expectedShuffles": 2.185696,
     "expectedShufflesDisplay": "2.19"
    },
    {
     "people": 17,
     "couples": 7,
     "validDraws": "54251679690240",
     "pHatValid": 0.152526,
     "displayHatValid": "15.3%",
     "expectedHatTries": 6.556247,
     "expectedHatTriesDisplay": "6.56",
     "pNoSelfDrawBreaksCouples": 0.585391,
     "displayNoSelfDrawBreaksCouples": "58.5%",
     "validLoops": "8437755432960",
     "pLoopValid": 0.403281,
     "displayLoopValid": "40.3%",
     "expectedShuffles": 2.479663,
     "expectedShufflesDisplay": "2.48"
    },
    {
     "people": 17,
     "couples": 8,
     "validDraws": "48047352500224",
     "pHatValid": 0.135083,
     "displayHatValid": "13.5%",
     "expectedHatTries": 7.402852,
     "expectedHatTriesDisplay": "7.40",
     "pNoSelfDrawBreaksCouples": 0.632806,
     "displayNoSelfDrawBreaksCouples": "63.3%",
     "validLoops": "7445355724800",
     "pLoopValid": 0.355849,
     "displayLoopValid": "35.6%",
     "expectedShuffles": 2.81018,
     "expectedShufflesDisplay": "2.81"
    },
    {
     "people": 18,
     "couples": 0,
     "validDraws": "2355301661033953",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "355687428096000",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 18,
     "couples": 1,
     "validDraws": "2085904412222880",
     "pHatValid": 0.325802,
     "displayHatValid": "32.6%",
     "expectedHatTries": 3.069351,
     "expectedHatTriesDisplay": "3.07",
     "pNoSelfDrawBreaksCouples": 0.114379,
     "displayNoSelfDrawBreaksCouples": "11.4%",
     "validLoops": "313841848320000",
     "pLoopValid": 0.882353,
     "displayLoopValid": "88.2%",
     "expectedShuffles": 1.133333,
     "expectedShufflesDisplay": "1.13"
    },
    {
     "people": 18,
     "couples": 2,
     "validDraws": "1849251757582772",
     "pHatValid": 0.288838,
     "displayHatValid": "28.9%",
     "expectedHatTries": 3.462143,
     "expectedHatTriesDisplay": "3.46",
     "pNoSelfDrawBreaksCouples": 0.214856,
     "displayNoSelfDrawBreaksCouples": "21.5%",
     "validLoops": "277226966016000",
     "pLoopValid": 0.779412,
     "displayLoopValid": "77.9%",
     "expectedShuffles": 1.283019,
     "expectedShufflesDisplay": "1.28"
    },
    {
     "people": 18,
     "couples": 3,
     "validDraws": "1641096390802736",
     "pHatValid": 0.256326,
     "displayHatValid": "25.6%",
     "expectedHatTries": 3.901278,
     "expectedHatTriesDisplay": "3.90",
     "pNoSelfDrawBreaksCouples": 0.303233,
     "displayNoSelfDrawBreaksCouples": "30.3%",
     "validLoops": "245145354854400",
     "pLoopValid": 0.689216,
     "displayLoopValid": "68.9%",
     "expectedShuffles": 1.450925,
     "expectedShufflesDisplay": "1.45"
    },
    {
     "people": 18,
     "couples": 4,
     "validDraws": "1457781796530192",
     "pHatValid": 0.227694,
     "displayHatValid": "22.8%",
     "expectedHatTries": 4.39186,
     "expectedHatTriesDisplay": "4.39",
     "pNoSelfDrawBreaksCouples": 0.381064,
     "displayNoSelfDrawBreaksCouples": "38.1%",
     "validLoops": "216999220838400",
     "pLoopValid": 0.610084,
     "displayLoopValid": "61.0%",
     "expectedShuffles": 1.639118,
     "expectedShufflesDisplay": "1.64"
    },
    {
     "people": 18,
     "couples": 5,
     "validDraws": "1296153618295936",
     "pHatValid": 0.202449,
     "displayHatValid": "20.2%",
     "expectedHatTries": 4.939518,
     "expectedHatTriesDisplay": "4.94",
     "pNoSelfDrawBreaksCouples": 0.449687,
     "displayNoSelfDrawBreaksCouples": "45.0%",
     "validLoops": "192275074252800",
     "pLoopValid": 0.540573,
     "displayLoopValid": "54.1%",
     "expectedShuffles": 1.849888,
     "expectedShufflesDisplay": "1.85"
    },
    {
     "people": 18,
     "couples": 6,
     "validDraws": "1153485466288960",
     "pHatValid": 0.180165,
     "displayHatValid": "18.0%",
     "expectedHatTries": 5.550459,
     "expectedHatTriesDisplay": "5.55",
     "pNoSelfDrawBreaksCouples": 0.51026,
     "displayNoSelfDrawBreaksCouples": "51.0%",
     "validLoops": "170530956288000",
     "pLoopValid": 0.47944,
     "displayLoopValid": "47.9%",
     "expectedShuffles": 2.085765,
     "expectedShufflesDisplay": "2.09"
    },
    {
     "people": 18,
     "couples": 7,
     "validDraws": "1027416588735744",
     "pHatValid": 0.160474,
     "displayHatValid": "16.0%",
     "expectedHatTries": 6.231527,
     "expectedHatTriesDisplay": "6.23",
     "pNoSelfDrawBreaksCouples": 0.563786,
     "displayNoSelfDrawBreaksCouples": "56.4%",
     "validLoops": "151385755852800",
     "pLoopValid": 0.425615,
     "displayLoopValid": "42.6%",
     "expectedShuffles": 2.349544,
     "expectedShufflesDisplay": "2.35"
    },
    {
     "people": 18,
     "couples": 8,
     "validDraws": "915899339309312",
     "pHatValid": 0.143056,
     "displayHatValid": "14.3%",
     "expectedHatTries": 6.990259,
     "expectedHatTriesDisplay": "6.99",
     "pNoSelfDrawBreaksCouples": 0.611133,
     "displayNoSelfDrawBreaksCouples": "61.1%",
     "validLoops": "134510244986880",
     "pLoopValid": 0.37817,
     "displayLoopValid": "37.8%",
     "expectedShuffles": 2.644315,
     "expectedShufflesDisplay": "2.64"
    },
    {
     "people": 18,
     "couples": 9,
     "validDraws": "817154768973824",
     "pHatValid": 0.127633,
     "displayHatValid": "12.8%",
     "expectedHatTries": 7.834959,
     "expectedHatTriesDisplay": "7.83",
     "pNoSelfDrawBreaksCouples": 0.653057,
     "displayNoSelfDrawBreaksCouples": "65.3%",
     "validLoops": "119619533537280",
     "pLoopValid": 0.336305,
     "displayLoopValid": "33.6%",
     "expectedShuffles": 2.97349,
     "expectedShufflesDisplay": "2.97"
    },
    {
     "people": 19,
     "couples": 0,
     "validDraws": "44750731559645106",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "6402373705728000",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 19,
     "couples": 1,
     "validDraws": "39909278145297536",
     "pHatValid": 0.32808,
     "displayHatValid": "32.8%",
     "expectedHatTries": 3.048041,
     "expectedHatTriesDisplay": "3.05",
     "pNoSelfDrawBreaksCouples": 0.108187,
     "displayNoSelfDrawBreaksCouples": "10.8%",
     "validLoops": "5690998849536000",
     "pLoopValid": 0.888889,
     "displayLoopValid": "88.9%",
     "expectedShuffles": 1.125,
     "expectedShufflesDisplay": "1.13"
    },
    {
     "people": 19,
     "couples": 2,
     "validDraws": "35622494423591336",
     "pHatValid": 0.29284,
     "displayHatValid": "29.3%",
     "expectedHatTries": 3.414839,
     "expectedHatTriesDisplay": "3.41",
     "pNoSelfDrawBreaksCouples": 0.20398,
     "displayNoSelfDrawBreaksCouples": "20.4%",
     "validLoops": "5063315152896000",
     "pLoopValid": 0.79085,
     "displayLoopValid": "79.1%",
     "expectedShuffles": 1.264463,
     "expectedShufflesDisplay": "1.26"
    },
    {
     "people": 19,
     "couples": 3,
     "validDraws": "31822836364924512",
     "pHatValid": 0.261604,
     "displayHatValid": "26.2%",
     "expectedHatTries": 3.822573,
     "expectedHatTriesDisplay": "3.82",
     "pNoSelfDrawBreaksCouples": 0.288887,
     "displayNoSelfDrawBreaksCouples": "28.9%",
     "validLoops": "4508861220864000",
     "pLoopValid": 0.704248,
     "displayLoopValid": "70.4%",
     "expectedShuffles": 1.419954,
     "expectedShufflesDisplay": "1.42"
    },
    {
     "people": 19,
     "couples": 4,
     "validDraws": "28451539682614048",
     "pHatValid": 0.23389,
     "displayHatValid": "23.4%",
     "expectedHatTries": 4.275519,
     "expectedHatTriesDisplay": "4.28",
     "pNoSelfDrawBreaksCouples": 0.364222,
     "displayNoSelfDrawBreaksCouples": "36.4%",
     "validLoops": "4018570511155200",
     "pLoopValid": 0.627669,
     "displayLoopValid": "62.8%",
     "expectedShuffles": 1.593197,
     "expectedShufflesDisplay": "1.59"
    },
    {
     "people": 19,
     "couples": 5,
     "validDraws": "25457395596174592",
     "pHatValid": 0.209276,
     "displayHatValid": "20.9%",
     "expectedHatTries": 4.77838,
     "expectedHatTriesDisplay": "4.78",
     "pNoSelfDrawBreaksCouples": 0.431129,
     "displayNoSelfDrawBreaksCouples": "43.1%",
     "validLoops": "3584572069478400",
     "pLoopValid": 0.559882,
     "displayLoopValid": "56.0%",
     "expectedShuffles": 1.786092,
     "expectedShufflesDisplay": "1.79"
    },
    {
     "people": 19,
     "couples": 6,
     "validDraws": "22795710784674432",
     "pHatValid": 0.187395,
     "displayHatValid": "18.7%",
     "expectedHatTries": 5.336315,
     "expectedHatTriesDisplay": "5.34",
     "pNoSelfDrawBreaksCouples": 0.490607,
     "displayNoSelfDrawBreaksCouples": "49.1%",
     "validLoops": "3200021920972800",
     "pLoopValid": 0.499818,
     "displayLoopValid": "50.0%",
     "expectedShuffles": 2.000728,
     "expectedShufflesDisplay": "2.00"
    },
    {
     "people": 19,
     "couples": 7,
     "validDraws": "20427421419817472",
     "pHatValid": 0.167926,
     "displayHatValid": "16.8%",
     "expectedHatTries": 5.95499,
     "expectedHatTriesDisplay": "5.95",
     "pNoSelfDrawBreaksCouples": 0.543529,
     "displayNoSelfDrawBreaksCouples": "54.4%",
     "validLoops": "2858960008396800",
     "pLoopValid": 0.446547,
     "displayLoopValid": "44.7%",
     "expectedShuffles": 2.239407,
     "expectedShufflesDisplay": "2.24"
    },
    {
     "people": 19,
     "couples": 8,
     "validDraws": "18318336562655744",
     "pHatValid": 0.150588,
     "displayHatValid": "15.1%",
     "expectedHatTries": 6.640619,
     "expectedHatTriesDisplay": "6.64",
     "pNoSelfDrawBreaksCouples": 0.590658,
     "displayNoSelfDrawBreaksCouples": "59.1%",
     "validLoops": "2556188496691200",
     "pLoopValid": 0.399256,
     "displayLoopValid": "39.9%",
     "expectedShuffles": 2.504656,
     "expectedShufflesDisplay": "2.50"
    },
    {
     "people": 19,
     "couples": 9,
     "validDraws": "16438490531536896",
     "pHatValid": 0.135135,
     "displayHatValid": "13.5%",
     "expectedHatTries": 7.400016,
     "expectedHatTriesDisplay": "7.40",
     "pNoSelfDrawBreaksCouples": 0.632665,
     "displayNoSelfDrawBreaksCouples": "63.3%",
     "validLoops": "2287168006717440",
     "pLoopValid": 0.357238,
     "displayLoopValid": "35.7%",
     "expectedShuffles": 2.799258,
     "expectedShufflesDisplay": "2.80"
    },
    {
     "people": 20,
     "couples": 0,
     "validDraws": "895014631192902121",
     "pHatValid": 0.367879,
     "displayHatValid": "36.8%",
     "expectedHatTries": 2.718282,
     "expectedHatTriesDisplay": "2.72",
     "pNoSelfDrawBreaksCouples": 0,
     "displayNoSelfDrawBreaksCouples": "0%",
     "validLoops": "121645100408832000",
     "pLoopValid": 1,
     "displayLoopValid": "100%",
     "expectedShuffles": 1,
     "expectedShufflesDisplay": "1.00"
    },
    {
     "people": 20,
     "couples": 1,
     "validDraws": "803157866412577956",
     "pHatValid": 0.330123,
     "displayHatValid": "33.0%",
     "expectedHatTries": 3.02917,
     "expectedHatTriesDisplay": "3.03",
     "pNoSelfDrawBreaksCouples": 0.102632,
     "displayNoSelfDrawBreaksCouples": "10.3%",
     "validLoops": "108840352997376000",
     "pLoopValid": 0.894737,
     "displayLoopValid": "89.5%",
     "expectedShuffles": 1.117647,
     "expectedShufflesDisplay": "1.12"
    },
    {
     "people": 20,
     "couples": 2,
     "validDraws": "721253405709760004",
     "pHatValid": 0.296458,
     "displayHatValid": "29.6%",
     "expectedHatTries": 3.373158,
     "expectedHatTriesDisplay": "3.37",
     "pNoSelfDrawBreaksCouples": 0.194143,
     "displayNoSelfDrawBreaksCouples": "19.4%",
     "validLoops": "97458355298304000",
     "pLoopValid": 0.80117,
     "displayLoopValid": "80.1%",
     "expectedShuffles": 1.248175,
     "expectedShufflesDisplay": "1.25"
    },
    {
     "people": 20,
     "couples": 3,
     "validDraws": "648159165104994560",
     "pHatValid": 0.266414,
     "displayHatValid": "26.6%",
     "expectedHatTries": 3.753556,
     "expectedHatTriesDisplay": "3.75",
     "pNoSelfDrawBreaksCouples": 0.275812,
     "displayNoSelfDrawBreaksCouples": "27.6%",
     "validLoops": "87331724992512000",
     "pLoopValid": 0.717922,
     "displayLoopValid": "71.8%",
     "expectedShuffles": 1.392908,
     "expectedShufflesDisplay": "1.39"
    },
    {
     "people": 20,
     "couples": 4,
     "validDraws": "582872395984342800",
     "pHatValid": 0.239579,
     "displayHatValid": "24.0%",
     "expectedHatTries": 4.173987,
     "expectedHatTriesDisplay": "4.17",
     "pNoSelfDrawBreaksCouples": 0.348757,
     "displayNoSelfDrawBreaksCouples": "34.9%",
     "validLoops": "78314002550784000",
     "pLoopValid": 0.643791,
     "displayLoopValid": "64.4%",
     "expectedShuffles": 1.553299,
     "expectedShufflesDisplay": "1.55"
    },
    {
     "people": 20,
     "couples": 5,
     "validDraws": "524511534822584512",
     "pHatValid": 0.215591,
     "displayHatValid": "21.6%",
     "expectedHatTries": 4.638415,
     "expectedHatTriesDisplay": "4.64",
     "pNoSelfDrawBreaksCouples": 0.413963,
     "displayNoSelfDrawBreaksCouples": "41.4%",
     "validLoops": "70276861528473600",
     "pLoopValid": 0.57772,
     "displayLoopValid": "57.8%",
     "expectedShuffles": 1.730941,
     "expectedShufflesDisplay": "1.73"
    },
    {
     "people": 20,
     "couples": 6,
     "validDraws": "472300590011939392",
     "pHatValid": 0.194131,
     "displayHatValid": "19.4%",
     "expectedHatTries": 5.151173,
     "expectedHatTriesDisplay": "5.15",
     "pNoSelfDrawBreaksCouples": 0.472298,
     "displayNoSelfDrawBreaksCouples": "47.2%",
     "validLoops": "63107717389516800",
     "pLoopValid": 0.518786,
     "displayLoopValid": "51.9%",
     "expectedShuffles": 1.927579,
     "expectedShufflesDisplay": "1.93"
    },
    {
     "people": 20,
     "couples": 7,
     "validDraws": "425555682976301568",
     "pHatValid": 0.174917,
     "displayHatValid": "17.5%",
     "expectedHatTries": 5.717,
     "expectedHatTriesDisplay": "5.72",
     "pNoSelfDrawBreaksCouples": 0.524527,
     "displayNoSelfDrawBreaksCouples": "52.5%",
     "validLoops": "56707673547571200",
     "pLoopValid": 0.466173,
     "displayLoopValid": "46.6%",
     "expectedShuffles": 2.145126,
     "expectedShufflesDisplay": "2.15"
    },
    {
     "people": 20,
     "couples": 8,
     "validDraws": "383673423547930880",
     "pHatValid": 0.157702,
     "displayHatValid": "15.8%",
     "expectedHatTries": 6.341075,
     "expectedHatTriesDisplay": "6.34",
     "pNoSelfDrawBreaksCouples": 0.571322,
     "displayNoSelfDrawBreaksCouples": "57.1%",
     "validLoops": "50989753530777600",
     "pLoopValid": 0.419168,
     "displayLoopValid": "41.9%",
     "expectedShuffles": 2.385677,
     "expectedShufflesDisplay": "2.39"
    },
    {
     "people": 20,
     "couples": 9,
     "validDraws": "346120851083310080",
     "pHatValid": 0.142267,
     "displayHatValid": "14.2%",
     "expectedHatTries": 7.029054,
     "expectedHatTriesDisplay": "7.03",
     "pNoSelfDrawBreaksCouples": 0.613279,
     "displayNoSelfDrawBreaksCouples": "61.3%",
     "validLoops": "45877376537395200",
     "pLoopValid": 0.377141,
     "displayLoopValid": "37.7%",
     "expectedShuffles": 2.651527,
     "expectedShufflesDisplay": "2.65"
    },
    {
     "people": 20,
     "couples": 10,
     "validDraws": "312426715251262464",
     "pHatValid": 0.128417,
     "displayHatValid": "12.8%",
     "expectedHatTries": 7.787113,
     "expectedHatTriesDisplay": "7.79",
     "pNoSelfDrawBreaksCouples": 0.650926,
     "displayNoSelfDrawBreaksCouples": "65.1%",
     "validLoops": "41303040523960320",
     "pLoopValid": 0.339537,
     "displayLoopValid": "34.0%",
     "expectedShuffles": 2.945185,
     "expectedShufflesDisplay": "2.95"
    }
   ],
   "headline": {
    "people": 10,
    "couples": 3,
    "validDraws": "672240",
    "pHatValid": 0.185251,
    "displayHatValid": "18.5%",
    "expectedHatTries": 5.398072,
    "expectedHatTriesDisplay": "5.40",
    "pNoSelfDrawBreaksCouples": 0.496435,
    "displayNoSelfDrawBreaksCouples": "49.6%",
    "validLoops": "175680",
    "pLoopValid": 0.484127,
    "displayLoopValid": "48.4%",
    "expectedShuffles": 2.065574,
    "expectedShufflesDisplay": "2.07"
   }
  },
  "lastYear": {
   "rule": "last year's draw was one loop (person 1 gave to 2, 2 to 3, ..., the last to 1); nobody may draw themselves or the person they had last year",
   "formulas": {
    "validDraws": "menage numbers: sum_j (-1)^j [2n/(2n-j)] C(2n-j, j) (n-j)!; P tends to e^-2 = 0.135335",
    "validLoops": "counted one loop at a time for 4-11 people"
   },
   "limit": 0.135335,
   "note": "Last year's draw is taken to be one loop (as the loop method gives). If last year's draw had mutual pairs, each such pair acts like a couple. Exact BigInt counts.",
   "rows": [
    {
     "people": 4,
     "validDraws": "2",
     "pHatValid": 0.083333,
     "displayHatValid": "8.33%",
     "expectedHatTries": 12,
     "expectedHatTriesDisplay": "12.00",
     "pNoSelfDrawRepeatsLastYear": 0.777778,
     "displayNoSelfDrawRepeatsLastYear": "77.8%",
     "validLoops": "1",
     "pLoopValid": 0.166667,
     "displayLoopValid": "16.7%",
     "expectedShuffles": 6,
     "expectedShufflesDisplay": "6.00"
    },
    {
     "people": 5,
     "validDraws": "13",
     "pHatValid": 0.108333,
     "displayHatValid": "10.8%",
     "expectedHatTries": 9.230769,
     "expectedHatTriesDisplay": "9.23",
     "pNoSelfDrawRepeatsLastYear": 0.704545,
     "displayNoSelfDrawRepeatsLastYear": "70.5%",
     "validLoops": "8",
     "pLoopValid": 0.333333,
     "displayLoopValid": "33.3%",
     "expectedShuffles": 3,
     "expectedShufflesDisplay": "3.00"
    },
    {
     "people": 6,
     "validDraws": "80",
     "pHatValid": 0.111111,
     "displayHatValid": "11.1%",
     "expectedHatTries": 9,
     "expectedHatTriesDisplay": "9.00",
     "pNoSelfDrawRepeatsLastYear": 0.698113,
     "displayNoSelfDrawRepeatsLastYear": "69.8%",
     "validLoops": "36",
     "pLoopValid": 0.3,
     "displayLoopValid": "30.0%",
     "expectedShuffles": 3.333333,
     "expectedShufflesDisplay": "3.33"
    },
    {
     "people": 7,
     "validDraws": "579",
     "pHatValid": 0.114881,
     "displayHatValid": "11.5%",
     "expectedHatTries": 8.704663,
     "expectedHatTriesDisplay": "8.70",
     "pNoSelfDrawRepeatsLastYear": 0.687702,
     "displayNoSelfDrawRepeatsLastYear": "68.8%",
     "validLoops": "229",
     "pLoopValid": 0.318056,
     "displayLoopValid": "31.8%",
     "expectedShuffles": 3.144105,
     "expectedShufflesDisplay": "3.14"
    },
    {
     "people": 8,
     "validDraws": "4738",
     "pHatValid": 0.11751,
     "displayHatValid": "11.8%",
     "expectedHatTries": 8.50992,
     "expectedHatTriesDisplay": "8.51",
     "pNoSelfDrawRepeatsLastYear": 0.680577,
     "displayNoSelfDrawRepeatsLastYear": "68.1%",
     "validLoops": "1625",
     "pLoopValid": 0.322421,
     "displayLoopValid": "32.2%",
     "expectedShuffles": 3.101538,
     "expectedShufflesDisplay": "3.10"
    },
    {
     "people": 9,
     "validDraws": "43387",
     "pHatValid": 0.119563,
     "displayHatValid": "12.0%",
     "expectedHatTries": 8.363796,
     "expectedHatTriesDisplay": "8.36",
     "pNoSelfDrawRepeatsLastYear": 0.674994,
     "displayNoSelfDrawRepeatsLastYear": "67.5%",
     "validLoops": "13208",
     "pLoopValid": 0.327579,
     "displayLoopValid": "32.8%",
     "expectedShuffles": 3.052695,
     "expectedShufflesDisplay": "3.05"
    },
    {
     "people": 10,
     "validDraws": "439792",
     "pHatValid": 0.121195,
     "displayHatValid": "12.1%",
     "expectedHatTries": 8.251173,
     "expectedHatTriesDisplay": "8.25",
     "pNoSelfDrawRepeatsLastYear": 0.670558,
     "displayNoSelfDrawRepeatsLastYear": "67.1%",
     "validLoops": "120288",
     "pLoopValid": 0.331481,
     "displayLoopValid": "33.1%",
     "expectedShuffles": 3.01676,
     "expectedShufflesDisplay": "3.02"
    },
    {
     "people": 11,
     "validDraws": "4890741",
     "pHatValid": 0.122523,
     "displayHatValid": "12.3%",
     "expectedHatTries": 8.161708,
     "expectedHatTriesDisplay": "8.16",
     "pNoSelfDrawRepeatsLastYear": 0.666947,
     "displayNoSelfDrawRepeatsLastYear": "66.7%",
     "validLoops": "1214673",
     "pLoopValid": 0.334731,
     "displayLoopValid": "33.5%",
     "expectedShuffles": 2.987471,
     "expectedShufflesDisplay": "2.99"
    },
    {
     "people": 12,
     "validDraws": "59216642",
     "pHatValid": 0.123625,
     "displayHatValid": "12.4%",
     "expectedHatTries": 8.088969,
     "expectedHatTriesDisplay": "8.09",
     "pNoSelfDrawRepeatsLastYear": 0.663952,
     "displayNoSelfDrawRepeatsLastYear": "66.4%"
    },
    {
     "people": 13,
     "validDraws": "775596313",
     "pHatValid": 0.124553,
     "displayHatValid": "12.5%",
     "expectedHatTries": 8.028688,
     "expectedHatTriesDisplay": "8.03",
     "pNoSelfDrawRepeatsLastYear": 0.661429,
     "displayNoSelfDrawRepeatsLastYear": "66.1%"
    },
    {
     "people": 14,
     "validDraws": "10927434464",
     "pHatValid": 0.125346,
     "displayHatValid": "12.5%",
     "expectedHatTries": 7.977929,
     "expectedHatTriesDisplay": "7.98",
     "pNoSelfDrawRepeatsLastYear": 0.659275,
     "displayNoSelfDrawRepeatsLastYear": "65.9%"
    },
    {
     "people": 15,
     "validDraws": "164806435783",
     "pHatValid": 0.12603,
     "displayHatValid": "12.6%",
     "expectedHatTries": 7.934607,
     "expectedHatTriesDisplay": "7.93",
     "pNoSelfDrawRepeatsLastYear": 0.657414,
     "displayNoSelfDrawRepeatsLastYear": "65.7%"
    },
    {
     "people": 16,
     "validDraws": "2649391469058",
     "pHatValid": 0.126627,
     "displayHatValid": "12.7%",
     "expectedHatTries": 7.897206,
     "expectedHatTriesDisplay": "7.90",
     "pNoSelfDrawRepeatsLastYear": 0.655792,
     "displayNoSelfDrawRepeatsLastYear": "65.6%"
    },
    {
     "people": 17,
     "validDraws": "45226435601207",
     "pHatValid": 0.127152,
     "displayHatValid": "12.7%",
     "expectedHatTries": 7.864591,
     "expectedHatTriesDisplay": "7.86",
     "pNoSelfDrawRepeatsLastYear": 0.654365,
     "displayNoSelfDrawRepeatsLastYear": "65.4%"
    },
    {
     "people": 18,
     "validDraws": "817056406224416",
     "pHatValid": 0.127618,
     "displayHatValid": "12.8%",
     "expectedHatTries": 7.835902,
     "expectedHatTriesDisplay": "7.84",
     "pNoSelfDrawRepeatsLastYear": 0.653099,
     "displayNoSelfDrawRepeatsLastYear": "65.3%"
    },
    {
     "people": 19,
     "validDraws": "15574618910994665",
     "pHatValid": 0.128033,
     "displayHatValid": "12.8%",
     "expectedHatTries": 7.81047,
     "expectedHatTriesDisplay": "7.81",
     "pNoSelfDrawRepeatsLastYear": 0.65197,
     "displayNoSelfDrawRepeatsLastYear": "65.2%"
    },
    {
     "people": 20,
     "validDraws": "312400218671253762",
     "pHatValid": 0.128406,
     "displayHatValid": "12.8%",
     "expectedHatTries": 7.787773,
     "expectedHatTriesDisplay": "7.79",
     "pNoSelfDrawRepeatsLastYear": 0.650955,
     "displayNoSelfDrawRepeatsLastYear": "65.1%"
    }
   ]
  },
  "helper": {
   "n": 10,
   "couples": 3,
   "singles": 4,
   "validDraws": "672240",
   "expectedShuffles": 5.398072,
   "expectedShufflesDisplay": "5.40",
   "pLastGivesToFirst": 0.116113,
   "lastGivesToFirstFraction": "9757/84030",
   "lastGivesToFirstLabel": "person 10 (single) gives to person 1 (has a partner)",
   "pLastGivesToFirstVsNoCouples": 0.111111,
   "fair": 0.111111,
   "fairFraction": "1/9",
   "pairTypes": [
    {
     "type": "single to single",
     "giver": 10,
     "receiver": 7,
     "pairs": 12,
     "p": 0.101107,
     "fraction": "1416/14005",
     "display": "10.1%",
     "ratioToOneOverNMinus1": 0.91
    },
    {
     "type": "single to someone with a partner",
     "giver": 10,
     "receiver": 1,
     "pairs": 24,
     "p": 0.116113,
     "fraction": "9757/84030",
     "display": "11.6%",
     "ratioToOneOverNMinus1": 1.045
    },
    {
     "type": "someone with a partner to a single",
     "giver": 1,
     "receiver": 10,
     "pairs": 24,
     "p": 0.116113,
     "fraction": "9757/84030",
     "display": "11.6%",
     "ratioToOneOverNMinus1": 1.045
    },
    {
     "type": "someone with a partner to a member of another couple",
     "giver": 1,
     "receiver": 3,
     "pairs": 24,
     "p": 0.133887,
     "fraction": "22501/168060",
     "display": "13.4%",
     "ratioToOneOverNMinus1": 1.205
    }
   ],
   "pMutualPair": 0.416637,
   "pMutualPairFraction": "1167/2801",
   "pMutualPairDisplay": "41.7%",
   "pMutualPairNoCouples": 0.393349,
   "note": "Exact, by enumerating every valid draw (10 people, couples 1&2, 3&4, 5&6, singles 7-10). Shuffling until the draw is valid makes every valid draw equally likely (rejection sampling), but with couples that is not the same as a uniformly random draw with nobody drawing themselves, and the giver-receiver chances are no longer all 1/(n-1). Each receiver is drawn by someone with total chance 1, spread over the givers allowed to draw them; a person with a partner has one allowed giver fewer, so each of those givers draws them a little more often. pairTypes: a single draws another single LESS often than 1/(n-1), a single and a partnered person draw each other a little more often, and a partnered person draws a member of another couple MORE often. Every pair of one type has the same chance (checked). pMutualPair = chance that at least two people draw each other in a valid draw, vs pMutualPairNoCouples with no couples."
  },
  "chart": {
   "note": "One row per group size: exact values. hatWorks = plain hat, nobody draws themselves; putBackDeadEnd = put-back rule leaves the last person with only their own name; mutualPair and singleLoop = in a uniformly random valid draw; couples3Hat = plain hat with 3 couples valid (n >= 6).",
   "byPeople": [
    {
     "people": 4,
     "hatWorks": 0.375,
     "hatFails": 0.625,
     "expectedTries": 2.666667,
     "putBackDeadEnd": 0.138889,
     "mutualPair": 0.333333,
     "singleLoop": 0.666667,
     "couples3Hat": null
    },
    {
     "people": 5,
     "hatWorks": 0.366667,
     "hatFails": 0.633333,
     "expectedTries": 2.727273,
     "putBackDeadEnd": 0.131944,
     "mutualPair": 0.454545,
     "singleLoop": 0.545455,
     "couples3Hat": null
    },
    {
     "people": 6,
     "hatWorks": 0.368056,
     "hatFails": 0.631944,
     "expectedTries": 2.716981,
     "putBackDeadEnd": 0.112778,
     "mutualPair": 0.396226,
     "singleLoop": 0.45283,
     "couples3Hat": 0.111111
    },
    {
     "people": 7,
     "hatWorks": 0.367857,
     "hatFails": 0.632143,
     "expectedTries": 2.718447,
     "putBackDeadEnd": 0.100532,
     "mutualPair": 0.385113,
     "singleLoop": 0.38835,
     "couples3Hat": 0.133333
    },
    {
     "people": 8,
     "hatWorks": 0.367882,
     "hatFails": 0.632118,
     "expectedTries": 2.718263,
     "putBackDeadEnd": 0.090495,
     "mutualPair": 0.394054,
     "singleLoop": 0.339783,
     "couples3Hat": 0.153175
    },
    {
     "people": 9,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718284,
     "putBackDeadEnd": 0.082382,
     "mutualPair": 0.394259,
     "singleLoop": 0.302032,
     "couples3Hat": 0.170282
    },
    {
     "people": 10,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.075646,
     "mutualPair": 0.393349,
     "singleLoop": 0.271828,
     "couples3Hat": 0.185251
    },
    {
     "people": 11,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.06996,
     "mutualPair": 0.393412,
     "singleLoop": 0.247117,
     "couples3Hat": 0.198345
    },
    {
     "people": 12,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.065093,
     "mutualPair": 0.393483,
     "singleLoop": 0.226523,
     "couples3Hat": 0.209835
    },
    {
     "people": 13,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.060876,
     "mutualPair": 0.393473,
     "singleLoop": 0.209099,
     "couples3Hat": 0.219963
    },
    {
     "people": 14,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.057186,
     "mutualPair": 0.393468,
     "singleLoop": 0.194163,
     "couples3Hat": 0.228935
    },
    {
     "people": 15,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.053929,
     "mutualPair": 0.393469,
     "singleLoop": 0.181219,
     "couples3Hat": 0.236926
    },
    {
     "people": 16,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.05103,
     "mutualPair": 0.393469,
     "singleLoop": 0.169893,
     "couples3Hat": 0.244078
    },
    {
     "people": 17,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.048434,
     "mutualPair": 0.393469,
     "singleLoop": 0.159899,
     "couples3Hat": 0.250512
    },
    {
     "people": 18,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.046095,
     "mutualPair": 0.393469,
     "singleLoop": 0.151016,
     "couples3Hat": 0.256326
    },
    {
     "people": 19,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.043976,
     "mutualPair": 0.393469,
     "singleLoop": 0.143067,
     "couples3Hat": 0.261604
    },
    {
     "people": 20,
     "hatWorks": 0.367879,
     "hatFails": 0.632121,
     "expectedTries": 2.718282,
     "putBackDeadEnd": 0.042047,
     "mutualPair": 0.393469,
     "singleLoop": 0.135914,
     "couples3Hat": 0.266414
    }
   ],
   "putBackLastRow10": [
    {
     "receiver": 1,
     "p": 0.091739,
     "display": "9.17%",
     "ratio": 0.8257
    },
    {
     "receiver": 2,
     "p": 0.09299,
     "display": "9.30%",
     "ratio": 0.8369
    },
    {
     "receiver": 3,
     "p": 0.094604,
     "display": "9.46%",
     "ratio": 0.8514
    },
    {
     "receiver": 4,
     "p": 0.096763,
     "display": "9.68%",
     "ratio": 0.8709
    },
    {
     "receiver": 5,
     "p": 0.099802,
     "display": "9.98%",
     "ratio": 0.8982
    },
    {
     "receiver": 6,
     "p": 0.104395,
     "display": "10.4%",
     "ratio": 0.9396
    },
    {
     "receiver": 7,
     "p": 0.112146,
     "display": "11.2%",
     "ratio": 1.0093
    },
    {
     "receiver": 8,
     "p": 0.128034,
     "display": "12.8%",
     "ratio": 1.1523
    },
    {
     "receiver": 9,
     "p": 0.179527,
     "display": "18.0%",
     "ratio": 1.6157
    }
   ]
  }
 },
 "checks": [
  {
   "name": "hat, 4 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.3746,
   "exact": 0.375,
   "se": 0.00108,
   "z": -0.37,
   "pass": true
  },
  {
   "name": "hat, 5 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.36677,
   "exact": 0.366667,
   "se": 0.00108,
   "z": 0.1,
   "pass": true
  },
  {
   "name": "hat, 6 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.36667,
   "exact": 0.368056,
   "se": 0.00108,
   "z": -1.28,
   "pass": true
  },
  {
   "name": "hat, 7 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.36729,
   "exact": 0.367857,
   "se": 0.00108,
   "z": -0.53,
   "pass": true
  },
  {
   "name": "hat, 8 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.368835,
   "exact": 0.367882,
   "se": 0.00108,
   "z": 0.88,
   "pass": true
  },
  {
   "name": "hat, 9 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.367215,
   "exact": 0.367879,
   "se": 0.00108,
   "z": -0.62,
   "pass": true
  },
  {
   "name": "hat, 10 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.367474,
   "exact": 0.367879,
   "se": 0.000482,
   "z": -0.84,
   "pass": true
  },
  {
   "name": "hat, 10 people: average number of people who draw their own name",
   "kind": "simulated vs exact",
   "simulated": 1.000406,
   "exact": 1,
   "se": 0.001,
   "z": 0.41,
   "pass": true
  },
  {
   "name": "hat, 10 people: exactly one person draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.368257,
   "exact": 0.367879,
   "se": 0.000482,
   "z": 0.78,
   "pass": true
  },
  {
   "name": "hat, 10 people with 3 couples: nobody draws themselves or their partner",
   "kind": "simulated vs exact",
   "simulated": 0.184711,
   "exact": 0.185251,
   "se": 0.000389,
   "z": -1.39,
   "pass": true
  },
  {
   "name": "hat, 10 people with 3 couples: nobody draws themselves but a couple draws each other",
   "kind": "simulated vs exact",
   "simulated": 0.182763,
   "exact": 0.182628,
   "se": 0.000386,
   "z": 0.35,
   "pass": true
  },
  {
   "name": "hat, 10 people: nobody draws themselves or last year's person (last year one loop)",
   "kind": "simulated vs exact",
   "simulated": 0.121117,
   "exact": 0.121195,
   "se": 0.000326,
   "z": -0.24,
   "pass": true
  },
  {
   "name": "hat, 11 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.366895,
   "exact": 0.367879,
   "se": 0.00108,
   "z": -0.91,
   "pass": true
  },
  {
   "name": "hat, 12 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.36477,
   "exact": 0.367879,
   "se": 0.00108,
   "z": -2.88,
   "pass": true
  },
  {
   "name": "hat, 13 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.366195,
   "exact": 0.367879,
   "se": 0.00108,
   "z": -1.56,
   "pass": true
  },
  {
   "name": "hat, 14 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.36754,
   "exact": 0.367879,
   "se": 0.00108,
   "z": -0.31,
   "pass": true
  },
  {
   "name": "hat, 15 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.37037,
   "exact": 0.367879,
   "se": 0.00108,
   "z": 2.31,
   "pass": true
  },
  {
   "name": "hat, 16 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.36895,
   "exact": 0.367879,
   "se": 0.00108,
   "z": 0.99,
   "pass": true
  },
  {
   "name": "hat, 17 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.36792,
   "exact": 0.367879,
   "se": 0.00108,
   "z": 0.04,
   "pass": true
  },
  {
   "name": "hat, 18 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.367095,
   "exact": 0.367879,
   "se": 0.00108,
   "z": -0.73,
   "pass": true
  },
  {
   "name": "hat, 19 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.369835,
   "exact": 0.367879,
   "se": 0.00108,
   "z": 1.81,
   "pass": true
  },
  {
   "name": "hat, 20 people: nobody draws their own name",
   "kind": "simulated vs exact",
   "simulated": 0.367865,
   "exact": 0.367879,
   "se": 0.00108,
   "z": -0.01,
   "pass": true
  },
  {
   "name": "redraw rule, 10 people: average number of full draws until nobody has themselves",
   "kind": "simulated vs exact",
   "simulated": 2.7189,
   "exact": 2.718282,
   "se": 0.00558,
   "z": 0.11,
   "pass": true
  },
  {
   "name": "redraw rule, 10 people: needs more than 3 full draws",
   "kind": "simulated vs exact",
   "simulated": 0.251647,
   "exact": 0.25258,
   "se": 0.00112,
   "z": -0.83,
   "pass": true
  },
  {
   "name": "redraw rule, 10 people: person 1 gives to person 10",
   "kind": "simulated vs exact",
   "simulated": 0.111127,
   "exact": 0.111111,
   "se": 0.000811,
   "z": 0.02,
   "pass": true
  },
  {
   "name": "redraw rule, 10 people: person 1 equally likely to give to each of the other 9 (chi-square, 8 df)",
   "kind": "uniformity (chi-square)",
   "simulated": 2.16444,
   "exact": 8,
   "se": 4,
   "z": -1.95,
   "pass": true,
   "zMethod": "Wilson–Hilferty"
  },
  {
   "name": "redraw rule, 10 people: at least one pair draws each other",
   "kind": "simulated vs exact",
   "simulated": 0.392913,
   "exact": 0.393349,
   "se": 0.00126,
   "z": -0.35,
   "pass": true
  },
  {
   "name": "redraw rule, 10 people: one single loop through everyone",
   "kind": "simulated vs exact",
   "simulated": 0.271467,
   "exact": 0.271828,
   "se": 0.00115,
   "z": -0.31,
   "pass": true
  },
  {
   "name": "redraw rule, 10 people: average number of separate loops",
   "kind": "simulated vs exact",
   "simulated": 2.024807,
   "exact": 2.023832,
   "se": 0.00206,
   "z": 0.47,
   "pass": true
  },
  {
   "name": "redraw rule, 5 people: all 44 valid draws equally likely (chi-square, 43 df)",
   "kind": "uniformity (chi-square)",
   "simulated": 42.80956,
   "exact": 43,
   "se": 9.27,
   "z": 0.05,
   "pass": true,
   "zMethod": "Wilson–Hilferty"
  },
  {
   "name": "put-back rule, 4 people: the last person is left with only their own name",
   "kind": "simulated vs exact",
   "simulated": 0.137755,
   "exact": 0.138889,
   "se": 0.000773,
   "z": -1.47,
   "pass": true
  },
  {
   "name": "put-back rule, 5 people: the last person is left with only their own name",
   "kind": "simulated vs exact",
   "simulated": 0.13279,
   "exact": 0.131944,
   "se": 0.000757,
   "z": 1.12,
   "pass": true
  },
  {
   "name": "put-back rule, 6 people: the last person is left with only their own name",
   "kind": "simulated vs exact",
   "simulated": 0.112375,
   "exact": 0.112778,
   "se": 0.000707,
   "z": -0.57,
   "pass": true
  },
  {
   "name": "put-back rule, 8 people: the last person is left with only their own name",
   "kind": "simulated vs exact",
   "simulated": 0.08957,
   "exact": 0.090495,
   "se": 0.000642,
   "z": -1.44,
   "pass": true
  },
  {
   "name": "put-back rule, 10 people: the last person is left with only their own name",
   "kind": "simulated vs exact",
   "simulated": 0.075542,
   "exact": 0.075646,
   "se": 0.000264,
   "z": -0.39,
   "pass": true
  },
  {
   "name": "put-back rule, 10 people: names put back per attempt",
   "kind": "simulated vs exact",
   "simulated": 1.087971,
   "exact": 1.09038,
   "se": 0.00128,
   "z": -1.89,
   "pass": true
  },
  {
   "name": "put-back rule, 10 people: the last to draw gets the second-to-last",
   "kind": "simulated vs exact",
   "simulated": 0.179327,
   "exact": 0.179527,
   "se": 0.000399,
   "z": -0.5,
   "pass": true
  },
  {
   "name": "put-back rule, 10 people: the last to draw gets the first",
   "kind": "simulated vs exact",
   "simulated": 0.09192,
   "exact": 0.091739,
   "se": 0.0003,
   "z": 0.6,
   "pass": true
  },
  {
   "name": "put-back rule, 10 people: the first to draw gets the last",
   "kind": "simulated vs exact",
   "simulated": 0.119823,
   "exact": 0.120204,
   "se": 0.000338,
   "z": -1.13,
   "pass": true
  },
  {
   "name": "put-back rule, 10 people: whom the last to draw gets, against the exact (unequal) chances (chi-square, 8 df)",
   "kind": "goodness of fit (chi-square)",
   "simulated": 8.703963,
   "exact": 8,
   "se": 4,
   "z": 0.34,
   "pass": true,
   "zMethod": "Wilson–Hilferty"
  },
  {
   "name": "put-back rule, 10 people: the last two to draw get each other",
   "kind": "simulated vs exact",
   "simulated": 0.015684,
   "exact": 0.015854,
   "se": 0.00013,
   "z": -1.31,
   "pass": true
  },
  {
   "name": "put-back rule, 10 people: at least one pair draws each other",
   "kind": "simulated vs exact",
   "simulated": 0.392158,
   "exact": 0.39161,
   "se": 0.000508,
   "z": 1.08,
   "pass": true
  },
  {
   "name": "put-back rule, 10 people: one single loop through everyone",
   "kind": "simulated vs exact",
   "simulated": 0.27202,
   "exact": 0.272628,
   "se": 0.000463,
   "z": -1.31,
   "pass": true
  },
  {
   "name": "put-back rule, 12 people: the last person is left with only their own name",
   "kind": "simulated vs exact",
   "simulated": 0.064305,
   "exact": 0.065093,
   "se": 0.000552,
   "z": -1.43,
   "pass": true
  },
  {
   "name": "put-back rule, 12 people: the last to draw gets the second-to-last",
   "kind": "simulated vs exact",
   "simulated": 0.149766,
   "exact": 0.150427,
   "se": 0.000826,
   "z": -0.8,
   "pass": true
  },
  {
   "name": "put-back rule, 12 people: the last to draw gets the first",
   "kind": "simulated vs exact",
   "simulated": 0.076489,
   "exact": 0.076428,
   "se": 0.000614,
   "z": 0.1,
   "pass": true
  },
  {
   "name": "put-back rule, 12 people: the first to draw gets the last",
   "kind": "simulated vs exact",
   "simulated": 0.098665,
   "exact": 0.097239,
   "se": 0.000685,
   "z": 2.08,
   "pass": true
  },
  {
   "name": "put-back rule, 12 people: the last two to draw get each other",
   "kind": "simulated vs exact",
   "simulated": 0.010554,
   "exact": 0.011177,
   "se": 0.000243,
   "z": -2.56,
   "pass": true
  },
  {
   "name": "put-back rule, 12 people: whom the last to draw gets, against the exact (unequal) chances (chi-square, 10 df)",
   "kind": "goodness of fit (chi-square)",
   "simulated": 2.534038,
   "exact": 10,
   "se": 4.47,
   "z": -2.31,
   "pass": true,
   "zMethod": "Wilson–Hilferty"
  },
  {
   "name": "put-back rule, 15 people: the last person is left with only their own name",
   "kind": "simulated vs exact",
   "simulated": 0.05361,
   "exact": 0.053929,
   "se": 0.000505,
   "z": -0.63,
   "pass": true
  },
  {
   "name": "put-back rule, 15 people: the last to draw gets the second-to-last",
   "kind": "simulated vs exact",
   "simulated": 0.122011,
   "exact": 0.1213,
   "se": 0.00075,
   "z": 0.95,
   "pass": true
  },
  {
   "name": "put-back rule, 15 people: the last to draw gets the first",
   "kind": "simulated vs exact",
   "simulated": 0.061259,
   "exact": 0.06132,
   "se": 0.000551,
   "z": -0.11,
   "pass": true
  },
  {
   "name": "put-back rule, 15 people: the first to draw gets the last",
   "kind": "simulated vs exact",
   "simulated": 0.076205,
   "exact": 0.0755,
   "se": 0.000607,
   "z": 1.16,
   "pass": true
  },
  {
   "name": "put-back rule, 15 people: the last two to draw get each other",
   "kind": "simulated vs exact",
   "simulated": 0.007407,
   "exact": 0.007294,
   "se": 0.000196,
   "z": 0.58,
   "pass": true
  },
  {
   "name": "put-back rule, 15 people: whom the last to draw gets, against the exact (unequal) chances (chi-square, 13 df)",
   "kind": "goodness of fit (chi-square)",
   "simulated": 12.441021,
   "exact": 13,
   "se": 5.1,
   "z": 0.02,
   "pass": true,
   "zMethod": "Wilson–Hilferty"
  },
  {
   "name": "put-back rule, 20 people: the last person is left with only their own name",
   "kind": "simulated vs exact",
   "simulated": 0.041895,
   "exact": 0.042047,
   "se": 0.000449,
   "z": -0.34,
   "pass": true
  },
  {
   "name": "put-back rule, 20 people: the last to draw gets the second-to-last",
   "kind": "simulated vs exact",
   "simulated": 0.092547,
   "exact": 0.091993,
   "se": 0.00066,
   "z": 0.84,
   "pass": true
  },
  {
   "name": "put-back rule, 20 people: the last to draw gets the first",
   "kind": "simulated vs exact",
   "simulated": 0.046613,
   "exact": 0.046308,
   "se": 0.00048,
   "z": 0.63,
   "pass": true
  },
  {
   "name": "put-back rule, 20 people: the first to draw gets the last",
   "kind": "simulated vs exact",
   "simulated": 0.0549,
   "exact": 0.054942,
   "se": 0.000521,
   "z": -0.08,
   "pass": true
  },
  {
   "name": "put-back rule, 20 people: the last two to draw get each other",
   "kind": "simulated vs exact",
   "simulated": 0.003924,
   "exact": 0.004209,
   "se": 0.000148,
   "z": -1.92,
   "pass": true
  },
  {
   "name": "put-back rule, 20 people: whom the last to draw gets, against the exact (unequal) chances (chi-square, 18 df)",
   "kind": "goodness of fit (chi-square)",
   "simulated": 17.912022,
   "exact": 18,
   "se": 6,
   "z": 0.1,
   "pass": true,
   "zMethod": "Wilson–Hilferty"
  },
  {
   "name": "put-back rule, 5 people: all 44 completed draws against their exact (unequal) chances (chi-square, 43 df)",
   "kind": "goodness of fit (chi-square)",
   "simulated": 28.283958,
   "exact": 43,
   "se": 9.27,
   "z": -1.74,
   "pass": true,
   "zMethod": "Wilson–Hilferty"
  },
  {
   "name": "loop, 10 people: share of draws that are one single loop",
   "kind": "sanity",
   "simulated": 1,
   "exact": 1,
   "se": 0,
   "z": 0,
   "pass": true
  },
  {
   "name": "loop, 10 people: share of draws in which someone has themselves",
   "kind": "sanity",
   "simulated": 0,
   "exact": 0,
   "se": 0,
   "z": 0,
   "pass": true
  },
  {
   "name": "loop, 10 people: share of draws with a pair drawing each other",
   "kind": "sanity",
   "simulated": 0,
   "exact": 0,
   "se": 0,
   "z": 0,
   "pass": true
  },
  {
   "name": "loop, 10 people: person 1 gives to person 10",
   "kind": "simulated vs exact",
   "simulated": 0.111608,
   "exact": 0.111111,
   "se": 0.000314,
   "z": 1.58,
   "pass": true
  },
  {
   "name": "loop, 10 people: person 1 equally likely to give to each of the other 9 (chi-square, 8 df)",
   "kind": "uniformity (chi-square)",
   "simulated": 8.637668,
   "exact": 8,
   "se": 4,
   "z": 0.32,
   "pass": true,
   "zMethod": "Wilson–Hilferty"
  },
  {
   "name": "loop, 10 people with 3 couples: no couple next to each other in the loop",
   "kind": "simulated vs exact",
   "simulated": 0.483925,
   "exact": 0.484127,
   "se": 0.0005,
   "z": -0.4,
   "pass": true
  },
  {
   "name": "loop, 10 people: nobody gets last year's person (last year one loop)",
   "kind": "simulated vs exact",
   "simulated": 0.33016,
   "exact": 0.331481,
   "se": 0.000471,
   "z": -2.81,
   "pass": true
  },
  {
   "name": "loop, 5 people: all 24 possible loops equally likely (chi-square, 23 df)",
   "kind": "uniformity (chi-square)",
   "simulated": 17.7094,
   "exact": 23,
   "se": 6.78,
   "z": -0.75,
   "pass": true,
   "zMethod": "Wilson–Hilferty"
  },
  {
   "name": "helper, 10 people with 3 couples: average shuffles until a valid draw",
   "kind": "simulated vs exact",
   "simulated": 5.38952,
   "exact": 5.398072,
   "se": 0.0154,
   "z": -0.56,
   "pass": true
  },
  {
   "name": "helper, 10 people with 3 couples: person 10 gives to person 7 (single to single)",
   "kind": "simulated vs exact",
   "simulated": 0.10082,
   "exact": 0.101107,
   "se": 0.000953,
   "z": -0.3,
   "pass": true
  },
  {
   "name": "helper, 10 people with 3 couples: person 10 gives to person 1 (single to someone with a partner)",
   "kind": "simulated vs exact",
   "simulated": 0.11595,
   "exact": 0.116113,
   "se": 0.00101,
   "z": -0.16,
   "pass": true
  },
  {
   "name": "helper, 10 people with 3 couples: person 1 gives to person 10 (someone with a partner to a single)",
   "kind": "simulated vs exact",
   "simulated": 0.11499,
   "exact": 0.116113,
   "se": 0.00101,
   "z": -1.11,
   "pass": true
  },
  {
   "name": "helper, 10 people with 3 couples: person 1 gives to person 3 (someone with a partner to a member of another couple)",
   "kind": "simulated vs exact",
   "simulated": 0.13427,
   "exact": 0.133887,
   "se": 0.00108,
   "z": 0.36,
   "pass": true
  },
  {
   "name": "helper, 10 people with 3 couples: at least one pair draws each other",
   "kind": "simulated vs exact",
   "simulated": 0.41769,
   "exact": 0.416637,
   "se": 0.00156,
   "z": 0.68,
   "pass": true
  },
  {
   "name": "helper, 6 people with 2 couples: all 116 valid draws equally likely (chi-square, 115 df)",
   "kind": "uniformity (chi-square)",
   "simulated": 143.46288,
   "exact": 115,
   "se": 15.2,
   "z": 1.78,
   "pass": true,
   "zMethod": "Wilson–Hilferty"
  }
 ]
}
