引子
数与形是数学中两个最古老而又最基本的对象,数形结合又是一种重要的数学思想。
在当今信息学竞赛中,某些纷繁复杂的试题背后,往往蕴含着丰富的几何背景,而计算几何类问题却又需要借助计算机强大的实数运算能力。正如华罗庚先生所说的“数形结合千般好”,在算法和程序设计中,巧妙地运用数形结合思想,可以顺利的破解问题,化难为易,找到问题的解题思路。
数形结合思想常包括以形助数、以数助形两个方面。
以形助数
正如前文所述,一些试题中繁杂的代数关系身后往往隐藏着丰富的几何背景,而借助背景图形的性质,可以使那些原本复杂的数量关系和抽象的概念,显得直观,从而找到设计算法的捷径。
[例一]Raney引理的证明
[题意简述]
设整数序列A = {Ai, i=1, 2, …, N},且部分和Sk=A1+…+Ak,序列中所有的数字的和SN=1。
证明:在A的N个循环表示[1]中,有且仅有一个序列B,满足B的任意部分和Si均大于零。
[分析]
先来看一个例子,若有序列A = <1, 4, -5, 3, -2, 0>,其6个循环表示为
1. <1,4, -5, 3, -2, 0>
2. <4,-5, 3, -2, 0, 1>
3. <-5,3, -2, 0, 1, 4>
4. <3,-2, 0, 1, 4, -5>
5. <-2,0, 1, 4, -5, 3>
6. <0,1, 4, -5, 3, -2>
其中只有第4个序列,部分和为3, 1, 1, 2, 6, 1,满足成为序列B的条件。
若要用一般的代数或是组合方法来证明这个有趣的结论,似乎无从下手,但若要想到了用“形”来帮忙,问题就简单多了。
目标图形化
周期性的推广A序列,得到一个无穷序列,便于观察其循环表示,得到:
<A1,A2, …, AN, A1,A2, …, AN, …>
同时计算这个序列的部分和Si,因为这个序列是周期性的,因此对于所有的k>0,均有Sk+N</