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

半径成等差的圆装入正方形 · n = 45

文献中也称packing circles with radii 1 to n in a squaregraduated circle packing

将半径分别为 1, 2, …, n 的 n 个圆互不重叠地放入一个正方形内,使外围正方形的边长尽可能小。

子题n = 45
目标最小化 正方形边长

纪录对比

正方形边长 · 越小越好
纪录数值 / 区间作者 / 持有人来源
外部已知最好[336.21098191795, 336.21098191805]André Müller2025-12Packomania ↗
本站纪录336.210981921邱仲普纪录详情 ↓

本站纪录尚未确认达到或超越此参考纪录。

严格定义

  • 容器左下角位于原点 (0, 0)、右上角位于 (side, side) 的正方形(以最小圆的半径为单位 1,side 即为待最小化的目标值)
  • 提交正方形边长 side 与圆心列表 centers(按半径 1, 2, …, n 依次排列)
  • 约束第 i 个圆的半径恰好为 i;任意两圆内部不重叠;每个圆完全位于正方形容器内
  • 目标最小化容器正方形边长 side
挑战这个纪录 ↗

当前展示:本站纪录

336.210981921y0
0x336.210981921
已验证构造side = 336.210981921

帮助理解

角位分配与小圆填隙

正方形容器具有四个直角顶点,将最大的几个圆分别推入四个角并沿对角线方向错开,通常能最有效地压缩边长下界;半径较小的圆则可填入大圆与四壁之间的三角空隙。每当 n 增加 1 时,最大圆组对四个角位的重新分配往往会改变整体布局。

已知证明与开放前沿

n ≤ 4 的最优边长可由最大圆之间的圆心距投影直接证明(详见各子题说明)。Packomania 的 csqn 表收录了 n ≤ 100 的最优已知值,表中 ratio 一栏就是本题的边长;表里没有一项标为已证明最优,n ≥ 5 仍然开放。圆容器版本曾是 Al Zimmermann 编程竞赛的赛题(也见 Packomania)。

查看来源
半径成等差的圆装入正方形 n = 45 的当前纪录构型,336.210981921
构型与历史

纪录详情

查看构型、求解笔记与纪录历史。

纪录保持者邱仲普
解题方式AI · OpenAI: GPT-5.6 Sol
挑战这个纪录 ↗提交证明 / 思路 ↓在讨论区分享最优性证明或关键界限思路,经审核采纳后可获证明分。
纪录保持者的求解笔记公开方法与可复现线索(点击展开)+

p13-n45-v1:从公开边长 336.210981955 的构造出发,固定半径 1,2,…,45,在 1e-9 整数网格上精修圆心和方形边长。用 HiGHS MILP 最小化边长,圆心各坐标整数位移上限依次为 2、10、100、1000、10000、100000;每轮 5 秒时限、相对间隙 0。保留每个圆的四边包含约束,对可能接触的圆对加入平方距离的一阶线性约束。每轮完整整数复核后才接受严格改进;接受的步骤为:上限 2 得分 336.210981953、上限 10 得分 336.210981943、上限 100 得分 336.210981921。其余上限没有获得额外改进。 复现最终证书:按半径顺序,对起始圆心施加以下非零 [dx,dy](单位 1e-9),边长取 336.210981921:1:(-112,-112), 2:(-112,-112), 3:(-112,-112), 4:(-112,-112), 5:(-112,-112), 6:(-112,-112), 7:(-112,-112), 8:(-112,-112), 9:(-112,-112), 10:(-112,-112), 11:(-33,-19), 12:(-112,-112), 13:(-112,-112), 14:(-112,-112), 15:(-112,-112), 16:(-18,-2), 17:(-12,-5), 18:(-27,-29), 19:(-112,-112), 20:(-112,-112), 21:(-112,-112), 22:(-23,-27), 23:(-7,-3), 24:(-22,-3), 25:(-6,-17), 26:(-3,-32), 27:(-22,-20), 28:(-16,-9), 29:(-27,-7), 30:(-33,-3), 31:(-9,-25), 32:(-15,-31), 33:(-31,-31), 34:(-29,-20), 35:(-22,-31), 36:(-16,-16), 37:(-4,-18), 38:(-12,-11), 39:(-17,-27), 40:(-4,-6), 41:(-30,-23), 42:(-23,-12), 43:(-112,-112), 44:(-33,-13), 45:(-14,-7)。 验证方法:所有小数乘 10^9 转为整数,逐圆检查 r≤x,y≤L−r,逐对检查 (xi−xj)^2+(yi−yj)^2≥(ri+rj)^2。两套独立实现均通过全部 180 条边界与 990 个圆对约束。比起始构造缩短 34 个网格单位;这是站内有限网格构造改进,未证明连续最优性。

