| |||
| 引用:
这个问题可以编程做实验的。 做10000次这件事:生成6个随机数然后统计其中出现了多少次不同的数字。然后求平均值。我的结果是,一个6面均匀骰子掷6次掷出的不同的点数大约是4个;一个100面的均匀骰子掷100次掷出的不同点数大约是六十多个 但是我不知道怎么表示成公式。自己推了一个,与实验值有偏差。 恩,看来我没说清楚,这个问题可以看成: 随机往n个不同的盒子里放m个相同的球,求最后非空盒数的数学期望 |
| |||
| 引用:
一个均匀的骰子,扔 6 次得到 6 个不同点数的概率p(m=6)是 6!/6^6没错; 可是,能不能告诉我,扔 6 次得到 5 个不同点数的概率p(m=5)是多少呢(今天头晕实在是想不动了),因为我要算E( m )=1*p(m=1)+2*p(m=2)+3*p(m=3)+4*p(m=4)+5*p(m=5)+6*p(m=6) |
| |||
| 引用:
只包含2个不同字符的字符串的个数 = 不超过2个字符的字符串个数 - 不超过1个字符的字符串的个数 算不超过2个字符的字符串个数时就会有重复计数 先从abc中选出这2个不同字符,有C(3,2)种方案:ab,ac,bc。然后对每一种方案,从这两个不同字符中可重复地选3个排成字符串,共2^3个: ab类:aaa aab aba abb baa bab bba bbb ac类:aaa aac aca acc caa cac cca ccc bc类:bbb bbc bcb bcc cbb cbc ccb ccc C(3,2)*2^3=24种。但是aaa,bbb,ccc重复计算了。 一般说来,只取两个不同的分类中的相同字符来排,就会有重复计数。比如由ab类和ac类的相同字符a构成的aaa就重复计数了。 呵呵,以上是我能想到的最自然的方法,我猜也是你想的方法,不知猜对没。反正我想不到简单的方法来算"不超过m个字符的字符串"的个数。所以干脆算"只含m个字符的字符串个数",这相当于分类後从选出的m个不同字符中可重复而不可遗漏的选k个排成字符串,一共有 m!S(k,m)个(相当于把k个有区别球放到m个有区别的盒子中,不容许有空盒)。所以答案就是 C(n,m) * m!S(k,m) 个了 之前一直没想到用斯特林数是因为把问题转换成球盒问题後我总认为盒子是无区别的~你们说分母是6^6启发了我~ |
| ||||
| 引用:
这是我的错,前面的说法有点不够准确。我说得 p(m=4) = p(m<=4) - p(m<=3),是在选择了可能出现哪几个不同的数字之后。如果用你上面的例子: 代码:
你用斯特林数那个解法应该是对的,只是这第二类斯特林数恐怕不太好算。 |