N-拼图游戏的可解性

所谓的N-拼图 (N-puzzle) 是一种流传很久的智力游戏,是谁发明已无法考证。1865年Embossing公司发售了这款游戏的一个版本,使得其风靡一时。常见版本的有 8 块和 15 块的两种,非常类似游戏“华容道”。以 15 块的拼图为例,玩家需要通过移动一个方形容器中的各个小方块,将一副打乱的拼图恢复成初始形态(如下图)。
15-puzzle Continue Reading…

用matplotlib绘制数学图像

绘制美观漂亮的数学图像是往往是一件让我们头疼的事,因为我们既要保证绘图的准确性,又要同时做到使图像容易理解又不失美观。能画数学图像的软件种类很多,但好用的却很少。有些支持的图像类型很多功能很全,但是画出的图不平滑,有很多锯齿;而有些画的图形很漂亮,但支持的功能又少。Matplotlib 是一个数学图形绘制的 python 库,能够绘制出版质量的数学插图,同时功能也非常丰富。 Continue Reading…

几个实用的MATLAB技巧(收集更新中)

MATLAB是世界上最出名、应用最广泛的数学软件之一。相当多的科学家、工程师、经济学者们利用MATLAB进行数值计算。MATLAB可以让用户将时间更多地投入到思考和处理问题上而不是浪费精力在处理无聊的任务上。MATLAB内置的算法存在了较长时间并且能给出较为可靠的结果。MATLAB也允许用户为特定的程序自定义函数,再加上内置的指令,我们就能很自信的得到需要的结果。MATLAB同时具备绘制高质且丰富的图表的能力,它们可以轻松地导入LaTeX和Word中。

与此同时,掌握一些MATLAB的使用小技巧可以让工作更有效率,游刃有余。 Continue Reading…

身份证和条形码中的校验码

通常校验码是指通过计算得出的一组数的最后一位或几位,例如身份证和条形码的最后一位,用来检验是否出现了输入错误。在数据传输的时候,一般也会在数据的末尾加上几位校验位来判断传输的数据是否有误。

一般说来,人类容易犯的常见输入错误有:

  • 输错某一位:1 → 2
  • 颠倒相邻两位顺序:12 → 21
  • 输错相邻的两位相同数字:33 → 44
  • 跳跃错位:456 → 645

而一个好的校验码方案能够检测出以上大多数以上的输入错误。 Continue Reading…