论文部分内容阅读
一、何为“黑洞数”
黑洞是茫茫宇宙中的神秘天体。黑洞密度极大,引力极强,任何物质经过它的附近,都会被它吸进去。
曾有人猜测,百慕大三角洲的飞机和轮船离奇失踪,可能就是遭遇了黑洞。当然,这一猜测从未得到公开、正确的科学解释。
在浩瀚无垠的数学宇宙中,也存在“黑洞”之说,即取任意一个数字不重复的三位数或四位数,将该数字重新组合成可能的最大数和最小数后求差,再将这个差重复同样的过程,经过有限次的重复,最后总是得到同一个差,这个差就被称为“黑洞数”。
如数字6、7、8、9,重新组合成的最大数为9876、最小数为6789,按照上述方法的计算结果是:9876-6789=3087,7641-1467=6174,之后不论如何计算,结果都是6174,6174即四位数的“黑洞数”。
二、求证过程
C#是微软开发的基于.net平台的编程语言,集windows开发和web应用于一体,功能强大,使用方便。
1.了解解题思路
由“黑洞数”的得出过程可知,任意一个无重复数的四位数或三位数,按照指定的规则重新组合、求差,然后重复这一过程,最后可得出“黑洞数”。
对此,可用中文伪代码表示为“函数求黑洞(整数型参数)”,返回值为“差”,然后迭代循环执行“函数求黑洞”(“差”),直到得出一个不再变化的“差”,这个“差”即为黑洞数。
这个算法用编程专业术语叫“递归”,即函数自己调用自己。
2.将算法变为代码
C#的控制台编程简单明了,点击“文件”-“新建”-“项目”,选择“控制台应用程序”即可。由以上伪代码可知,首先需定义一个求黑洞的函数,具体实现如下。
以上二十多行代码即完成了求黑洞数功能。但如果一个一个地将数字输入求证,未免是用宰牛刀杀鸡,所以,还可用C#来实现,即让程序自动赋值100至999,或从1000到9999,让求黑洞函数进行求证,并将结果显示。
3.具体求证实现
先定义一个函数(或叫作方法),让它自动循环迭代计算出想要的结果。具体实现如下。
至此,代码工作基本完成,启动程序调试即可看到以下结果(部分截图)。
由上可知,四位数的黑洞数是6174,三位数的黑洞数是495。
三、启示
以上过程如果由人工手动求证,单计算几千个整数的求差,就非常耗时,更别说后期的计算了。
可见,掌握方便、简洁的解题思路即算法,再辅以电子计算机,我们的学习、工作和生活都将如虎添翼。
黑洞是茫茫宇宙中的神秘天体。黑洞密度极大,引力极强,任何物质经过它的附近,都会被它吸进去。
曾有人猜测,百慕大三角洲的飞机和轮船离奇失踪,可能就是遭遇了黑洞。当然,这一猜测从未得到公开、正确的科学解释。
在浩瀚无垠的数学宇宙中,也存在“黑洞”之说,即取任意一个数字不重复的三位数或四位数,将该数字重新组合成可能的最大数和最小数后求差,再将这个差重复同样的过程,经过有限次的重复,最后总是得到同一个差,这个差就被称为“黑洞数”。
如数字6、7、8、9,重新组合成的最大数为9876、最小数为6789,按照上述方法的计算结果是:9876-6789=3087,7641-1467=6174,之后不论如何计算,结果都是6174,6174即四位数的“黑洞数”。
二、求证过程
C#是微软开发的基于.net平台的编程语言,集windows开发和web应用于一体,功能强大,使用方便。
1.了解解题思路
由“黑洞数”的得出过程可知,任意一个无重复数的四位数或三位数,按照指定的规则重新组合、求差,然后重复这一过程,最后可得出“黑洞数”。
对此,可用中文伪代码表示为“函数求黑洞(整数型参数)”,返回值为“差”,然后迭代循环执行“函数求黑洞”(“差”),直到得出一个不再变化的“差”,这个“差”即为黑洞数。
这个算法用编程专业术语叫“递归”,即函数自己调用自己。
2.将算法变为代码
C#的控制台编程简单明了,点击“文件”-“新建”-“项目”,选择“控制台应用程序”即可。由以上伪代码可知,首先需定义一个求黑洞的函数,具体实现如下。
以上二十多行代码即完成了求黑洞数功能。但如果一个一个地将数字输入求证,未免是用宰牛刀杀鸡,所以,还可用C#来实现,即让程序自动赋值100至999,或从1000到9999,让求黑洞函数进行求证,并将结果显示。
3.具体求证实现
先定义一个函数(或叫作方法),让它自动循环迭代计算出想要的结果。具体实现如下。
至此,代码工作基本完成,启动程序调试即可看到以下结果(部分截图)。
由上可知,四位数的黑洞数是6174,三位数的黑洞数是495。
三、启示
以上过程如果由人工手动求证,单计算几千个整数的求差,就非常耗时,更别说后期的计算了。
可见,掌握方便、简洁的解题思路即算法,再辅以电子计算机,我们的学习、工作和生活都将如虎添翼。