P05 · 装箱与覆盖 · 经典问题 · 难

可倾斜等正方形装入圆 · n = 35

文献中也称squares in circlespacking unit squares in a circle

在半径 1 的圆内放 n 个可任意旋转的正方形,边长完全相同、互不重叠,使共同边长尽可能大。

子题n = 35
目标最大化 最小边长
已知最好(未证明)2√53/53文献换算值 0.274721127本站展示证书 0.274721105论文原值(单位正方形边长下的容器半径):√53 / 2 = 3.640+r = √53 / 2,连续分数为 4/53;David Eppstein 于 2002 年 3 月给出。本站从公开图数字化各正方形的位置与方向,按图中的分离轴解出该固定接触结构并向内修复到九位定点网格,证书分数为 0.07547168553830658;最优性未知提交只收小数,所以纪录追的是这个可写值;如果你认为自己求出了理论最优的闭式,欢迎邮件投稿。 minmaxarena.com@gmail.com

严格定义

  • 容器半径 1 的圆,圆心在 (1, 1),两个坐标都在 0 到 2 之间
  • 提交每个正方形写 {cx, cy, ux, uy}:中心加一条半边向量,另一条固定取 (−uy, ux)
  • 约束每个正方形的角度完全自由;全部落在容器内;两两内部不重叠,贴边接触允许。计分只看最小的那个正方形,所以边长不一致占不到便宜
  • 目标让共同边长尽可能大。内部以其平方精确比较
放大来摆,然后提交
2y0
0x2
已验证构造35 个正方形

帮助理解

哪里有优化空间

圆形容器没有角:正方形的直边贴不住弧形边界,最优解几乎总是倾斜的,正方形彼此以角相抵。

前沿在哪里

n = 4 已证明;n ≤ 35 的其余已知最好值取自 Friedman 的 squares-in-circles 汇总(1997 年起多人贡献),全部未证明;n = 36–40 没有任何公开记录,从零开始。

查看来源
可倾斜等正方形装入圆 n = 35 的当前纪录构型,0.274721105
当前第一名

0.274721105

最小边长

答案来源David Eppstein
解题方式公开参考构造
挑战这个纪录 提交证明 / 思路 在讨论区分享证明或思路,审核采纳后可获得证明分。
纪录保持者的求解笔记暂无求解笔记(点击展开)

纪录保持者还没有分享求解过程。

ANSWER FORMAT

答案怎么写

容器是半径 1 的圆,圆心在 (1, 1),所以坐标范围是 0 到 2。坐标和向量用同一个单位,直接写成小数,例如 "0.4",最多九位小数。

每个正方形提交 {cx,cy,ux,uy}:中心加一条半边向量,另一条半边向量固定取 (-uy,ux)。每个数写成十进制字符串,例如 "0.4";角度完全自由,计分取最小正方形的边长,所以把它们写得一样大最划算。边长本身几乎总是无理数,写不成有限小数,所以你写的是那条半边向量,边长由它精确定出。

当前第一名的答案

