面试中常考的数学题——截木棍、圆上取点、赛马、红蓝墨水,测试毒药、坐到正确座位问题

文章目录

1.将一根木棒截成三段,问能够组成三角形的概率。

来源:link

设线段长度为a,任意分成三段长分别为x,y和a-x-y,显然有x>0,y>0,a-x-y>0,将这三个约束条件画到(x,y)二维平面坐标系上,这三条直线围成了一个直角三角形即为可行域(图1)。

而这三段长能构成三角形的条件是:任意两边之和大于第三边,也就是下面三个不等式得同时成立:
x + y > a - x - y (x + y > a/2)
x + a - x - y > y (y < a/2)
y + a - x - y > x (x < a/2)

我们把上面三个不等式也画在平面直角坐标系中,可以看到可行域为图2中绿色的小三角形,其面积为:(1/8)a^2 ,占整个三角形的1/4。

故此三段能构成三角形的概率为1/4。

2.在圆上任取三点,问能够组成锐角、直角、钝角三角形的概率。

来源:link

圆周上任意取三点组成直角三角形的概率为0!
不失一般性,我们在一个单位圆上做分割,下图中两点之间的弧长用对应的字母表示:

这时,根据圆周角与所夹弧长的关系可以把该问题转化为几何概型:

三角形为锐角三角形的充要条件是三条弧长都小于π;
三角形为直角三角形的充要条件是三条弧长只有一条等于π;
三角形为钝角三角形的充要条件是三条弧长只有一条大于π。
将几何概型表现在坐标轴上:

其中,ΔAOB的所围成区域的点集表示了全概率空间,S3 表示组成锐角三角形的事件,根据面积比可以得到概率为; 而三条红线在ΔAOB中所截断线段的长度代表组成直角三角形的事件,其概率为0;S1+S2+S44
表示组成钝角三角形的事件,其概率为3/4.

3.共有25匹马,找出最快的3匹,只有5个赛道,每次比赛只能得到5匹马的速度排序,最少需要多少次比赛。

link

在这里插入图片描述
在这里插入图片描述

4 有两瓶红蓝墨水,体积一样,现在从红墨水中舀一勺加入蓝墨水中,搅拌均匀后,在从蓝墨水中舀一勺加到红墨水中,试问这两瓶墨水哪瓶纯度更高。

答案:纯度一样高。
在这里插入图片描述

5 已知32瓶药水中含有一瓶毒药,小白鼠喝了之后1小时内会出现中毒现象,先用若干小白鼠试药,问一小时内最少需要多少只小白鼠才能试出哪瓶有毒。

   思想就是将药进行编号,并转化成二进制序列,每只老鼠代表其中的一位,根据该位的值,来表明老鼠是否喝了该瓶药。以该题为例,首先对药进行编号,从1开始直到31,第32瓶不需要测,如果喝了其中的31瓶,没有老鼠死亡,那肯定是这瓶没试的药有毒;比如当药的编号为11时,其对应的二进制序列1011,从右边数起,第一位为1,表明第一只老鼠喝了这瓶药,第二位为0,表明第二只老鼠没有喝这瓶药,其他以此类推。当第1、2、4三只老鼠死亡时,就知道编号为11的药有毒。当要测31瓶药时,则需要5位二进制,因为五位二进制正好可以表示00001,00010,…,11111,对应十进制即时1至31。

6 有n个座位,乘客排队上车,对号入座,假定第一个乘客的车票不慎丢失,该乘客任选一个座位坐下,后面的乘客持票上车,如果自己的座位空着,则坐在自己座位上,否则任选一个座位坐下。计算最后一个乘客能做到自己位置的概率。

当只有一个乘客时,p = 1, 当有两个乘客时 p = 1 2 \frac{1}{2} 21,当乘客数大于2人时,计算方式如下:
    分两种情况讨论。
       1. 第一个乘客坐到了自己的位置上;该乘客每一个位置的概率都是 1 n \frac{1}{n} n1,因此他做到自己位置的概率是 1 n \frac{1}{n} n1,此种情况下每个乘客都能做到自己的位置上,因此最后一个乘客能做到自己位置的概率即为 1 n \frac{1}{n} n1
       2. 该乘客没有做到自己的位置上;假设它做到了第i个上车乘客的位置,那么第2个到第i-1个乘客都能做到自己的位置上,此时这个问题就变成了(n-i+1)个乘客选座的问题。设p(k)为k个乘客选座问题,最后一个乘客能成功做到自己位置的概率。枚举i的取值,既有 p(n-1) + (n-2) + … + p(2),当 i=n时,即第一个乘客做到了最后一个上车乘客的位置,那么此时最后一个上车乘客做到自己位置的概率为0。由于第一个乘客选择每个座位的概率都是 1 n \frac{1}{n} n1,因此这种情况下,最后一个乘客做对自己位置的概率为
              1 n ∗ ( p ( n − 1 ) + ( n − 2 ) + . . . . + p ( 2 ) ) \frac{1}{n} * (p(n-1) + (n-2) + .... + p(2)) n1(p(n1)+(n2)+....+p(2))

