前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python编程经典案例【考题】排列组合

Python编程经典案例【考题】排列组合

作者头像
阿黎逸阳
发布2022-11-11 14:33:09
4130
发布2022-11-11 14:33:09
举报
文章被收录于专栏:阿黎逸阳的代码

本文和你一起探索Python编程经典案例,让你沉浸式学习Python。

你可以拿着题目先思考,然后再对照本文解题方法进行比较。有不同的见解欢迎到公众号中跟我一起探讨。

本文目录

  1. 经典案例【考题】
  2. 经典案例解题方法

一、经典案例【考题】

代码语言:javascript
复制
问题:1到ipt_num(≥3)能组成多少个互不相同且不重复的三位数字数组?
代码语言:javascript
复制
输入:

3

代码语言:javascript
复制
输出:
代码语言:javascript
复制
1 到 3 能组成 6 种互不相同且不重复的三位数
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

二、经典案例解题方法

代码语言:javascript
复制
上述案例解题思路为:

step1:应用三层for循环列举出1到ipt_num之间所有可能的数。

step2:如果三个数互不相同则添加到结果列表中。

具体代码如下:

代码语言:javascript
复制
def ord_pl(ipt_num):
    num = ipt_num + 1
    all_num = list()
    for i in range(1, num):
        for j in range(1, num):
            for k in range(1, num):
                if i!=j and i!=k and j!=k:
                    all_num.append([i, j, k])
    print(1, '到', ipt_num, '能组成', len(all_num), '种互不相同且不重复的三位数')
    return all_num
ord_pl(4) 

for i in range(1, num):生成一个从1到ipt_num步长为1的等差数列。

i!=j and i!=k and j!=k:判读i、j、k是否互不相同,若不同则返回True,否则返回False。

得到结果:

代码语言:javascript
复制
1 到 4 能组成 24 种互不相同且不重复的三位数
[[1, 2, 3],
 [1, 2, 4],
 [1, 3, 2],
 [1, 3, 4],
 [1, 4, 2],
 [1, 4, 3],
 [2, 1, 3],
 [2, 1, 4],
 [2, 3, 1],
 [2, 3, 4],
 [2, 4, 1],
 [2, 4, 3],
 [3, 1, 2],
 [3, 1, 4],
 [3, 2, 1],
 [3, 2, 4],
 [3, 4, 1],
 [3, 4, 2],
 [4, 1, 2],
 [4, 1, 3],
 [4, 2, 1],
 [4, 2, 3],
 [4, 3, 1],
 [4, 3, 2]]

可以手动验证结果是对的。该方法的优点是逻辑简单,理解起来比较清晰。

至此,Python中的编程经典案例【考题】排列组合已讲解完毕。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿黎逸阳的代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档