FreeWheel笔试题

一、推理题

题目描述:100个罪犯站成一纵列,每人头上随机带上黑色或白色的帽子,各人不知道自己帽子的颜色,但是能看见自己前面所有人帽子的颜色。然后从最后一个犯人开始,每人只能用同一种声调和音量说一个字:“黑”或“白”,如果说中了自己帽子的颜色,就存活,说错了就拉出去砍了,说的答案所有犯人都能听见,是否说对,其他犯人不知道,在这之前,所有犯人可以聚在一起商量策略,问如果犯人都足够聪明而且反应足够快,100个人最大存活率是多少?


答案:最后一个人可以看到前面99个人的帽子颜色,99顶帽子必定有一种颜色的帽子是奇数顶,最后一个人只需要说出奇数顶帽子的颜色,那么第99个人通过看前面98个人两种颜色帽子的奇偶性就可以判断出自己头上帽子的颜色。这种方案下前99个人100%存活率,最后一个人50%存活率。


二、编程题

题目描述:给一个数N,列举所有N位二进制的数。要求:1)不能有重复和遗漏的。2)相邻的数只能有一位不同。


思路:不妨用Q(2)表示2位二进制数的情况。列举如下:

00

01

11

10

那么Q(3)的规律是0加上Q(2)的正序,和1加上Q(2)的倒序,列举如下

000

001

011

010

-----

110

111

101

100


基于这个思想可以用递归解决编码问题。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值