1、数学知识温习

全排列的公式为:
Anm;A _n^m ; Anm​;
以 " AABBCC ” 为例,全排列的公式有:
A66=6!;A _6^6 = 6! ; A66​=6!;
重复的字母为 “ ABC ” ,各重复2个,故重复的次数为:
A22∗A22∗A22;A _2^2 * A _2^2 * A _2^2 ; A22​∗A22​∗A22​;
所以,所有不同的排列数有:
Sn=A66A22∗A22∗A22=7208=90;S _n = \frac{A _6^6 }{A _2^2 * A _2^2 * A _2^2} = \frac{720 }{8} =90; Sn​=A22​∗A22​∗A22​A66​​=8720​=90;

2、python使用递归法求所有的重排列项次和数目

# 传入需要排列的字符串,返回字符串所有的排列列表,包含重复的,使用递归法
def di_gui(str1):if len(str1) <= 1:return str1list1 = []for i in range(len(str1)):for j in di_gui(str1[0:i] + str1[i+1:]):list1.append(str1[i] + j)return list1# 列表去重===========
def qu_chong(l1):l2 = []for i in l1:if i not in l2:l2.append(i)return l2if __name__ == '__main__':str1 = "AABBCC"list1 = di_gui(str1)print(len(list1), list1)  # 输出全排列的列表个数和项次,包含重复的~list2 = qu_chong(list1)   # 去重print(len(list2), list2)  # 输出全排列的列表个数和项次,不包含重复的~

输出的结果为:

3、Python使用数学公式计算全排列项次,不能输出有哪些项次,只能算出总数

from collections import Counter     # 导入计数模块
from math import factorial          # 导入阶乘模块if __name__ == '__main__':str1 = "AABBCC"a = 1num1 = Counter(str1)print(num1)for i in num1.values():a *= factorial(i)print(factorial(len(str1)))print(a)print("阶乘结果:", factorial(len(str1))//a)

输出的结果为:

零基础学Python———求一个字符串的每个字符重新组合排列python排列组合的数学运算(递归法)相关推荐

  1. 零基础学java web开发_从零基础学Java成为一个专业的java web 开发者

    原标题:从零基础学Java成为一个专业的java web 开发者 "我怎么才能成为一个Java Web开发者?"对于这个问题,答案其实并不简单.成为一个Java Web开发人员包括 ...

  2. Python统计一个字符串中所有字符在另一个字符串出现的总次数

    代码功能:统计一个字符串中所有字符在另一个字符串中出现的总次数. 技术要点:函数式编程. 可能的应用:垃圾邮件分类.在大部分垃圾邮件中,为了防止被分类为垃圾邮件,会在一些关键字中间插入类似于[.].* ...

  3. 浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解

    浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解 OJ地址:http://47.96.116.66/index.php 标程/题解GitHub:https://github.com ...

  4. 浙江理工大学c语言作业网站,浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解...

    浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解 OJ地址:http://47.96.116.66/index.php 标程/题解GitHub:https://github.com ...

  5. 零基础学浙大翁恺C语言(4):进一步的判断与循环

    零基础学C语言(4):进一步的判断与循环 逻辑类型和运算 C语言中本来没有布尔类型,关系运算的结果是0或1,就可以使if语句执行还是不执行. include <stdbool.h> 包含一 ...

  6. 零基础学Python:一文看懂数字和字符串

    来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础. [ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyt ...

  7. c字符串中包含双引号_零基础学Python:一文看懂数字和字符串

    来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础.[ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyth ...

  8. python一个月能挣多少钱-零基础学python,我可以让你一个月上手做项目!

    今天达内python培训想要跟所有零基础学习python的同学分享一些神操作,这些操作可以让你在一个月上手做项目,我准备好了,你呢? 为什么你的Python学习效率如此之低?学了3个月还不会做项目做爬 ...

  9. python制作一个简单的文字游戏——零基础学python 004

    前言: 之前我们简单的学习了一些函数,所谓学以致用.那么我们看看用这几个函数能够做出怎么样的文字游戏? 游戏的思路很简单,要求输入一个程序已经设置好的数字,猜中了返回一句话话,猜错了返回一句话:然而只 ...

最新文章

  1. python-9-IO编程
  2. php对象转数组的黑技术
  3. xml python2.6_如何使用前缀选项解析python 2.6中的参数为-f file.xml
  4. QTP的那些事--调用外部的文件的方法
  5. ajax请求后台表格数据,商品后台表格数据的展现方式
  6. LINUX2.4.x网络安全框架
  7. java queue使用_使用Java使用Amazon Simple Queue Service
  8. 纵横公路造价软件学习_通辽分公司组织开展2020年 养护工程造价预算培训
  9. 已知数组存放一批QQ号码,QQ号码最长为11位,最短为5位String[] strs = {“12345“,“67891“,“12347809933“,“98765432102“,“67891“,“1
  10. 深度学习自动调参工具,NNI使用
  11. 图像、视频等文件类型(拓展名)
  12. hackthissite 闯关日记
  13. 麻将判断胡牌 java_麻将胡牌逻辑 java
  14. jmeter插件之Dummy Sampler
  15. 润生香港轻零食之品牌零食合作 I 专业·共赢·美味
  16. 完美解决idea2020一直indexing,无法操作的问题
  17. 【kali】安装谷歌游览器
  18. Qt pop3接收邮件并下载附件程序
  19. 将qlv格式转换为mp4格式视频
  20. 一个超酷的开源uHand2.0机械手掌项目

热门文章

  1. 网页禁止鼠标右键复制的解决办法
  2. 程序猿推送利器:使用Python+Server酱打造微信通知推送利器
  3. Windows Server 2016修改计算机名
  4. Swift 版本很好的卡片切换效果基于ZLSwipeableView(类似于[陌陌点点][探探])
  5. Linux下如何查看硬盘是固态硬盘SSD还是机械硬盘HDD
  6. 大厂对学历的要求是什么?如果学历不够,拿什么来凑?
  7. Windows下使用Jconsole远程监控Linux系统中java服务器资源占用情况
  8. 这些手机隐藏功能你知道吗?
  9. OpenGL 4 : 一个漂亮的心 For you, My Love
  10. uniapp推送功能实现