当前位置: 首页 > 科技 > 人工智能 > ghpython_老潘系列_数字排列组合_腾讯新闻

ghpython_老潘系列_数字排列组合_腾讯新闻

天乐
2020-07-06 12:40:03 第一视角

好久没敲代码了,今天又看到了老潘的微博python推送,那就继续从老潘的微博开始,作为ghpython的基础练习。

今天的题目是这样的,有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

这其实是高中数学里最基础的排列组合题,一个A43=4x3x2x1=24就搞定了,但是既然是ghpython咱们就得用python的玩法解。

python里我学习到了两种思路,思路之一是利用三层for循环嵌套来分别遍历1-4数字列表,三层循环遍历的值均不相同所获得数字即为满足要求的数,再利用字符串相加得到数字字符串,至于满足要求的数字的数量,则可以利用一个计数器进行统计,计数器初始值为0,每获得一个满足要求的值,计数器就+1,这样就得到最终的数量统计24了。

思路之二就是利用itertools模块里的permutation函数,permutations函数就是输出列表的全排列组合,长度由第2个参数控制,输出结果为迭代器,最后利用列表推导式将迭代器作为列表输出。

欢迎关注「颜犀设」知乎专栏和知识星球。

提示:支持键盘“← →”键翻页
为你推荐
加载更多
意见反馈
返回顶部