自己瞎想的 idea
尝试用数学方法做,没啥成果,于是写程序爆算了一些数据
先在这里记一下
如果哪位大佬有思路请务必告诉我
题意
有一个立方体,将它的每条棱 \(A_iA_j\) 都染上一个颜色 \(c_{i,j}\) 。
要求满足如下条件:
-
同一顶点引出的所有棱颜色互不相同。
即不存在 \(i,j,k(i\ne j,i\ne k,j\ne k)\) 满足 \(c_{i,j}=c_{i,k}\) 。 -
任意两顶点引出的所有棱的颜色不完全相同。
令 \(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\)
顺便画了一下三维和四维的最优方案(之一)
当然,四维立方体是画不出来的,图中是它在三维空间中的投影