反向钟吧 关注:75贴子:5,066

回复:2017.05.30 平面格点二染色

只看楼主收藏回复

实验了一下正方形长度大小限制
限制L<5反而比原来用的步数少了
现在结论,6*7内必有L<5的正方形


IP属地:山东18楼2018-07-23 14:34
回复
    想了一下估计L(n)可能用到的一些量
    A.给定面积内的最少同色正方形数
    B.最小面积使得有同色正方形(6*7)
    A与B应该追求一个综合,比如万一9*9必有2个,而6*7只有1个,那么9*9稍微好一些
    不过考虑到n^2拆分成矩形,或许用多种小矩形也是不错的
    不过这个是比较细致的估计才要用的吧?
    C.给定正方形最大长度下,A,B的情况
    给定最大长度是因为采用不同的基(basis)可以产生不交的同色正方形,这带来额外计数
    尤其是这一项近似是一个线性因子,这就很重要了


    IP属地:山东19楼2018-07-23 15:02
    回复
      最大长度<4是不可以的
      0 1 0 1 0 1 0 1 0 1 0
      1 1 1 1 1 1 1 1 1 1 1
      1 0 1 0 1 0 1 0 1 0 1
      0 0 0 0 0 0 0 0 0 0 0
      0 1 0 1 0 1 0 1 0 1 0
      1 1 1 1 1 1 1 1 1 1 1
      1 0 1 0 1 0 1 0 1 0 1
      比如这个可延拓的结构
      而考虑到斜向的长度是不好的……那么最大长度<5是很不错的


      IP属地:山东20楼2018-07-23 15:11
      回复
        给定面积内的最少同色正方形数……这玩意怎么做啊……
        直接废掉了一项最基础的推理公式啊……
        难道局部最优吗……然后万一推理出来有就忽视它继续推理?


        IP属地:山东21楼2018-07-23 15:15
        收起回复
          瞎**粘贴代码又少贴了
          大概只要修好bug就可以做掉这个恶心功能了


          IP属地:山东22楼2018-07-23 22:45
          回复
            经典垃圾错误
            str函数前面自带空格……


            IP属地:山东23楼2018-07-23 22:58
            回复(2)
              装作修好了bug,大概是修好了……
              7*7的四同色正方形解用了17W步跑出来了
              六同色的解倒是只要6k
              ==
              过了一段时间
              ==
              123W步跑出来了三同色的解
              0 1 0 1 1 0 0
              1 1 0 0 0 1 1
              1 0 0 1 0 1 0
              1 0 1 1 1 0 1
              1 0 0 1 0 0 1
              0 1 1 1 0 1 1
              1 0 0 0 1 0 1


              IP属地:山东24楼2018-07-24 15:06
              回复(5)
                得到结论:7*7最少有3个同色正方形


                IP属地:山东25楼2018-07-24 16:12
                收起回复
                  之前的程序非要等到基本推理完再跳出,太浪费。
                  改为每次加个Remain判定


                  IP属地:山东来自Android客户端26楼2018-07-24 18:22
                  回复
                    跑了整整一天,4.8kw次,还没出来9*9的5同色解
                    气的在脑子里又构建了一个应该快不少的算法
                    现有版本的时间复杂度估计一次循环就有n^8……


                    IP属地:山东来自Android客户端27楼2018-07-25 17:41
                    收起回复
                      刚刚由于机子有人要用的缘故,中断了计算……
                      顺便试了下7*7,如果加上了小于5的长度限制,依然可以保证必有3个,而且只需要3s,514次
                      这个结果无疑是很好的……
                      如果不加上长度限制,不仅结果弱了,而且需要289s,305427次
                      现在来试一试能不能借助长度限制把9*9的跑出来,如果可以就考虑不另写代码了


                      IP属地:山东来自Android客户端28楼2018-07-25 20:58
                      回复(2)
                        提醒一下自己:
                        目前用的是找到<=n的解就跳出的结束判定
                        因此证明n极小时,要有n存在,n-1无解


                        IP属地:山东来自Android客户端29楼2018-07-25 22:47
                        回复
                          又运行了一台电脑……
                          这台电脑负责搜查9*9的小于5长的6同色解……


                          IP属地:山东来自Android客户端30楼2018-07-25 23:45
                          收起回复
                            新代码似乎更慢了


                            IP属地:山东来自Android客户端31楼2018-07-29 17:55
                            回复
                              在试着运行新代码的时候顺便运行了一下旧代码
                              6*7的小于5长的,最少的确是1个同色正方形
                              由此可见7*7比较强,至少3个……


                              IP属地:山东来自Android客户端32楼2018-07-29 19:34
                              回复