<p>From the page you reference:</p>

<blockquote>
  <p>It also means that 21 and 22 lands become very different amounts, since 21 or fewer land decks will favor 2-land hands, and 22+ land decks will favor 3-land hands.</p>
</blockquote>

<p>So the cutoff is indeed 22 lands.</p>

<hr>

<p>For a single draw, the distribution is (note that the figures in your reference are incorrectly rounded):</p>

<pre><code>total     0       1       2       3       4       5       6       7
lands   lands    land   lands   lands   lands   lands   lands   lands
  18     7.0%   24.4%   33.7%   23.6%    9.1%    1.9%    0.2%    0.0%
  19     5.8%   22.1%   33.2%   25.4%   10.7%    2.5%    0.3%    0.0%
  20     4.8%   19.9%   32.4%   27.0%   12.4%    3.1%    0.4%    0.0%
  21     4.0%   17.7%   31.3%   28.3%   14.2%    3.9%    0.5%    0.0%
  22     3.3%   15.7%   30.0%   29.4%   16.0%    4.8%    0.7%    0.0%
  23     2.7%   13.8%   28.6%   30.3%   17.8%    5.8%    1.0%    0.1%
  24     2.2%   12.1%   26.9%   30.9%   19.6%    6.9%    1.3%    0.1%
  25     1.7%   10.5%   25.2%   31.2%   21.4%    8.2%    1.6%    0.1%
</code></pre>

<p>For the new Arena style it is instead (note that I think the figure in the reference article for drawing 2-4 lands from 20 is completely wrong):</p>

<pre><code>total     0       1       2       3       4       5       6       7
lands   lands    land   lands   lands   lands   lands   lands   lands
  18     0.8%   14.9%   56.0%   25.8%    2.5%    0.0%    0.0%    0.0%
  19     0.7%   13.4%   55.4%   27.5%    3.0%    0.1%    0.0%    0.0%
  20     0.6%   12.2%   54.3%   29.2%    3.6%    0.1%    0.0%    0.0%
  21     0.5%   11.2%   52.8%   30.9%    4.4%    0.2%    0.0%    0.0%
  22     0.2%    5.3%   33.4%   50.2%   10.4%    0.6%    0.0%    0.0%
  23     0.1%    4.5%   31.7%   51.4%   11.5%    0.8%    0.0%    0.0%
  24     0.1%    4.0%   30.0%   52.2%   12.7%    1.0%    0.0%    0.0%
  25     0.1%    3.6%   28.3%   52.6%   14.1%    1.2%    0.0%    0.0%
</code></pre>

<hr>

<p>Here is Python 3 code to generate the tables. <a href="https://tio.run/##3VNdT4MwFH2GX3HTxIRuODZNNlzkwfjuH1hmU1xxBVaWglnU@NvxtmXuM85neYDm3nNOT8@l6/dmWanbtl2IDFKpqlWgQijo1PfUYwEJjHwvqzRIkAo0V68isM2ua949CBRcg6QQRRBI6MOI@p4WzZtWBuD7vhFfcrVga12lPJWlbN6DhXgpWC0/RAhN1fCSlYioQwd0dbu0ZbNnJ@lcnlIcDu04wI88ejuvj419YnRM3INSPITMgDHFV4IxSBIgjK24VIwRtLYUfCE0w6RWvMFcyOf0Of4iaObO99ZaqiYgT6ZZErotHHAG7hMQa5WE0Ctl3QQu8Zji8zvNngFphwujM@tKczQzRhnMsdqcOu271WB0ZW3HbuyWuhv9KA7hZmznjyLInp1MdTwMoQt6Yn4kMDLFTiKmc2S7o@yMbM/RMXvYsVa76Mje@kELxf9Liia52uQ4nDv48WWLLcxW85Oqt5FKCY18ZGTA0xqvXwQT/LHdlhGMhxTuE9vKz7REWQvIrZa1MnOKc@gncGG00ly1C5ic/mHWdmOMtG2/AQ" rel="nofollow noreferrer">Run it online</a>.</p>



<pre><code>def binom(n, k):
    nCk = 1
    for i in range(k):
        nCk = nCk * (n - i) // (i + 1)
    return nCk


