暴力穷举和回溯法(八皇后问题)

2023-06-21 12:20

1个回答

以前每次遇到算法问题都是直接暴力求解,一直以为自己用的是暴力穷举法,现在学了回溯法,发现部分问题其实使用的是回溯法,而不是单纯的暴力穷举。

例如求解一个n皇后问题:

1.使用暴力穷举,由于没有两个皇后能够放在一列上,激尘樱那么解向量一定是数1,2,····,n的一个排列(第一行n种放法,第二行n-1种,以此类推)。时间复杂度O(n!).

为什么是一维而不是两维?因为没有两个皇后能在同一列,所以只用行标志就可以表示出皇后的位置,简化了问题

2.回溯法,就等于是一个一个的试,从1到n,时间复杂度O(n^n),每一行n种放法,总共n行。

看起来回溯法要比暴力穷举差很多,但是实际上回溯法很多时候实际算法复杂度并没有暴力穷举高。比如4皇后问题中,仅需要341个可能节点中的27个节点就可以找到解,但是暴力穷举实际会慢很多。

换一个思路,比如第一个皇后放在了0位置,暴力穷举第二个皇后放在1位置,那么之后的皇后无论怎么放都是错误的,也就是(n-2)!个向量全部都是错误的,而回溯法面对这种问题,会在之前就直接抛弃这种兄塌情况,速度会快很多。不要问为什么暴力穷举为什么不学回溯法那样提前抛弃,因为它是 暴力穷举 (这还算优化过一次,不然直接O(n^n))。

总而言之,回溯法并不明丛需要得到所有情况,而且运行过程中会提前抛弃不合要求的情况,所以算法复杂度一般不会到最差的情况。

相关问答
成语 穷儿暴富 的意思?
1个回答2024-02-19 16:21
穷儿暴富  【拼音】: qióng ér bào fù 【解释】: 穷人骤然发了大财。比喻学问大增。 【出处】: 宋·苏轼《答程全父推官六首》:“儿子比抄得《唐书》一部,又借得《前汉》欲抄...
全文
举例说明什么叫“穷开心”?
1个回答2022-11-18 00:12
没有钱,但过得很快乐
溯本求源的溯是什么意思?
1个回答2024-01-21 03:44
溯本清源,意思是往上游寻找发源的地方。 一、读音 [ sù běn qīng yuán ] 二、具体解释 溯本清源是一个成语,原意是指往上游寻找发源的地方,实际使用中,是比喻向上寻求历史根...
全文
求“穷儿暴富”的解释
1个回答2024-03-03 12:14
qióng ér bào fù穷人骤然发了大财。比喻学问大增宋·苏轼《答程父推官书》:“儿子比抄得《唐书》一部,又借得《前汉》欲抄。若了此二书,便是穷儿暴富也。”典故出处 宋·苏轼《答程父推官书》:“...
全文
穷人的家暴概率更高
1个回答2024-03-10 23:56
或许结论是这样的,但是请你理解其中运作的原理,而非简单的贴标签,搞歧视,那么这种人即使是富人,也不会受人尊重。 穷人家暴概率更高可能是出于受教育程度偏低,没有形成两性平等和尊重女性散碧的观念。 另外贫...
全文
我好穷啊,我要如何暴富?
5个回答2023-08-08 11:53
想要暴富,就要努力学习,知识改变命运,祝你成功。 成功需要,天时地利人和,为自己的成功做好铺谨嫌扮垫 ,事情会得到自己想要的结果。 成功要一步一步的积累经验,需要耐心。不为祥灶失败找借口,只者卖...
全文
列举穷人思维都有哪些?
2个回答2023-03-28 19:30
富人和穷人思维的区别列举 1、创业最关心的问题 富人:品牌、服务、理念、技术、合作、发展前景 穷人:价格 2、对选择项目的需求 富人:高兴,被人尊重 穷人:省钱又赚钱 3、对品牌的选择 富人:...
全文
古代为什么有“穷秀才”,没有“穷举人”?
1个回答2022-12-12 21:46
因为秀才是还没有考上科举的人,贫穷的很多,而举人一般都谋得了一些成就,不算贫穷。
古代为什么有“穷秀才”,没有“穷举人”?
2个回答2023-07-24 11:30
因为古代只要你考中级了的话桐困,我觉得都是比较有钱的,而且他皮轮轮们的官位的话都会值很多钱,所以在古代燃信官位是很重要的。
美剧Hero简介
1个回答2024-06-08 15:51
《英雄》成功地将多类剧集形式自然顺畅地融合到了一起,观众会在电视里看到喜剧、恐惧、剧情、浪漫等各种元素,但是“并不会感到突兀和生硬”。《英难》的制作阵容来头不小,它由《案影迷踪》(Crossing...
全文
热门问答