直通BAT-排列组合概率问题

组合题目分类

1 以高中数学为基础的古典概率计算方法。

2 斐波那契数和卡特兰数。

3 以选择题居多。

案例一

在6*9的方格中,以左上角为起点,右下角为终点,每次只可以向下走或向右走,请问一共有多少种不同的走法。

从左上角走到右下角,必然会向下走5步,向右走8步,则可以有C_{13}^{5}C_{13}^{8},即1287种。

案例二

ABCDEFG七人站队,要求A必须在B的左边,但不要求一定相邻,请问共有多少种排法?第二问,如果要求A必须在B的左边,并且一定要相邻,请问一共有多少种排法。

第一问:7!中一半情况是A在B的左边,一半情况是A在B的右边。共7!/2=2520种。

第二问:把AB看作一个人,共有6!=720种情况。

案例三

6个人排成一排,要求甲与乙不相邻,并且甲与丙不相邻的排法数为多少?

法一  全排列共有6!=720种

甲与乙相邻共有2*5!=240种,

甲与丙相邻共有2*5!=240种。这时简单以为答案为720-240-240=240就错了。因为甲与乙相邻和甲与丙相邻有重叠。

直通BAT-排列组合概率问题_第1张图片

中间有2*4!=48种。

所以最后的结果为720-240-240+48=288

法二

甲在左侧开头时,有3*4!=72种。

甲在右侧开头也有3*4!=72种。

甲不在开头结尾时,

直通BAT-排列组合概率问题_第2张图片

甲的邻居为剩下的3个中选取2个,A_{3}^{2}=6,剩下的3个人全排列,即6*3!=36种,又一共有4个位置,所以总数为36*4=144种。

144+72+72=288种。

案例四

10个相同的糖果,分给3个人,每人至少一颗,问有多少种分法。

10个糖果,9个空隙,相当于在9个空隙种插隔板,共有C_{9}^{2}=36种。

案例五

10个不同的球放入到3个不同的桶里有多少种方法。

注意与案例四的区别:球和桶都是不同的。共有3^10=59049种。

案例六

有10颗糖,如果每天至少吃一颗,吃完为止,问有多少种不同的吃法。

若想1天吃完,方法只有1种。

若想2天吃完,方法有C_{9}^{1}=9种   相当于9个空隙插一隔板。

......

若想10天吃完,方法有C_{9}^{9}=1种,在9个空隙中插9个隔板。

C_{9}^{0}+C_{9}^{1}+C_{9}^{2}+C_{9}^{3}+C_{9}^{4}+C_{9}^{5}+C_{9}^{6}+C_{9}^{7}+C_{9}^{8}+C_{9}^{9}=512=2^{9}

C(N,0)+C(N,1)+C(N,2)+C(N,3)+......C(N,N)=2的N次方。

卡特兰数

案例七

假设有n对左右括号,请求出合法的排列有多少个?合法是指每一个括号都可以找到与之配对的括号,比如n=1时,()是合法的,但)(是不合法的。

排列数就是卡特兰数:C_{2n}^{n}-C_{2n}^{n-1}=C_{2n}^{n}*1/(n+1)

案例八

n个数进出栈的顺序有多少种?假设栈的容量无限大。

2n个人排队买票,n个人拿5块钱,n个人拿10块钱,票价是5块钱1张,每个人买一张票,售票员手里没有零钱,问有多少种排队方法让售票员可以顺利买票。

这也是一个典型的卡特兰数问题,在任意一个队列中(队列人数可以是1-2n),只要5块钱的人数大于等于10块钱的人数就可以。

案例九

求n个无差别的节点构成的二叉树有多少个不同的结构?

假设n个无差别的节点构成不同的结构数位f(n)

f(0)表示空树,所以规定种数为1种

把n个节点排列为一排,把节点1作为根节点,左子树为空,右子树为n-1个节点构成的二叉树。所以以1节点为根节点时,结构数为1*f(n-1)

以节点2作为根节点时,结构数位1*f(n-2)

以节点3作为根节点时,结构数位f(2)*f(n-3)

......

卡特兰数重要公式:

当有f(n)=f(0)*f(n-1)+f(1)*f(n-2)+f(2)*f(n-3)+......f(n-1)*f(0)且f(0)=1,f(1)=1,f(2)=2,f(3)=5时

f(n)=f(0)*f(n-1)+f(1)*f(n-2)+f(2)*f(n-3)+......f(n-1)*f(0)=C_{2n}^{n}/(n+1))

案例十

12个高低不同的人,排成2排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排队方式有多少种?

这其实也是一个隐藏很深的卡特兰数。

