python组合数
① 如何用python编写排列组合
importmath
importrandom
oTemp=[]
oList=[]
i=0
whileTrue:
a=random.randint(1,4)
ifainoTemp:
continue
else:
oTemp.append(a)
i+=1
ifi%4==0:
Num=oTemp[0]*1000+oTemp[1]*100+oTemp[2]*10+oTemp[3]
ifNuminoList:
i=0
oTemp=[]
continue
else:
oList.append(Num)
i=0
oTemp=[]
iflen(oList)==24:
break
forminoList:
forninrange(2,int(math.sqrt(m))+1):
ifm%n==0:
oList.remove(m)
break
printoList
这段代码是用1-4生成4位数,4个位上的数字不相同的素数。可以做下参考
② 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中的组合数据类型可以分为哪三类
根据数据之间的关系,组合数据类型可以分为3类,分别是:序列类型、集合类型和映射类型。组合数据类型更能够将多个同类或不同类型组织起来,通过单一的表示使数据更有序、更容易。
序列类型是一个元素向量,元素之间的存在先后关系,通过序号访问,元素之间不排他。
集合类型是一个元素类型,元素之间无序,相同元素在集合中唯一存在。
映射类型是“键-值”数据项的组合,每个元素是一个键值对,表示为(key, value)。
推荐教程:python教程以上就是小编分享的关于python中的组合数据类型可以分为哪三类的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
④ python 实现6个数的排列组合,每个数可选值为0和1
fromitertoolsimportproct
foriinproct(range(2),repeat=6):
printi
⑤ Python取随机数排列组合
没懂你的意思,既然是排列组合,就是针对3个固定元素。
如果3个元素本身就是随机的,就不用排列了,下面的getplans函数也就没有意义,直接循环2-5行代码就好。
⑥ 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 数组组合
mm=[['a','b','c','d','e'],[1,2,3,4],[5,6,7,8],[9,10,11,12,13]]
longs=[]
forninmm:
longs.append(len(n))
ll=max(longs)
printll
outall=[]
foriinrange(0,ll,2):
outone=[]
forjinmm:
ifi<ll-1:
printi
outone.append(j[i])
outone.append(j[i+1])
else:
try:
outone.append(j[i])
except:
pass
outall.append(outone)
printoutall
结果:[['a','b',1,2,5,6,9,10],['c','d',3,4,7,8,11,12],['e',13]]
代码中的2,就是你要的,改成4,下面i改到+3为止。
⑧ 如何使用Python的递归方法来实现组合数
defC(n,m):
ifm>n:
return0
elifm==1:
returnn
elifn==1:
return1
else:
returnC(n-1,m-1)+C(n-1,m)
print(C(5,1))#5
print(C(5,2))#10
print(C(5,3))#10
print(C(5,4))#5
print(C(5,5))#1
⑨ 如何用Python列出N个数字的所有排列组合
>> 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计算任意六位数的排列组合
from itertools import proct
for i in proct(range(2),repeat=6):
print i