组合算法

本程序的思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标

代表的数被选中,为0则没选中。

首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。

然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为

“01”组合,同时将其左边的所有“1”全部移动到数组的最左端。

当第一个“1”移动到数组的m-n的位置,即n个“1”全部移动到最右端时,就得

到了最后一个组合。

例如求5中选3的组合:

1 1 1 0 0 //1,2,3

1 1 0 1 0 //1,2,4

1 0 1 1 0 //1,3,4

0 1 1 1 0 //2,3,4

1 1 0 0 1 //1,2,5

1 0 1 0 1 //1,3,5

0 1 1 0 1 //2,3,5

1 0 0 1 1 //1,4,5

0 1 0 1 1 //2,4,5

0 0 1 1 1 //3,4,5

使用python实现:

group = [1, 1, 1, 0, 0, 0]

group_len = len(group)

#计算次数

ret = [group]

ret_num = (group_len * (group_len - 1) * (group_len - 2)) / 6

for i in xrange(ret_num - 1):

'第一步:先把10换成01'

number1_loc = group.index(1)

number0_loc = group.index(0)

#替换位置从第一个0的位置开始

location = number0_loc

#判断第一个0和第一个1的位置哪个在前,

#如果第一个0的位置小于第一个1的位置,

#那么替换位置从第一个1位置后面找起

if number0_loc < number1_loc:

location = group[number1_loc:].index(0) + number1_loc

group[location] = 1

group[location - 1] = 0

'第二步:把第一个10前面的所有1放在数组的最左边'

if location - 3 >= 0:

if group[location - 3] == 1 and group[location - 2] == 1:

group[location - 3] = 0

group[location - 2] = 0

group[0] = 1

group[1] = 1

elif group[location - 3] == 1:

group[location - 3] = 0

group[0] = 1

elif group[location - 2] == 1:

group[location - 2] = 0

group[0] = 1

print group

ret.append(group)

全排列算法

从1到N,输出全排列,共N!条。

分析:用N进制的方法吧。设一个N个单元的数组,对第一个单元做加一操作,满N进

一。每加一次一就判断一下各位数组单元有无重复,有则再转回去做加一操作,没

有则说明得到了一个排列方案。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点!

本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

python 排列组合算法_python实现高效率的排列组合算法相关推荐

  1. python 预测算法_Python 与金融数据使用机器学习算法预测交易策略

    记得 关注.分享.点在看 呀- 这样您就能持续收到优质的推送啦 这一期,我们将使用上一期处理好的数据特征和标签训练机器,然后预测交易策略.我们将分别使用 K近邻算法和集成学习两种方法分别完成模型的训练 ...

  2. python余弦相似度_python实现字符串余弦相似度算法

    字符串余弦相似性算法是通过利用我们初中就学过的三角函数中的余弦定理来计算两个字符串的相似度,它是定义在向量空间模型(Vector Space Model)中的. 余弦相似度用向量空间中两个向量夹角的余 ...

  3. python正则化调优_Python实例介绍正则化贪心森林算法(附代码)

    作者:Ankit Chaoudhary 翻译:笪洁琼 校对:梁傅淇本文共3515字,建议阅读7分钟. 通过本文与大家讨论一个被称为正则化的贪心森林算法. 引言 作为一名参与多个机器学习竞赛数据科学家, ...

  4. python 排列组合速度_Python实现的简单排列组合算法示例

    本文实例讲述了Python实现的简单排列组合算法.分享给大家供大家参考,具体如下: 1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍 2.一个列表数据任意组合 主要是利用 ...

  5. python生成一笔画_Python系列—一笔画问题的算法研究

    原标题:Python系列-一笔画问题的算法研究 鸣谢 VSRC感谢业界小伙伴--奶权,投稿精品原创类文章.VSRC欢迎精品原创类文章投稿,优秀文章一旦采纳发布,将有好礼相送,我们已为您准备好了丰富的奖 ...

  6. python所有算法_Python实现的各种常见分布算法示例

    本文实例讲述了Python实现的各种常见分布算法.分享给大家供大家参考,具体如下: #-*- encoding:utf-8 -*- import numpy as np from scipy impo ...

  7. python新式类c3算法_python中的MRO和C3算法

    一. 经典类和新式类 1.python多继承 在继承关系中,python子类自动用友父类中除了私有属性外的其他所有内容.python支持多继承.一个类可以拥有多个父类 2.python2和python ...

  8. python k近邻算法_python中的k最近邻居算法示例

    python k近邻算法 K最近邻居(KNN) (K-Nearest Neighbors (KNN)) KNN is a supervised machine learning algorithm t ...

  9. python最大公约数代码_Python实现的求解最大公约数算法示例

    本文实例讲述了python实现的求解最大公约数算法.分享给大家供大家参考,具体如下: 使用Python求解两个数的最大公约数的时候用到了前面介绍的分解质因式.其实,我写分解质因式程序的时候就是因为发现 ...

最新文章

  1. 2018-4-17论文《一种基于了领导策略的狼群搜索算法》
  2. mysql事务所_MySQL事务,这篇文章就够了
  3. CSocket类的使用
  4. 复仇!3:1 KO叙利亚!.NET程序员用算法推演出国足进世界杯概率...
  5. 5条Java记录规则
  6. 【算法分析与设计】找到最重的球
  7. HTML meta 标签 遇到meta http-equiv=refresh content=0; url=详解
  8. 测试用例集-11.QQ表情收藏功能测试用例
  9. 微信昵称emoj表情保存到mysql数据库时报错怎么解决?
  10. OpenStack_Swift源代码分析——Ring基本原理及一致性Hash算法
  11. lucene(全文搜索)_建立索引_根据关键字全文搜索_源码下载
  12. oracle中sql语句 日期加减,SQL语句里对日期进行相加减
  13. @JsonView的简单使用
  14. 安卓模拟器7.1版本32位系统xp框架安装方法
  15. 【计网】2.1.1 客户-服务器体系和P2P体系简述
  16. [JZOJ1320] 【Usaco2009 gold 】拯救奶牛
  17. scrapy框架入门第一天笔记记录
  18. 强化学习之贝尔曼方程
  19. 【计算机原理与接口技术(UNIX)⑱】——并行 I/O 接口 [ 芯片8255A ]
  20. 赛事快讯|2022中国工程机器人大赛——飞思无人机仿真与自主任务赛项演示视频来啦!

热门文章

  1. 503 Service Unavailable
  2. iis里运行php_iis怎么运行php
  3. 转型AI产品经理,原来不需要学那么深的算法和数学模型
  4. 5.15 使用is语句检查实例的类型 [Swift原创教程]
  5. 什么是波特五力分析模型?看完这篇文章你就知道了
  6. 用python画关系网络图-使用Python的networkx绘制精美网络图教程
  7. C#开发之——Mutex(14.8)
  8. 拿鸡蛋python_扔鸡蛋问题python编写
  9. Throughput Optimization for Grant-Free Multiple Access With Multiagent Deep Reinforcement Learning
  10. 图像处理(七)——图像复原