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


猜你喜欢
- 本文实例为大家分享了python封装对象实现时间效果的具体代码,供大家参考,具体内容如下# 钟表import timeclass Clock
- 前段时间跟这suggest项目走,没想到这么一个小小的输入框居然会带来那么多的问题。首先来比较一下几个主流的搜索引擎的suggest效果。为
- python与C的区别如下:1、语言类型不同。Python是一种动态类型语言,又是强类型语言。它们确定一个变量的类型是在您第一次给它赋值的时
- keras中的Reshapekeras自带from keras.layers import Reshapelayer_1 = Reshape
- 安装requests库之前我们需要先看一下电脑上有没有pip,可以在cmd中输入pip list查看,若出现以下内容则电脑已安装pip,否则
- 前言在 Qt 中可以使用信号和槽机制很方便地实现部件之间的通信,考虑下面这样的场景:我想要点击任意一个专辑卡并通知主界面跳转到专辑界面,那么
- 1、SQL server中创建表,带有自增列。create table Test_Table(Id int Identity(1,1), N
- 一、注释当前行注释:# 被注释内容多行注释:""" 被注释内容 """二、用户输
- 前两篇讲述了Django的理论,从这篇开始,我们真正进入Django实战部分,今天先从用户认证开始。当大家平时打开一个网站时,第一步一般做什
- 1.登陆网站,开启开发者模式。可以在浏览器中点击右键检查或者F12打开开发者模式。2.点选 NetWork,DOC,然后刷新页面。在 net
- 像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经
- 之前遇到一个场景是这样的:我在自己的电脑上需要用mongodb图形客户端,但是mongodb的服务器地址没有对外网开放,只能通过先登录主机A
- 描述在linux中获取进程cmdline时遇到隐藏符号问题,如下:[root@vm010066016161 /root]#cat /proc
- 此模块允许你输出类似Unix cal程序的日历,并提供与日历相关的其他有用功能。值得注意的是,默认情况下,这些日历将星期一作为一
- HTML5本地存储初探(二)完成了数据的本地存储,就要将文件存储也搞定。为了实现文件的本地存储,html5搞了一个叫 manifest 的文
- import numpy as npimport matplotlib.pyplot as pltimport math# Python实现
- fileno()方法返回所使用的底层实现,要求从操作系统I/O操作的整数文件描述符。语法以下是fileno()方法的语法:fil
- 进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量。但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫
- 功能描述目标完成多账号微信小程序每天自动签到输出签到成功则向微信群发送签到成功的信息否则提示用户签到失败,需手动签到包管理requestsi
- 我就废话不多说了,大家还是直接看代码吧try: s = socket.socket() s.bind(('127.0.0.1'