分而治之,一种著名的递归式问题解决方法。D&C(divide and conquer)

这篇博客介绍了如何运用分治策略(D&C)来解决将一块长1680m,宽640m的土地均匀划分成正方形方块的问题。通过不断缩小问题规模,找到最大可用的正方形方块,最终确定了最大方块尺寸为80m*80m。这一过程类似于欧几里得算法,通过不断迭代直至满足基线条件。
摘要由CSDN通过智能技术生成

示例1:有一小块土地,长1680m, 宽640m, 要将这块地均匀的分成n个方块(正方形),且分出的方块要尽可能大。

使用D&C策略解决问题的过程包括2个步骤。

(1)找出基线条件,这种条件必须尽可能简单。

(2)不断将问题分解(或者说缩小规模),直到符合基线条件。

1.首先,确定基线条件。最容易处理的情况是,一条边的长度是另一条边的整数倍。

例如,一边长25m, 另一边长50m, 那么可使用的最大方块为25m*25m, 换言之,可以将这块地分成两个这样的方块。

2.确定递归条件,每次递归调用都必须缩小问题的规模。如何缩小前述问题的规模呢?我们首先找出这块地可容纳的最大方块。

长1680m, 宽640m,可以划出的最大方块是长640,宽640,同时余下一块地,长1040,宽640,这时,还可以划出一个最大方块,同样也是长640,宽640,同时余下一块地,长640,宽400,

此时,将均匀划分长1680m, 宽640m土地的问题,简化成了均匀划分长640,宽400土地的问题。

 同时,用于这小块地的最大方块,也是适用于整块地的最大方块。(欧几里得算法, 这个原理不展开来讲,有兴趣的可以百度了解。)

 再次使用同样的算法,对于长640,宽400的土地,可以从中划出的最大方块长400,宽400,余下土地长400, 宽240;

对于长400, 宽240的土地,可以从中划出的最大方块长240,宽240,余下土地长240, 宽160;

对于长240, 宽160的土地,可以从中划出的最大方块长160,宽160,余下土地长160, 宽80,因为160是80的整数倍,将这块土地分成两个方块后,将不会余下任何土地。

因此,对于最初的那片 长1680m, 宽640m土地,适用的最大方块为80m*80m.

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值