Covering an 8x8 grid with X pentominoesWhere are the Wazirs?Covering an 8x8 grid with W pentominoesBigger board with the least squaresCovering Table with CoinsPentominoes On the EdgePairs of Pairs of PentominoesThe Pentomino Snake8x8 grid with no unpainted pentominoes10x10 grid with no unpainted hexominoesKnights covering a 10x10 chess boardKnights covering a 9x9 chess boardPrincesses covering an 8x8 chess board

Can I call the airport to see if my boyfriend made it through customs?

How can medieval knights protects themselves against modern guns?

Large products with glass doors

Why is SpaceX not also working on a smaller version of Starship?

What will happen to a ball kept on a frictionless inclined plane?

What does "Massage with salt" mean in a recipe?

Was Constantine The Great a Nicene Christian?

When can a taxi clearance allow me to cross multiple runways?

Help me pair my socks

How to equalize the chance of throwing the highest dice? (Riddle)

Setting tack strip in concrete

Why should I invest so much in 401(k)?

Miniseries in post-rapture US with good/evil conflict

Inverse Look-and-Say

What is a polite way to clarify my gender in phone calls?

A bob hanging in an accelerating train moves backward. What is the force moving it backward?

Pointlessly recurse down the alphabet

Who is Gail Gasram?

Good type of bike to get for commuting (thinking of road v touring)

Exactly what color was the text on monochrome terminals with green-on-black and amber-on-black screens?

If password expiration is applied, should door-lock expiration be applied too?

What is the difference between "cat < filename" and "cat filename"?

More recent introductory text on Differential Geometry similar to Kobayashi/Nomizu

Pointing the index fingers to one another as a way to excuse oneself: is this a common gesture?



Covering an 8x8 grid with X pentominoes


Where are the Wazirs?Covering an 8x8 grid with W pentominoesBigger board with the least squaresCovering Table with CoinsPentominoes On the EdgePairs of Pairs of PentominoesThe Pentomino Snake8x8 grid with no unpainted pentominoes10x10 grid with no unpainted hexominoesKnights covering a 10x10 chess boardKnights covering a 9x9 chess boardPrincesses covering an 8x8 chess board






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty
margin-bottom:0;

.everyonelovesstackoverflowposition:absolute;height:1px;width:1px;opacity:0;top:0;left:0;pointer-events:none;








14















$begingroup$


What is the minimum number of X pentominoes you need to cover every cell of an 8x8 grid? Pentominoes may overlap each other and sit outside the boundary of the grid. An X pentomino looks like this:



enter image description here










share|improve this question









$endgroup$














  • $begingroup$
    Where are the wazirs? is basically this question but with an empty cell in the middle of the pentomino.
    $endgroup$
    – jafe
    Oct 16 at 4:53






  • 1




    $begingroup$
    It's similar but not the same. Here it is 8x8, instead of 9x9. Also we don't have the extra condition that they attack each other.
    $endgroup$
    – Dmitry Kamenetsky
    Oct 16 at 4:56










  • $begingroup$
    Oh, right. Didn't realize the board size was different.
    $endgroup$
    – jafe
    Oct 16 at 5:01

















14















$begingroup$


What is the minimum number of X pentominoes you need to cover every cell of an 8x8 grid? Pentominoes may overlap each other and sit outside the boundary of the grid. An X pentomino looks like this:



enter image description here










share|improve this question









$endgroup$














  • $begingroup$
    Where are the wazirs? is basically this question but with an empty cell in the middle of the pentomino.
    $endgroup$
    – jafe
    Oct 16 at 4:53






  • 1




    $begingroup$
    It's similar but not the same. Here it is 8x8, instead of 9x9. Also we don't have the extra condition that they attack each other.
    $endgroup$
    – Dmitry Kamenetsky
    Oct 16 at 4:56










  • $begingroup$
    Oh, right. Didn't realize the board size was different.
    $endgroup$
    – jafe
    Oct 16 at 5:01













14













14









14


1



$begingroup$


What is the minimum number of X pentominoes you need to cover every cell of an 8x8 grid? Pentominoes may overlap each other and sit outside the boundary of the grid. An X pentomino looks like this:



enter image description here










share|improve this question









$endgroup$




What is the minimum number of X pentominoes you need to cover every cell of an 8x8 grid? Pentominoes may overlap each other and sit outside the boundary of the grid. An X pentomino looks like this:



enter image description here







mathematics combinatorics polyomino






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Oct 16 at 4:43









Dmitry KamenetskyDmitry Kamenetsky

4,5726 silver badges44 bronze badges




4,5726 silver badges44 bronze badges














  • $begingroup$
    Where are the wazirs? is basically this question but with an empty cell in the middle of the pentomino.
    $endgroup$
    – jafe
    Oct 16 at 4:53






  • 1




    $begingroup$
    It's similar but not the same. Here it is 8x8, instead of 9x9. Also we don't have the extra condition that they attack each other.
    $endgroup$
    – Dmitry Kamenetsky
    Oct 16 at 4:56










  • $begingroup$
    Oh, right. Didn't realize the board size was different.
    $endgroup$
    – jafe
    Oct 16 at 5:01
















  • $begingroup$
    Where are the wazirs? is basically this question but with an empty cell in the middle of the pentomino.
    $endgroup$
    – jafe
    Oct 16 at 4:53






  • 1




    $begingroup$
    It's similar but not the same. Here it is 8x8, instead of 9x9. Also we don't have the extra condition that they attack each other.
    $endgroup$
    – Dmitry Kamenetsky
    Oct 16 at 4:56










  • $begingroup$
    Oh, right. Didn't realize the board size was different.
    $endgroup$
    – jafe
    Oct 16 at 5:01















$begingroup$
Where are the wazirs? is basically this question but with an empty cell in the middle of the pentomino.
$endgroup$
– jafe
Oct 16 at 4:53




$begingroup$
Where are the wazirs? is basically this question but with an empty cell in the middle of the pentomino.
$endgroup$
– jafe
Oct 16 at 4:53




1




1




$begingroup$
It's similar but not the same. Here it is 8x8, instead of 9x9. Also we don't have the extra condition that they attack each other.
$endgroup$
– Dmitry Kamenetsky
Oct 16 at 4:56




$begingroup$
It's similar but not the same. Here it is 8x8, instead of 9x9. Also we don't have the extra condition that they attack each other.
$endgroup$
– Dmitry Kamenetsky
Oct 16 at 4:56












$begingroup$
Oh, right. Didn't realize the board size was different.
$endgroup$
– jafe
Oct 16 at 5:01




$begingroup$
Oh, right. Didn't realize the board size was different.
$endgroup$
– jafe
Oct 16 at 5:01










6 Answers
6






active

oldest

votes


















10

















$begingroup$

I can prove that the answer is exactly




16 pentominoes




Several people, including Jaap Scherphuis, have shown that the square can be covered with this many pentominoes, so it only remains to show that at least this many pentominoes are needed. (A matching lower bound).



Let us start with the magic board given by A. Rex:






13 7 6 8 8 6 7 13
7 1 6 5 5 6 1 7
6 6 9 3 3 9 6 6
8 5 3 7 7 3 5 8
8 5 3 7 7 3 5 8
6 6 9 3 3 9 6 6
7 1 6 5 5 6 1 7
13 7 6 8 8 6 7 13


As mentioned by A. Rex, any pentomino placed on this board will cover squares totaling at most 27 - exactly 27 if the center is on the board, and at most 13 if not. The numbers on the board total 400.


As a first lower bound,




at least 15 pentominoes are required, because 14 pentominoes can cover squares totaling at most 14*27 = 378, and hence not all of the squares.




However,




15 pentominoes can only cover squares totaling at most 15*27 = 405. This means that if 15 pentominoes cover the board, they cannot double-cover any square or squares totaling at least 6, and no pentomino can be centered off the board. If squares totaling at least 6 were double-covered, then the sum would be at least 406, which is impossible.




Therefore, we can try placing pentominoes




under the assumption that 15 can cover the board, and see what deductions we can make.
Let's label the squares like a chess board, and start by looking at the square h1, in the bottom right corner.




To cover that square,




We must place a pentomino centered at either h1, g1 or h2. h2 and g1 are symmetrical, so we only need to consider one.