{
  "squares": [
    {
      "cx": "0.869463507",
      "cy": "1.825271732",
      "ux": "0.137355851",
      "uy": "-0.001136557"
    },
    {
      "cx": "0.592012445",
      "cy": "1.682095880",
      "ux": "0.137360514",
      "uy": "-0.000104098"
    },
    {
      "cx": "1.421924425",
      "cy": "1.682326654",
      "ux": "0.137360445",
      "uy": "-0.000171915"
    },
    {
      "cx": "0.316543811",
      "cy": "1.420670848",
      "ux": "0.137359111",
      "uy": "-0.000629324"
    },
    {
      "cx": "0.593416293",
      "cy": "1.407220447",
      "ux": "0.137360428",
      "uy": "-0.000185215"
    },
    {
      "cx": "1.420425039",
      "cy": "1.406483942",
      "ux": "0.137359932",
      "uy": "-0.000413013"
    },
    {
      "cx": "1.695790241",
      "cy": "1.407148752",
      "ux": "0.137360511",
      "uy": "-0.000106782"
    },
    {
      "cx": "1.002273133",
      "cy": "1.274711718",
      "ux": "0.137355851",
      "uy": "-0.001136563"
    },
    {
      "cx": "0.177001393",
      "cy": "1.144175238",
      "ux": "0.137355851",
      "uy": "-0.001136567"
    },
    {
      "cx": "0.726350824",
      "cy": "1.130683383",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "1.275816070",
      "cy": "1.131190124",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "1.825271728",
      "cy": "1.130536498",
      "ux": "0.137355851",
      "uy": "-0.001136560"
    },
    {
      "cx": "1.000000008",
      "cy": "1.000000007",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "0.997726886",
      "cy": "0.725288296",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "0.308190928",
      "cy": "0.580559638",
      "ux": "0.137358529",
      "uy": "-0.000745680"
    },
    {
      "cx": "0.590386260",
      "cy": "0.580757882",
      "ux": "0.137359528",
      "uy": "-0.000530568"
    },
    {
      "cx": "1.416595796",
      "cy": "0.579427657",
      "ux": "0.137360019",
      "uy": "-0.000382892"
    },
    {
      "cx": "1.691478006",
      "cy": "0.577756461",
      "ux": "0.137359730",
      "uy": "-0.000475403"
    },
    {
      "cx": "0.581726342",
      "cy": "0.305626142",
      "ux": "0.137357362",
      "uy": "-0.000936281"
    },
    {
      "cx": "1.415586697",
      "cy": "0.304395115",
      "ux": "0.137359849",
      "uy": "-0.000439631"
    },
    {
      "cx": "0.855824732",
      "cy": "0.177001402",
      "ux": "0.137355851",
      "uy": "-0.001136567"
    },
    {
      "cx": "1.144175246",
      "cy": "1.822998605",
      "ux": "0.137355851",
      "uy": "-0.001136568"
    },
    {
      "cx": "0.869841543",
      "cy": "1.550538056",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "0.451627148",
      "cy": "1.131511528",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "1.550535711",
      "cy": "1.129872628",
      "ux": "0.137355851",
      "uy": "-0.001136561"
    },
    {
      "cx": "0.174728272",
      "cy": "0.869463505",
      "ux": "0.137355851",
      "uy": "-0.001136561"
    },
    {
      "cx": "0.724074522",
      "cy": "0.855587168",
      "ux": "0.137355851",
      "uy": "-0.001136561"
    },
    {
      "cx": "1.273540516",
      "cy": "0.856183023",
      "ux": "0.137355851",
      "uy": "-0.001136563"
    },
    {
      "cx": "1.822998610",
      "cy": "0.855824782",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "0.865427705",
      "cy": "0.451652480",
      "ux": "0.137355851",
      "uy": "-0.001136563"
    },
    {
      "cx": "1.130536474",
      "cy": "0.174728255",
      "ux": "0.137355851",
      "uy": "-0.001136546"
    },
    {
      "cx": "1.144697578",
      "cy": "1.548263742",
      "ux": "0.137355851",
      "uy": "-0.001136563"
    },
    {
      "cx": "0.449353051",
      "cy": "0.856682997",
      "ux": "0.137355851",
      "uy": "-0.001136560"
    },
    {
      "cx": "1.548260474",
      "cy": "0.854905663",
      "ux": "0.137355851",
      "uy": "-0.001136563"
    },
    {
      "cx": "1.140476894",
      "cy": "0.449376562",
      "ux": "0.137355851",
      "uy": "-0.001136557"
    }
  ]
}
提交格式与技术细节需要编写程序或准备 JSON 答案时再查看

子题参数

{
  "n": 35
}

当前第一名的答案

