一个数学问题的推广及验证
- 2 3 7 -
笔者于2009年7月在北京参加一个人
力资源管理方面的培训,有幸听到了来自
ACCA(国际注册会计师公会)北京代表处
市场部经理曲悲岩先生的一个关于发散性
思维与企业的市场推广为主题的讲座。在
讲座开始前,曲先生为了活跃气氛,先让大
家做了一道看似简单的数正方形的数学题。
对于这道数学题,笔者在给出完整解答的
基础上,做了一个有趣的推广,其过程对于
发散思维的培养,具有较现实的意义。
一、问题与分析
【问题】一个大正方形由 4× 4个小
正方形组成,从这25个交点中任取4个点,
并连线,总共最多能组成...
- 2 3 7 -
笔者于2009年7月在北京参加一个人
力资源管理方面的培训,有幸听到了来自
ACCA(国际注册会计师公会)北京代
处
市场部经理曲悲岩先生的一个关于发散性
思维与企业的市场推广为主
的讲座。在
讲座开始前,曲先生为了活跃气氛,先让大
家做了一道看似简单的数正方形的数学题。
对于这道数学题,笔者在给出完整解答的
基础上,做了一个有趣的推广,其过程对于
发散思维的培养,具有较现实的意义。
一、问题与
【问题】一个大正方形由 4× 4个小
正方形组成,从这25个交点中任取4个点,
并连线,总共最多能组成多少个正方形?
(如图 1所示)。
图 1 一个大正方形由 4× 4个小正方形
组成
这个题目乍一看很简单,凭着培训班
学员的直觉,如图1中可以判断,无非就是
分成 1× 1个小方格组成的正方形,2× 2
个小方格组成的正方形,3×3个小方格组
成的正方形,4×4个小方格组成的正方形
来考虑。然后,由枚举的方法得到解答, 如
图 2所示。
图 2 分别由 1× 1、2× 2、3× 3、4
×4个小方格构成的正方形
1×1个小方格组成的正方形个数为16
个;2× 2个小方格组成的正方形个数为 9
个;3× 3个小方格组成的正方形个数为 4
个;4× 4个小方格组成的正方形个数为 1
个。这样总共正方形的个数和就是:
16+9+4+1=30。
个别急性子的学员很快就举手示意,
他们得到了这个结果等于30的
。但事
一个数学问题的推广及验证
陶然 上海交通大学 200240
实上还不能下定论。
从下面的图3很容易就会发现,似乎漏
数了很多“斜”着的正方形。一扭头、一连
线的一念之间,却发现了问题的奥妙,可见
发散性思维往往就潜伏在人们不经意的那
个角落,需要加以开发和训练。
图 3 在原正方形中还隐藏着“斜”的
正方形
通过计算,很容易得到这些个“斜”
着的四边形的四条边长都相等、四个角都
是直角,他们也都是正方形,所以最后的答
案肯定不止30个。那究竟是多少个呢?请
看下面的分析。
通过仔细观察我们可以发现,那些
“斜”着的正方形,都被包围在一个由 n2
个小正方形所组成的正方形区域内,而且
他们的4个顶点都在这个正方形区域的4条
边上,如表 1 所示。
表 1 分别由 1× 1、2× 2、3× 3、
4× 4个小方格构成的正方形的枚举情况
根据表 1,可以得到最后的答案应该
是:
1 × 1 6 + 2 × 9 + 3 × 4 + 4 ×
1=16+18+12+4=50个。
二、推广及其验证
原问题中是4×4个小正方形所构成的
区域,那么推广到 n × n(n 为正整数)
个小正方形所构成的区域,其结果又会是
怎么样呢?
首先需要考虑的是,一个 n× n的区
域当中所包含的 i× i(i为从 1到 n的任意
正整数)的区域的个数为(n- i+ 1)2。
如图 4所示,在一个 i× i的区域中找
正方形,如果正方形的4个顶点都在该区域
的外边上,总共可以找到 i个不同的正方
形 。
图 5 引理证明示意
所以可以给出如下命题:
【命题】在一个 n× n的区域中,如果
我们令最多可以找到的正方形个数是P,则
有:
首先,用反证法证明一个引理:
【引理】对于一条给定的四边形的对
角线,可以唯一确定一个正方形。
证明:(反证法)如图 5 所示,假
设AB为正方形AFBE和正方形ADBC的
对角线
图 4 原正方形由 n× n个小正方形构成
- 2 3 8 -
中国科技信息 2009年第 20期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Oct.2009科技教育创新
∵ADBC为正方形 ∴C点在以AB为
直径的圆上
同理,E点也在这个以AB为直径的
圆上
又∵AC=CB ∴CO⊥AB
同理,∵AE=EB ∴ EO⊥ AB
又∵经过直线上一点且与该直线垂直
的直线有且只有一条
这条直线和圆O的交点有且只有一个
∴C,E点重合
与假设矛盾,
故假设不成立。
∴上述引理得证:对于一条给定的四
边形的对角线,可以唯一确定一个正方
形 。
在此证明思路的基础上,就可以把繁
琐的验证交给计算机程序。通过一个简单
的C++程序,来枚举一个给定的正方形框
架内的所有可能的正方形个数。
1.编程思路
枚举对角线的两个端点,根据引理,
可以判断另外两个端点是否是在正方形网
格中的节点。输出n从1到50的50组数据
作为展示。从而验证式子:
2.程序代码
#include
#include
#include
const int MAXN = 50; //测试边长
n的最大值
const double eps = 1e-8;
int ANS[MAXN + 1];
struct point {
double x, y;
} a, b, c, d;
void InitANS ()
{
ANS[0] = 0;
for (int n = 1; n <= MAXN; n
++){
ANS[n] = 0;
for (int i = 1; i <= n; i ++)
ANS[n] += i * (n - i + 1) * (n -
i + 1);
}
}
int dcmp (double x) // 判断 x的符
号, 返回值 为 -1表示 x为负数, 0表示
x为 0, 1表示 x为正数
{
return x < -eps ? -1 : x > eps;
}
bool check (double x, int n)
{
if (dcmp(x) < 0 || dcmp (x - n) >
0) return false;
int xx = (int)x;
if (dcmp (x - xx) == 0 || dcmp
(x - (xx + 1)) == 0) return true;
return false;
}
int main ()
{
int n;
InitANS (); //用公式计算答案
for (n = 1; n <= MAXN; n ++){
// 用枚举对角线求正方形个数来验证答案
printf ("下面证明 n = %d 的情况
(此时应该有 %d 个正方形)\n", n, ANS
[n]);
double x0, y0, x2, y2; //正方形一
条对角线的坐标
double x1, y1, x3, y3;
double x, y; //正方形中心坐标
int count = 0;
for (x0 = 0; x0 <= n; x0 ++)
for (y0 = 0; y0 <= n; y0++)
for (x2 = 0; x2 <= n; x2 ++)
for (y2 = 0; y2 <= n; y2 ++){ //4
重循环枚举对角线坐标
if (!dcmp (x0 - x2) && !dcmp (y0 -
y2)) continue;
x = (x0 + x2) / 2;
y = (y0 + y2) / 2;
x1 = x - (y0 - y); y1 = y + (x0 -
x);
x3 = x - (y2 - y); y3 = y + (x2 -
x);
if (check (x1, n) && check (y1, n)
&& check (x3, n) && check (y3, n))
count ++; //如果 点(x1, y1)和点
(x3, y3)是(n+1)*(n+1)中的一个点,那正
方形加 1个
count /= 4;
printf ("枚举得, 正方形数量为 %d
个 \t", count);
if (ANS[n] == count) puts ("验证正
确 ");
else {
puts ("验证错误 ");
return 0;
}
}
system ("pause");
return 0;
}
3、输出结果
将程序的输出结果整理如下,见表
2 。
表 2为 n从 1到 50的枚举法验证的结
果,验证正确无疑,之后的情况由于计算机
运算需要较长时间,就不赘述了。
从上面数学问题的演绎过程来看,发
散性思维最后还是要落实到一个严密的数
理逻辑当中去的。发散性思维是不依常规,
寻找变异,对给出的材料、信息从不同角
度,向不同方向,用不同方法或途径进行分
析和解答问题。因而视野开阔,思维活跃,
可以产生出大量的独特的新思想,这正是
用人单位所期盼的人才素质。
表 2 程序验证的输出结果
作者简介
陶然(1 9 8 8 .1 - ),男.浙江省嘉兴市人.现就
读于上海交通大学船舶海洋与建筑学院。
本文档为【一个数学问题的推广及验证】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。