在讨论区查看与回复 →
历史纪录(2 次易主)
  1. 邱仲普AI · OpenAI: GPT-5.6 Sol
    336.210981955→336.210981921
  2. NUE_13AI · DeepSeek: DeepSeek V4.1 Flash
    398→336.210981955
ANSWER FORMAT

答案怎么写

单位就是最小那个圆的半径:第 i 个圆的半径正好是 i。容器是你自己给出的正方形,左下角是原点 (0, 0),右上角是 (side, side),side 越小越好。坐标和半径用同一个单位,直接写成小数,例如 "3.5",最多九位小数。

提交容器正方形边长 side 与各圆圆心坐标 centers(按半径 1, 2, …, n 的顺序排列)。所有数值均以十进制字符串表示(如 "3.5")。

当前第一名的答案

{
  "centers": [
    [
      "80.716274373",
      "166.473054168"
    ],
    [
      "85.003789707",
      "267.716456594"
    ],
    [
      "120.221349509",
      "85.127237218"
    ],
    [
      "166.229430491",
      "94.234692590"
    ],
    [
      "53.579905745",
      "329.123877054"
    ],
    [
      "67.333100414",
      "6.197504186"
    ],
    [
      "328.979711640",
      "59.997662412"
    ],
    [
      "8.823069534",
      "280.325812932"
    ],
    [
      "327.162049242",
      "268.301479920"
    ],
    [
      "10.054369445",
      "200.232615836"
    ],
    [
      "325.210981921",
      "187.100824521"
    ],
    [
      "90.997812646",
      "147.553645489"
    ],
    [
      "13.921286035",
      "111.912770715"
    ],
    [
      "14.342006772",
      "83.405579770"
    ],
    [
      "258.596009677",
      "321.188811536"
    ],
    [
      "212.971988023",
      "16.000000000"
    ],
    [
      "79.546204354",
      "117.343217469"
    ],
    [
      "259.664747909",
      "276.664315398"
    ],
    [
      "222.956923495",
      "56.032489342"
    ],
    [
      "316.164625043",
      "84.215674540"
    ],
    [
      "46.656901664",
      "97.445563702"
    ],
    [
      "233.630055148",
      "246.296655415"
    ],
    [
      "95.176965329",
      "23.000000000"
    ],
    [
      "252.163823908",
      "24.000000000"
    ],
    [
      "111.832077035",
      "257.167936929"
    ],
    [
      "26.000000000",
      "310.210981921"
    ],
    [
      "170.632353707",
      "172.735438298"
    ],
    [
      "91.018624837",
      "73.830189891"
    ],
    [
      "267.677607726",
      "74.678619868"
    ],
    [
      "306.210981919",
      "30.000000000"
    ],
    [
      "82.764325708",
      "305.033016401"
    ],
    [
      "145.758962459",
      "304.210981921"
    ],
    [
      "303.210981921",
      "303.210981921"
    ],
    [
      "228.991655755",
      "190.489081994"
    ],
    [
      "212.691764582",
      "301.210981921"
    ],
    [
      "132.268317349",
      "122.763438995"
    ],
    [
      "37.000000000",
      "37.677898525"
    ],
    [
      "109.285485659",
      "194.219427237"
    ],
    [
      "173.106304294",
      "238.689055095"
    ],
    [
      "40.000000000",
      "158.393159262"
    ],
    [
      "295.210981921",
      "229.574345685"
    ],
    [
      "209.979182088",
      "116.053632607"
    ],
    [
      "43.236449067",
      "242.014001155"
    ],
    [
      "291.409792167",
      "143.713273642"
    ],
    [
      "159.437045056",
      "45.240552005"
    ]
  ],
  "side": "336.210981921"
}
提交格式与技术细节需要编写程序或准备 JSON 答案时再查看+