首先把12个人按照由低到高的顺序排成一排,把站在前排的人标号为0,站在后排的人标号为1。也就是说任意长度的一排(1-12)中0的个数一定大于等于1的个数,不然就会出现后排比前排低的情况。

案例十一

有n个信封,包含n封信,现在把信拿出来,再装回去,要求每封信不可以装回它原来的信封,问有多少种装法?

n封信的问题用f(n)来考虑答案

假设第n封信放入了第i个信封

情况一:第i封信放进了第n个信封,后续为f(n-2)问题

情况二:第i封信没进入第n个信封,后续为f(n-1)问题

n封信放入第i个信封,i的选择有(n-1)种

所以总数为f(n)=(n-1)*(f(n-1)+f(n-2))

采用倒推法:f(1)=0,f(2)=1;

概率题目分类

1 在笔试面试中常作为客观选择题目出现

2 在笔试中往往出现概率,期望的计算。

3 利用古典概率进行计算。(组合数学)。

概率的应用:

1 利用随机来改进著名算法(快速排序)。用概率来得到一个较好的划分值,最终使得算法的期望时间复杂度为O(nlogn)。概率一般用于打乱输入,打乱输入之后算法的复杂度就和数据的分布没有关系了。

2 随机数发生器。

案例一

8只球队,有3个强队,其余都是弱队,随机把它们分为4组比赛,每组两个队,问2强相遇的概率?

注意组合与排列的区别,组合不在意顺序即AB与BA是一样的,但在排列中AB与BA不一样。

1 首先求出8只球队分为四组比赛的方法数

任选一支球队,会有7只球队与其组队,再任选一支球队,就有5只与其组队,再任选一只球队,有3只与其组队,最后2个为一个队伍。

有7*5*3=105种

2 没有2强相遇的方法数

有5个弱队,3个强队,我们可以在5个弱队中选择3只与强队匹配,剩下2队自行匹配。

C_{5}^{3}*A_{3}^{3}=60

所以,2强相遇的概率为(105-60)/105=3/7

案例二

三只蚂蚁从正三角形的三个顶点沿着边移动,速度相同,问他们碰头的概率?(可能只要有2只蚂蚁碰面就可以吧)

沿着边走有顺时针和逆时针2种,共有2^{3}=8种,而如果三只蚂蚁都是顺时针或都是逆时针则不会相遇,这种有2种。所以概率为6/8=3/4

案例三

某地区重男轻女,一个家庭如果生出一个女孩就一直生,直到生出男孩就停止生育。假设一胎只生出一个孩子,问时间足够长之后,男女比例会变为多少?

假设这一地区有n个家庭

n/2的家庭第一胎就生出男孩,所以只有1个孩子

有n/4的家庭先生一个女孩,再生一个男孩,所以有2个孩子

有n/8的家庭先生2个女孩,再生一个男孩,有3个孩子

......

孩子总数为:n/2+n/4*2+n/8*3+n/16*4+......=2n

每个家庭都有1个男孩,所以2n个孩子中,男孩子个数为n, 女孩子也是n。所以比例为1:1。

案例四

给定一个等概率随机产生1-5的随机函数,除此之外,不可以使用额外的随即机制,请实现等概率产生1-7的随机函数。

1 我们已经有等概率随机产生1,2,3,4,5的随机函数

2 根据步骤1得到的结果减去1,将得到f()-->0,1,2,3,4

3 f()*5等概率随机产生0,5,10,15,20

4 f()*5+f()  等概率产生0,1,2,3,4,......24的随机数。注意式中的f()是分别调用的。

5 如果步骤4产生的数大于20,则重复步骤4,21-24之间的数就会平均分配到0-20之间 ,直到产生的结果在0-20之间。

6 步骤5的结果会将等概率随机产生0-20,所以步骤5的结果%7之后会等概率产生0-6

7 将步骤6得到的结果加1即可

案例五

给定一个长度为N且没有重复元素的数组arr和一个整数M,实现函数等概率随机打印arr中的M个数。

首先在下标0-N-1之间随机找到一个数,打印,之后把该数与下标为N-1的数交换。

之后在下标0-N-2之间随机找一个数,打印,再把该数与下标为N-2的数交换。

直到打印了M个数为止。

案例六 

直通BAT-排列组合概率问题_第3张图片

直通BAT-排列组合概率问题_第4张图片

直通BAT-排列组合概率问题_第5张图片

直通BAT-排列组合概率问题_第6张图片

直通BAT-排列组合概率问题_第7张图片

直通BAT-排列组合概率问题_第8张图片

 

 

 

 

 

你可能感兴趣的:(名企春招实习备战攻略)