{
  "squares": [
    {
      "cx": "0.869463507",
      "cy": "1.825271732",
      "ux": "0.137355851",
      "uy": "-0.001136557"
    },
    {
      "cx": "0.592012445",
      "cy": "1.682095880",
      "ux": "0.137360514",
      "uy": "-0.000104098"
    },
    {
      "cx": "1.421924425",
      "cy": "1.682326654",
      "ux": "0.137360445",
      "uy": "-0.000171915"
    },
    {
      "cx": "0.316543811",
      "cy": "1.420670848",
      "ux": "0.137359111",
      "uy": "-0.000629324"
    },
    {
      "cx": "0.593416293",
      "cy": "1.407220447",
      "ux": "0.137360428",
      "uy": "-0.000185215"
    },
    {
      "cx": "1.420425039",
      "cy": "1.406483942",
      "ux": "0.137359932",
      "uy": "-0.000413013"
    },
    {
      "cx": "1.695790241",
      "cy": "1.407148752",
      "ux": "0.137360511",
      "uy": "-0.000106782"
    },
    {
      "cx": "1.002273133",
      "cy": "1.274711718",
      "ux": "0.137355851",
      "uy": "-0.001136563"
    },
    {
      "cx": "0.177001393",
      "cy": "1.144175238",
      "ux": "0.137355851",
      "uy": "-0.001136567"
    },
    {
      "cx": "0.726350824",
      "cy": "1.130683383",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "1.275816070",
      "cy": "1.131190124",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "1.825271728",
      "cy": "1.130536498",
      "ux": "0.137355851",
      "uy": "-0.001136560"
    },
    {
      "cx": "1.000000008",
      "cy": "1.000000007",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "0.997726886",
      "cy": "0.725288296",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "0.308190928",
      "cy": "0.580559638",
      "ux": "0.137358529",
      "uy": "-0.000745680"
    },
    {
      "cx": "0.590386260",
      "cy": "0.580757882",
      "ux": "0.137359528",
      "uy": "-0.000530568"
    },
    {
      "cx": "1.416595796",
      "cy": "0.579427657",
      "ux": "0.137360019",
      "uy": "-0.000382892"
    },
    {
      "cx": "1.691478006",
      "cy": "0.577756461",
      "ux": "0.137359730",
      "uy": "-0.000475403"
    },
    {
      "cx": "0.581726342",
      "cy": "0.305626142",
      "ux": "0.137357362",
      "uy": "-0.000936281"
    },
    {
      "cx": "1.415586697",
      "cy": "0.304395115",
      "ux": "0.137359849",
      "uy": "-0.000439631"
    },
    {
      "cx": "0.855824732",
      "cy": "0.177001402",
      "ux": "0.137355851",
      "uy": "-0.001136567"
    },
    {
      "cx": "1.144175246",
      "cy": "1.822998605",
      "ux": "0.137355851",
      "uy": "-0.001136568"
    },
    {
      "cx": "0.869841543",
      "cy": "1.550538056",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "0.451627148",
      "cy": "1.131511528",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "1.550535711",
      "cy": "1.129872628",
      "ux": "0.137355851",
      "uy": "-0.001136561"
    },
    {
      "cx": "0.174728272",
      "cy": "0.869463505",
      "ux": "0.137355851",
      "uy": "-0.001136561"
    },
    {
      "cx": "0.724074522",
      "cy": "0.855587168",
      "ux": "0.137355851",
      "uy": "-0.001136561"
    },
    {
      "cx": "1.273540516",
      "cy": "0.856183023",
      "ux": "0.137355851",
      "uy": "-0.001136563"
    },
    {
      "cx": "1.822998610",
      "cy": "0.855824782",
      "ux": "0.137355851",
      "uy": "-0.001136562"
    },
    {
      "cx": "0.865427705",
      "cy": "0.451652480",
      "ux": "0.137355851",
      "uy": "-0.001136563"
    },
    {
      "cx": "1.130536474",
      "cy": "0.174728255",
      "ux": "0.137355851",
      "uy": "-0.001136546"
    },
    {
      "cx": "1.144697578",
      "cy": "1.548263742",
      "ux": "0.137355851",
      "uy": "-0.001136563"
    },
    {
      "cx": "0.449353051",
      "cy": "0.856682997",
      "ux": "0.137355851",
      "uy": "-0.001136560"
    },
    {
      "cx": "1.548260474",
      "cy": "0.854905663",
      "ux": "0.137355851",
      "uy": "-0.001136563"
    },
    {
      "cx": "1.140476894",
      "cy": "0.449376562",
      "ux": "0.137355851",
      "uy": "-0.001136557"
    }
  ]
}

每个正方形提交 {cx,cy,ux,uy}:中心加一条半边向量,另一条半边向量固定取 (-uy,ux)。每个数写成十进制字符串,例如 "0.4";角度完全自由,计分取最小正方形的边长,所以把它们写得一样大最划算。边长本身几乎总是无理数,写不成有限小数,所以你写的是那条半边向量,边长由它精确定出。 · 验证器 v1.0.0

DISCUSSION

讨论区

聊思路、贴方法、问为什么卡住。所有登录用户都可以发帖;发言公开署名,与纪录使用同一个名字,署名后的 #编号是账号注册序号,冒不了名。新发言经自动审核后公开。

还没有帖子。第一个聊聊这道题的思路?