标题:图书排列
将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置。
请计算一共有多少种不同的排列方案。
注意,需要提交的是一个整数,不要填写任何多余的内容。
import itertools
n=0
for st in itertools.permutations('ABCDEFGHIJ'):
flag=1
for j in range(1,10):
if ord(st[j])-ord(st[j-1])==1 or ord(st[j])-ord(st[j-1])==-1 :
flag=0
break
if flag==1:
n=n+1
print(n)
答案:479306
python实现列表的排列组合
使用python的itertools模块,一共解决四个问题:
1.生成排列,列表中元素不允许重复出现
2.生成排列,列表中元素可以重复出现
3.生成组合,不限元素个数,列表中元素不允许重复出现
4.生成组合,不限元素个数,列表中元素可以重复出现
product 笛卡尔积 (有放回抽样排列)
permutations 排列 (不放回抽样排列)
combinations 组合,没有重复 (不放回抽样组合)
combinations_with_replacement 组合,有重复 (有放回抽样组合)