《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 3402|回复: 1
收起左侧

[数学] 俄罗斯方块背后的数学故事

  [复制链接]
发表于 2013-5-6 19:27:27 | 显示全部楼层 |阅读模式
dntN7O5NFzgdHGiY2y3MwqYQOW0n8VXx0bRYSeT8dVWjAQAAMQEAAFBO_260x196.png

1984年的时候,当时还名不见经传的阿列克谢帕基特诺夫(Alexey Pajitnov)只是苏联科学院计算机中心的一位普通的工程师。他热衷于开发电脑游戏,不过这些游戏卖得都不好。那年夏天,他突然又想到了一个新点子——让不同形状的积木落进一个矩形的玻璃容器里,在容器底部堆叠起来,使之排列成完整的一行或多行。在两位同伴的协助下,他很快编写好了这个游戏。

虽然他早就预感到这个游戏可能会火起来,但结果还是令他瞠目结舌:这个游戏在莫斯科迅速流行起来,并很快风靡全球。在此后的27年里,这个游戏被移植到了几乎所有的电脑系统和游戏平台上,不少mp3、mp4、手机、电视甚至示波器上也附带有这个游戏。并且它还衍生出其他各类玩法,极大丰富了解谜游戏的类型。这个无人不知无人不晓的经典游戏后来被命名为——俄罗斯方块。

俄罗斯方块的小知识

你对俄罗斯方块了解多少?你知道俄罗斯方块的游戏场地大小吗?你知道每一种方块的名字吗?

俄罗斯方块的游戏场地是一个宽为10,高为20的矩形。游戏里共有7种方块,根据它们的形状分别命名为I, J, L, O, S, T, Z。玩家需要控制不断下落的方块填放到合适的位置,被填满的行将自动消除。视局面的不同,玩家一次可消除1行至4行不等,这在游戏里分别叫做 SINGLE、DOUBLE、TRIPLE和TETRIS。一次性消除的行数越多,得分也就越高。随着被消除的总行数的增加,方块下落速度会越来越快。一旦某个方块放置后超出了场地高度,游戏便自动结束。

mgabfj.png

俄罗斯方块背后的数学问题

到如今俄罗斯方块已经诞生27年了。在这27年里,俄罗斯方块不但让几代玩家为之疯狂,也让不少数学家沉迷于其中。

俄罗斯方块引出的第 一个数学问题是,如果玩家的技术足够高,游戏是否永远也不会结束?1988年,约翰布鲁托斯基(John Brzustowski)的一篇论文指出,若“S”型方块和“Z”型方块以适当的间隔交替出现时,游戏区域中将不可避免地出现越来越多无法消去的行,最终导致游戏结束。虽然这种情况发生的概率极低,但毕竟是有可能的,因此理论上俄罗斯方块是不能一直玩下去的。

另一个值得思考的问题是,游戏中用到的7种方块总面积为28,那么是否能用这7个不同形状的方块拼出一个4×7的矩形呢?虽然游戏中的方块似乎都是填补空间的好手,但这个问题的答案却是否定的。原因很简单:如果把这7种方块都放到国际象棋棋盘上,你会发现几乎每一种方块都总是占据着两个黑色格子和两个白色格子,只有“T”型方块所占的黑白格子个数始终不等。因而7个方块所占据的黑白格子总数也是不相等的。但在一个4×7的矩形区域中黑白格子数目是相同的,因此它不可能被这7个方块完全覆盖住。

01i1ij.png

有趣的是,这7种方块恰好能构成一个平面镶嵌。如果一组几何图形能够既无重叠又无空缺地填满整个平面,我们就把它称作一种平面镶嵌。地砖的形状基本上都是等边三角形、正方形和正六边形,这就是因为单用一种正多边形构造平面镶嵌仅有这三种情况。如果允许使用多种图形,我们还能构造出更多漂亮的平面镶嵌图。一些设计师别出心裁,把墙砖做成了俄罗斯方块的形状,给居家生活带来几分创意。

p2fqvq.png

趣味拼图题

我坚信人人都玩过这极易上手的游戏。还有很多人用俄罗斯方块搭建出各种创意图形。那你能搞定下面两个问题吗:

如何把6个“L”形状的方块摆放在一起,使得每个“L”恰好都和另外三个“L”相邻?

怎样用奇数个“L”摆成一个轴对称图形?

(答案随后揭晓)

从俄罗斯方块到多联骨牌

数学家们还对这几种方块进行了扩展,用于更深层次的研究。通常把所有由若干个小正方形拼接起来组成的图形统称为多联骨牌 (Polyomino)。多联骨牌是组合数学中一个有趣而又非常具有挑战性的课题。俄罗斯方块中所用到的就是四联骨牌,它一共有7种。利用计算机穷举我们还能很快知道,五联骨牌有18种,六联骨牌则有60种。但对于一般的n联骨牌的数目,数学家们只找到了一些近似公式,目前仍然没有一个准确的答案。另外,哪些多联骨牌可以拼成完全对称图形,哪些多联骨牌能够平铺整个平面,这都是数学家们研究的课题。多联骨牌不仅是电子游戏和数学谜题中的常客,在生活各个领域中也都随处可见。包装盒的展开图、组合家具的设计、元素周期表的排版、围棋中的死活棋茢们都和俄罗斯方块有着千丝万缕的联系。

答案揭晓:

第一问答案:

cnub78.png

第二问答案:

miqbwi.png


发表于 2013-5-9 00:30:28 | 显示全部楼层
长知识了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2020-2-28 08:03 , Processed in 0.116503 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表