解开连线

apk下载:https://blog.csdn.net/nameofcsdn/article/details/119086279

游戏规则:通过拖拽圆点,把所有交叉到一起的连线解开,即可过关

这个游戏很简单,但是有意思的在于考虑最少需要的步数m

(1)

m=1

(2)

m=1

(3)

m=1

定理一:如果圆点的数量为n,那么最少需要的步数m<n

注意,是小于,因为位置是相对的,绝对位置并没有意义

(4)

m=2

定理二:如果n个点中任选k个点构成的子图都有交叉点,那么m>n-k

比如这一关,对于五角星来说,任选4个点构成的子图都有1个交叉点,所以m>5-4=1

(5)

m=2

定理三:去掉任意数量的边,m可能不变,也可能变小,但是不会变大

这一关中,去掉2条边就可以变成五角星,所以m>=2

(6)

m=2

(7)

m=2

这一关很容易以为最少需要的步数m=3,实际上m=2

这里就体现了定理二的妙用了,在试图用定理二证明m>2的时候发现,

有4个点构成的子图是没有交叉点的,这样,我们就可以移动另外2个点消除所有交叉点

(8)

m=3

用定理二可以得出m>2

(9)

定理四:如果n个圆点分别为点A1,点A2......点An,而且多边形A1A2......An是凸多边形,而且移动一个点之后多边形A1A2......An仍然是凸多边形,那么移动前后最少需要的步数m不变

简证:任取4个点,例如A1A2A3A4,4个点构成交叉等价于A1A3相连而且A2A4相连,所以是否交叉只取决于点在凸多边形上的相对顺序

所以,为了看起来方便可以把上图暂时变成

这样很容易看出来m=2

然后再去操作原图

(10)

m=2

(11)

m=2

(12)

m=3

这一关其实和第(8)关本质是一样的

(13)

有特殊规则的,讨论m就没有意义了

(14)

m=3

(15)

m=3

(16)

(17)

(18)

(19)

(20)

(21)

(22)

(23)

(24)

(25)

(26)

(27)

(28)

有时会遇到这样的问题:

没有线交叉,但是很难把点全部移到洞里面去。

之所以会出现这样的问题,是因为结构不合适。

首先,要从欧拉定理说起。

多面体欧拉定理:对于简单多面体,简单多面体的顶点数V、棱数E及面数F间有关系有著名的欧拉公式:V-E+F=2

简单多面体即表面经过连续变形可以变为球面的多面体,这是一个拓扑变形的概念。

多面体欧拉定理常见的2个证明中,其中一个是通过剪掉一个面,将其余的面拉平,使它变为平面图形,利用算两次的原理计算内角和证明定理。

这个把多面体变成平面图形也是拓扑的概念,理解操作方法就行,这里不需要仔细描述。

对于这个游戏来说,若干连线组成的平面图形,有的是可以看做多面体变形得到的,有的虽然不行但是也差不多,不影响我下面叙述的针对本游戏的规律的正确性。

对于一个多面体,有的面是三角形,有的面是多边形,每一个面都可以用来剪开从而摊平多面体。

为了防止出现“没有线交叉,但是很难把点全部移到洞里面去”的现象,应该选择边数较多的面来剪开

那么,新的问题来了,在游戏一开始的时候如何寻找边数较多的面呢?

这个实际上很难完成,而且并不一定就是多面体,所以更好的策略是:

首先移动顶点,使得所有的线都没有交叉(这个步骤非常简单),可能有多种方法多种结果,任何一个都是可以的。

其次把得到的图和多面体进行比较,就能知道每个面的情况。

比如这里的第28关,可以看得出来是1个六边形加上8个三角形构成的。

最后以这个图为基础稍微调整,就能得到以任意一个面剪开的图



这样最终得到的平面图形的可变性行就比较强,一般就不会出现“没有线交叉,但是很难把点全部移到洞里面去”的现象,除非洞的数量极高。

(29)

(30)

(31)

(32)

(33)

(34)

(35)

(36)

(37)

(38)

(39)

(40)

(41)

这就是前面提到的洞的数量极高的现象,洞的数量极高的话,难度也会急剧上升。

这个时候仅仅用前面提到的方法已经不够用了。

首先需要仔细分析多面体的结构,这个多面体就是1个六边形加上10个三角形构成的

接着根据凸包,把点和洞分成外圈和圈内2种位置
这里引入凸包的概念:凸包就是将最外层的点连接起来构成的凸多边形
对于洞来说,如果洞的数量较大,就可以算出凸包的边数的范围,甚至确定凸包的边数
比如这里的第41关,因为有9个点和9个洞,所以凸包是确定的,就是六边形
对于点来说,凸包其实就是多面体的某一个面,也就是前面提到的剪开的那个面
比如这里的第41关,既然凸包确定是六边形,那么就只能把六边形剪开从而展开多面体,其他的3个点都必须放在六边形里面
这样,我们就知道了3个内点和6个外点,洞也分3个内洞和6个外洞
最后根据线的连接情况和洞的绝对位置,来确定该把哪个点放进哪个洞
比如这里的3个内点,度分别为4,5,6,虽然洞和洞之间无法判断是怎么相连的,但是根据洞的绝对位置可以推断出,
只有下面那个内洞可以对应度为6的内点
这样,我们就得到了唯一对应方案。

(42)

(43)

(44)

(45)

(46)

(47)

(48)

(49)

(50)

(51)

(52)

这里又有了第二种特殊规则:黑点

黑点就是无法移动,除此之外和普通点一样

所以并没有什么难度

(53)

(54)

黑点和洞同时出现,还是和前面说的方法一样,先变成没有交叉点的图再移动

(55)

(56)

(57)

(58)

(59)

(60)

(61)

这一关出现了3个黑点,看似对我们的操作有一定的限制,实际上反而降低了难度。

首先把连接了2个黑点的点的大致位置摆正,然后把连接了1个黑点的点的位置都摆正,

使得此时黑点连出的线之间是没有交叉的,这个过程很容易。

最后以此为基础,把那些不与黑点相连的点的位置摆正即可,这个过程也很容易,不过需要注意的是,

如果有必要的话,与黑点相连的点也可以稍微调整位置。

(62)

(63)

(64)

(65)

(66)

(67)

(68)

(69)

(70)

至此全部通关。□

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值