P73 · Extremal configurations · Classic · Easy

Covering a square with n equal discs · n = 31

Place n points in the square of side 1. Let r be the distance from the worst-served place — the one farthest from every point — to the point nearest it, and make r as small as possible. Equivalently: cover the whole square with n equal discs of radius r, and make r as small as you can.

Instancen = 31
ObjectiveMinimize the covering radius
Proven floor1/√(π·31)no arrangement can go below 0.101331440553455 · the record stands 20.4% above itThe area bound: n discs of radius r cover at most nπr² of area and the square has area 1, so r ≥ 1/√(πn) — for every n, resting on nothing unproven

Formal definition

  • ContainerThe unit square: the origin (0, 0) at its lower-left corner, (1, 1) at its upper right, boundary included
  • SubmissionExactly n points, each coordinate a decimal with at most nine places; no two points may coincide
  • Scorer(P) is the largest, over the square, of the distance to the nearest submitted point. The verifier finds its square exactly, then takes an exact square root rounded upward at 10⁻¹⁸ — upward, so the stored number never claims a tighter cover than the arrangement achievesr(P)=maxxKminixpi
  • Why this is finiteInside its own nearest-neighbour region a point is the nearest one, and |x − p|² is convex, so its largest value on a convex polygon is at a corner. The search over a continuous region collapses to finitely many rational corners, in whole numbers throughout, touching no float
  • ObjectiveMake r(P) as small as possible over all legal point sets PminPr(P)
Open the full editor
1y0
0x1
VERIFIED CONSTRUCTION31 equal discs of shared radius 0.122037; the marked place is the hardest to reach, and it is what sets the radius

Getting a feel for it

It pulls the opposite way to packing

Packing forbids overlap, so the circles shrink inward and keep off the boundary; covering allows it and forces the discs into the corners instead. For the same n a good cover looks nothing like a good packing.

Where the frontier is

The grid is not optimal. Kershner settled covering the infinite plane in 1939 (hexagons are the thriftiest), but the boundary of a square creates a very different corner effect. n=5 and n=7 are proved; n=6 and n=8–30 show the best public constructions in the literature and may still be improved. This site has reconstructed every HUT-TCS-A62 vector figure as verifier-ready coordinates. n=31–35 are open for play, but no value is presented as a literature record until its published construction can be reproduced publicly.

Source
The record-holding arrangement for Covering a square with n equal discs n = 31, 0.122036869354871
Current leader

0.122036869354871

the covering radius

Answer sourceMinMax Arena
Solution methodMinMax Arena reference construction
Challenge this record
ANSWER FORMAT

How to write your answer

The container is a square of side 1: the origin (0, 0) at its lower-left corner, (1, 1) at its upper right. You submit n centres; the radius is not yours to write, because it is whatever the hardest-to-reach place in the square needs — and that is the score. Coordinates are plain decimals such as "0.25", to at most nine decimal places.

Submit points, each coordinate written as a decimal string such as "0.25", to at most nine decimal places. The score is the shared radius needed to cover the whole square, and smaller is better.

The current leader's answer

{
  "points": [
    [
      "0.105975452",
      "0.060516122"
    ],
    [
      "0.680876337",
      "0.941630523"
    ],
    [
      "0.756591401",
      "0.762888737"
    ],
    [
      "0.738026408",
      "0.069252543"
    ],
    [
      "0.468080705",
      "0.938870571"
    ],
    [
      "0.030260377",
      "0.239257905"
    ],
    [
      "0.676371611",
      "0.585358525"
    ],
    [
      "0.261973595",
      "0.930747458"
    ],
    [
      "0.323628382",
      "0.414641473"
    ],
    [
      "0.970790871",
      "0.412720531"
    ],
    [
      "0.244923308",
      "0.590118270"
    ],
    [
      "0.969739614",
      "0.760742088"
    ],
    [
      "0.531919301",
      "0.061129432"
    ],
    [
      "0.543940340",
      "0.764131672"
    ],
    [
      "0.327529775",
      "0.765247989"
    ],
    [
      "0.755076688",
      "0.409881733"
    ],
    [
      "0.919255324",
      "0.091505709"
    ],
    [
      "0.456059658",
      "0.235868327"
    ],
    [
      "0.891369611",
      "0.238621092"
    ],
    [
      "0.319123669",
      "0.058369476"
    ],
    [
      "0.108608162",
      "0.413136639"
    ],
    [
      "0.461333875",
      "0.589001949"
    ],
    [
      "0.029209129",
      "0.587279476"
    ],
    [
      "0.538666120",
      "0.410998046"
    ],
    [
      "0.243408594",
      "0.237111258"
    ],
    [
      "0.891391835",
      "0.586863362"
    ],
    [
      "0.108630390",
      "0.761378912"
    ],
    [
      "0.080744677",
      "0.908494292"
    ],
    [
      "0.894024551",
      "0.939483874"
    ],
    [
      "0.672470228",
      "0.234752012"
    ],
    [
      "0",
      "0"
    ]
  ]
}
Submission format and technical detailsOpen this when you are ready to prepare a JSON answer

Instance parameters

{
  "n": 31
}

The current leader's answer

{
  "points": [
    [
      "0.105975452",
      "0.060516122"
    ],
    [
      "0.680876337",
      "0.941630523"
    ],
    [
      "0.756591401",
      "0.762888737"
    ],
    [
      "0.738026408",
      "0.069252543"
    ],
    [
      "0.468080705",
      "0.938870571"
    ],
    [
      "0.030260377",
      "0.239257905"
    ],
    [
      "0.676371611",
      "0.585358525"
    ],
    [
      "0.261973595",
      "0.930747458"
    ],
    [
      "0.323628382",
      "0.414641473"
    ],
    [
      "0.970790871",
      "0.412720531"
    ],
    [
      "0.244923308",
      "0.590118270"
    ],
    [
      "0.969739614",
      "0.760742088"
    ],
    [
      "0.531919301",
      "0.061129432"
    ],
    [
      "0.543940340",
      "0.764131672"
    ],
    [
      "0.327529775",
      "0.765247989"
    ],
    [
      "0.755076688",
      "0.409881733"
    ],
    [
      "0.919255324",
      "0.091505709"
    ],
    [
      "0.456059658",
      "0.235868327"
    ],
    [
      "0.891369611",
      "0.238621092"
    ],
    [
      "0.319123669",
      "0.058369476"
    ],
    [
      "0.108608162",
      "0.413136639"
    ],
    [
      "0.461333875",
      "0.589001949"
    ],
    [
      "0.029209129",
      "0.587279476"
    ],
    [
      "0.538666120",
      "0.410998046"
    ],
    [
      "0.243408594",
      "0.237111258"
    ],
    [
      "0.891391835",
      "0.586863362"
    ],
    [
      "0.108630390",
      "0.761378912"
    ],
    [
      "0.080744677",
      "0.908494292"
    ],
    [
      "0.894024551",
      "0.939483874"
    ],
    [
      "0.672470228",
      "0.234752012"
    ],
    [
      "0",
      "0"
    ]
  ]
}

Submit points, each coordinate written as a decimal string such as "0.25", to at most nine decimal places. The score is the shared radius needed to cover the whole square, and smaller is better. · Verifier v1.0.0

DISCUSSION

Discussion

Talk strategy, share methods, ask why you are stuck. Posts carry your public byline, the same name your records use; the #number after it is the account's signup ordinal, so a name cannot be worn by someone else. The floor is earned: break a record once, anywhere, and it is yours for good. New posts appear after an automated review.

No threads yet. Be the first to talk about this problem?