總網頁瀏覽量

2022年2月9日 星期三

8個字母a,a,b,b,b,c,c,d排成一列,求同字不相鄰的排法數有幾種?(2021.02.09)

Python Code:

import itertools

list1=input('請輸入n個要排列的數,以空格分開==> ').split()

w=[]

w=[str(x) for x in list1] #將輸入的字改成串列


num=set(itertools.permutations(w)) #排列並去除相同元素

num=list(num)#轉成串列


other=[]#儲存有相同物的排列元素

for i in range(len(num)):#有相同字的排列拿出來另存

    for j in range(0,len(num[0])-1):

        if num[i][j]==num[i][j+1]:

            other.append(num[i])

            

print(num)#列出所有排列

ans=set(num)-set(other)

print(ans)#列出同字不相鄰的排列

print(len(ans))#印出同字不相鄰的方法數


答案:384種

$這題用手算真的很難討論,哥是偷懶兼投降才用Python來解它$

沒有留言:

張貼留言