趣题:奇怪的有向图 任两点间两步之内可达的路径有且仅有一条

探讨了一个有趣的图论问题,即在一个特殊的有向图中,任意两点间的路径长度不超过2,且这样的路径有且仅有一条。通过分析得出,图中所有顶点的出度和入度相等,并给出了具体的数学推导过程。
部署运行你感兴趣的模型镜像

    有这么一个无自环的有向图,它的顶点数在30和40之间(包括30和40)。对于图里面的任意两个点A和B,要么存在一条有向边A->B,要么存在唯一的一个“中间点”C使得A可以通过A->C->B两步走到B。换句话说,对任意给定的A、B两点,从A到B的长度不超过2的路径有且仅有一条。注意,即使当A=B时,这个条件也是成立的。试问这个图有多少个顶点。

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    这道题有趣就有趣在,我们的突破口居然是考察A、B两点间长度为2或3的路径数。假设A有p个后继节点(即从A出发的边有p条),B有q个前驱节点(即有q条边指向B),那么从A到B的路径中长度为2或3的一共有多少条?你可能会说:当然有p条咯!因为A有p个后继节点,而每个后继节点两步之内走到B恰有一种方法。但为什么不说答案是q呢?有q个点可以直达B,而点A在两步之内到这q个点的路径都是唯一的,这就说明从A到B长为2或3的路径数目为q。这告诉我们,p和q是相等的,即A的出度和B的入度相等。再找一个点C,则我们立即可知C的出度也等于B的入度,于是A和C的出度相等。你会立刻发现:搞了半天,这个图的所有点的出度和所有点的入度全部相等。假设这个数字为k,即每个点的前驱和后继都有k个。从某个点A出发,走一步可以到达k个点,再走一步就可以到达k*k个点,这k+k*k个点恰好就是所有点的个数,既无重复也无遗漏。由于30 <= k+k*k <= 40,我们得到k=5,这个图的顶点数为30。
    且慢!我们还没说明满足条件的图真的存在呢!事实上,考虑这样30个点{V_ij|1<=i<=6, 1<=j<=6, i≠j},从V_ij到V_kl有边当且仅当j=k。这个图显然满足我们的题目条件。

来源:http://domino.research.ibm.com/Comm/wwwr_ponder.nsf/challenges/October1999.html
最近打算把IBM Ponder This的老题翻一下

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

根据图片, 第一行 5918 第二行 84750 第三行 590697 第四行684312 第五行 579685 第六行 28407 第七行 3189 注意每行的位置。 请从数字阵列中分析并列出所有符合“相邻连通”条件的三位数组合。相邻关系包括水平左右相连、垂直上下相连、对角线方向相连(左上、右下、左下、右上),以及各类灵活路径组合成的三位数字。 具体排列形态可包括但不限于: · 直线型:水平或垂直方向上连续的三个数字; · 斜线型:沿对角线方向连接的三个数字; · 三角形结构:包括正三角与倒三角形式,可跨行组合; · L形路径:如垂直方向两个数字加水平方向一个数字构成的转折形态; · Z字形路径:呈“之”字形走向的三个数字; · 三行各取一位:在竖直方向错位组合成三位数; · 其他任意连通形式:只要三个数字在位置关系上可通过相邻移动(包括上下、左右、斜向)连通,不论路径曲直,均可视为有效组合。 还有半圆0、或者弓字型、S型等等相连通的数字, 例如图中的第四行的1、3,跟第三行的0跟9,组合成130跟139。或者跟第五行的9跟8,组合成139.或者138,有一面相连接的数字都写出来。或者第三行的06跟第四行的1跟4,组合成061跟046。也可以跟第二行的4、5组合成046.065,数字顺序无所谓。这个模式把图中所有的数字都写出来 . 八邻域连通性 在二维网格中,任一格点与其周围八个方向的格子均视为相邻,支持上下、左右、对角连接。 2. 路径连通图论基础 三个节点连通当仅当存在一条连续路径依次经过三者,每步转移限于相邻单元。 3. 组合去重与集合化表示 多个路径可能生成相同数字组合,需以无序集合方式合并结果,避免重复计数。 请系统梳理把上边所有任意数字相邻的三个数字、连通三位数组合并完整呈现。
最新发布
11-30
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值