不变量理论是数学家在研究过程中很常用的一个分析手段。在实际问题中确定和寻找不变量以及可能的使用方法可以被看做为一门艺术,下面我们就从几个小小的趣味问题入手,带大家看看不变量的巨大作用。

数学史的渊源很深厚。追溯到4000多年前,我们在古巴比伦数学家的著作中就已经可以看出代数的痕迹了。根据相关历史,我们可以确认,以那时的知识甚至可以求解经典的二次方程。

巴比伦泥板显示了2的平方根的近似值,来源 Wikimedia

从那时起,数学就一直蓬勃发展,数学家们创造出了许多有用的数学工具。这里数学家们所谓的“数学工具”是指用来构建数学逻辑的方法或者技术。之后,数学家们将这些数学逻辑合并为独立的引理,之后又将引理转化为定理。

也许,我们并不能列举出数学中所有的逻辑和方法,但一些比较流行的方法还是可以举出的,比如数学归纳法和反证法,大学一般都会普及这两种方法。在这篇文章中,将会介绍另一种方法,这种方法很少被明显地提及,但是却足够解决实际问题。

引入不变量

假设有一个数学对象x和一组变换T (变换代表对 x 进行某些操作),我们可以取集合T中的任何元素(即一个变换操作)并将其应用于x,来改变x的状态。这样,我们就可以形成x的不同态的链。

态的链

在这些概念的基础上,我们的主角,函数I登场了。函数I可以代表x的任意状态,比如说:它可以输出任意自然数或者有理数集。对于不同的x,检查I输出结果是否相等是很重要的一件事

现在,如果能证明将变换T作用到x上,函数I不改变它的值,则可以用这个事实来证明逻辑语句,并将I称为由变换集T产生的对象x的不变量。

对于任何状态链x,不变函数的值不变

让我们考虑下面的示例,看看如何利用不变量来证明逻辑语句。

假想的群岛

我们将从一个简单的示例开始,然后尝试缓慢地增加复杂性。

假设我们是生活在群岛中某一片岛屿上的人。我们需要知道,如果没有任何一个桥梁跟我们的出发点连接,我们就无法到达特定的岛。

我们的虚拟小世界 图源 Wikimedia

我们能在自己所在的岛屿自由移动,但是桥梁只连接有限的岛屿,因此从一个岛屿不能到达所有的岛屿。

我们先将所有的岛标号并用数字连接。

数字代表岛屿跟桥梁 (i为岛屿,b为桥梁)

在上面的基础上,引入不变函数I,将我们所在的岛屿编号输入这个函数中,输出的结果就是我们可能会到达的岛屿编号。

将岛屿和桥梁映射成数字后的世界示意图

通过以上的示意图,将I可能的输出列举出来为:

不变函数I的值

很明显,在每个通过桥梁连接的“世界”中,我们任意沿桥梁移动并不会改变函数。那么,一个人是否能够从岛屿a到岛屿b?这个可以根据具体的函数I来决定。

根据函数I回答岛屿是否可达的问题

这就是关于不变量的一个例子,我们用它展示不变量的主要思想,接下来我们可以讨论一些更有意思的例子。

象棋问题

假设我们有一个棋盘,这个棋盘有些不同——有人从同一对角线上的角落里取下两个格点

奇特的棋盘

假想出这个棋盘的人同时给出了一个挑战,并承诺挑战成功的人能够得到1万块:用2×1的多米诺骨牌填满这个棋盘

乍一看,这个问题似乎很简单。从64个单元中去掉了偶数个格点,再拼放双数单元的多米诺骨牌并不难。搞明白这个之后,我们可能会毫不犹豫地接受这个挑战,毕竟,谁不想要1万块呢?

随机填充的结果

笔者根据这个规则制作了这个游戏的网页版本,这样我们就可以找到并证明这种可能性的存在。在网页版本游戏中请用鼠标左键放置多米诺骨牌,用鼠标右键改变多米诺骨牌的方向。

或者简单一点,建议各位拿出纸笔,尝试挑战一下自己。

在一段时间的尝试之后,我们可能会怀疑这种做法的可行性。下面让我们利用不变量的想法来剖析这个问题。

首先,定义不变函数I为棋盘中未填充部分黑色和白色单元格数量的差异,这个函数的初始值为0,当从棋盘上移除两个同样颜色的格点后,值变为2。

其次,我们发现,任意放置一个多米诺骨牌总会覆盖一个黑色和一个白色的单元格,所以无论放置多少个多米诺骨牌都不会改变之前定义的I值

