文章目录
题目1
一堆硬币共有n枚,甲乙两人轮流从其中取走1枚或2枚
拿到最后一枚的获胜.请问共有多少种不同的取法?在什么情况下先拿的人一定能赢?
取法:
n=1,一种
n=2,两种
...
n=k,k种
n=k+1,比n=k的情况多一种,即k+1种
做法:
n不能被三整除时,先拿的一定赢
做法:
- 第一个人第一次只需要取走1个或者2个,使得剩下的硬币数为3的倍数;
- 接下来,第二个人拿k个硬币,则第一个人就拿3-k个硬币;
- 最后,最后一枚硬币就是第一个人拿了。
题目2
用天平(只能比较,不能称重)从一堆小球中找出其中唯一一个较轻的,使用 x 次天平,
最多可以从 y 个小球中找出较轻的那个,求 y 与 x 的关系式。
思路如下:
- 将小球拆分为个数相同的三分,找出其中任意两份进行比较。
- 如果两份重量相等,则较轻的小球必然在第三份中,再次对第三份进行拆分比较。
- 如果比较的其中一份较轻,则较轻的小球必然在重量较轻的小球堆了,再次对这份小球进行拆分比较。
通过上述思想,将小球拆分为3份,在相同的比较次数下,可提高小球的比较数量,因此,其y与x的关系式为:y = 3^x。
题目3
题目:有一个桶,里面有白球、黑球各100个,人们必须按照以下的规则把球取出来:
1、每次从桶里面拿出来两个球;
2、如果是两个同色的球,就再放入一个黑球;
3、如果是两个异色的球,就再放入一个白球;
问:最后桶里面只剩下一个黑球的概率是多少?
答案是100%。
思路:
(黑,黑) -> 黑 :黑球减少1个
(白,白) -> 黑 :白球损失2个,黑球增加1个
(白,黑) -> 白 :白色球数量不变
(黑,白) -> 白 :白色球数量不变
可见:
- 白球变化的数量是偶数(0或2)
- 黑球变化的数量为奇数
所以最后不可能剩余1个白球,那么必然是剩余黑球了。
扩展:假如各有99个球呢。
《编程之美》的概率题:一个桶里面有白球、黑球各100个,现在按下述规则取球 - 王腾涛 - CSDN博客
题目4:海盗分金币
情形1:反对票大于支持票时,提出方案者被杀
5个海盗(A、B、C、D、E)分N个金币的问题。先抽签决定好五个人的提出分金币方案顺序,接下来第一个人A提出自己方案,全体活着的人投票,++反对票大于支持票时++,提出方案者被杀;之前抽签决定的第二个人B再提方案,活着的人再投票,同样规则决定提方案者会不会被杀;以此类推。问:++第一个人提出怎样的方案,才能保证自己不被杀++?
前提条件:每个海盗理性地遵循两个原则:
- 选择自己分得金币数最多的方法
- 如果两个方案中自己分得的金币数一样多,就更倾向于杀人数最多的方案
思路:从后往前推理
- 剩D,E时,D会将所有金币N占为己有,即分配方式为 D:N, E:0
- 剩C、D、E时,C要争取E的一票,此时分配方式为:C:N-1, D:0, E: 1
- 剩B、C、D、E时,B要争取D的一票,此时分配方式为:B:N-1, C:0, D:1, E: 0
- 剩A、B、C、D、E时,A要争取C、E的一票,此时分配方式为:A:N-2, B:0, C:1, D:0, E: 1
情形2:反对票大于等于支持票时,提出方案者被杀
思路:从后往前推理
- 剩D,E时,不管D怎么分,E都会把D投死
- 剩C、D、E时,D为了避免自己被投死,D肯定会保C,故此时分配方式为:C:N, D:0, E:0
- 剩B、C、D、E时,B要争取D、E的投票,因为上述情况中,D、E没有收益,故这里B要让D、E有收益(不然D、E会倾向于杀人),此时分配方式为:B:N-2, C:0, D:1, E:1
- 剩A、B、C、D、E时,A要争取C、和D或E的一票,此时分配方式为:A:N-3, B:0, C:1, D:2, E: 0或者:A:N-3, B:0, C:1, D:0, E: 2
题目5:碰面问题
子题目1
两个人约好12:00-13:00之间见面,先到的人等后到的人不超过15分钟,等待时间超过15分钟,先到的人会离去。
问两人相遇的概率。
思路:
- 设x, y分别为两人出现的时刻,15分钟即1/4小时
- 则两人相遇时,有: ∣ y − x ∣ ≤ 1 / 4 |y-x|\leq 1/4 ∣y−x∣≤1/4,即:
− 1 4 ≤ y − x