算法谜题(一)——答案

谜题一(狼羊菜过河):

用字母M,w,g和c分别代表人(始终和船在一起)、狼、羊和菜,下图描述了两种渡河方案


评论:七次渡河是最小的可能解

谜题二(手套选择):

答案:问题a和b的答案分别是11和19

a:最坏的情况是,在挑出至少一双匹配的手套之前,你已经挑出了5只黑手套、3只棕手套、2只灰手套,都是同一只手的,接下来挑出一只必然会和某一只匹配。

b:最坏的情况是,在每个颜色中都挑出一双匹配的手套之前,你已经挑出了全部的10只黑手套,全部的6只棕手套和2只同一只手的灰手套,接下来挑出一只必然匹配

谜题三(矩形分割):

答案:一个矩形可以被切割成n个直角三角形,n为大于一的任意整数

当n=2时,矩形可以沿着自身对角线进行切割,如图4.2a。如果n>2,第一刀可以沿着矩形的对角线切割,后序的n-2刀每一刀都是将已有的直角三角形切成两个新的直角三角形,方法是沿着垂直于斜边的高线切割,如下图4.2b。

我们可以考虑n为偶数的情况:现将矩形切割成n/2个更小的矩形(比方说,平行于矩形底边横切n/2-1刀),然后沿着每个小矩形的对角线将他们切成两个直角三角形(图4.2c)。如果n是奇数,我们可以用前面的方法先将矩形切成n-1个直角三角形,然后选择其中一个直角三角形沿着斜边上的高线再切一刀。



评论:第一种方法是基于增量法,有底向上的减一策略,第二种方法可以看做是一个变而治之的例子

谜题四:士兵摆渡

答案:首先,两个男孩乘船到达岸的另一边,然后其中一个男孩划船返回,这时,一个士兵可以划船去对岸呆在那里,让另一个男孩划船返回。这四次摆渡简化了整个问题的规模——需要摆渡的士兵的数目——减少了1个。因此,这四次摆渡会重复25遍,即需要100次摆渡解决。(可以推广至4n)

谜题五:行列变换

答案:不能

行变换维持行上的数字不变,列变换维持列上的数字不变,例如,5和6在变换前阵列的同一行,但在变换后的阵列却在不同行上


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值