python生成n个元素的全组合方法
作者:那时的风儿 发布时间:2023-11-10 20:35:08
标签:python,元素,组合
利用二进制反格雷码(bynary reflected Gray code)的方式生成n个元素的全组合,Cn1+Cn2+...+Cnn,
如在利用穷举方法解决背包问题时,就需要找出物品的所有组合的子集。如有物品1,2,3.我们就可以生成3个位串的格雷码,0表示不选择该物品,1表示选择该物品。
算法如下所示:
import copy
def brgd(n):
'''
递归生成n位的二进制反格雷码
:param n:
:return:
'''
if n==1:
return ["0","1"]
L1 = brgd(n-1)
L2 = copy.deepcopy(L1)
L2.reverse()
L1 = ["0" + l for l in L1]
L2 = ["1" + l for l in L2]
L = L1 + L2
return L
来源:https://blog.csdn.net/lixingdefengzi/article/details/71335794
0
投稿
猜你喜欢
- 有时候我们不希望浏览器使用缓存加快网页的显示,尤其是那些论坛之类的频繁更新内容的网页,在网上有说可以使用下面的方法来屏蔽缓存,但是我试了效果
- 问题你想使用一个Python字典存储数据,并将它转换成XML格式。解决方案尽管 xml.etree.ElementTree 库通常用来做解析
- 最近在学一些基础的算法,发现我的数学功底太差劲了,特别是大学的这一部分,概率论、线性代数、高数等等,这些大学学的我是忘得一干二净(我当时学的
- 学习自然语言的最好方法就是溶入相应的语言环境在交流中学习,学习一种编程语言的最好方法就是看例程。为了帮助大家建立wml应用的第一印象,所以请
- 阅读上一篇文章《WEB2.0网页制作标准教程(5)head区的其他设置》在开始正式内容制作之前,我们必须先了解一下web标准有关代码的规范。
- 本文实例讲述了javascript设置页面背景色及背景图片的方法。分享给大家供大家参考,具体如下:<!DOCTYPE HTML PUB
- 导读我们在使用selenium打开google浏览器的时候,默认打开的是一个新的浏览器窗口,而且里面不带有任何的浏览器缓存信息。当我们想要爬
- 本文程序针对Python选课系统进行开发,供大家参考,具体内容如下角色:学校、学员、课程、讲师要求:1. 创建北京、上海 2 所学校2. 创
- 这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql>
- 本文实例讲述了Python Django框架单元测试之文件上传测试。分享给大家供大家参考,具体如下:Submitting files is
- 目前网络上有许多图片验证码形式,那些没有生成图片的验证码的抗破解防御能力简直不堪一击;有人直接在网页源码里显示出具体的数字,然后要求访问者输
- 在删除每个字典的时候有些方法和删除其他拥有独立内存的数据使用的方法是一样的,比如del,直接清空内存,clear()是值清除变量值。字典的删
- 一、MatplotlibMatplotlib是Python中众多数据可视化库的鼻祖,其设计风格与20世纪80年代设计的商业化程序语言MATL
- PyCharm2020 激活到 2100年一次激活,用到退休,就问你怕了没?超级硬核破解,从此不再找激活码,不再改HOST !!!!!Pyc
- 首先 你要有个女朋友效果:需要安装几个包pip install wxpypip install wechat_senderpip insta
- 前言:本文研究的主要是Python实现pig Latin小游戏的简单代码,具体介绍如下。Pig Latin是一个语言游戏。步骤:1.让用户输
- 大家一定使用过 phpmyadmin 里面的数据库导入,导出功能,非常方便。但是在实际应用中,我发现如下几个问题: 1、数据库超过一定尺寸,
- 写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript。但在用JScript作为ASP的语言时,
- 经常看到说正则的文章,但说的只是方法,却很少有说以下几个基本概念:1.贪婪:+,*,?,{m,n}等默认是贪婪匹配,即尽可能多匹配,也叫最大
- 目录1 简介2 在Dash中实现文件上传与下载2.1 在Dash中配合dash-uploader实现文件上传2.1.1