def hand_probability(deck_size, total_lands, hand_size, hand_lands):
    return binom(total_lands, hand_lands) * binom(deck_size - total_lands, hand_size - hand_lands) / binom(deck_size, hand_size)


if __name__ == "__main__":
    header_format = "{:^8}" * 9
    print("Normal")
    print(header_format.format("total", *list(range(8))))
    print(header_format.format("lands", "lands", "land", *["lands"] * 6))

    row_format = "{:^8}" + "{:^8.1%}" * 8
    for lands in range(18, 26):
        row = [hand_probability(60, lands, 7, k) for k in range(8)]
        print(row_format.format(lands, *row))

    print("")

    print("Arena")
    print(header_format.format("total", *list(range(8))))
    print(header_format.format("lands", "lands", "land", *["lands"] * 6))

    row_format = "{:^8}" + "{:^8.1%}" * 8
    for lands in range(18, 26):
        probs = [0] * 8
        for i in range(8):
            for j in range(8):
                winner = i if abs(i / 7 - lands / 60) &lt;= abs(j / 7 - lands / 60) else j
                probs[winner] += hand_probability(60, lands, 7, i) * hand_probability(60, lands, 7, j)
        print(row_format.format(lands, *probs))
</code></pre>

CC BY-SA 4.0
2019-08-23T20:57:57.117Z
I was wondering whether the more math-y people from PPCG would eventually turn up on this question. Not disappointed.
J. Sallé
CC BY-SA 4.0
2019-08-26T09:13:35.390Z
Crazy jump, right? Care to show and explain the formula for the distribution?
Reto Höhener
CC BY-SA 4.0
2019-08-26T09:23:26.200Z
Also, I am now going to keep book of the number of lands for each game and mulligan to verify this distribution experimentally. Currently I feel like I still get 2-land hands far too often.
Reto Höhener
CC BY-SA 4.0
2019-08-26T09:46:30.057Z
@RetoHöhener, unfortunately this site doesn't seem to have MathJax configured. Would Python code be any use to you?
Peter Taylor
CC BY-SA 4.0
2019-09-04T11:02:41.880Z
I don't really need it, I just felt like I couldn't mark your answer as accepted as long as it is unclear how you arrived at your numbers.
Reto Höhener
CC BY-SA 4.0
2019-08-23T20:20:49.277Z
2019-09-04T11:36:06.967Z
2019-09-04T11:36:06.967Z
Peter Taylor
<p>Is it 22 lands? Did I understand the algorithm correctly and did I draw the correct conclusions, or am I getting it wrong?</p>

<p>From what I have read, the arena algorithm <em>takes 2 virtual copies of your deck, shuffles and draws a hand from each. It then picks the hand (and deck) with the ratio that is closest to the ratio in your deck.</em>  (maybe i already got that wrong?).</p>

<p><strong>21-land-deck with ratio = 0.350 (21 / 60)</strong></p>

<pre><code>1-land-hand -&gt; ratio = 0.143 -&gt; distance to deck ratio = 0.21 
2-land-hand -&gt; ratio = 0.286 -&gt; distance to deck ratio = 0.06 -&gt; 2-land-hand gets picked :(
3-land-hand -&gt; ratio = 0.429 -&gt; distance to deck ratio = 0.08
</code></pre>

<p><strong>22-land-deck with ratio = 0.367 (22 / 60)</strong></p>

<pre><code>2-land-hand -&gt; ratio = 0.286 -&gt; distance to deck ratio = 0.08
3-land-hand -&gt; ratio = 0.429 -&gt; distance to deck ratio = 0.06 -&gt; 3-land-hand gets picked :)
4-land-hand -&gt; ratio = 0.571 -&gt; distance to deck ratio = 0.20
</code></pre>

<p>So as I understand it, in a 21-land-deck, if one of the 2 opening hands contains 2 lands, it will always get picked if the other hand has a different number of lands.</p>

<p>And in a 22-land-deck, it's always the 3-land-hand that wins.</p>

<p><em>So it's 22 lands?</em></p>

<p>Resources:</p>

<ul>
<li><a href="https://www.channelfireball.com/articles/arenas-new-opening-hand-rule-has-radical-implications-for-how-we-play-the-game/" rel="nofollow noreferrer">https://www.channelfireball.com/articles/arenas-new-opening-hand-rule-has-radical-implications-for-how-we-play-the-game/</a></li>
</ul>

