首页 > 技术文章 > 一个奇怪的染色问题

REKonib 2022-01-05 22:40 原文

自己瞎想的 idea
尝试用数学方法做,没啥成果,于是写程序爆算了一些数据
先在这里记一下
如果哪位大佬有思路请务必告诉我 /kel

题意

有一个立方体,将它的每条棱 \(A_iA_j\) 都染上一个颜色 \(c_{i,j}\)

要求满足如下条件:

  1. 同一顶点引出的所有棱颜色互不相同。
    即不存在 \(i,j,k(i\ne j,i\ne k,j\ne k)\) 满足 \(c_{i,j}=c_{i,k}\)

  2. 任意两顶点引出的所有棱的颜色不完全相同。
    \(S_i=\{c_{i,j}\mid j\ne i\}\) ,则不存在 \(i,j(i\ne j)\) 使 \(S_i=S_j\)

则至少需用多少种颜色?

注:立方体不一定是三维的,维数 \(n\) 可以是任意不小于 2 的整数
例如 \(n=2\) 时即为正方形,答案为 4

目前的成果

设维数为 \(n\) ,颜色数为 \(k\) ,容易得出顶点个数为 \(2^n\) ,棱的条数为 \(n2^{n-1}\)
考虑一个顶点 \(A_i\) ,由它引出的棱有 \(n\)
\(n\) 条棱的染色方案数为 \(C_k^n\) (暂不考虑条件 2 )
于是 \(k\) 必须满足 \(C_k^n\ge 2^n\) ,否则可直接判定无解。

然后就开始爆算了,,

\(n\) 2 3 4 5 6 7 8 9 10 11
\(k_{min}\) 4 6 7 8 9 11 12 13 15 16

程序应该没写错。
优化做得不太好,目前算不出 \(n=12\)

顺便画了一下三维和四维的最优方案(之一)


当然,四维立方体是画不出来的,图中是它在三维空间中的投影

推荐阅读