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

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

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

本文目录
  1. 经典案例【考题】

  2. 经典案例解题方法


一、经典案例【考题】
问题:
1到ipt_num(≥3)能组成多少个互相同且不重复的三位数字数组?
输入:

3

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

二、经典案例解题方法

上述案例解题思路为:

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

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

具体代码如下:

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_numord_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。

得到结果:

14 能组成 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中的编程经典案例【考题】排列组合已讲解完毕。

如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。
往期回顾:
520表白代码合集
一文囊括Python中的函数,持续更新。。。
一文囊括Python中的有趣案例,持续更新。。。
让你彻底弄懂Python编程经典案例【考题】之反转一个值
Python编程经典案例【考题】自由落体运动球的运动轨迹
六一儿童节来临,送大朋友小朋友一只最近爆火的“可达鸭”



扫一扫关注我

13162366985

投稿微信号、手机号

请使用浏览器的分享功能分享到微信等