Let's start by




placing a pentomino centered at h1, and see where that gets us. We now must cover the square g2. We can't do so by placing a pentomino centered at g1, g2 or h2, because those would double-cover too much. Therefore, we must place a pentomino centered at either f2 or g3. These are symmetrical, so without loss of generality let's place a pentomino centered at f2. Next, we must cover the square h3. We can't do so by placing a pentomino centered at h2, h3 or g3, because those would double-cover too much. Therefore, we must place a pentomino centered at h4. Next, we must cover the square g3. We can't do so in any way without double-covering too much. Thus, if we start with a pentomino centered at h1, we will definitely double-cover too much to cover the square with only 15 pentominoes.




On the other hand, let's try starting by




placing a pentomino at g1. I'll abbreviate what follows, using "the only option" to mean "the only option that doesn't double cover squares totaling at least 6". We need to cover h2, the only option is to place a pentomino centered at h3. We need to cover f2, the only option is to place a pentomino centered at e2. We need to cover d1, the only option is to place a pentomino centered at c1. We need to cover a1, the only option is to place a pentomino centered at a2. We need to cover b3, the only option is to place a pentomino centered at b4. There is no option available to cover c3. Thus, there is no way to cover the square with 15 pentominoes starting with a pentomino centered at g1.




As a result, we have found that




It is impossible to cover the square with 15 X-pentominoes. Any such cover must cover h1, so it must include a pentomino centered at either h1 or g1, or equivalently h2. In either case, we would be required to double-cover a set of squares totaling at least 6, which means that the overall squares covered will total at least 406, which is impossible, since each pentomino covers at most 27, for a total of at most 405.




As a result, we have a matching lower and upper bound of




16 pentominoes.







share|improve this answer












$endgroup$














  • $begingroup$
    Wow I think you have really done it! Congratulations.
    $endgroup$
    – Dmitry Kamenetsky
    Oct 17 at 23:15


















20

















$begingroup$

The X-pentomino tiles the plane, so that tiling is a good way to start. There are two ways to cut an 8x8 region out of that tiling. If one of the 4 central squares of the 8x8 region has an X centred on it, you get this




19 pentomino solution
enter image description here




or else you get this




20 pentomino solution
enter image description here




The latter can be easily improved by replacing the ones at the edges to give this




16 pentomino solution
enter image description here




A different way to get the same result is




to take four pentominos from the tiling. These cover a 4x4 area. By using 4 sets of 4, you get this solution.
enter image description here







share|improve this answer












$endgroup$










  • 1




    $begingroup$
    Very nice solution! I am almost convinced that it is optimal.
    $endgroup$
    – Dmitry Kamenetsky
    Oct 16 at 5:52


















11

















$begingroup$

Here's another proof of the lower bound in Sriotchilism O'Zaic's answer.




Consider the following 8x8 grid of seemingly magically-chosen numbers:



13 7 6 8 8 6 7 13
7 1 6 5 5 6 1 7
6 6 9 3 3 9 6 6
8 5 3 7 7 3 5 8
8 5 3 7 7 3 5 8
6 6 9 3 3 9 6 6
7 1 6 5 5 6 1 7
13 7 6 8 8 6 7 13

Note that if you place an X pentomino with its center anywhere on this grid, the numbers it covers sum to exactly 27. (If you place a pentomino with its center off of the grid, the numbers it covers sum to less than 27.) The sum of all of the numbers in the grid is 400.

If you cover all of the numbers in the grid with X pentominoes, and each pentomino covers a sum of at most 27, it follows you must use at least 400/27 ~ 14.8 pentominoes. Since there are an integer number of pentominoes, there must be at least 15.





share|improve this answer












