zoukankan      html  css  js  c++  java
  • 一个奇怪的染色问题

    自己瞎想的 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\)

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


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

  • 相关阅读:

    类(重要的很)
    异常
    异常
    面向对象oop接口
    面向对象oop多态
    Day10_数组(下)
    Day09_数组(上)
    Day08_网络编程(上)
    Day07_java对象下
  • 原文地址:https://www.cnblogs.com/REKonib/p/15769059.html
Copyright © 2011-2022 走看看