60Python枚举算法上

2024-10-28
| 14页
| 83人阅读
| 1人下载
普通

内容正文:

60 Python 枚举算法 上 一、什么是算法? 算法,简单理解就是“解题思路”,要找到解题的方法和关键的运算条件语句。算法的特征 并非所有过程都可以称为算法。算法应具有以下特征: 明确 -算法应清晰明确。它的每个步骤(或阶段)及其输入/输出都应该清楚,并且只能导致一种推算含义。 输入 -算法应具有0个或更多个定义明确的输入。 输出 -算法应具有1个或多个定义明确的输出,并且应与所需的输出匹配。 有限 -算法必须在有限数量的步骤后终止。 可行性 -可用资源应该可行。 独立 -算法应具有逐步指导,该指导应独立于任何编程代码。 二、什么是枚举算法(也称暴力破解)? 定义:枚举法也称为穷举法,是利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检验,从中找出符合要求的答案,因此枚举法是通过牺牲时间来换取答案的全面性。因此,使用枚举法解决问题时,需要考虑优化算法,选择恰当的枚举对象,尽量分析出问题中的隐含条件,缩小枚举范围,以提高解决问题的效率。 是我们在日常中使用到的最多的一个算法,它的核心思想就是:枚 举所有的可能。枚举法的本质就是从所有候选答案中去搜索正确的 解,使用该算法需要满足两个条件: (1)可预先确定候选答案的数量; (2)候选答案的范围在求解之前必须有一个确定的集合。 注:枚举算法一般会用到for循环。 三、枚举算法的理解 1.常用语句 暴力破解,使用for循环或者while循环,逐个列举,逐个排查,比较费事,但准确率高 2.解题思路 ①确定枚举对象,枚举范围和判断条件 ②逐一列举可能的解,验证是否为本问题的答案 3.解题步骤 ①猜可能解的范围,做到不重不漏 ②找到判断真解的条件(把题目的条件进行翻译) ③缩小可能解的范围,找到另一个隐藏条件,缩圈再运算,提高效率 举例理解 第一题 兔子4元一只,鸭子3元一只,刚好花完10元钱,可以买几只兔子和几只鸭子? 第二题 在所有三位数中:各位数相加之和是12,请你输出所有满足条件的三位数。 拓展一下 : 在所有三位数中:各位数相加之和是12,请你输出所有满足条件的三位数的个数。 另一种方法: 第三题 题目描述 输入一个数n,输出1(含)~n(含)中所有的8的倍数及其个数。 第四题:密码问题:四位密码有多少种可能 四位密码的可能性取决于每一位数字的选择范围。假设密码可以由0-9的数字组成,那么每一位数字都有10种选择(0-9),因此四位密码的可能性为: 10 * 10 * 10 * 10 = 10,000 即四位密码有10,000种可能性。每一位数字都有10种选择,所以总的组合数为10的四次方 拓展——破解密码 四个嵌套的循环枚举了所有可能的四位数字组合, 然后将其组合成字符串并与目标密码进行比较。 如果找到匹配的密码,就会输出破解成功的消息。 $$

资源预览图

60Python枚举算法上
1
60Python枚举算法上
2
60Python枚举算法上
3
60Python枚举算法上
4
60Python枚举算法上
5
60Python枚举算法上
6
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。