综上,最后一个乘客能坐对位置的概率为:
              P = 1 n \frac{1}{n} n1 + 1 n ∗ ( p ( n − 1 ) + ( n − 2 ) + . . . . + p ( 2 ) ) \frac{1}{n} * (p(n-1) + (n-2) + .... + p(2)) n1(p(n1)+(n2)+....+p(2))
可以通过上式递推得到: p ( n ∣ n > = 2 ) = 1 2 p(n|n>=2) = \frac{1}{2} p(nn>=2)=21

7 有两个无限大且不透明的箱子,100个白球和100个黑球。100个白球和100个黑球可以任意放置在两个箱子里,求能摸到黑球的最大概率。

假设一个箱子放x个黑球,y个白球,那么另外一个箱子则放 100 − x 100 - x 100x个黑球, 100 − y 100 - y 100y个白球,摸到黑球的概率为:

p = 1 2 ∗ ( x y + x + 100 − x 200 − x − y ) p=\frac{1}{2}*(\frac{x}{y+x} + \frac{100-x}{200-x-y}) p=21(y+xx+200xy100x) x ϵ [ 0 , 100 ] , y ϵ [ 0 , 100 ] x\epsilon[0, 100], y\epsilon[0, 100] xϵ[0,100],[0,100]
分别对 x , y x, y x,y求导,令导数为0,求出的结果是 x = y x=y x=y,但这个只是取到概率最大的必要条件,此时 p = 1 2 p=\frac{1}{2} p=21,可以很明显的发现此时并不是最大概率,比如一个箱子只放黑球,另外一个箱子放白球及剩余的黑球,这种情况下,概率最少也是 1 2 \frac{1}{2} 21,因为选取那个只放黑球的箱子的概率就是 1 2 \frac{1}{2} 21,到这这个题目的最终答案差不多久出来了,我们在一个箱子放一个黑球,剩下的球放一个箱子,最终取到黑球的概率是
p = 1 2 ∗ ( 1 + 99 199 ) ≈ 0.7487 p=\frac{1}{2}*(1 + \frac{99}{199})\approx0.7487 p=21(1+19999)0.7487

8 概率题:给定一副有去除大小王的扑克牌,随机抽7张牌,里面有炸弹的概率。

随机抽7张牌,可能的出现的情况:
T = C ( 52 7 ) T = C\binom{52}{7} T=C(752)
含有炸弹的情况,7张牌,出现炸弹的情况可能有13种,即四张相同的牌(A-K),其他三张牌从剩余的48张里任选,有 C ( 48 3 ) C\binom{48}{3} C(348)中情况,两者相乘,即为可能出现炸弹的情况,最终的概率为:
p = 12 ∗ C ( 48 3 ) C ( 52 7 ) ≈ 0.00155 p=12*\frac{C\binom{48}{3}}{C\binom{52}{7}}\approx0.00155 p=12C(752)C(348)0.00155

9 箱子中有100个红球,100个黑球,现在从中抽出两个球,如果两个球颜色一样,则放进一个红球,否则放进一个黑球,求箱子中剩下的球。

用0表示红球,1表示黑球,抽出两个球,对应了三种情况:

  1. 两个1 1, 放回 0
  2. 两个 0 0 ,放回0
  3. 一个1 一个0,放回1

上面三种情况正好对应了逻辑异或运算,即

  1. 1 ^ 1 = 0
  2. 0 ^ 0 = 0
  3. 1 ^ 0 = 1
    异或运算的一个特点是与运算顺序无关,根据这一特性,我们分别算出100个红球、黑球的,即100个1、100个0对应的异或结果,然后在将它们的结果进行异或,即为最终的结果。为了找到规律,我们可以尝试着做如下运算:
    1 ^ 1 = 0
    1 ^ 1 ^ 1 = 0 ^ 1 = 1
    1 ^ 1 ^ 1 ^ 1 = 0 ^ 1 ^ 1 = 1 ^ 1 = 0
    1 ^ 1 ^ 1 ^ 1 ^ 1 = (1 ^ 1 ^ 1 ^ 1) ^ 1 = 0 ^ 1 = 1

    0 ^ 0 = 0
    0 ^ 0 ^ 0 = 0
    可以发现偶数个1进行异或结果为0,奇数个1异或结果为1,那么可以得出100个1异或结果为0,同理100个0进行异或结果也为0,最后也就是两个0进行异或,结果为0,0代表红球,即最终剩下的球为红球。