$endgroup$






















    11

















    $begingroup$

    People have given some good upper bounds, how about a lower bound.




    Our first lower bound can be $13$. This is the number of spaces to be filled ($64$), divided by the size of the tile ($5$) and rounded up, since we cannot have a fractional piece. This would be the number of X pentaminos required if we could fill the space with only 1 square extra (either outside the grid or overlapping)




    However we can improve this ...




    to $14$.


    To do this we look at the corners of the square. These need to be filled by at least $1$ X pentamino so we can look at all the ways to do this. There are 3 (up to reflection symmetry); illustrated here on the lower right corner:
    Corners

    Now every way of doing this has at least $1$ square of the pentamino outside of the square. Additionally since the square is $8times 8$ no pentamino can be on two corners. Thus there are at least $4$ tiles left outside the square. This means our pentaminos must fill a footprint at least $4$ larger than the square, or size $68$. If we divide by $5$ and round up we get $14$.




    However we can improve this ...




    to $15$. To do this we return to the corner argument given a moment ago. Let us consider the covering of the corner that only has one outside of the square. Looking at the square outlined in red below:
    Outlined square

    Since it is inside of the square the outlined space must be covered and there are $5$ ways to cover it:
    5 coverings

    Now we notice that each way of doing it either adds overlap or area outside of the square.
    Our best case scenario is the fourth one which has only one redundant space.
    This means that this way of filling the corner is at least as bad as the next worse, which left two squares out of the grid.
    And after verifying that the square is still to wide to cause overlap this raises our effective size to $72$ and our lower bound to $15$.







    share|improve this answer












    $endgroup$






















      6

















      $begingroup$

      I’m thinking:




      16




      The solution:






      1 2 2 2 3 4 4 4
      1 1 2 3 3 3 4 5
      1 8 7 7 3 6 5 5
      8 8 8 7 6 6 6 5
      9 8 15 15 16 6 14 14
      9 9 15 11 16 16 14 13
      9 10 11 11 11 12 13 13
      10 10 10 11 12 12 12 13






      share|improve this answer












      $endgroup$










      • 1




        $begingroup$
        Gonna need someone to save me - formatting is nearly impossible from the phone, and there’s not even a preview...
        $endgroup$
        – Avi
        Oct 16 at 5:26



















      1

















      $begingroup$

      Proof with brute-force procedure. Here I used fact that we for sure can cover with 16 pentominoes, so I tried to cover half with 8 or less and then see if two such half-covers cover the whole board. It takes about 15 seconds on my PC to get the answer.





      #include <iostream>
      #include <vector>

      const int kHalfUpperBound = 8;
      const int kSide = 8;
      const int kExtendedSide = 10;

      class Field
      std::vector<int> _pentas;
      std::vector<char> _data;
      int _linesCovered = 0;

      void UpdatePenta(int i, int inc)
      _data[i] += inc;
      int r = i / kExtendedSide;
      int c = i % kExtendedSide;
      if (c > 0) _data[i - 1] += inc;
      if (c < 9) _data[i + 1] += inc;
      if (r > 0) _data[i - kExtendedSide] += inc;
      if (r < 9) _data[i + kExtendedSide] += inc;


      public:
      Field() : _data(10 * 10, 0)

      void PushPenta(int i) UpdatePenta(i, 1); _pentas.push_back(i);
      void PopPenta() UpdatePenta(_pentas.back(), -1); _pentas.pop_back();
      void MoveTopPenta(int to) PopPenta(); PushPenta(to);

      const auto& Pentas() const return _pentas;
      const auto& Data() const return _data;

      int LinesCovered()
      for (int i = 10; i < 100; i += 10)
      _data[i + 4] == 0

      ;

      char RowToNumber(const Field& field, int r, bool reverse)
      char teeth = 0;
      int offset = reverse ? 7 : 0;
      int sign = reverse ? -1 : 1;
      for (int b = 0; b < kSide; ++b)
      if (field.Data()[r*10 + 1 + offset + sign * b] != 0)
      teeth += (1 << b);


      return teeth;


      std::vector<int> solve()
      Field field;

      int best = kHalfUpperBound + 1;
      std::vector<int> pentas;
      int gi = 0;
      const int linesToFullyCover = kHalfUpperBound / 2;
      // After first 5 extended lines we should have covered 3 primary lines
      for (int i = 0; i < (linesToFullyCover + 1) * 10; ++i)
      field.PushPenta(i);
      if (field.LinesCovered() >= linesToFullyCover)
      const char teethIn = RowToNumber(field, linesToFullyCover, false);
      const char teethOut = RowToNumber(field, linesToFullyCover + 1, true);
      if (teethIn ^ teethOut == 1 << (sizeof(teethIn) * 8))
      const int curBest = field.Pentas().size();
      if (curBest < best)
      best = curBest;
      pentas = field.Pentas();



      while (i + 1 == 50)
      field.PopPenta();
      i = field.Pentas().back();
      if (field.Pentas().empty()) return pentas;
      field.MoveTopPenta(++i);

      if (field.Pentas().size() == kHalfUpperBound)
      i = field.Pentas().back();
      field.PopPenta();

      if (++gi % 1000000 == 0) std::cout << gi << std::endl;



      int main()
      const auto pentas = solve();
      for (auto p : pentas) std::cout << (p / 10) << ',' << ((p - 10) % 10) << " ";
      std::cout << std::endl;

      return 0;



      Output for the upper half is




      1,2 1,6 2,4 2,8 3,1 3,5 4,3 4,7




      So the number the minimum number of pentominoes needed is




      16







      share|improve this answer












      $endgroup$
















        Your Answer








        StackExchange.ready(function()
        var channelOptions =
        tags: "".split(" "),
        id: "559"
        ;
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function()
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled)
        StackExchange.using("snippets", function()
        createEditor();
        );

        else
        createEditor();

        );

        function createEditor()
        StackExchange.prepareEditor(
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: false,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: null,
        bindNavPrevention: true,
        postfix: "",
        imageUploader:
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        ,
        noCode: true, onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        );



        );














        draft saved

        draft discarded
















        StackExchange.ready(
        function ()
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fpuzzling.stackexchange.com%2fquestions%2f90269%2fcovering-an-8x8-grid-with-x-pentominoes%23new-answer', 'question_page');

        );

        Post as a guest















        Required, but never shown


























        6 Answers
        6






        active

        oldest

        votes








        6 Answers
        6






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        10

















        $begingroup$

        I can prove that the answer is exactly




        16 pentominoes




        Several people, including Jaap Scherphuis, have shown that the square can be covered with this many pentominoes, so it only remains to show that at least this many pentominoes are needed. (A matching lower bound).



        Let us start with the magic board given by A. Rex:






        13 7 6 8 8 6 7 13
        7 1 6 5 5 6 1 7
        6 6 9 3 3 9 6 6
        8 5 3 7 7 3 5 8
        8 5 3 7 7 3 5 8
        6 6 9 3 3 9 6 6
        7 1 6 5 5 6 1 7
        13 7 6 8 8 6 7 13


        As mentioned by A. Rex, any pentomino placed on this board will cover squares totaling at most 27 - exactly 27 if the center is on the board, and at most 13 if not. The numbers on the board total 400.


        As a first lower bound,




        at least 15 pentominoes are required, because 14 pentominoes can cover squares totaling at most 14*27 = 378, and hence not all of the squares.




        However,




        15 pentominoes can only cover squares totaling at most 15*27 = 405. This means that if 15 pentominoes cover the board, they cannot double-cover any square or squares totaling at least 6, and no pentomino can be centered off the board. If squares totaling at least 6 were double-covered, then the sum would be at least 406, which is impossible.




        Therefore, we can try placing pentominoes




        under the assumption that 15 can cover the board, and see what deductions we can make.
        Let's label the squares like a chess board, and start by looking at the square h1, in the bottom right corner.




        To cover that square,




        We must place a pentomino centered at either h1, g1 or h2. h2 and g1 are symmetrical, so we only need to consider one.




        Let's start by




        placing a pentomino centered at h1, and see where that gets us. We now must cover the square g2. We can't do so by placing a pentomino centered at g1, g2 or h2, because those would double-cover too much. Therefore, we must place a pentomino centered at either f2 or g3. These are symmetrical, so without loss of generality let's place a pentomino centered at f2. Next, we must cover the square h3. We can't do so by placing a pentomino centered at h2, h3 or g3, because those would double-cover too much. Therefore, we must place a pentomino centered at h4. Next, we must cover the square g3. We can't do so in any way without double-covering too much. Thus, if we start with a pentomino centered at h1, we will definitely double-cover too much to cover the square with only 15 pentominoes.




        On the other hand, let's try starting by




        placing a pentomino at g1. I'll abbreviate what follows, using "the only option" to mean "the only option that doesn't double cover squares totaling at least 6". We need to cover h2, the only option is to place a pentomino centered at h3. We need to cover f2, the only option is to place a pentomino centered at e2. We need to cover d1, the only option is to place a pentomino centered at c1. We need to cover a1, the only option is to place a pentomino centered at a2. We need to cover b3, the only option is to place a pentomino centered at b4. There is no option available to cover c3. Thus, there is no way to cover the square with 15 pentominoes starting with a pentomino centered at g1.




        As a result, we have found that




        It is impossible to cover the square with 15 X-pentominoes. Any such cover must cover h1, so it must include a pentomino centered at either h1 or g1, or equivalently h2. In either case, we would be required to double-cover a set of squares totaling at least 6, which means that the overall squares covered will total at least 406, which is impossible, since each pentomino covers at most 27, for a total of at most 405.




        As a result, we have a matching lower and upper bound of




        16 pentominoes.







        share|improve this answer












        $endgroup$














        • $begingroup$
          Wow I think you have really done it! Congratulations.
          $endgroup$
          – Dmitry Kamenetsky
          Oct 17 at 23:15















        10

















        $begingroup$

        I can prove that the answer is exactly




        16 pentominoes




        Several people, including Jaap Scherphuis, have shown that the square can be covered with this many pentominoes, so it only remains to show that at least this many pentominoes are needed. (A matching lower bound).



        Let us start with the magic board given by A. Rex:






        13 7 6 8 8 6 7 13
        7 1 6 5 5 6 1 7
        6 6 9 3 3 9 6 6
        8 5 3 7 7 3 5 8
        8 5 3 7 7 3 5 8
        6 6 9 3 3 9 6 6
        7 1 6 5 5 6 1 7
        13 7 6 8 8 6 7 13


        As mentioned by A. Rex, any pentomino placed on this board will cover squares totaling at most 27 - exactly 27 if the center is on the board, and at most 13 if not. The numbers on the board total 400.


        As a first lower bound,




        at least 15 pentominoes are required, because 14 pentominoes can cover squares totaling at most 14*27 = 378, and hence not all of the squares.




        However,




        15 pentominoes can only cover squares totaling at most 15*27 = 405. This means that if 15 pentominoes cover the board, they cannot double-cover any square or squares totaling at least 6, and no pentomino can be centered off the board. If squares totaling at least 6 were double-covered, then the sum would be at least 406, which is impossible.




        Therefore, we can try placing pentominoes




        under the assumption that 15 can cover the board, and see what deductions we can make.
        Let's label the squares like a chess board, and start by looking at the square h1, in the bottom right corner.




        To cover that square,




        We must place a pentomino centered at either h1, g1 or h2. h2 and g1 are symmetrical, so we only need to consider one.




        Let's start by




        placing a pentomino centered at h1, and see where that gets us. We now must cover the square g2. We can't do so by placing a pentomino centered at g1, g2 or h2, because those would double-cover too much. Therefore, we must place a pentomino centered at either f2 or g3. These are symmetrical, so without loss of generality let's place a pentomino centered at f2. Next, we must cover the square h3. We can't do so by placing a pentomino centered at h2, h3 or g3, because those would double-cover too much. Therefore, we must place a pentomino centered at h4. Next, we must cover the square g3. We can't do so in any way without double-covering too much. Thus, if we start with a pentomino centered at h1, we will definitely double-cover too much to cover the square with only 15 pentominoes.




        On the other hand, let's try starting by




        placing a pentomino at g1. I'll abbreviate what follows, using "the only option" to mean "the only option that doesn't double cover squares totaling at least 6". We need to cover h2, the only option is to place a pentomino centered at h3. We need to cover f2, the only option is to place a pentomino centered at e2. We need to cover d1, the only option is to place a pentomino centered at c1. We need to cover a1, the only option is to place a pentomino centered at a2. We need to cover b3, the only option is to place a pentomino centered at b4. There is no option available to cover c3. Thus, there is no way to cover the square with 15 pentominoes starting with a pentomino centered at g1.




        As a result, we have found that




        It is impossible to cover the square with 15 X-pentominoes. Any such cover must cover h1, so it must include a pentomino centered at either h1 or g1, or equivalently h2. In either case, we would be required to double-cover a set of squares totaling at least 6, which means that the overall squares covered will total at least 406, which is impossible, since each pentomino covers at most 27, for a total of at most 405.




        As a result, we have a matching lower and upper bound of




        16 pentominoes.







        share|improve this answer












        $endgroup$














        • $begingroup$
          Wow I think you have really done it! Congratulations.
          $endgroup$
          – Dmitry Kamenetsky
          Oct 17 at 23:15













        10















        10











        10







        $begingroup$

        I can prove that the answer is exactly




        16 pentominoes




        Several people, including Jaap Scherphuis, have shown that the square can be covered with this many pentominoes, so it only remains to show that at least this many pentominoes are needed. (A matching lower bound).



        Let us start with the magic board given by A. Rex:






        13 7 6 8 8 6 7 13
        7 1 6 5 5 6 1 7
        6 6 9 3 3 9 6 6
        8 5 3 7 7 3 5 8
        8 5 3 7 7 3 5 8
        6 6 9 3 3 9 6 6
        7 1 6 5 5 6 1 7
        13 7 6 8 8 6 7 13


        As mentioned by A. Rex, any pentomino placed on this board will cover squares totaling at most 27 - exactly 27 if the center is on the board, and at most 13 if not. The numbers on the board total 400.


        As a first lower bound,




        at least 15 pentominoes are required, because 14 pentominoes can cover squares totaling at most 14*27 = 378, and hence not all of the squares.




        However,




        15 pentominoes can only cover squares totaling at most 15*27 = 405. This means that if 15 pentominoes cover the board, they cannot double-cover any square or squares totaling at least 6, and no pentomino can be centered off the board. If squares totaling at least 6 were double-covered, then the sum would be at least 406, which is impossible.




        Therefore, we can try placing pentominoes




        under the assumption that 15 can cover the board, and see what deductions we can make.
        Let's label the squares like a chess board, and start by looking at the square h1, in the bottom right corner.




        To cover that square,




        We must place a pentomino centered at either h1, g1 or h2. h2 and g1 are symmetrical, so we only need to consider one.




        Let's start by




        placing a pentomino centered at h1, and see where that gets us. We now must cover the square g2. We can't do so by placing a pentomino centered at g1, g2 or h2, because those would double-cover too much. Therefore, we must place a pentomino centered at either f2 or g3. These are symmetrical, so without loss of generality let's place a pentomino centered at f2. Next, we must cover the square h3. We can't do so by placing a pentomino centered at h2, h3 or g3, because those would double-cover too much. Therefore, we must place a pentomino centered at h4. Next, we must cover the square g3. We can't do so in any way without double-covering too much. Thus, if we start with a pentomino centered at h1, we will definitely double-cover too much to cover the square with only 15 pentominoes.




        On the other hand, let's try starting by




        placing a pentomino at g1. I'll abbreviate what follows, using "the only option" to mean "the only option that doesn't double cover squares totaling at least 6". We need to cover h2, the only option is to place a pentomino centered at h3. We need to cover f2, the only option is to place a pentomino centered at e2. We need to cover d1, the only option is to place a pentomino centered at c1. We need to cover a1, the only option is to place a pentomino centered at a2. We need to cover b3, the only option is to place a pentomino centered at b4. There is no option available to cover c3. Thus, there is no way to cover the square with 15 pentominoes starting with a pentomino centered at g1.




        As a result, we have found that




        It is impossible to cover the square with 15 X-pentominoes. Any such cover must cover h1, so it must include a pentomino centered at either h1 or g1, or equivalently h2. In either case, we would be required to double-cover a set of squares totaling at least 6, which means that the overall squares covered will total at least 406, which is impossible, since each pentomino covers at most 27, for a total of at most 405.




        As a result, we have a matching lower and upper bound of




        16 pentominoes.







        share|improve this answer












        $endgroup$



        I can prove that the answer is exactly




        16 pentominoes




        Several people, including Jaap Scherphuis, have shown that the square can be covered with this many pentominoes, so it only remains to show that at least this many pentominoes are needed. (A matching lower bound).



        Let us start with the magic board given by A. Rex:






        13 7 6 8 8 6 7 13
        7 1 6 5 5 6 1 7
        6 6 9 3 3 9 6 6
        8 5 3 7 7 3 5 8
        8 5 3 7 7 3 5 8
        6 6 9 3 3 9 6 6
        7 1 6 5 5 6 1 7
        13 7 6 8 8 6 7 13


        As mentioned by A. Rex, any pentomino placed on this board will cover squares totaling at most 27 - exactly 27 if the center is on the board, and at most 13 if not. The numbers on the board total 400.


        As a first lower bound,




        at least 15 pentominoes are required, because 14 pentominoes can cover squares totaling at most 14*27 = 378, and hence not all of the squares.




        However,




        15 pentominoes can only cover squares totaling at most 15*27 = 405. This means that if 15 pentominoes cover the board, they cannot double-cover any square or squares totaling at least 6, and no pentomino can be centered off the board. If squares totaling at least 6 were double-covered, then the sum would be at least 406, which is impossible.




        Therefore, we can try placing pentominoes




        under the assumption that 15 can cover the board, and see what deductions we can make.
        Let's label the squares like a chess board, and start by looking at the square h1, in the bottom right corner.




        To cover that square,




        We must place a pentomino centered at either h1, g1 or h2. h2 and g1 are symmetrical, so we only need to consider one.




        Let's start by




        placing a pentomino centered at h1, and see where that gets us. We now must cover the square g2. We can't do so by placing a pentomino centered at g1, g2 or h2, because those would double-cover too much. Therefore, we must place a pentomino centered at either f2 or g3. These are symmetrical, so without loss of generality let's place a pentomino centered at f2. Next, we must cover the square h3. We can't do so by placing a pentomino centered at h2, h3 or g3, because those would double-cover too much. Therefore, we must place a pentomino centered at h4. Next, we must cover the square g3. We can't do so in any way without double-covering too much. Thus, if we start with a pentomino centered at h1, we will definitely double-cover too much to cover the square with only 15 pentominoes.




        On the other hand, let's try starting by




        placing a pentomino at g1. I'll abbreviate what follows, using "the only option" to mean "the only option that doesn't double cover squares totaling at least 6". We need to cover h2, the only option is to place a pentomino centered at h3. We need to cover f2, the only option is to place a pentomino centered at e2. We need to cover d1, the only option is to place a pentomino centered at c1. We need to cover a1, the only option is to place a pentomino centered at a2. We need to cover b3, the only option is to place a pentomino centered at b4. There is no option available to cover c3. Thus, there is no way to cover the square with 15 pentominoes starting with a pentomino centered at g1.




        As a result, we have found that




        It is impossible to cover the square with 15 X-pentominoes. Any such cover must cover h1, so it must include a pentomino centered at either h1 or g1, or equivalently h2. In either case, we would be required to double-cover a set of squares totaling at least 6, which means that the overall squares covered will total at least 406, which is impossible, since each pentomino covers at most 27, for a total of at most 405.




        As a result, we have a matching lower and upper bound of




        16 pentominoes.








        share|improve this answer















        share|improve this answer




        share|improve this answer








        edited Oct 17 at 19:08

























        answered Oct 17 at 19:02









        isaacgisaacg

        2,0391 gold badge6 silver badges21 bronze badges




        2,0391 gold badge6 silver badges21 bronze badges














        • $begingroup$
          Wow I think you have really done it! Congratulations.
          $endgroup$
          – Dmitry Kamenetsky
          Oct 17 at 23:15
















        • $begingroup$
          Wow I think you have really done it! Congratulations.
          $endgroup$
          – Dmitry Kamenetsky
          Oct 17 at 23:15















        $begingroup$
        Wow I think you have really done it! Congratulations.
        $endgroup$
        – Dmitry Kamenetsky
        Oct 17 at 23:15




        $begingroup$
        Wow I think you have really done it! Congratulations.
        $endgroup$
        – Dmitry Kamenetsky
        Oct 17 at 23:15













        20

















        $begingroup$

        The X-pentomino tiles the plane, so that tiling is a good way to start. There are two ways to cut an 8x8 region out of that tiling. If one of the 4 central squares of the 8x8 region has an X centred on it, you get this




        19 pentomino solution
        enter image description here




        or else you get this




        20 pentomino solution
        enter image description here




        The latter can be easily improved by replacing the ones at the edges to give this




        16 pentomino solution
        enter image description here




        A different way to get the same result is




        to take four pentominos from the tiling. These cover a 4x4 area. By using 4 sets of 4, you get this solution.
        enter image description here







        share|improve this answer












        $endgroup$










        • 1




          $begingroup$
          Very nice solution! I am almost convinced that it is optimal.
          $endgroup$
          – Dmitry Kamenetsky
          Oct 16 at 5:52















        20

















        $begingroup$

        The X-pentomino tiles the plane, so that tiling is a good way to start. There are two ways to cut an 8x8 region out of that tiling. If one of the 4 central squares of the 8x8 region has an X centred on it, you get this




        19 pentomino solution
        enter image description here




        or else you get this




        20 pentomino solution
        enter image description here




        The latter can be easily improved by replacing the ones at the edges to give this




        16 pentomino solution
        enter image description here




        A different way to get the same result is




        to take four pentominos from the tiling. These cover a 4x4 area. By using 4 sets of 4, you get this solution.
        enter image description here







        share|improve this answer












        $endgroup$










        • 1




          $begingroup$
          Very nice solution! I am almost convinced that it is optimal.
          $endgroup$
          – Dmitry Kamenetsky
          Oct 16 at 5:52













        20















        20











        20







        $begingroup$

        The X-pentomino tiles the plane, so that tiling is a good way to start. There are two ways to cut an 8x8 region out of that tiling. If one of the 4 central squares of the 8x8 region has an X centred on it, you get this




        19 pentomino solution
        enter image description here




        or else you get this




        20 pentomino solution
        enter image description here




        The latter can be easily improved by replacing the ones at the edges to give this




        16 pentomino solution
        enter image description here




        A different way to get the same result is




        to take four pentominos from the tiling. These cover a 4x4 area. By using 4 sets of 4, you get this solution.
        enter image description here







        share|improve this answer












        $endgroup$



        The X-pentomino tiles the plane, so that tiling is a good way to start. There are two ways to cut an 8x8 region out of that tiling. If one of the 4 central squares of the 8x8 region has an X centred on it, you get this




        19 pentomino solution
        enter image description here




        or else you get this




        20 pentomino solution
        enter image description here




        The latter can be easily improved by replacing the ones at the edges to give this




        16 pentomino solution
        enter image description here




        A different way to get the same result is




        to take four pentominos from the tiling. These cover a 4x4 area. By using 4 sets of 4, you get this solution.
        enter image description here








        share|improve this answer















        share|improve this answer




        share|improve this answer








        edited Oct 16 at 5:56

























        answered Oct 16 at 5:46









        Jaap ScherphuisJaap Scherphuis

        22.3k1 gold badge40 silver badges93 bronze badges




        22.3k1 gold badge40 silver badges93 bronze badges










        • 1




          $begingroup$
          Very nice solution! I am almost convinced that it is optimal.
          $endgroup$
          – Dmitry Kamenetsky
          Oct 16 at 5:52












        • 1




          $begingroup$
          Very nice solution! I am almost convinced that it is optimal.
          $endgroup$
          – Dmitry Kamenetsky
          Oct 16 at 5:52







        1




        1




        $begingroup$
        Very nice solution! I am almost convinced that it is optimal.
        $endgroup$
        – Dmitry Kamenetsky
        Oct 16 at 5:52




        $begingroup$
        Very nice solution! I am almost convinced that it is optimal.
        $endgroup$
        – Dmitry Kamenetsky
        Oct 16 at 5:52











        11

















        $begingroup$

        Here's another proof of the lower bound in Sriotchilism O'Zaic's answer.




        Consider the following 8x8 grid of seemingly magically-chosen numbers:



        13 7 6 8 8 6 7 13
        7 1 6 5 5 6 1 7
        6 6 9 3 3 9 6 6
        8 5 3 7 7 3 5 8
        8 5 3 7 7 3 5 8
        6 6 9 3 3 9 6 6
        7 1 6 5 5 6 1 7
        13 7 6 8 8 6 7 13

        Note that if you place an X pentomino with its center anywhere on this grid, the numbers it covers sum to exactly 27. (If you place a pentomino with its center off of the grid, the numbers it covers sum to less than 27.) The sum of all of the numbers in the grid is 400.

        If you cover all of the numbers in the grid with X pentominoes, and each pentomino covers a sum of at most 27, it follows you must use at least 400/27 ~ 14.8 pentominoes. Since there are an integer number of pentominoes, there must be at least 15.





        share|improve this answer












        $endgroup$



















          11

















          $begingroup$

          Here's another proof of the lower bound in Sriotchilism O'Zaic's answer.




          Consider the following 8x8 grid of seemingly magically-chosen numbers:



          13 7 6 8 8 6 7 13
          7 1 6 5 5 6 1 7
          6 6 9 3 3 9 6 6
          8 5 3 7 7 3 5 8
          8 5 3 7 7 3 5 8
          6 6 9 3 3 9 6 6
          7 1 6 5 5 6 1 7
          13 7 6 8 8 6 7 13

          Note that if you place an X pentomino with its center anywhere on this grid, the numbers it covers sum to exactly 27. (If you place a pentomino with its center off of the grid, the numbers it covers sum to less than 27.) The sum of all of the numbers in the grid is 400.

          If you cover all of the numbers in the grid with X pentominoes, and each pentomino covers a sum of at most 27, it follows you must use at least 400/27 ~ 14.8 pentominoes. Since there are an integer number of pentominoes, there must be at least 15.





          share|improve this answer












          $endgroup$

















            11















            11











            11







            $begingroup$

            Here's another proof of the lower bound in Sriotchilism O'Zaic's answer.




            Consider the following 8x8 grid of seemingly magically-chosen numbers:



            13 7 6 8 8 6 7 13
            7 1 6 5 5 6 1 7
            6 6 9 3 3 9 6 6
            8 5 3 7 7 3 5 8
            8 5 3 7 7 3 5 8
            6 6 9 3 3 9 6 6
            7 1 6 5 5 6 1 7
            13 7 6 8 8 6 7 13

            Note that if you place an X pentomino with its center anywhere on this grid, the numbers it covers sum to exactly 27. (If you place a pentomino with its center off of the grid, the numbers it covers sum to less than 27.) The sum of all of the numbers in the grid is 400.

            If you cover all of the numbers in the grid with X pentominoes, and each pentomino covers a sum of at most 27, it follows you must use at least 400/27 ~ 14.8 pentominoes. Since there are an integer number of pentominoes, there must be at least 15.





            share|improve this answer












            $endgroup$



            Here's another proof of the lower bound in Sriotchilism O'Zaic's answer.




            Consider the following 8x8 grid of seemingly magically-chosen numbers:



            13 7 6 8 8 6 7 13
            7 1 6 5 5 6 1 7
            6 6 9 3 3 9 6 6
            8 5 3 7 7 3 5 8
            8 5 3 7 7 3 5 8
            6 6 9 3 3 9 6 6
            7 1 6 5 5 6 1 7
            13 7 6 8 8 6 7 13

            Note that if you place an X pentomino with its center anywhere on this grid, the numbers it covers sum to exactly 27. (If you place a pentomino with its center off of the grid, the numbers it covers sum to less than 27.) The sum of all of the numbers in the grid is 400.

            If you cover all of the numbers in the grid with X pentominoes, and each pentomino covers a sum of at most 27, it follows you must use at least 400/27 ~ 14.8 pentominoes. Since there are an integer number of pentominoes, there must be at least 15.






            share|improve this answer















            share|improve this answer




            share|improve this answer








            edited Oct 17 at 1:26

























            answered Oct 17 at 0:54









            A. RexA. Rex

            2115 bronze badges




            2115 bronze badges
























                11

















                $begingroup$

                People have given some good upper bounds, how about a lower bound.




                Our first lower bound can be $13$. This is the number of spaces to be filled ($64$), divided by the size of the tile ($5$) and rounded up, since we cannot have a fractional piece. This would be the number of X pentaminos required if we could fill the space with only 1 square extra (either outside the grid or overlapping)




                However we can improve this ...




                to $14$.


                To do this we look at the corners of the square. These need to be filled by at least $1$ X pentamino so we can look at all the ways to do this. There are 3 (up to reflection symmetry); illustrated here on the lower right corner:
                Corners

                Now every way of doing this has at least $1$ square of the pentamino outside of the square. Additionally since the square is $8times 8$ no pentamino can be on two corners. Thus there are at least $4$ tiles left outside the square. This means our pentaminos must fill a footprint at least $4$ larger than the square, or size $68$. If we divide by $5$ and round up we get $14$.




                However we can improve this ...




                to $15$. To do this we return to the corner argument given a moment ago. Let us consider the covering of the corner that only has one outside of the square. Looking at the square outlined in red below:
                Outlined square

                Since it is inside of the square the outlined space must be covered and there are $5$ ways to cover it:
                5 coverings

                Now we notice that each way of doing it either adds overlap or area outside of the square.
                Our best case scenario is the fourth one which has only one redundant space.
                This means that this way of filling the corner is at least as bad as the next worse, which left two squares out of the grid.
                And after verifying that the square is still to wide to cause overlap this raises our effective size to $72$ and our lower bound to $15$.







                share|improve this answer












                $endgroup$



















                  11

















                  $begingroup$

                  People have given some good upper bounds, how about a lower bound.




                  Our first lower bound can be $13$. This is the number of spaces to be filled ($64$), divided by the size of the tile ($5$) and rounded up, since we cannot have a fractional piece. This would be the number of X pentaminos required if we could fill the space with only 1 square extra (either outside the grid or overlapping)




                  However we can improve this ...




                  to $14$.


                  To do this we look at the corners of the square. These need to be filled by at least $1$ X pentamino so we can look at all the ways to do this. There are 3 (up to reflection symmetry); illustrated here on the lower right corner:
                  Corners

                  Now every way of doing this has at least $1$ square of the pentamino outside of the square. Additionally since the square is $8times 8$ no pentamino can be on two corners. Thus there are at least $4$ tiles left outside the square. This means our pentaminos must fill a footprint at least $4$ larger than the square, or size $68$. If we divide by $5$ and round up we get $14$.




                  However we can improve this ...




                  to $15$. To do this we return to the corner argument given a moment ago. Let us consider the covering of the corner that only has one outside of the square. Looking at the square outlined in red below:
                  Outlined square

                  Since it is inside of the square the outlined space must be covered and there are $5$ ways to cover it:
                  5 coverings

                  Now we notice that each way of doing it either adds overlap or area outside of the square.
                  Our best case scenario is the fourth one which has only one redundant space.
                  This means that this way of filling the corner is at least as bad as the next worse, which left two squares out of the grid.
                  And after verifying that the square is still to wide to cause overlap this raises our effective size to $72$ and our lower bound to $15$.







                  share|improve this answer












                  $endgroup$

















                    11















                    11











                    11







                    $begingroup$

                    People have given some good upper bounds, how about a lower bound.




                    Our first lower bound can be $13$. This is the number of spaces to be filled ($64$), divided by the size of the tile ($5$) and rounded up, since we cannot have a fractional piece. This would be the number of X pentaminos required if we could fill the space with only 1 square extra (either outside the grid or overlapping)




                    However we can improve this ...




                    to $14$.


                    To do this we look at the corners of the square. These need to be filled by at least $1$ X pentamino so we can look at all the ways to do this. There are 3 (up to reflection symmetry); illustrated here on the lower right corner:
                    Corners

                    Now every way of doing this has at least $1$ square of the pentamino outside of the square. Additionally since the square is $8times 8$ no pentamino can be on two corners. Thus there are at least $4$ tiles left outside the square. This means our pentaminos must fill a footprint at least $4$ larger than the square, or size $68$. If we divide by $5$ and round up we get $14$.




                    However we can improve this ...




                    to $15$. To do this we return to the corner argument given a moment ago. Let us consider the covering of the corner that only has one outside of the square. Looking at the square outlined in red below:
                    Outlined square

                    Since it is inside of the square the outlined space must be covered and there are $5$ ways to cover it:
                    5 coverings

                    Now we notice that each way of doing it either adds overlap or area outside of the square.
                    Our best case scenario is the fourth one which has only one redundant space.
                    This means that this way of filling the corner is at least as bad as the next worse, which left two squares out of the grid.
                    And after verifying that the square is still to wide to cause overlap this raises our effective size to $72$ and our lower bound to $15$.







                    share|improve this answer












                    $endgroup$



                    People have given some good upper bounds, how about a lower bound.




                    Our first lower bound can be $13$. This is the number of spaces to be filled ($64$), divided by the size of the tile ($5$) and rounded up, since we cannot have a fractional piece. This would be the number of X pentaminos required if we could fill the space with only 1 square extra (either outside the grid or overlapping)




                    However we can improve this ...




                    to $14$.


                    To do this we look at the corners of the square. These need to be filled by at least $1$ X pentamino so we can look at all the ways to do this. There are 3 (up to reflection symmetry); illustrated here on the lower right corner:
                    Corners

                    Now every way of doing this has at least $1$ square of the pentamino outside of the square. Additionally since the square is $8times 8$ no pentamino can be on two corners. Thus there are at least $4$ tiles left outside the square. This means our pentaminos must fill a footprint at least $4$ larger than the square, or size $68$. If we divide by $5$ and round up we get $14$.




                    However we can improve this ...




                    to $15$. To do this we return to the corner argument given a moment ago. Let us consider the covering of the corner that only has one outside of the square. Looking at the square outlined in red below:
                    Outlined square

                    Since it is inside of the square the outlined space must be covered and there are $5$ ways to cover it:
                    5 coverings

                    Now we notice that each way of doing it either adds overlap or area outside of the square.
                    Our best case scenario is the fourth one which has only one redundant space.
                    This means that this way of filling the corner is at least as bad as the next worse, which left two squares out of the grid.
                    And after verifying that the square is still to wide to cause overlap this raises our effective size to $72$ and our lower bound to $15$.








                    share|improve this answer















                    share|improve this answer




                    share|improve this answer








                    edited Oct 17 at 2:43

























                    answered Oct 16 at 15:27









                    Sriotchilism O'ZaicSriotchilism O'Zaic

                    5402 silver badges14 bronze badges




                    5402 silver badges14 bronze badges
























                        6

















                        $begingroup$

                        I’m thinking:




                        16




                        The solution:






                        1 2 2 2 3 4 4 4
                        1 1 2 3 3 3 4 5
                        1 8 7 7 3 6 5 5
                        8 8 8 7 6 6 6 5
                        9 8 15 15 16 6 14 14
                        9 9 15 11 16 16 14 13
                        9 10 11 11 11 12 13 13
                        10 10 10 11 12 12 12 13






                        share|improve this answer












                        $endgroup$










                        • 1




                          $begingroup$
                          Gonna need someone to save me - formatting is nearly impossible from the phone, and there’s not even a preview...
                          $endgroup$
                          – Avi
                          Oct 16 at 5:26
















                        6

















                        $begingroup$

                        I’m thinking:




                        16




                        The solution:






                        1 2 2 2 3 4 4 4
                        1 1 2 3 3 3 4 5
                        1 8 7 7 3 6 5 5
                        8 8 8 7 6 6 6 5
                        9 8 15 15 16 6 14 14
                        9 9 15 11 16 16 14 13
                        9 10 11 11 11 12 13 13
                        10 10 10 11 12 12 12 13






                        share|improve this answer












                        $endgroup$










                        • 1




                          $begingroup$
                          Gonna need someone to save me - formatting is nearly impossible from the phone, and there’s not even a preview...
                          $endgroup$
                          – Avi
                          Oct 16 at 5:26














                        6















                        6











                        6







                        $begingroup$

                        I’m thinking:




                        16




                        The solution:






                        1 2 2 2 3 4 4 4
                        1 1 2 3 3 3 4 5
                        1 8 7 7 3 6 5 5
                        8 8 8 7 6 6 6 5
                        9 8 15 15 16 6 14 14
                        9 9 15 11 16 16 14 13
                        9 10 11 11 11 12 13 13
                        10 10 10 11 12 12 12 13






                        share|improve this answer












                        $endgroup$



                        I’m thinking:




                        16




                        The solution:






                        1 2 2 2 3 4 4 4
                        1 1 2 3 3 3 4 5
                        1 8 7 7 3 6 5 5
                        8 8 8 7 6 6 6 5
                        9 8 15 15 16 6 14 14
                        9 9 15 11 16 16 14 13
                        9 10 11 11 11 12 13 13
                        10 10 10 11 12 12 12 13







                        share|improve this answer















                        share|improve this answer




                        share|improve this answer








                        edited Oct 16 at 5:33









                        JMP

                        29.2k7 gold badges55 silver badges120 bronze badges




                        29.2k7 gold badges55 silver badges120 bronze badges










                        answered Oct 16 at 5:24









                        AviAvi

                        1,6843 silver badges29 bronze badges




                        1,6843 silver badges29 bronze badges










                        • 1




                          $begingroup$
                          Gonna need someone to save me - formatting is nearly impossible from the phone, and there’s not even a preview...
                          $endgroup$
                          – Avi
                          Oct 16 at 5:26













                        • 1




                          $begingroup$
                          Gonna need someone to save me - formatting is nearly impossible from the phone, and there’s not even a preview...
                          $endgroup$
                          – Avi
                          Oct 16 at 5:26








                        1




                        1




                        $begingroup$
                        Gonna need someone to save me - formatting is nearly impossible from the phone, and there’s not even a preview...
                        $endgroup$
                        – Avi
                        Oct 16 at 5:26





                        $begingroup$
                        Gonna need someone to save me - formatting is nearly impossible from the phone, and there’s not even a preview...
                        $endgroup$
                        – Avi
                        Oct 16 at 5:26












                        1

















                        $begingroup$

                        Proof with brute-force procedure. Here I used fact that we for sure can cover with 16 pentominoes, so I tried to cover half with 8 or less and then see if two such half-covers cover the whole board. It takes about 15 seconds on my PC to get the answer.





                        #include <iostream>
                        #include <vector>

                        const int kHalfUpperBound = 8;
                        const int kSide = 8;
                        const int kExtendedSide = 10;

                        class Field
                        std::vector<int> _pentas;
                        std::vector<char> _data;
                        int _linesCovered = 0;

                        void UpdatePenta(int i, int inc)
                        _data[i] += inc;
                        int r = i / kExtendedSide;
                        int c = i % kExtendedSide;
                        if (c > 0) _data[i - 1] += inc;
                        if (c < 9) _data[i + 1] += inc;
                        if (r > 0) _data[i - kExtendedSide] += inc;
                        if (r < 9) _data[i + kExtendedSide] += inc;


                        public:
                        Field() : _data(10 * 10, 0)

                        void PushPenta(int i) UpdatePenta(i, 1); _pentas.push_back(i);
                        void PopPenta() UpdatePenta(_pentas.back(), -1); _pentas.pop_back();
                        void MoveTopPenta(int to) PopPenta(); PushPenta(to);

                        const auto& Pentas() const return _pentas;
                        const auto& Data() const return _data;

                        int LinesCovered()
                        for (int i = 10; i < 100; i += 10)
                        _data[i + 4] == 0

                        ;

                        char RowToNumber(const Field& field, int r, bool reverse)
                        char teeth = 0;
                        int offset = reverse ? 7 : 0;
                        int sign = reverse ? -1 : 1;
                        for (int b = 0; b < kSide; ++b)
                        if (field.Data()[r*10 + 1 + offset + sign * b] != 0)
                        teeth += (1 << b);


                        return teeth;


                        std::vector<int> solve()
                        Field field;

                        int best = kHalfUpperBound + 1;
                        std::vector<int> pentas;
                        int gi = 0;
                        const int linesToFullyCover = kHalfUpperBound / 2;
                        // After first 5 extended lines we should have covered 3 primary lines
                        for (int i = 0; i < (linesToFullyCover + 1) * 10; ++i)
                        field.PushPenta(i);
                        if (field.LinesCovered() >= linesToFullyCover)
                        const char teethIn = RowToNumber(field, linesToFullyCover, false);
                        const char teethOut = RowToNumber(field, linesToFullyCover + 1, true);
                        if (teethIn ^ teethOut == 1 << (sizeof(teethIn) * 8))
                        const int curBest = field.Pentas().size();
                        if (curBest < best)
                        best = curBest;
                        pentas = field.Pentas();



                        while (i + 1 == 50)
                        field.PopPenta();
                        i = field.Pentas().back();
                        if (field.Pentas().empty()) return pentas;
                        field.MoveTopPenta(++i);

                        if (field.Pentas().size() == kHalfUpperBound)
                        i = field.Pentas().back();
                        field.PopPenta();

                        if (++gi % 1000000 == 0) std::cout << gi << std::endl;



                        int main()
                        const auto pentas = solve();
                        for (auto p : pentas) std::cout << (p / 10) << ',' << ((p - 10) % 10) << " ";
                        std::cout << std::endl;

                        return 0;



                        Output for the upper half is




                        1,2 1,6 2,4 2,8 3,1 3,5 4,3 4,7




                        So the number the minimum number of pentominoes needed is




                        16







                        share|improve this answer












                        $endgroup$



















                          1

















                          $begingroup$

                          Proof with brute-force procedure. Here I used fact that we for sure can cover with 16 pentominoes, so I tried to cover half with 8 or less and then see if two such half-covers cover the whole board. It takes about 15 seconds on my PC to get the answer.





                          #include <iostream>
                          #include <vector>

                          const int kHalfUpperBound = 8;
                          const int kSide = 8;
                          const int kExtendedSide = 10;

                          class Field
                          std::vector<int> _pentas;
                          std::vector<char> _data;
                          int _linesCovered = 0;

                          void UpdatePenta(int i, int inc)
                          _data[i] += inc;
                          int r = i / kExtendedSide;
                          int c = i % kExtendedSide;
                          if (c > 0) _data[i - 1] += inc;
                          if (c < 9) _data[i + 1] += inc;
                          if (r > 0) _data[i - kExtendedSide] += inc;
                          if (r < 9) _data[i + kExtendedSide] += inc;


                          public:
                          Field() : _data(10 * 10, 0)

                          void PushPenta(int i) UpdatePenta(i, 1); _pentas.push_back(i);
                          void PopPenta() UpdatePenta(_pentas.back(), -1); _pentas.pop_back();
                          void MoveTopPenta(int to) PopPenta(); PushPenta(to);

                          const auto& Pentas() const return _pentas;
                          const auto& Data() const return _data;

                          int LinesCovered()
                          for (int i = 10; i < 100; i += 10)
                          _data[i + 4] == 0

                          ;

                          char RowToNumber(const Field& field, int r, bool reverse)
                          char teeth = 0;
                          int offset = reverse ? 7 : 0;
                          int sign = reverse ? -1 : 1;
                          for (int b = 0; b < kSide; ++b)
                          if (field.Data()[r*10 + 1 + offset + sign * b] != 0)
                          teeth += (1 << b);


                          return teeth;


                          std::vector<int> solve()
                          Field field;

                          int best = kHalfUpperBound + 1;
                          std::vector<int> pentas;
                          int gi = 0;
                          const int linesToFullyCover = kHalfUpperBound / 2;
                          // After first 5 extended lines we should have covered 3 primary lines
                          for (int i = 0; i < (linesToFullyCover + 1) * 10; ++i)
                          field.PushPenta(i);
                          if (field.LinesCovered() >= linesToFullyCover)
                          const char teethIn = RowToNumber(field, linesToFullyCover, false);
                          const char teethOut = RowToNumber(field, linesToFullyCover + 1, true);
                          if (teethIn ^ teethOut == 1 << (sizeof(teethIn) * 8))
                          const int curBest = field.Pentas().size();
                          if (curBest < best)
                          best = curBest;
                          pentas = field.Pentas();



                          while (i + 1 == 50)
                          field.PopPenta();
                          i = field.Pentas().back();
                          if (field.Pentas().empty()) return pentas;
                          field.MoveTopPenta(++i);

                          if (field.Pentas().size() == kHalfUpperBound)
                          i = field.Pentas().back();
                          field.PopPenta();

                          if (++gi % 1000000 == 0) std::cout << gi << std::endl;



                          int main()
                          const auto pentas = solve();
                          for (auto p : pentas) std::cout << (p / 10) << ',' << ((p - 10) % 10) << " ";
                          std::cout << std::endl;

                          return 0;



                          Output for the upper half is




                          1,2 1,6 2,4 2,8 3,1 3,5 4,3 4,7




                          So the number the minimum number of pentominoes needed is




                          16







                          share|improve this answer












                          $endgroup$

















                            1















                            1











                            1







                            $begingroup$

                            Proof with brute-force procedure. Here I used fact that we for sure can cover with 16 pentominoes, so I tried to cover half with 8 or less and then see if two such half-covers cover the whole board. It takes about 15 seconds on my PC to get the answer.





                            #include <iostream>
                            #include <vector>

                            const int kHalfUpperBound = 8;
                            const int kSide = 8;
                            const int kExtendedSide = 10;

                            class Field
                            std::vector<int> _pentas;
                            std::vector<char> _data;
                            int _linesCovered = 0;

                            void UpdatePenta(int i, int inc)
                            _data[i] += inc;
                            int r = i / kExtendedSide;
                            int c = i % kExtendedSide;
                            if (c > 0) _data[i - 1] += inc;
                            if (c < 9) _data[i + 1] += inc;
                            if (r > 0) _data[i - kExtendedSide] += inc;
                            if (r < 9) _data[i + kExtendedSide] += inc;


                            public:
                            Field() : _data(10 * 10, 0)

                            void PushPenta(int i) UpdatePenta(i, 1); _pentas.push_back(i);
                            void PopPenta() UpdatePenta(_pentas.back(), -1); _pentas.pop_back();
                            void MoveTopPenta(int to) PopPenta(); PushPenta(to);

                            const auto& Pentas() const return _pentas;
                            const auto& Data() const return _data;

                            int LinesCovered()
                            for (int i = 10; i < 100; i += 10)
                            _data[i + 4] == 0

                            ;

                            char RowToNumber(const Field& field, int r, bool reverse)
                            char teeth = 0;
                            int offset = reverse ? 7 : 0;
                            int sign = reverse ? -1 : 1;
                            for (int b = 0; b < kSide; ++b)
                            if (field.Data()[r*10 + 1 + offset + sign * b] != 0)
                            teeth += (1 << b);


                            return teeth;


                            std::vector<int> solve()
                            Field field;

                            int best = kHalfUpperBound + 1;
                            std::vector<int> pentas;
                            int gi = 0;
                            const int linesToFullyCover = kHalfUpperBound / 2;
                            // After first 5 extended lines we should have covered 3 primary lines
                            for (int i = 0; i < (linesToFullyCover + 1) * 10; ++i)
                            field.PushPenta(i);
                            if (field.LinesCovered() >= linesToFullyCover)
                            const char teethIn = RowToNumber(field, linesToFullyCover, false);
                            const char teethOut = RowToNumber(field, linesToFullyCover + 1, true);
                            if (teethIn ^ teethOut == 1 << (sizeof(teethIn) * 8))
                            const int curBest = field.Pentas().size();
                            if (curBest < best)
                            best = curBest;
                            pentas = field.Pentas();



                            while (i + 1 == 50)
                            field.PopPenta();
                            i = field.Pentas().back();
                            if (field.Pentas().empty()) return pentas;
                            field.MoveTopPenta(++i);

                            if (field.Pentas().size() == kHalfUpperBound)
                            i = field.Pentas().back();
                            field.PopPenta();

                            if (++gi % 1000000 == 0) std::cout << gi << std::endl;



                            int main()
                            const auto pentas = solve();
                            for (auto p : pentas) std::cout << (p / 10) << ',' << ((p - 10) % 10) << " ";
                            std::cout << std::endl;

                            return 0;



                            Output for the upper half is




                            1,2 1,6 2,4 2,8 3,1 3,5 4,3 4,7




                            So the number the minimum number of pentominoes needed is




                            16







                            share|improve this answer












                            $endgroup$



                            Proof with brute-force procedure. Here I used fact that we for sure can cover with 16 pentominoes, so I tried to cover half with 8 or less and then see if two such half-covers cover the whole board. It takes about 15 seconds on my PC to get the answer.





                            #include <iostream>
                            #include <vector>

                            const int kHalfUpperBound = 8;
                            const int kSide = 8;
                            const int kExtendedSide = 10;

                            class Field
                            std::vector<int> _pentas;
                            std::vector<char> _data;
                            int _linesCovered = 0;

                            void UpdatePenta(int i, int inc)
                            _data[i] += inc;
                            int r = i / kExtendedSide;
                            int c = i % kExtendedSide;
                            if (c > 0) _data[i - 1] += inc;
                            if (c < 9) _data[i + 1] += inc;
                            if (r > 0) _data[i - kExtendedSide] += inc;
                            if (r < 9) _data[i + kExtendedSide] += inc;


                            public:
                            Field() : _data(10 * 10, 0)

                            void PushPenta(int i) UpdatePenta(i, 1); _pentas.push_back(i);
                            void PopPenta() UpdatePenta(_pentas.back(), -1); _pentas.pop_back();
                            void MoveTopPenta(int to) PopPenta(); PushPenta(to);

                            const auto& Pentas() const return _pentas;
                            const auto& Data() const return _data;

                            int LinesCovered()
                            for (int i = 10; i < 100; i += 10)
                            _data[i + 4] == 0

                            ;

                            char RowToNumber(const Field& field, int r, bool reverse)
                            char teeth = 0;
                            int offset = reverse ? 7 : 0;
                            int sign = reverse ? -1 : 1;
                            for (int b = 0; b < kSide; ++b)
                            if (field.Data()[r*10 + 1 + offset + sign * b] != 0)
                            teeth += (1 << b);


                            return teeth;


                            std::vector<int> solve()
                            Field field;

                            int best = kHalfUpperBound + 1;
                            std::vector<int> pentas;
                            int gi = 0;
                            const int linesToFullyCover = kHalfUpperBound / 2;
                            // After first 5 extended lines we should have covered 3 primary lines
                            for (int i = 0; i < (linesToFullyCover + 1) * 10; ++i)
                            field.PushPenta(i);
                            if (field.LinesCovered() >= linesToFullyCover)
                            const char teethIn = RowToNumber(field, linesToFullyCover, false);
                            const char teethOut = RowToNumber(field, linesToFullyCover + 1, true);
                            if (teethIn ^ teethOut == 1 << (sizeof(teethIn) * 8))
                            const int curBest = field.Pentas().size();
                            if (curBest < best)
                            best = curBest;
                            pentas = field.Pentas();



                            while (i + 1 == 50)
                            field.PopPenta();
                            i = field.Pentas().back();
                            if (field.Pentas().empty()) return pentas;
                            field.MoveTopPenta(++i);

                            if (field.Pentas().size() == kHalfUpperBound)
                            i = field.Pentas().back();
                            field.PopPenta();

                            if (++gi % 1000000 == 0) std::cout << gi << std::endl;



                            int main()
                            const auto pentas = solve();
                            for (auto p : pentas) std::cout << (p / 10) << ',' << ((p - 10) % 10) << " ";
                            std::cout << std::endl;

                            return 0;



                            Output for the upper half is




                            1,2 1,6 2,4 2,8 3,1 3,5 4,3 4,7




                            So the number the minimum number of pentominoes needed is




                            16








                            share|improve this answer















                            share|improve this answer




                            share|improve this answer








                            edited Oct 19 at 15:31

























                            answered Oct 18 at 18:08









                            YolaYola

                            1113 bronze badges




                            1113 bronze badges































                                draft saved

                                draft discarded















































                                Thanks for contributing an answer to Puzzling Stack Exchange!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid


                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.

                                Use MathJax to format equations. MathJax reference.


                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function ()
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fpuzzling.stackexchange.com%2fquestions%2f90269%2fcovering-an-8x8-grid-with-x-pentominoes%23new-answer', 'question_page');

                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown









                                Popular posts from this blog

                                Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                                Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                                199年 目錄 大件事 到箇年出世嗰人 到箇年死嗰人 節慶、風俗習慣 導覽選單