PuzzleUp 8, 26, 2009
大意就是用26个字母中的不连续的6个字母可以组合成多少种不同的编码组。
他举了一个例子用ABCD4个字母中的不连续的两个可以组成6个组。 这道题应该等同于
同时满足
a_1+a_2+a_3+a_4+a_5+a_6<=26
a_1>=1
a_2,a_3,a_4,a_5,a_6>=2
的整数解的个数乘以6! 我求出来的解是406239826673520。
sum_(n=0)^15(6^n)*6! 首先6个字母顺序可以不考虑,只要最后再乘上6!就可以了.
而对于26个字母选择6个字母,但是没有相邻的字母.
我们用数字1~26来代替,假设这6个字母递增为$a_1,a_2,...,a_6$
那么我们改成$a_1-1,a_2-2,...,a_6-6$那么相当于$0~20$中选择6个不同的数字的数目,所以为$C_21^6$
所以最终结果是$C_21^6*6!\quad={21!}/{15!}=39070080$ 好像是从26个人抽6套经济适用房,2连号的概率 验证了下mathe的结果是对的^^
{
int count = 0;
int a;
for( a = 1; a < 17; ++a )
for( a = a + 2; a < 19; ++a )
for( a = a + 2; a < 21; ++a )
for( a = a + 2; a < 23; ++a )
for( a = a + 2; a < 25; ++a )
for( a = a + 2; a < 27; ++a )
++count;
int ret = count * 6 * 5 * 4 * 3 * 2;
}
页:
[1]