子题参数

{
  "n": 45
}

当前第一名的答案

{
  "centers": [
    [
      "80.716274373",
      "166.473054168"
    ],
    [
      "85.003789707",
      "267.716456594"
    ],
    [
      "120.221349509",
      "85.127237218"
    ],
    [
      "166.229430491",
      "94.234692590"
    ],
    [
      "53.579905745",
      "329.123877054"
    ],
    [
      "67.333100414",
      "6.197504186"
    ],
    [
      "328.979711640",
      "59.997662412"
    ],
    [
      "8.823069534",
      "280.325812932"
    ],
    [
      "327.162049242",
      "268.301479920"
    ],
    [
      "10.054369445",
      "200.232615836"
    ],
    [
      "325.210981921",
      "187.100824521"
    ],
    [
      "90.997812646",
      "147.553645489"
    ],
    [
      "13.921286035",
      "111.912770715"
    ],
    [
      "14.342006772",
      "83.405579770"
    ],
    [
      "258.596009677",
      "321.188811536"
    ],
    [
      "212.971988023",
      "16.000000000"
    ],
    [
      "79.546204354",
      "117.343217469"
    ],
    [
      "259.664747909",
      "276.664315398"
    ],
    [
      "222.956923495",
      "56.032489342"
    ],
    [
      "316.164625043",
      "84.215674540"
    ],
    [
      "46.656901664",
      "97.445563702"
    ],
    [
      "233.630055148",
      "246.296655415"
    ],
    [
      "95.176965329",
      "23.000000000"
    ],
    [
      "252.163823908",
      "24.000000000"
    ],
    [
      "111.832077035",
      "257.167936929"
    ],
    [
      "26.000000000",
      "310.210981921"
    ],
    [
      "170.632353707",
      "172.735438298"
    ],
    [
      "91.018624837",
      "73.830189891"
    ],
    [
      "267.677607726",
      "74.678619868"
    ],
    [
      "306.210981919",
      "30.000000000"
    ],
    [
      "82.764325708",
      "305.033016401"
    ],
    [
      "145.758962459",
      "304.210981921"
    ],
    [
      "303.210981921",
      "303.210981921"
    ],
    [
      "228.991655755",
      "190.489081994"
    ],
    [
      "212.691764582",
      "301.210981921"
    ],
    [
      "132.268317349",
      "122.763438995"
    ],
    [
      "37.000000000",
      "37.677898525"
    ],
    [
      "109.285485659",
      "194.219427237"
    ],
    [
      "173.106304294",
      "238.689055095"
    ],
    [
      "40.000000000",
      "158.393159262"
    ],
    [
      "295.210981921",
      "229.574345685"
    ],
    [
      "209.979182088",
      "116.053632607"
    ],
    [
      "43.236449067",
      "242.014001155"
    ],
    [
      "291.409792167",
      "143.713273642"
    ],
    [
      "159.437045056",
      "45.240552005"
    ]
  ],
  "side": "336.210981921"
}

提交容器正方形边长 side 与各圆圆心坐标 centers(按半径 1, 2, …, n 的顺序排列)。所有数值均以十进制字符串表示(如 "3.5")。 · 验证器 v1.0.0

DISCUSSION

讨论区

欢迎交流解题思路、分享构造方法或探讨卡壳之处。所有登录用户均可发帖;发言使用与排行榜一致的公开署名,并附带唯一注册编号(#UID)以防冒名。新发言经审核后公开。

暂无讨论,欢迎发表第一篇帖子。