在放置多米诺骨牌时不变函数不会改变其值

现在可以看出其中的矛盾之处了么?全覆盖棋盘的I值应该为0,但是现在无论放置多少多米诺骨牌,I值都为2,不可能达到0.

哲学家马克斯·布莱克在1946年出版的《批判思维》一书中提出了这个问题。

15格点的拼图

19世纪末,山姆·洛伊德提出了另一个非常著名的谜题。作为一位美国象棋选手,他向世界发起挑战,要人们来解决他的15个格点的拼图问题(15 puzzle)。

15格点的拼图游戏

15个格点的拼图游戏本身是个智力趣味题,需要在棋盘上移动棋子使之按照1到15的顺序回归初始位置,这个的在线玩法也很容易找到。这个谜题在山姆·洛伊德提出的十年前就被提出了,但是,当洛伊德提出要提供1000美元作为奖金给解出15拼图之后,这个游戏才迅速在世界上传播开来。

山姆·洛伊德最后两块交换后的拼图,图源Wikimedia

山姆·洛伊德的版本有所不同,他从初始版本的拼图开始,把14和15互换了位置。最终目的是一样的:通过某种变换将其顺序恢复到初始情况。

如何利用不变量来解决这个问题?我们来看一下。

我们先将拼图排成一条直线。

将拼图变成一条直线

接下来我们将每个单元格编号:

将原始拼图中格点的移动映射到这条线上点的重排。

将拼图中的移动映射到线上

对于这条线,我们可以计算逆序数,逆序数指的是:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。(比如说:1 2 3 的逆序数为0,1 3 2的逆序数为1,3 1 2的逆序数为 2。)

对于从1到15的每个值v,我们应该计算从具有该值v的单元的位置i开始向右开始有多少个值小于v。

一个格点的逆序数,Ind 代表如果括号里面是真的话输出为1,反之则为0

计算所有格点的逆序数之和,得逆序数的和为:

逆序数之和

现在,我们来变个魔术。对于将全部的逆序数和空格点所在的行数相加所得的和总是偶数,这样可以定义不变函数I。如果总和为偶数,I则为0,和为奇数,I为1。

在移动中,不变量保持不变

在这篇文章中可以找到不变量不变的严格解,其利用了置换的理论来证明。

经过以上分析,可以看出山姆·洛伊德的15拼图中的不合理之处:如果交换相邻的两个格点而不改变空格点初始位置,逆序数将会增加1,因此I总会是奇数。这件事告诉我们,利用一般的方法是没有办法将拼图恢复到原来的位置的。

(当然,还有非常规的方法,具体可参见这里)

我们能更进一步么?

不变量的应用不仅仅局限于拼图中。在现代数学中可以找到这种方法的很多应用:复分析、微分方程和其他理论。在实际问题中确定和寻找不变量以及可能的使用方法可以被看做为一门艺术,也许,这也是数学家们爱上这门学科的原因吧。

最后,希望这个故事可以让更多人对数学更好奇一些,更深入一些。

作者:Bogdan Melnik

翻译:Nuor

审校:Dannis

原文链接:

https://medium.com/cantors-paradise/the-power-of-invariants-3d0b0628aaf3

