中学小论文—6个正方形能组合出多少种不同的图形.docVIP

中学小论文—6个正方形能组合出多少种不同的图形.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
温州市第四届“摇篮杯”初中学生数学小论文 县(市、区): 温 州 市???? ? 学校(全称):? 温州市实验中学 ? 作 者: 苏 津 岳 ? 指 导 师: 周 利 明 论 文 题 目:6个正方形能组合出多少种不同的图形 2010 年02月 6个正方形能组合出多少种不同的图形 这是我爸在星期四晚上给我的一道题目。他问我:用6个正方形拼图,能组合成完全不同的几种图形?这道题目的前提是,不考虑两个正方形的边长彼此错位的情况,并且如果两个图形能够通过翻转或旋转90°完全重合,那么这两个图形只能算一种图形。 我本来想要一个一个图形地试,后来发现,6个正方形所能组成的不同的图形实在是太多了,一个个试几乎不可能。于是我想到了编一个程序,让电脑来做。不过,这道题目在编程序上有两个难点: 一、正方形图形的生成,既要不遗漏任何一个,也不能让正方形与正方形之间没有连在一起,因为那样就不是一个图形了。 二、两个图形是否可以用翻转、旋转完全重合,我们可以用眼睛看出来。可是我们在看的时候到底在检验两个图形的什么属性,或者干脆这些属性本身也是未知数?我们如何用电脑来模拟这个过程? 关于第一个难点,我想到了用二维的布尔型数组来模拟一个二维的空间,用True值来代表该点上已有正方形存在。现在让我们来想想我们平时是怎么画一个由正方形组成的图形:先画一个正方形,然后在它的上下左右再画一个正方形,然后再在新画的正方形的上下左右再画一个正方形……以此类推。画图函数(GeneratedGraphics) 整个递归在所有图形都已经被输出时结束。但是这里又存在了一个问题:一个正方形,先向右增加一个正方形,再向下增加一个正方形,再向左增加一个正方形,和一个正方形先向下、再向右、再向上增加正方形所生成的图形是完全一样的,可是流程不一样,这样我的程序就会将两个一起输出,造成结果重复。于是我又在输出时进行了比较,看看现在即将输出的和已经存在结果列表中的图形有没有重复。 接着是第二个问题,如何判断两个图形能够在翻转、旋转之后完全重合? 为了方便起见,我将每个图形都用唯一的字符串表示。 这里是两个由正方形组成的图形。这两个图形可以在垂直翻转之后完全重合。那么我们可以用两个字符串来表示一个图形。 这两个图形所对应的字符串分别是:13;112和31;112。 如果两个图形能够在翻转之后完全重合,则可以理解为其中一个图形是另一个图形进行轴对称变换之后的像,则它们中间必然存在对称轴α使它们成为轴对称图形。轴对称变换不改变图形的大小和形状,且对应点到对称轴的连线长度相等,所以,任意两个可以在垂直翻转(水平翻转)之后完全重合的图形在这种表示方法下,是将表示宽度(长度)的字符串逆序,比如13和31。 接下来我们来看旋转90°的情况。 如果两个图形能够在旋转90°之后完全重合,则可以理解为其中一个图形是另一个图形绕图形外任意一点ο顺时针(逆时针)旋转90°得到的像。旋转变换不改变图形的形状和大小,只改变图形的方向,而90°又是一个平角180°的一半,所以任意两个可以在旋转之后重合的图形的字符串是长宽相反的。现在我们已经找到所有关于翻转和旋转的规律了。我把满足以上任意一条件的两个字符串称为相似的字符串。我写了一个函数(WhetherSimilar)来判断两个字符串是否相似。 接下来就好办了。我把每个由画图函数生成的图形表示为上述的字符串形式。然后再用比较函数来比较是否相似,如果已有相似的字符串,则不输出新生成的图形。这时我的程序就差不多了。再加上一些次要的辅助功能,比如将生成出的图形输出等,这个程序就完成了。程序界面如右。 本程序目前还存在的问题: 1、在列表中显示的排列组合全部是使用前面讲到的方法来描述图形,不知道描述规则的人根本不知道这些数字是什么。 2、速度过慢。其实整个程序说到底还是对这道题进行穷举。即使是电脑来计算,穷举的效率仍然十分低下。计算5个正方形需要大约10秒的时间,6个正方形就变成了10分钟左右。 3、硬盘读写量过大。在循环中使用文件读写,对速度有很大影响,且缩短硬盘使用寿命。 4、输出的图形不美观。因为我对图片和图形的处理不是很熟悉,以至于我在输出图形时用的都是字符。使用下划线表示那个位置上没有正方形,用“■”来代表正方形(如下图)。很古老的一种做法。 这次我从解这道题目的过程中,学到了怎样将一个题目所使用的自然语言转化为电脑可以识别的程序语言,也尝试了用数学模型来描述题目。 现在,我终于知道了,6个正方形,可以组成不重复的图形34个。而且,以此类推

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档