10 一个不透明的箱子中有x个红球,y个蓝球,现在每次从中抽取一个球,如果取到的球为红色,放回继续抽,如果为蓝色,则停止,问平均结束抽取的次数。

p 1 , p 2 p_1,p_2 p1p2分别为一次抽到红球、蓝球的概率,则
p 1 = x x + y p_1=\frac{x}{x+y} p1=x+yx
p 2 = y x + y p_2=\frac{y}{x+y} p2=x+yy
则总共抽取的次数为:
E = 1 ∗ p 2 + 2 ∗ p 1 ∗ p 2 + 3 ∗ p 1 2 ∗ p 2 + 4 ∗ p 1 3 ∗ p 2 + . . . . + n ∗ p 1 n − 1 ∗ p 2 = p 2 ( 1 + 2 ∗ p 1 + 3 ∗ p 1 2 + 4 ∗ p 1 3 . . . . + n ∗ p 1 n − 1 ) E=1*p_2 + 2*p_1*p_2 + 3 * p_1^2*p_2 + 4*p_1^3*p_2 + ....+n*p_1^{n-1}*p_2=p_2(1 + 2*p_1+3*p_1^2 + 4*p_1^3 ....+n*p_1^{n-1}) E=1p2+2p1p2+3p12p2+4p13p2+....+np1n1p2=p2(1+2p1+3p12+4p13....+np1n1)
S = 1 + 2 ∗ p 1 + 3 ∗ p 1 2 + 4 ∗ p 1 3 . . . . + n ∗ p 1 n − 1 S=1 + 2*p_1+3*p_1^2 + 4*p_1^3 ....+n*p_1^{n-1} S=1+2p1+3p12+4p13....+np1n1
则有
E = S − p 1 ∗ S = 1 + p 1 + p 1 2 + p 1 3 + . . . . + p 1 n − 1 − n ∗ p 1 n = 1 − p 1 n 1 − p 1 + n ∗ p 1 n E = S - p_1*S=1 + p_1 + p_1^2 + p_1^3 + ....+p_1^{n-1}-n*p_1^n=\frac{1-p_1^n}{1-p_1}+n*p_1^n E=Sp1S=1+p1+p12+p13+....+p1n1np1n=1p11p1n+np1n
由于 0 < p 1 < 1 0<p_1<1 0<p1<1 n → + ∞ 时, p 1 n → 0 n\rightarrow+\infty时,p_1^n\rightarrow0 n+时,p1n0
n → + ∞ , n ∗ p 1 n → 0 n\rightarrow+\infty,n*p_1^n\rightarrow0 n+np1n0,证明如下:

在这里插入图片描述
E = 1 1 − p 1 = 1 p 2 E=\frac{1}{1-p_1}=\frac{1}{p_2} E=1p11=p21
参考:https://math.stackexchange.com/questions/197522/how-to-prove-that-lim-n-to-infty-n-xn-0-when-0x1

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java面试,常常会涉及到设计模式的问题。以下是一些常见的设计模式,面试时可能会被问到的: 1. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。 2. 工厂模式(Factory Pattern):定义一个用于创建对象的接口,但由子类决定要实例化的类是哪一个。 3. 观察者模式(Observer Pattern):定义了一种一对多的依赖关系,使得当一个对象改变状态时,所有依赖它的对象都会被通知并自动更新。 4. 策略模式(Strategy Pattern):定义一系列算法,将它们封装起来,并且使它们可以相互替换,让算法的变化独立于使用算法的客户。 5. 装饰者模式(Decorator Pattern):动态地给一个对象添加额外的职责,就增加功能来说,装饰者模式比生成子类更加灵活。 6. 适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 7. 原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 8. 命令模式(Command Pattern):将一个请求封装为一个对象,使得可以用不同的请求对客户进行参数化。 9. 外观模式(Facade Pattern):为子系统的一组接口提供一个统一的接口,定义了一个高层接口,这个接口使得这一子系统更加容易使用。 10. 模板方法模式(Template Method Pattern):定义一个操作算法的骨架,将一些步骤延迟到子类。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 这些只是一部分常见的设计模式,面试时还可能会问到其他设计模式,所以建议在准备面试前多学习和了解各种设计模式的概念、应用场景和实现方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值