如果去掉数学前后的空格_数学家们是怎么玩趣味拼图游戏的?相关推荐

  1. 如果去掉数学前后的空格_理综+数学+地理+英语完型的方法和技巧

    有的同学已经开学了,突然之间面对考试.面对老师的提问,有很多人都感觉自己大脑空白,什么都回答不上来,今天明德君就为大家整理思科的知识点和技巧,帮助大家快速恢复记忆,决胜开学的测试! 一.理综 首先需要 ...

  2. 如果去掉数学前后的空格_如何取消excel表格中数据前的空格-Excel 如何去除单元格中数字前后的空格...

    excel单元格,数字前有空格(字符),怎么批量把空... 使用替换功能,批量处理 参考excel版本:2010(其他版本操作基本相同) 详细操作步骤及动画演示: 1.CTRL H,调出替换对话框 2 ...

  3. python拼图游戏代码的理解_有意思的JS(1)拼图游戏 玩法介绍及其代码实现

    我是你们的索儿呀,很幸运我的文章能与你相见,愿萌新能直观的感受到Javascript的趣味性,愿有一定基础者有所收获,愿大佬不吝赐教 拼图游戏是一张图片分为若干块,打乱次序,将其中一块变为空白块,其只 ...

  4. 如果去掉数学前后的空格_excel表格数据消除前后空格-EXCEL表格中数据后面的空格怎么去掉,一条条手工删......

    excel表格中,单元格的内容后面总是有一个空格,怎... 准备工具/材料:windows10电脑,excel软件. 单元格的内容后面去除空格的方法如下: 1.首先,打开需要设置的excel文件. 2 ...

  5. 去掉图题注 空格_【转载】论文排版-Word插入题注时自动删除标签与编号前的空格,编号后添加空格...

    Sub InsertCaption()'修改系统插入"题注"命令 '功能:自动删除标签与编号间的空格(英文除外),并在题注数字后添加一个空格:适用于:Word 2003 - 201 ...

  6. 去掉图题注 空格_在Word 2010文档中为图表插入形如“图一,图二”的题注时,删除标签与编号之间自动出现的空格的最优操作方法是( )_学小易找答案...

    [判断题]矛盾有两个基本属性,一个是同一性另一个是特殊性. [单选题]小王利用Word撰写专业学术论文时,需要在论文结尾处罗列出所有参考文献或书目,最优的操作方法是( ). [单选题]"九层 ...

  7. python字符串去掉特殊符号和空格_从字符串中删除所有特殊字符,标点符号和空格...

    在看到这个之后,我有兴趣通过查找在最短的时间内执行哪些来扩展所提供的答案,所以我通过timeit对两个示例字符串检查了一些建议的答案: string1 = 'Special $#! character ...

  8. 扑克牌排序_巧用扑克牌搞定孩子的数学思维启蒙,聪明的妈妈都在玩这样的游戏...

    很多家长谈到数学思维启蒙,都一个头两个大,不知道怎么去做.客观来说,数学思维启蒙说难也难,说简单也简单,本文是数萌在线的老师把数学思维课上常玩的数学思维游戏与扑克牌游戏结合,对提升孩子思维能力的效果非 ...

  9. 幼儿抽象逻辑思维举例_四个在家就可以玩的思维游戏,却能显著提升孩子的逻辑思维能力...

    大数据时代的到来,让大家每天都会面对海量的信息,有理财的,有招聘的,有聚会的等等,如果不进行及时处理,很有可能,会错过重要信息,耽误事情. 认真分析,你会发现,能力强的人对处理这些看似繁杂的信息的时候 ...

最新文章

  1. 怎么用python画个电脑_python语言还是java如何用python画爱心
  2. #20145238荆玉茗《网络对抗》-逆向及Bof进阶实践
  3. 深入理解Spark 2.1 Core (三):任务调度器的原理与源码分析
  4. 一个静态库框架模板: iOS Universal Framework Mk 7
  5. java中一个数小于零_这段java程序怎样才能让“所输入的数小于0!”只输出一次,并且满足题目条件?...
  6. 理论 | 分库分表需要考虑的问题及方案
  7. 产品体系建模工具软件
  8. Android框架揭秘-JAVA服务框架
  9. [NOI题库]1.3编程基础之算术表达式与顺序执行 题解(一)
  10. 测度论与概率论基础学习笔记1——1.1 集合及其运算
  11. dwg格式的计算机图,例举电脑dwg文件怎么打开
  12. Android分享wifi给电脑,安卓手机怎么通过USB共享网络给mac电脑
  13. 仿百度糯米TP5项目笔记
  14. Java高级架构师之路核心知识整理
  15. 外贸:掌握这5个社交软件,让你不在为营销推广感到烦恼
  16. sourceTree使用说明(四)
  17. 如何从数据库中筛选出达成指定里程碑节点的项目_房地产企业如何搭建运营管理体系...
  18. jsonl后缀名是什么意思
  19. 途家、木鸟、爱彼迎:国内三大主流民宿预订平台测评
  20. Java程序员必看的20本书,从入门到精通!收藏

热门文章

  1. mongodb mysql并发_MongoDB:锁和并发控制
  2. Cookiecutter
  3. comparator 字符串比较大小_java – 如何使用Comparator比较空值?
  4. notepad++怎么换行命令_notepad++如何自动换行
  5. 学python适合什么年龄段的人用_7个现在就该学习Python 的理由【80%的人都不知道】...
  6. gateway 车辆网关
  7. linux 系统vt 测试,vt-x linux子系统
  8. (王道408考研操作系统)第四章文件管理-第二节4:磁盘的管理
  9. (计算机组成原理)第七章输入和输出系统-第四节1:I/O方式之程序查询方式
  10. Linux系统编程3:基础篇之详解Linux软件包管理器yum