Python | 关于枚举法的奥秘

简介: Python | 关于枚举法的奥秘

引言

大家在学习python的过程中,肯定会遇到各种算法,这里面有简单的也有复杂的,譬如简单的有枚举法、模拟法等,稍微难点的有图的深度优先遍历算法、图的宽度优先遍历算法等等,今天小编不讲那些比较难得算法,来讲讲最基础最简单的算法——枚举法。读者们可不要因为这是简单算法就不感兴趣哦!任何复杂的算法其实都是由简单算法演变而来,万丈高楼平地起。好了,下面是小编的一些拙见。


问题描述

现在很多人喜欢打篮球吧,篮球规则里面:投篮不进得零分,进一颗罚篮得一分,进一颗两分得两分,进一个颗三分得三分。如果有一个球员投了20次篮,一共得了30分,那么请问:他投了几次罚篮,几次中投,几次三分?


解决方案

一分钟,大家快速想想有几种可能。这道题包含了很多种可能,比如1.10个三分球,另外10个球不投进。2.15个两分,另外5个球不投进。3.投进2个三分球,12个两分球,另外6个球不投进等等,所以可能性太多了!不知道读者朋友们想到了几种。仔细的朋友们可能发现我用了‘1’,‘2’,‘3’这样的字符。

这就是今天小编想讲的枚举法:把能想到的所有可能性全部列出来,然后再逐个筛选,剔除不符合题意的(用这题举例,比如全部投进两分球,很明显不符合题意,直接pass)。

使用枚举法时注意的事项:(1)可以先直观判断不符合要求的可能选项(2)从最大的可能性选项开始依次减小。还是以这题举例,投进三分得最大可能性就是10个,所以进三分球的个数一定一定不会超过10个。投进两分球的个数依次类推。(3)可以一边列举可能,一边判断。意思就是一个一个判断,我觉得既可以避免漏解又可以避免重复。


结语

好啦,这就是今天小编想与大家分享的枚举法。其实这里面还有很多奥妙,小编这不过只是冰山一角,而其中更多更有意思的部分还要读者朋友们自己去挖掘,自己发现的东西一定会更加印象深刻,更加让人激动。如果有机会,小编会与大家继续分享自己的心得体会。要是喜欢的话,请给小编点个小心心!!!



目录
相关文章
|
10月前
|
Python
|
1月前
|
安全 Python
Python学习 -- 枚举类
Python学习 -- 枚举类
40 0
|
8月前
|
安全 Python
Python学习 -- 枚举类
Python学习 -- 枚举类
34 0
|
存储 算法 Python
Python3 数据结构与算法之枚举
Python3 数据结构与算法之枚举
|
Python
Python3 新增加的数据类型:枚举 enum
Python3 新增加的数据类型:枚举 enum
118 0
|
算法 索引 Python
【python】之哥德巴赫猜想(递归法)和教室排课(枚举法)
【python】之哥德巴赫猜想(递归法)和教室排课(枚举法)
198 0
【python】之哥德巴赫猜想(递归法)和教室排课(枚举法)
|
Python
蓝桥杯 试题G 回文日期 Python 枚举法
蓝桥杯 试题G 回文日期 Python 枚举法
61 0
蓝桥杯 试题G 回文日期 Python 枚举法
|
Python
【Python零基础入门篇 · 12】:函数的定义和作用、函数参数、函数嵌套、枚举函数enumerate
【Python零基础入门篇 · 12】:函数的定义和作用、函数参数、函数嵌套、枚举函数enumerate
【Python零基础入门篇 · 12】:函数的定义和作用、函数参数、函数嵌套、枚举函数enumerate
|
Python
【Python零基础入门篇 · 9】:函数的定义和作用、函数参数、函数嵌套、枚举函数enumerate
【Python零基础入门篇 · 9】:函数的定义和作用、函数参数、函数嵌套、枚举函数enumerate
【Python零基础入门篇 · 9】:函数的定义和作用、函数参数、函数嵌套、枚举函数enumerate