标签:数学
在排列组合中,对于将不可分辨的球装入到可以分辨的盒子中而求装入方法数的问题,常用隔板法。隔板法在排列组合中的应用技巧
例1.求方程的正整数解的个数。
[分析]
将10个球排成一排,球与球之间形成9个空隙,将两个隔板插入这些空隙中(每空至多插一块隔板),规定由隔板分成的左、中、右三部分的球数分别为x、y、z之值(如下图)。则隔法与解的个数之间建立了一一对立关系,故解的个数为(个)。实际运用隔板法解题时,在确定球数、如何插隔板等问题上形成了一些技巧。下面举例说明。
技巧一:添加球数用隔板法。
例2.求方程的非负整数解的个数。
[分析]
注意到x、y、z可以为零,故上题解法中的限定“每空至多插一块隔板”就不成立了,怎么办呢?只要添加三个球,给x、y、z各一个球。这样原问题就转化为求的正整数解的个数了,故解的个数为(个)。
[点评]
本例通过添加球数,将问题转化为如例1中的典型隔板法问题。
技巧二:减少球数用隔板法:
例3.将20个相同的小球放入编号分别为1,2,3,4的四个盒子中,要求每个盒子中的球数不少于它的编号数,求放法总数。
解法1:先在编号1,2,3,4的四个盒子内分别放0,1,2,3个球,剩下14个球,有1种方法;再把剩下的球分成4组,每组至少1个,由例1知方法有(种)。
解法2:第一步先在编号1,2,3,4的四个盒子内分别放1,2,3,4个球,剩下10个球,有1种方法;第二步把剩下的10个相同的球放入编号为1,2,3,4的盒子里,由例2知方法有(种)。
[点评]
两种解法均通过减少球数将问题转化为例1、例2中的典型问题。
技巧三:先后插入用隔板法。
例4.为宣传党的十六大会议精神,一文艺团体下基层宣传演出,准备的节目表中原有4个歌舞节目,如果保持这些节目的相对顺序不变,拟再添两个小品节目,则不同的排列方法有多少种?
[分析]
记两个小品节目分别为A、B。先排A节目。根据A节目前后的歌舞节目数目考虑方法数,相当于把4个球分成两堆,由例2知有种方法。这一步完成后就有5个节目了。再考虑需加入的B节目前后的节目数,同理知有种方法。故由分步计数原理知,方法共有(种)。
[点评]
对本题所需插入的两个隔板采取先后依次插入的方法,使问题得到巧妙解决。
HDU1410
公式推导:
设:
枫之羽为x,氢氧化铜为y
x需要打n次才能打败y
y需要打k次才能打败x
一个回合中,x打y的概率 = y打x的概率 = 0.5
要x赢,则x必须打n次,而y可以打0次,1次,2次……k-1次,而且最后一次当然必须是x打的,所以(设y打i次),那么一共打n+i次,要在前n+i-1次选i次让x被y打
所以x赢的概率 =
C(n+0-1,0)*0.5^n + C(n+1-1,1)*0.5^(n+1) + …… + C(n+i-1,i)*0.5^(n+i)……
组合数过大,于是用取对数方法
<span style="font-size:12px;">#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <algorithm> #include <math.h> using namespace std; #define L __int64 #define M 1005 #define inf 0x3fffffff int main() { int h1, h2, a1, a2, n, k, i; double c, res; while (~scanf ("%d%d%d%d", &h1, &h2, &a1, &a2)) { n = (h2 + a1 - 1) / a1; k = (h1 + a2 - 1) / a2; res = pow (0.5, n); c = 0; for (i = 1; i < k; i++) { c = c + log10 (n+i-1.0) - log10 (i+0.0); res += pow (10.0, c + (n+i)*log10(0.5)); } printf ("%.4f\n", res*100); } return 0; }</span>
标签:数学
原文地址:http://blog.csdn.net/gg_gogoing/article/details/43984869