作者yamamura (sadako)
看板Grad-ProbAsk
標題[理工] [離散]-請問一個進階的排列問題
時間Fri Dec 18 12:21:18 2009
大家好
現在我知道一個n元m序列中,每個(元)至少要出現一次的序列總數為
onto(m,n) = SIGMA i=0~n ( (-1)^i * n取i * (n-i)^m )
其實是用排容原理
但是我碰到了一個問題
我想要求
第1個字為0(或是固定某個元)的序列數
第1個字必不為0,第2個字為0的序列數
第1~2個字必不為0,第3個字為0的序列數
第1~3個字必不為0,第4個字為0的序列數
...一直到
第1~(m-1)個字必不為0,第m個字為0的序列數
然後以上這些序列數的總和當然是要等於onto(m,n)
我想了好多辦法
目前我頂多只知道首字為0以及尾字為0的算法:
首字為0: onto(m,n)/n
尾字為0: onto(m-1,n-1)
中間部分要考慮的東西太多了,請問各位高手我該怎麼解決?
附上測試用的數據
3元6序列
onto(6,3)= 540
第1個字為0的序列數 180
第1個字必不為0,第2個字為0的序列數 130
第1~2個字必不為0,第3個字為0的序列數 92
第1~3個字必不為0,第4個字為0的序列數 64
第1~4個字必不為0,第5個字為0的序列數 44
第1~5個字必不為0,第6個字為0的序列數 30
這是我寫程式暴力算出來的= =
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.155.20