写在前面:作为离散数学的实验作业,我选择了研究数独。经过测试发现,数独的自动推理还不算难,我把两种常规的推理思路转化为了计算机代码,并结合了随机性推导,得到了一个解题能力还不错的数独程序。事实上,本文的程序还可以进一步优化,以得到更高能力的数独程序(只需要整理一下代码,加上几个循环和判断即可),但是我实在太懒,没有动力继续弄下去了,就这样先和大家分享吧。最后,笔者认为本文的算法是更接近我们的思维的算法。
数独简介
历史
相传数独源起于拉丁方阵(Latin Square),1970年代在美国发展,改名为数字拼图(Number Place)、之后流传至日本并发扬光大,以数学智力游戏智力拼图游戏发表。在1984年一本游戏杂志《パズル通信ニコリ》正式把它命名为数独,意思是“在每一格只有一个数字”。后来一位前任香港高等法院的新西兰籍法官高乐德(Wayne Gould)在1997年3月到日本东京旅游时,无意中发现了。他首先在英国的《泰晤士报》上发表,不久其他报纸也发表,很快便风靡全英国,之后他用了6年时间编写了电脑程式,并将它放在网站上,使这个游戏很快在全世界流行。
台湾于2005年5月由“中国时报”首度引进, 且每日连载, 亦造成很大的回响。台湾数独发展协会(Taiwan Sudoku Association, 简称 TSA)亦为世界解谜联盟会员。香港是在2005年7月30日由AM730在创刊时引入数独。中国大陆是在2007年2月28日正式引入数独。北京晚报智力休闲数独俱乐部(数独联盟前身)在新闻大厦举行加入世界谜题联合会的颁证仪式,成为世界谜题联合会的39个成员之一。(引用自“中文维基百科”: http://zh.wikipedia.org/wiki/数独)
[问题解答]有多少位数字?
By 苏剑林 | 2013-02-21 | 15473位读者 | 引用解决完上一题《有多少个5?》后,子瑞表示看到一道类似的题目,当然,这道题比上一道难一些:
一个数,各个数字加起来等于900,乘以2后各个数字加起来还是等于900,已知这个数字只有3、4、5、6组成,请问满足条件的最大数与最小数的积有多少位数?
要解答这个问题,我们只需要知道最大数和最小数分别有多少位即可。因为最大数必然是6...3的形式,而最小数只能是3...6的形式,它们的位数之和就是所求的位数。
怎样比较两个数的大小呢?显然,在不同位数的数时,位数多的数要大,同样位数才从高到低逐位比较。因此,我们应当考虑位数的最大与最小。
[问题解答]有多少个5?
By 苏剑林 | 2013-02-18 | 25796位读者 | 引用企图减缓美国数学进展的“阴谋”
By 苏剑林 | 2009-07-26 | 22781位读者 | 引用宇宙中存在所谓的“黑洞”,只要你步入了它的视界之内,就永远也出不去了(除非你能够超光速)。在数学中,也有类似的规则,只要把一个自然数代入这个规则,都无一不会陷入无限的循环之中,这样称之为“数字黑洞”。有一个“数字黑洞”,它令人十分着迷,甚至有人称它为“企图减缓美国数学进展的阴谋”——这就是“冰雹猜想”。
冰雹猜想:
任选一个自然数。当选定的自然数是偶数,将它除以2,如是奇数,将它乘以3加上1;当变换后的自然数成了偶数,再将它除以2,如成了奇数,再将它乘以3加上1,连续进行下去,最后都“落叶归根”——变成了1。
科学空间:一种有趣的平方数
By 苏剑林 | 2009-07-08 | 20046位读者 | 引用数字是美丽的、极具魅力的,正如——
有这样的一种数,将其拆开成为两个数,这两个数的和的平方等于原数。例如:
$$\begin{aligned}2025=&(20+25)^2\\88209=&(88+209)^2\\152344237969=&(152344+237969)^2\\ &...\end{aligned}$$
下面是关于这类数的一些研究:
1、这类数的实质是:$(A+B)^2=10^nA+B$,而对于$(A+B)^2=kA+B$,有
$A=k/2-B\pm\sqrt{{k^2}/{4}-(k-1)B}$
因此,一般地,对于一个适合的B,可以找到两个对应的A。
最近评论