<p>Update 2019-09-04:</p>

<p>I must say I changed back to 24 lands recently, because I was getting 2-land opening hands in what felt like more than 50% of the time, when it should have been closer to 30%. But I didn't actually record any numbers, so it might just be my perception.</p>

<magic-the-gathering><mtg-arena>
How do I tune my magic arena (MTGA) deck for 3 lands in my opening hand, under the new mulligan rule and selection algorithm?
Reto Höhener
# How do I tune my magic arena (MTGA) deck for 3 lands in my opening hand, under the new mulligan rule and selection algorithm?

(Asked by: username_0 on 2019-08-17)

Is it 22 lands? Did I understand the algorithm correctly and did I draw the correct conclusions, or am I getting it wrong?

From what I have read, the arena algorithm *takes 2 virtual copies of your deck, shuffles and draws a hand from each. It then picks the hand (and deck) with the ratio that is closest to the ratio in your deck.* (maybe i already got that wrong?).

**21-land-deck with ratio = 0.350 (21 / 60)**

```
1-land-hand -> ratio = 0.143 -> distance to deck ratio = 0.21 
2-land-hand -> ratio = 0.286 -> distance to deck ratio = 0.06 -> 2-land-hand gets picked :(
3-land-hand -> ratio = 0.429 -> distance to deck ratio = 0.08

```

**22-land-deck with ratio = 0.367 (22 / 60)**

```
2-land-hand -> ratio = 0.286 -> distance to deck ratio = 0.08
3-land-hand -> ratio = 0.429 -> distance to deck ratio = 0.06 -> 3-land-hand gets picked :)
4-land-hand -> ratio = 0.571 -> distance to deck ratio = 0.20

```

So as I understand it, in a 21-land-deck, if one of the 2 opening hands contains 2 lands, it will always get picked if the other hand has a different number of lands.

And in a 22-land-deck, it's always the 3-land-hand that wins.

*So it's 22 lands?*

Resources:

* <https://www.channelfireball.com/articles/arenas-new-opening-hand-rule-has-radical-implications-for-how-we-play-the-game/>

Update 2019-09-04:

I must say I changed back to 24 lands recently, because I was getting 2-land opening hands in what felt like more than 50% of the time, when it should have been closer to 30%. But I didn't actually record any numbers, so it might just be my perception.

**Tags:** magic-the-gathering, mtg-arena


---

## 1 answers

### Answer by username_1 on 2019-08-23. Score: 5

From the page you reference:

> It also means that 21 and 22 lands become very different amounts, since 21 or fewer land decks will favor 2-land hands, and 22+ land decks will favor 3-land hands.

So the cutoff is indeed 22 lands.

---

For a single draw, the distribution is (note that the figures in your reference are incorrectly rounded):

```
total     0       1       2       3       4       5       6       7
lands   lands    land   lands   lands   lands   lands   lands   lands
  18     7.0%   24.4%   33.7%   23.6%    9.1%    1.9%    0.2%    0.0%
  19     5.8%   22.1%   33.2%   25.4%   10.7%    2.5%    0.3%    0.0%
  20     4.8%   19.9%   32.4%   27.0%   12.4%    3.1%    0.4%    0.0%
  21     4.0%   17.7%   31.3%   28.3%   14.2%    3.9%    0.5%    0.0%
  22     3.3%   15.7%   30.0%   29.4%   16.0%    4.8%    0.7%    0.0%
  23     2.7%   13.8%   28.6%   30.3%   17.8%    5.8%    1.0%    0.1%
  24     2.2%   12.1%   26.9%   30.9%   19.6%    6.9%    1.3%    0.1%
  25     1.7%   10.5%   25.2%   31.2%   21.4%    8.2%    1.6%    0.1%

```

For the new Arena style it is instead (note that I think the figure in the reference article for drawing 2-4 lands from 20 is completely wrong):

