若干个顶点以及某些顶点和顶点之间的连线,就构成了一个“图”。如果对某个图进行变换,使得原来任意两个有连线的顶点之间都不再有连线,原来任意两个没有连线的顶点之间现在都有连线了,那么所得到的图就是原来那个图的“补图”。如果一个图和它的补图具有本质上完全相同的结构(这意味着,把其中一个图的顶点以适当的方式与另一个图的顶点建立一一对应的关系,那么对于谁和谁之间有连线、谁和谁之间没有连线这样的问题,两个图的情况是完全一样的),我们就说这个图和它自己是互补的。下图显示了一个顶点数为 5 的图以及它的补图,容易看出,它们的本质结构是相同的。这说明,顶点数为 5 的图有可能和自己互补。

下图显示了一个顶点数为 8 的图,它和它的补图也具有同样的本质结构(你能看出来吗)。这说明,顶点数为 8 的图也有可能和自己互补。

我们今天的问题是:对于那些正整数 n ,存在顶点数为 n 的与自己互补的图?

如果一个图有 n 个顶点,那么它总共就有 n(n-1) / 2 条可能的连线。显然,一个图要想和自己互补,它里面的连线数必然是 n(n-1) / 2 的一半,因此 n(n-1) / 2 必须得是偶数。这说明, n 只能等于 1, 4, 5, 8, 9, 12, 13, 16, 17, … ,即那些形如 4k 和 4k + 1 的数。

接下来,我们将会构造性地说明,对于上述的每一个 n ,顶点数为 n 的图都确实有可能和自己互补。当 n = 1 时,整个图只有 1 个顶点,没有任何连线,根据定义,它和它自己是互补的。当 n = 4 时,一条简单的“链”便满足要求:不妨把这 4 个顶点分别记作 x 、 y 、 z 、 w ,那么 x – y – z – w 的补图就是 y – w – x – z ,整个图的本质结构并未发生改变。

另外,对于任意一个有 k 个顶点的且与自己互补的图,在它外面添加一根由 4 个新顶点组成的链条 x – y – z – w ,再把顶点 x 与所有 k 个顶点都相连,把 w 也与所有 k 个顶点都相连。容易看出,整个图现在就有 k + 4 个顶点了,并且这个新的图也和自己是互补的。

因此,我们就可以从 n = 1 和 n = 4 的情形出发,借助上面的扩展方法,依次得到 n = 5, n = 8, n = 9, n = 12, … 的构造。这立即说明,对于所有形如 4k 和 4k + 1 的正整数 n ,顶点数为 n 的图都确实有可能和自己互补。

问题及解答出自 2000 年 Stephan C. Carlson 在 Mathematics Magazine 的一篇文章。我是在 Proofs Without Words 2: More Exercises in Visual Thinking 一书中看到这个问题的。

[转自Matrix67] 趣题:顶点数为多少的图有可能和自己互补的更多相关文章

  1. HDU 1068 Girls and Boys(最大独立集合 = 顶点数 - 最大匹配数)

    HDU 1068 :题目链接 题意:一些男孩和女孩,给出一些人物关系,然后问能找到最多有多少个人都互不认识. 转换一下:就是大家都不认识的人,即最大独立集合 #include <iostream ...

  2. HDU 4160 Dolls (最小路径覆盖=顶点数-最大匹配数)

    Dolls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  3. leetcode刷题--两数之和(简单)

    一.序言 第一次刷leetcode的题,之前从来没有刷题然后去面试的概念,直到临近秋招,或许是秋招结束的时候才有这个意识,原来面试是需要刷题的,面试问的问题都是千篇一律的,只要刷够了题就差不多了,当然 ...

  4. Girls and Boys---hdu1068(最大独立集=顶点数-最大匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1068 题意:有n个人,他们之间存在着恋爱关系,现在告诉你每个人和其他人的关系,然后要从这n个人间选出尽 ...

  5. 代数&数论趣题集萃

    暑假总不能只学习平面几何.所以这里也收集一些有趣的代数题或数论题,同时记下解法的一些提示.给未来的自己复习参考用. 多图片预警(请注意流量) 目录: Part 0:其他(8) Part 1:不等式(1 ...

  6. P2764 最小路径覆盖问题 (最小点覆盖=顶点数-最大匹配)

    题意:最小路径覆盖 题解:对于一个有向图,最小点覆盖 = 顶点数 - 最大匹配 这里的最大匹配指的是将原图中每一个点拆成入点.出点, 每条边连接起点的出点和终点的入点 源点S连接每个点的出点,汇点T连 ...

  7. 【JavaScript】Leetcode每日一题-平方数之和

    [JavaScript]Leetcode每日一题-平方数之和 [题目描述] 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c . 示例1: 输入:c = 5 ...

  8. 【python】Leetcode每日一题-丑数2

    [python]Leetcode每日一题-丑数2 [题目描述] 给你一个整数 n ,请你找出并返回第 n 个 丑数 . 丑数 就是只包含质因数 2.3 和/或 5 的正整数. 示例1: 输入:n = ...

  9. 【python】Leetcode每日一题-丑数

    [python]Leetcode每日一题-丑数 [题目描述] 给你一个整数 n ,请你判断 n 是否为 丑数 .如果是,返回 true :否则,返回 false . 丑数 就是只包含质因数 2.3 和 ...

随机推荐

  1. Docker 安装与常用命令

    目录 Docker 安装 1)安装 2)启动 3)镜像加速器 Docker 常用命令 1)Docker 进程相关命令 2)Docker 镜像相关命令 docker search:查找镜像仓库中的镜像 ...

  2. 【vps】Centos 7安装python3.8.5

    [vps]Centos 7安装python3.8.5 前言 由于服务器的搬迁,从香港搬到了大陆,原来的香港服务器即将到期,所以趁着大陆服务器在备案的时候,将新服务器的配置先配置一下.这篇文章就是分享C ...

  3. 关于python 爬虫遇到的反盗链

    首先声明:目标网址是从别人案例里得到的,内容你懂的... 本来闲来无事,学习下爬虫的知识,遇到恶心的反盗链,好在目标网址防盗链简单,代码里注明了如何去查看目标网址的防盗检查: 防盗链原理 http标准 ...

  4. migrate 和makemigrations 命令

    在你改动了app下 models.py的内容之后执行下面的命令: Python manger.py makemigrations 相当于 在该app下建立 migrations目录,并记录下你所有的关 ...

  5. socket编程(struct报头)网络编程

    目录 一:socket编程 1.简介 2.参数说明: 3.socket套接字方法 4.socket编程思路: 二:socket套接字编程 1.socket简易版编程 2.通信循环 三:通信循环及代码优 ...

  6. Python解释器下载安装教程

    简介: 自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程.2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20 ...

  7. 羽夏看Win系统内核—— APC 篇

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  8. django入门 01 创建项目

    安装django库 pip install django 创建--by 终端 django-admin startproject myproject 通过命令创建的django项目,默认不含templ ...

  9. java下载网络大文件之内存不够的解决办法(包含分片上传分片下载)

    一.背景 2020年11月份的时候,我做过一个项目,涉及到网络文件,比如第三方接口提供一个文件的下载地址,使用java去下载,当时我全部加在到JVM内存里面,话说,单单是80M的下载单线程没问题,但是 ...

  10. sqlserver查出来的数据丢失

    问题描述 今天利用sqlserver查数据,使用了一个ROUND(308.16000, 2)函数,发现在sqlserver工具中显示正常,但是在服务端查出来就会发生精度丢失问题. ROUND和CAST ...