作者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