前言

在程序设计的过程中,全排列是比较经常遇到的一类问题,有时候自己写还是有点麻烦,也比较浪费时间。在这里我介绍一种python中的全排列函数——itertools.permutations。更重要的是itertools是一个标准库,不需要额外安装只要import即可,要知道正式比赛中是不允许使用第三方库的。

正文

我们先看下函数的语法格式和参数:

itertools.permutations(iterable[, r])

r 指定生成排列的元素的长度,如果不指定,则默认为迭代对象的元素长度。

示例:

>>> list(itertools.permutations([1,2,3],2))

[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]>>> list(itertools.permutations([1,2,3],3))

[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]

下面是我在洛谷上用该方法解决的一道题:

题目描述

将1,2,⋯ ,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。

输入格式

木有输入

输出格式

若干行,每行3个数字。按照每行第1个数字升序排列。

importitertools

nums= [1,2,3,4,5,6,7,8,9]for num in itertools.permutations(nums, 9):

a= 100*num[0] + 10*num[1] + num[2]

b= 100*num[3] + 10*num[4] + num[5]

c= 100*num[6] + 10*num[7] + num[8]if b == 2*a and c == 3*a:print(a, b, c)

该段函数输出如下:

192 384 576

219 438 657

273 546 819

327 654 981

可以看到这些数字都是有序的,正好符合题目的要求。但是要注意的是在排列前迭代对象必须有序,否则不会有序输出。

下面介绍python中的组合函数——combinations(),同样也是itertools库中的函数,用法也和permutations()一样,这里就不再赘述了,只要搞懂了排列函数,组合函数也就懂了。

python 排列组合函数_python排列组合相关推荐

  1. python 排列组合函数_Python概率统计(1):排列组合

    〇.写在前面 最近面试了很多数据分析师的候选人,包括很多背景相当不错的同学,但是都不是特别满意. 为什么呢?其实说来很简单,我们这边对于经验较少的分析师,尤其是刚毕业或者校招的同学,会着重考察统计基础 ...

  2. python中factor函数_Python入门-函数

    函数 在维基百科上函数式这样描述的: 函数在数学中为两集合间的一种对应关系:输入值集合中的每项元素皆能对应唯一一项输出值集合中的元素. 此处的函数区别于我们数学上的函数,在编程世界中,函数(Funct ...

  3. python反序数函数_python反序函数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 是一个对象并且返回反序排序的列表功能(9)enumerate() 返回的是一个对 ...

  4. python的高级函数_Python的高级函数

    Python的高级函数 1. map函数 map(func, *itertables) 对itertables中的每个元素使用func,当最短的itertable结束时便停止.map可以传入多个ite ...

  5. python的def函数_Python 学习之 def 函数

    共3118字, 阅读本文需要8分钟 def 函数基础 def 函数的定义 在 python 中,def 函数是用来定义一个 function() 的.基本使用 示例下面我们定义了一个 function ...

  6. python list join函数_Python中join()函数多种操作代码实例

    这篇文章主要介绍了Python中join()函数多种操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python中有.join()和os ...

  7. python反序数函数_python逆序函数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python sorted()函数 list内置一个方法sort(),可以实现对 ...

  8. python中len 函数_python len

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 在python中除了print函数之外,len函数和type函数应该算是使用最频 ...

  9. python字典zip函数_Python zip函数及用法

    zip() 函数是 Python 内嵌函数之一,它能够将好几个序列(列表.元组.字典.结合.字符串数组及其 range() 区段组成的列表)"缩小"成一个 zip 目标.说白了&q ...

  10. python画正切函数_python的pygal模块绘制反正切函数图像方法

    python的pygal模块绘制反正切函数图像方法 python是一个很有趣的语言,可以在命令行窗口运行.python中有很多功能强大的模块,这篇经验告诉你,如何使用python的pygal模块绘制反 ...

最新文章

  1. UpdateProgress
  2. 分分钟get「隔空传手」技能,网友:我想试试别的东西…
  3. vue 获取元素在浏览器的位置_前端开发JS获取页面元素的位置
  4. linux 日志行数,如何实时查看日志文件新增的行数
  5. 数据结构2 - 线性表
  6. Python学习笔记——算术操作符和优先级问题
  7. WM_TIMER消息在线程被阻塞时的系统处理
  8. 内外盘期货分仓系统,仿真模拟考核系统
  9. 一种基于区块链的物联网架构设计
  10. If you already have a 64-bit JDK installed 解决方法
  11. matlab饼状图的编程方法,matlab饼状图
  12. github配置SSH keys
  13. 计算机内打不开小米路由器,小米路由器登录界面打不开怎么办?
  14. Cesium学习资源
  15. DBeaver 驱动安装
  16. 路径中 / ./ ../ 分别代表什么
  17. 【视频教程】Win10系统需要关闭的功能,常规隐私 win10电脑怎么关闭隐私选项
  18. syscall(SyS_gettid)是什么
  19. python游戏最简单代码-python基础练习之几个简单的游戏
  20. RedisUtils和 RedisConfig代码封装如下

热门文章

  1. 常见问题之Golang——verifying github.com/go-playground/assert/v2@v2.0.1/go.mod: checksum mismatch错误...
  2. 编译bib文件,报错repeated entry
  3. win10如何设置计算机网络访问,win10系统设置允许或拒绝从网络中访问本地电脑的操作方法...
  4. 公网Wiki站点搭建全流程攻略·小白向(含Parsoid和VisualEditor)
  5. OpenNLP入门实验
  6. HDU4585 Shaolin
  7. 小米平板可以编程c语言吗,小米平板方便使用吗
  8. 如何让百度快速收录网站及文章
  9. 服务器硬盘热插拔后告警,IBM硬盘所谓支持热插拔带来的问题
  10. 做网站的一些定律原理和效应