最近在看一本趣味数学书<思考的乐趣>,其中第26节<我最爱的一个证明>很有意思。
题目:设想一个平面上布满间距为1的水平直线和竖直直线,形成由一个个单位正方形组成的网格。任意给定一个面积小于1的图形,证明这个图形总能放在网格中而不包括任何一个格点。
这个题目一看就很难,即便看了答案我也还是比较迷惑。答案有点长,我就不打出来了。因为答案操作性强,很直观,所以我想,是不是可以编写一个程序把整个解体过程演示出来。于是我开始构思程序,不过很快遇到了一个难题:如何随机画一个确定面积的图形?
如果是一个规则图形,这自然不是什么难事。但如果是不规则图形,如何事先确定图形的面积?微积分的知识我已经全部还给先生了,对此无从下手。
另一个想法是:实现并不完美的随机效果。比如,画一个固定面积的圆或者正方形,并让该图形处于一个物理环境中,任意选个方向,对图形发射子弹,击中的地方会变形,但只是形状变,体积不变。只要多打击几次,就达到效果了。不过,有这种物理引擎吗?