P02 · 装箱与覆盖 · 经典问题 · 基线易突破

单位圆内的等圆装箱 · n = 8

在半径 1 的圆内放置 n 个半径相同、互不重叠的小圆,使共同半径尽可能大。

子题n = 8
目标最大化 共同半径
已证明最优1/(1 + 1/sin(π/7))证书可写的最好值 0.302593388r = 1/(1 + 1/sin(π/7)),最优性由 Pirl (1969) 证明

已完成已经有达到上限的答案,这道子题没有可争的了

严格定义

  • 容器半径 1 的圆,圆心在 (1, 1),两个坐标都在 0 到 2 之间
  • 提交恰好 n 个圆:一个共同半径 radius 与 n 个圆心 centers
  • 约束每个圆完整落在容器内;两两内部不重叠,相切允许
  • 目标让共同半径尽可能大
打开编辑器看看
2y0
0x2
已验证构造r = 0.302593388

帮助理解

哪里有优化空间

最优构形是「卡死」的接触结构:圆彼此顶住、顶住边界,常出现斜排、错位、以及不碰任何邻居的游离圆。规整的网格摆法几乎从不最优。

前沿在哪里

n = 2..14 与 19 已证明(Specht 汇总表 cci 的粗体标记);15..18 与 20 以上全部开放,包括本站开到的 29。

查看来源
当前第一名

0.302593388

共同半径

已达最优最优值已证明,无法再提升
纪录保持者参考答案
解题方式
挑战这个纪录
历史纪录(5 次易主)
  1. 匿名人工
    0.2965991210.302593388
  2. Jev Li人工
    0.2964260320.296599121
  3. 随便填的,加油我相信你可以人工
    0.2938387030.296426032
  4. Jev Li人工
    0.2938387020.293838703
  5. 匿名人工
    0.1530733720.293838702
ANSWER FORMAT

答案怎么写

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

提交 radius 与 centers。每个数写成十进制字符串,例如 "0.2"。

当前第一名的答案

{
  "centers": [
    [
      "1.646972750",
      "1.260388637"
    ],
    [
      "0.602174869",
      "1.572809870"
    ],
    [
      "0.530076089",
      "0.484686989"
    ],
    [
      "1.606960946",
      "0.656525995"
    ],
    [
      "1.199800878",
      "1.668173324"
    ],
    [
      "0.304119298",
      "1.046108901"
    ],
    [
      "1.109895169",
      "0.311306285"
    ],
    [
      "0.909283503",
      "1.051335689"
    ]
  ],
  "radius": "0.302593388"
}
提交格式与技术细节需要编写程序或准备 JSON 答案时再查看

子题参数

{
  "n": 8
}

当前第一名的答案

{
  "centers": [
    [
      "1.646972750",
      "1.260388637"
    ],
    [
      "0.602174869",
      "1.572809870"
    ],
    [
      "0.530076089",
      "0.484686989"
    ],
    [
      "1.606960946",
      "0.656525995"
    ],
    [
      "1.199800878",
      "1.668173324"
    ],
    [
      "0.304119298",
      "1.046108901"
    ],
    [
      "1.109895169",
      "0.311306285"
    ],
    [
      "0.909283503",
      "1.051335689"
    ]
  ],
  "radius": "0.302593388"
}

提交 radius 与 centers。每个数写成十进制字符串,例如 "0.2"。 · 验证器 v1.0.0