P68 · 极值构型 · 经典问题 · 应用前沿 · 难

球面码:最大化最小角距 · n = 32

文献中也称spherical codeTammes problembest-packing points on a spheremaximin angular separation

在二维单位球面 S² 上选择 n 个点,使任意两点球心夹角的最小值最大。由于 arccos 单调递减,验证器等价地最小化任意两点内积的最大值。

严格定义

  • 容器三维欧氏空间中的单位球面 S²
  • 提交恰好 n 个 [-20,20]² 内的立体投影坐标 [u,v]
  • 映射[u,v] 精确映射为 (2u,2v,1-u²-v²)/(1+u²+v²)
  • 目标最大化最小角距;等价地最小化最大的两两内积。以有理数交叉相乘精确比较,分数为 ceil(max dot · 10¹⁸)
挑战这个纪录
已验证构造球面点的正投影视图

帮助理解

真实用途

天线波束、卫星姿态采样、球面数值积分和分子自组装都需要一组尽量彼此分离的方向。每增加一个点,原有对称结构往往整体重排。

为什么不是均匀经纬网

球面没有边界,却也不能被完全相同的小区域平铺;五边形、六边形缺陷和不同局部接触图互相竞争。所谓“平均分布”只是目标,具体怎样平均正是难题。

只留下开放区间

spherical-codes.org 将 n≤14 以及 n=24 标为已证明最优,本站不把它们作为竞技题;这里只开放表中尚未证明的 n=15…23 与 25…32,并逐行附上完整构型。

查看来源
球面码:最大化最小角距 n = 32 的当前纪录构型,0.793616615466546398
当前第一名

0.793616615466546398

最大内积

已追平已知最好
答案来源Henry Cohn's spherical-code archive
解题方式公开参考构造
挑战这个纪录
ANSWER FORMAT

答案怎么写

[u,v] 通过 (2u, 2v, 1-u²-v²)/(1+u²+v²) 表示球面上的点;这不是近似归一化,而是精确的有理参数化。

提交 points:恰好 n 个立体投影坐标 [u,v],每项是 [-20,20] 内、最多九位小数的字符串。验证器将其精确映射到单位球面。

当前第一名的答案

{
  "points": [
    [
      "-0.363146454",
      "-0.47871611"
    ],
    [
      "-1.317013042",
      "1.853843133"
    ],
    [
      "1.094924504",
      "1.296314458"
    ],
    [
      "0.157044246",
      "-1.299329666"
    ],
    [
      "-0.123502995",
      "0.736751725"
    ],
    [
      "0.332180875",
      "-0.350959105"
    ],
    [
      "4.082683793",
      "-5.762628966"
    ],
    [
      "1.248517504",
      "-0.321258419"
    ],
    [
      "-0.096949462",
      "0.052099345"
    ],
    [
      "-0.745199418",
      "0.232253064"
    ],
    [
      "0.451240317",
      "0.304629587"
    ],
    [
      "-1.564756828",
      "-0.761676369"
    ],
    [
      "2.532000491",
      "0.324838393"
    ],
    [
      "-0.309470306",
      "0.336944199"
    ],
    [
      "0.045409497",
      "-0.671420951"
    ],
    [
      "1.44272428",
      "4.091871413"
    ],
    [
      "0.665480153",
      "-0.080057647"
    ],
    [
      "-0.030657",
      "-0.276754227"
    ],
    [
      "-0.823336327",
      "-2.283145219"
    ],
    [
      "0.974825946",
      "0.387283017"
    ],
    [
      "-0.71040327",
      "0.83622507"
    ],
    [
      "-1.466098453",
      "0.408305896"
    ],
    [
      "0.065650101",
      "0.354749141"
    ],
    [
      "-0.602094197",
      "-1.003894114"
    ],
    [
      "0.411283712",
      "0.793566922"
    ],
    [
      "-0.833307032",
      "-0.305432235"
    ],
    [
      "0.001976071",
      "1.422630794"
    ],
    [
      "0.230733549",
      "0.000855862"
    ],
    [
      "1.318620968",
      "-1.484263578"
    ],
    [
      "-0.425111358",
      "-0.075248755"
    ],
    [
      "-4.333943832",
      "-0.016075929"
    ],
    [
      "0.645377439",
      "-0.740955517"
    ]
  ]
}
提交格式与技术细节需要编写程序或准备 JSON 答案时再查看

子题参数

{
  "n": 32
}

当前第一名的答案

{
  "points": [
    [
      "-0.363146454",
      "-0.47871611"
    ],
    [
      "-1.317013042",
      "1.853843133"
    ],
    [
      "1.094924504",
      "1.296314458"
    ],
    [
      "0.157044246",
      "-1.299329666"
    ],
    [
      "-0.123502995",
      "0.736751725"
    ],
    [
      "0.332180875",
      "-0.350959105"
    ],
    [
      "4.082683793",
      "-5.762628966"
    ],
    [
      "1.248517504",
      "-0.321258419"
    ],
    [
      "-0.096949462",
      "0.052099345"
    ],
    [
      "-0.745199418",
      "0.232253064"
    ],
    [
      "0.451240317",
      "0.304629587"
    ],
    [
      "-1.564756828",
      "-0.761676369"
    ],
    [
      "2.532000491",
      "0.324838393"
    ],
    [
      "-0.309470306",
      "0.336944199"
    ],
    [
      "0.045409497",
      "-0.671420951"
    ],
    [
      "1.44272428",
      "4.091871413"
    ],
    [
      "0.665480153",
      "-0.080057647"
    ],
    [
      "-0.030657",
      "-0.276754227"
    ],
    [
      "-0.823336327",
      "-2.283145219"
    ],
    [
      "0.974825946",
      "0.387283017"
    ],
    [
      "-0.71040327",
      "0.83622507"
    ],
    [
      "-1.466098453",
      "0.408305896"
    ],
    [
      "0.065650101",
      "0.354749141"
    ],
    [
      "-0.602094197",
      "-1.003894114"
    ],
    [
      "0.411283712",
      "0.793566922"
    ],
    [
      "-0.833307032",
      "-0.305432235"
    ],
    [
      "0.001976071",
      "1.422630794"
    ],
    [
      "0.230733549",
      "0.000855862"
    ],
    [
      "1.318620968",
      "-1.484263578"
    ],
    [
      "-0.425111358",
      "-0.075248755"
    ],
    [
      "-4.333943832",
      "-0.016075929"
    ],
    [
      "0.645377439",
      "-0.740955517"
    ]
  ]
}

提交 points:恰好 n 个立体投影坐标 [u,v],每项是 [-20,20] 内、最多九位小数的字符串。验证器将其精确映射到单位球面。 · 验证器 v1.0.0

DISCUSSION

讨论区

聊思路、贴方法、问为什么卡住。发帖即公开署名,与纪录同一个名字;署名后的 #编号是账号的注册序号,冒不了名。发言资格与实绩绑定:破过一次纪录,就永久拥有发言权。新发言经自动审核后公开。

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