Python编程求组合问题的function
是所有列表里的数字放在一起再组合,还是必须按照次序从第一个列表取第一个数字,第二个列表取第二个数字。。。的组合?
创新互联专业为企业提供松原网站建设、松原做网站、松原网站设计、松原网站制作等企业网站建设、网页设计与制作、松原企业网站模板建站服务,十余年松原做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
我的理解是第二种情况。可以用循环不断扩充已有的列表:
list1=[1,2,3,4]
list2=[5,6,7]
list3=[8,9]
list4=[10,11,12,13]
lists = [list1, list2, list3, list4]
def Combination(I):
o = [[x] for x in lists[I[0]]]
for index in I[1:]:
r = lists[index]
tmp = []
for l in o:
for x in r:
tmp.append(l + [x])
o = tmp
return o
if __name__ == '__main__':
print(Combination([0, 1]))
print(Combination([1, 2, 3]))
结果:
[[1, 5], [1, 6], [1, 7], [2, 5], [2, 6], [2, 7], [3, 5], [3, 6], [3, 7], [4, 5], [4, 6], [4, 7]]
[[5, 8, 10], [5, 8, 11], [5, 8, 12], [5, 8, 13], [5, 9, 10], [5, 9, 11], [5, 9, 12], [5, 9, 13], [6, 8, 10], [6, 8, 11], [6, 8, 12], [6, 8, 13], [6, 9, 10], [6, 9, 11], [6, 9, 12], [6, 9, 13], [7, 8, 10], [7, 8, 11], [7, 8, 12], [7, 8, 13], [7, 9, 10], [7, 9, 11], [7, 9, 12], [7, 9, 13]]
python_math模块
【1】模块功能
数学相关库
【2】math库
1、math.ceil(x):返回一个大于或等于x的最小整数
print(math.ceil(20.1))
2、math.comb(x,y):返回无重复且无顺序地从x项中抽取y项方式的总和。
print(math.comb(6,2))
3、math.copysign(x,y):返回基于x的绝对值和y的符号的浮点数。
print(math.copysign(10,-1))
4、math.fabs(x):返回x的绝对值
print(math.fabs(-10))
5、math.factorial(x):以一个整数返回x的阶乘
print(math.factorial(10))
6、math.floor(x):返回x的向下取整,小于或等于x的整数
print(math.floor(10.1))
7、math.fmod(x,y):返回以y为模,x的余数。
print(math.fmod(10.1,3))
8、math.frexp(x):将x分解为科学表达式(m*2**e),返回m和e
print(math.frexp(10))
9、math.fsum(x):返回x对象求和。
print(math.fsum([10,1]))
10、math.gcd(*integers):返回所给整数的最大公约数。
print(math.gcd(10,6))
11、math.isclose(a,b,rel_tol=,abs_tol=):判断a,b两数是否相近,rel_tol指定相对容差,abs_tol指定绝对容差。
print(10,7,rel_tol=0.1,abs_tol=0)
12、math.isfinite(x):判断x是否是有限的。
print(math.isfinite(10))
13、math.isinf(x):判断x是否是无限的。
print(math.isinf(10))
14、math.isnan(x):判断x是否是NaN
print(math.isnan(10))
15、math.isqrt(x):返回x的整数平方根(向下取整)
print(math.isqrt(10))
【3】random库
1、random.random():返回0-1的随机小数。
print(random.random())
2、random.randint(x,y):返回大于x小于y的随机整数
print(random.randint(1,10))
3、random.choice(x):返回容器x的随机一个元素
print(random.choice('abcde'))
4、random.choices(x):返回容器x的随机元素,并可以指定权重,及返回的元素个数。
print(random.choices('abcdefghij',k=6,weights=[0,0,0,0,0,0,0,0,1,1]))
python comb在哪个包里
下载并安装NodeJS.msi格式安装包使用cmd/PowerShellnode-v验证是否安装成功npminstall-gcsscomb全局安装csscombcsscomb-V验证安装快捷键(Ctrl+Alt+S),搜索栏输入externaltoolWebStorm内打开Setting-ExternalToo
Python列出多个数字组合相加的和最接近或等于某个数的算法?
算法 列出这5个数的所有组合,找出组合的和减268的绝对值最小的组合,
完整的Python程序如下
import math
def combine(a,n,num):
real_size=int(math.pow(2, n))
min=abs(sum(a)-num)
min_comb=[]
for i in range(real_size):
min_list=[]
total=0
for j in range(n):
if i (1 j):
min_list.append(a[j])
total=total+a[j]
if abs(total-num)=min:
if abs(total-num)==min:
min_comb.append(min_list)
else:
min_comb=[min_list]
min=abs(total-num)
print(min_comb)
a=[110,120,130,140,150]
num=268
combine(a,len(a),num)
源代码(注意源代码的缩进)
Python实现的排列组合计算操作示例
Python实现的排列组合计算操作示例
本文实例讲述了Python实现的排列组合计算操作。分享给大家供大家参考,具体如下:
1. 调用 scipy 计算排列组合的具体数值
from scipy.special import comb, perm
perm(3, 2)
6.0
comb(3, 2)
3.0
2. 调用 itertools 获取排列组合的全部情况数
from itertools import combinations, permutations
permutations([1, 2, 3], 2)
itertools.permutations at 0x7febfd880fc0
# 可迭代对象
list(permutations([1, 2, 3], 2))
[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
list(combinations([1, 2, 3], 2))
[(1, 2), (1, 3), (2, 3)]
Python 求两个文件 内容 对应的列 数字 相加
a = [1,2,3,4,5]
b = [2,3,4]
len_a = len(a)
len_b = len(b)
if len_a len_b: #列表长度补齐,a长的话用0补齐b
... for i in range(len_a - len_b):
... b.append(0)
... elif len_b len_a: #b长的话用0补齐a
... for i in range(len_b - len_a):
... a.append(0)
... else: #两个列表一样长,什么都不做
... pass
...
comb = zip(a, b)
result = []
for a, b in comb:
... result.append(a+b)
...
result
[3, 5, 7, 4, 5]
读文件,将内容保存到列表我就不写了。你写的没什么问题,你只要把两个列表的长度补齐就可以了。
当前标题:comb函数python,comb函数卷积
新闻来源:http://lswzjz.com/article/hdocei.html