花盆摆放问题

来自计算思维百科
跳转至: 导航搜索
花盆摆放问题1.jpg

园艺公司在用鲜花摆放图案或文字时,为了节约成本,总是想用最少的花盆数量摆放出需要的图案。下面考虑这个问题,怎样用较少的数量摆放出需要的图形。如果要求用10盆花摆放出5行,且每行要有4盆,应怎样摆放?要摆成5行,每行四盆的形状,我们大脑里出现的第一个图形应该是下图这样子的:

花盆摆放问题2.png

但从这个图中可以明显看出,需要20盆花,只有10盆花怎么摆放呢?

解决方案

如果按照上图的构想来摆放,显然是无法解决问题的。因此,我们就需要转换思维。在上图中,每行是互相平行的,每列也是对齐的,这是最常见的形式。可是,现在并没有要求每行要互相平行,也没要求列要对齐。现在只有10盆花,可又要5行,每行4盆,那么有部分花一定是共用的。也就是说有些花既在这一行也在另一行,这样一盆花就可以当两盆用。如下图,横向看做一行,纵行看做一行。那么2行4盆,只需要7盆而不是8盆:

花盆摆放问题3.png

同样也可以斜着排列,如下图:

花盆摆放问题4.png

由此,我们可以得到这样一个排列满足摆放要求。如下图:

花盆摆放问题5.png

可以体现的计算思维

从上面的花盆摆放中,我们可以发现解决问题的时候,学会转换思路是十分重要的,当按照一般的方法不能解决问题时,我们就可以尝试将问题转换成另外一个相对容易可解的问题去寻找答案。在计算机科学中,很多算法和设计都利用了这一思想,即将复杂看似无解的问题转化为一个可解更简单的问题去解决,如利用霍纳法则解方程组,这些都是计算思维中转化思想的体现。