枚举

枚举

概念:基于已有知识进行答案猜测的一种问题求解策略

方式:从可能的集合中一一列举各元素

枚举算法:

对问题可能解集合的每一项,根据问题给定的检验条件判定哪些问题是成立的,使条件成立的即是问题的解

白话文理解:根据条件,猜测一下所有的可能性,然后将每一个可能性进行一一验证,直到找到符合标准的那一个,最简单的就是暴力求解,每种情况都试一次,那肯定不会有遗漏的,但一般情况下有了条件约束,我们能够在所有可能性当中筛选出一些绝对不符合条件的结果,这样下来就能减少枚举的数量。枚举的关键在于怎么合理的翻译约束条件,使得在枚举过程中可能的解的数量尽可能少,设置验证函数过程中,挑选合适的搜索顺序,减少代码中的循环次数

过程

1.判断猜测的答案是否正确

2.进行新猜测

​ (1)猜测的结果必须是前面猜测中没有出现过的

​ (2)猜测过程中要及早排除错误的答案

⚠️注意事项:

1.给出解空间,建立简洁的数学模型

​ 判断可能的情况是什么,模型中的变量数尽可能少,而且相互之间互相独立

2.减少搜索空间

​ 利用知识缩小模型中各变量的取值范围,避免不必要运算,减少代码中循环体执行次数

3.采用合适的搜索顺序

​ 搜索空间的遍历顺序要与模型中的条件表达式一致


以上是枚举算法的一些概念性的东西。概念很好理解,培养枚举思维,更好的写好算法是关键,这种思维的培养需要大量的实际操作,多做题,多做题,多做题。

以下会是一些例题(未完待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值