zoukankan      html  css  js  c++  java
  • 棋盘染色法(双色染色法)

      棋盘染色法是一类借助国际象棋棋盘通过染色解决组合问题的解题方法, (组合数学)

    存在性问题:染色法

    可行性问题:构造法

      双色染色法(用两种颜色进行染色)

      

            一个5*5的棋盘,可以上下左右移动,问从图中的黑色格子出发,能否走遍所有格子并且不重复走一个格子.?

                      

      因为是黑色格子为起点, 你模拟一下 会发现无论怎么走 都会是 黑白黑白 交替, 而 5*5 总共 25格子  12黑格子  13 白格子,  起点为黑色  黑-> - > ->  如果终点为黑格的话  黑色格子需要比白色格子多一个 矛盾故不可, 如果终点为白格的话, 黑->白 ……-> 黑-> 白 黑格数量需等于白格  矛盾故不可, 综上, 无解

                             一个8*8的格子纸, 去掉对角两格,能否用1*2的方块来覆盖它,?

                                

      问题的本质是1*2的方块的覆盖, 这说明问题和奇偶性有关,染色成国际象棋以后, 发现不管不管怎么放  1*2方块都会遮住一个黑色一个白色块,所以如果我们数一下黑白格子的数量,就会发现 黑格比白格少两个, 故不可.

    给出 n*m 的棋盘, 用1*k的矩形将棋盘覆盖
    n*m的棋盘被 1*k 矩形完全覆盖的充要条件是 k|n 或 k|m

    m*n的棋盘存在p*q 矩形完全覆盖的充要条件是 m,n 满足以下条件之一

    i)   p|x  && q|y

    ii)  p|x,q|x  && 存在自然数 a、b 使得 y = a*p+b*q

    {x,y} = {m, n}

    根据题目的性质, 转化成棋盘染色的方法 能有效解决很多问题 选择对称性大的分割, 小范围枚举来验证结论

    扩展

    还可以扩展到1*k   多色染色法 能解决很多模 k 性质问题

    还有 不规则染色法,空间三维染色法,

    图着色问题, 用尽可能少的颜色给图着色,

    扩展

    在图论的数学领域,哈密顿路径(或可追溯路径、哈密顿链)是无向或有向图中恰好访问每个顶点一次的路径。

    哈密尔顿图的定义: G=(V,E)是一个图,若G中一条通路通过且仅通过每一个顶点一次,称这条通路为哈密尔顿通路。若G中一个圈通过且仅通过每一个顶点一次,称这个圈为哈密尔顿圈。若一个图存在哈密尔顿圈,就称为哈密尔顿图。

    哈密尔顿图的必要条件: 若G=(V,E) 是一个哈密尔顿图,则对于V的每一个非空子集S,均有W(G-S) ≤|S|。其中|S|是S中的顶点数,W(G-S)表示图G擦去属于S中的顶点后,剩下子图的连通分枝的个数。

    哈密尔顿图的充分条件: 设G=(V,E)是一个无向简单图,|V|=n. n≥3. 若对于任意的两个顶点u,v∊V,d(u)+d(v) ≥n,那么, G是哈密尔顿图 

  • 相关阅读:
    关于ARM CM3的启动文件分析
    curl 基本使用简介
    在windows下获取硬盘序列号(win7 32位,Windows Server 64位测试,希望在其他平台测试,遇到问题的网友留言分享)
    oracle 数据库用户登录相关
    ubuntu 下搭建一个python3的虚拟环境(用于django配合postgresql数据库开发)
    ubuntu下安装postgres
    python 中变量的命名规范
    python 各模块
    python中的model模板中的数据类型
    python编程中在ubuntu中安装虚拟环境及环境配置
  • 原文地址:https://www.cnblogs.com/163467wyj/p/12142953.html
Copyright © 2011-2022 走看看