当前位置: 首页 > news >正文

简单排列组合题(python版)

文章预览:

  • 题目
  • 解法一
    • 输出结果
  • 解法二
    • 输出结果
    • 输出结果

题目

有四个数字:1,2,3,4能组成多少个互不相同且无重复的数字的三位数? 各式多少?

解法一

我们粗略看一下这个题既然我们要组成三位数,那我们就循环3层每一层出一个数,并且if语句判断,互相不同即可(想对比较粗糙的算法,而且可塑性差,那要是问俩位数呢,四位数呢,不易改变)

for i in range(1,5):for j in range(1,5):for k in range(1,5):if i !=j and j!=k and k!=i:print("{}{}{}".format(i,j,k))

输出结果

123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432

解法二

我们深刻的想一想我们可不可以实现这样的一个函数,组合的元素我们自己随意提供,几位数排列也可以做出参数方便传递,那这样就很灵活了。
首先这个函数参数 肯定得用一个列表,另外得有一个b列表 这个列表相对应元素用了还是没用过,还有一个count记录是否已经达到要的个数了
代码如下:

count=0
b=[1]*100
def repeat_f(zuhe,digit,a):global count_zongglobal countglobal bif count == digit:count_zong+=1print(zuhe)return 0for i in range(len(a)):if b[i]==0:continueelse:b[i]=0count+=1repeat_f(zuhe*10+a[i],digit,a)count-=1b[i]=1return 0
zuhe=0
a=[1,2,3,4]
repeat_f(zuhe,3,a)

输出结果

123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432

换一种参数全排列
repeat_f(zuhe,4,a)

输出结果

1234
1243
1324
1342
1423
1432
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321

http://www.lryc.cn/news/308597.html

相关文章:

  • 【排坑】搭建 Karmada 环境
  • 每日一类:Qt GUI开发的基石《QWidget》
  • 人大金仓与mysql的差异与替换
  • Excel2LaTeX插件的使用、LaTeX表格
  • MySQL 用了哪种默认隔离级别,实现原理是什么?
  • 【C++初阶】第四站:类和对象(下)(理解+详解)
  • redis的基本数据类型(一)
  • Windows无法识别exFAT格式怎么办?
  • AI大模型的发展趋势?
  • List去除重复数据的五种方式
  • VUE3自定义文章排行榜的简单界面
  • 七通道NPN 达林顿管GC2003,专为符合标准 TTL 而制造,最高工作电压 50V,耐压 80V
  • 若依springboot接入feign踩坑记录
  • Lumerical Script ------ Error: <文件目录> line x:syntax error
  • Opencv基础与学习路线
  • Python装饰器的使用详解
  • 基于springboot+vue的党员教育和管理系统
  • 三个伪类让你的CSS代码更加优雅
  • 幻兽帕鲁联机服务器搭建
  • 京东商品优惠券API获取商品到手价
  • Flutter Version Manager (FVM): Flutter的版本管理终极指南
  • Docker技术概论(3):Docker 中的基本概念
  • 死记硬背spring bean 的生命周期
  • 海外网红营销策略:如何将红人粉丝有效转化为品牌忠实粉丝?
  • java之Bean对象
  • Flink——芒果TV的实时数仓建设实践
  • 卸载云服务器上的 MySQL 数据库
  • AUTOSAR SPI详解
  • SpringBoot快速入门(黑马学习笔记)
  • 压力测试工具Jmeter的下载与使用