```
total     0       1       2       3       4       5       6       7
lands   lands    land   lands   lands   lands   lands   lands   lands
  18     0.8%   14.9%   56.0%   25.8%    2.5%    0.0%    0.0%    0.0%
  19     0.7%   13.4%   55.4%   27.5%    3.0%    0.1%    0.0%    0.0%
  20     0.6%   12.2%   54.3%   29.2%    3.6%    0.1%    0.0%    0.0%
  21     0.5%   11.2%   52.8%   30.9%    4.4%    0.2%    0.0%    0.0%
  22     0.2%    5.3%   33.4%   50.2%   10.4%    0.6%    0.0%    0.0%
  23     0.1%    4.5%   31.7%   51.4%   11.5%    0.8%    0.0%    0.0%
  24     0.1%    4.0%   30.0%   52.2%   12.7%    1.0%    0.0%    0.0%
  25     0.1%    3.6%   28.3%   52.6%   14.1%    1.2%    0.0%    0.0%

```

---

Here is Python 3 code to generate the tables. [Run it online](https://tio.run/##3VNdT4MwFH2GX3HTxIRuODZNNlzkwfjuH1hmU1xxBVaWglnU@NvxtmXuM85neYDm3nNOT8@l6/dmWanbtl2IDFKpqlWgQijo1PfUYwEJjHwvqzRIkAo0V68isM2ua949CBRcg6QQRRBI6MOI@p4WzZtWBuD7vhFfcrVga12lPJWlbN6DhXgpWC0/RAhN1fCSlYioQwd0dbu0ZbNnJ@lcnlIcDu04wI88ejuvj419YnRM3INSPITMgDHFV4IxSBIgjK24VIwRtLYUfCE0w6RWvMFcyOf0Of4iaObO99ZaqiYgT6ZZErotHHAG7hMQa5WE0Ctl3QQu8Zji8zvNngFphwujM@tKczQzRhnMsdqcOu271WB0ZW3HbuyWuhv9KA7hZmznjyLInp1MdTwMoQt6Yn4kMDLFTiKmc2S7o@yMbM/RMXvYsVa76Mje@kELxf9Liia52uQ4nDv48WWLLcxW85Oqt5FKCY18ZGTA0xqvXwQT/LHdlhGMhxTuE9vKz7REWQvIrZa1MnOKc@gncGG00ly1C5ic/mHWdmOMtG2/AQ).

```
def binom(n, k):
    nCk = 1
    for i in range(k):
        nCk = nCk * (n - i) // (i + 1)
    return nCk

def hand_probability(deck_size, total_lands, hand_size, hand_lands):
    return binom(total_lands, hand_lands) * binom(deck_size - total_lands, hand_size - hand_lands) / binom(deck_size, hand_size)

if __name__ == "__main__":
    header_format = "{:^8}" * 9
    print("Normal")
    print(header_format.format("total", *list(range(8))))
    print(header_format.format("lands", "lands", "land", *["lands"] * 6))

    row_format = "{:^8}" + "{:^8.1%}" * 8
    for lands in range(18, 26):
        row = [hand_probability(60, lands, 7, k) for k in range(8)]
        print(row_format.format(lands, *row))

    print("")

    print("Arena")
    print(header_format.format("total", *list(range(8))))
    print(header_format.format("lands", "lands", "land", *["lands"] * 6))

    row_format = "{:^8}" + "{:^8.1%}" * 8
    for lands in range(18, 26):
        probs = [0] * 8
        for i in range(8):
            for j in range(8):
                winner = i if abs(i / 7 - lands / 60) <= abs(j / 7 - lands / 60) else j
                probs[winner] += hand_probability(60, lands, 7, i) * hand_probability(60, lands, 7, j)
        print(row_format.format(lands, *probs))

```

> **Comments:**
> **username_2**: I was wondering whether the more math-y people from PPCG would eventually turn up on this question. Not disappointed.  
> **username_0**: Crazy jump, right? Care to show and explain the formula for the distribution?  
> **username_0**: Also, I am now going to keep book of the number of lands for each game and mulligan to verify this distribution experimentally. Currently I feel like I still get 2-land hands far too often.  
> **username_1**: @username_0, unfortunately this site doesn't seem to have MathJax configured. Would Python code be any use to you?  
> **username_0**: I don't really need it, I just felt like I couldn't mark your answer as accepted as long as it is unclear how you arrived at your numbers.  

---

