第五百三十九章 最小哈密顿回路问题(1 / 2)

加入书签

虽然说白夜明以为现在是一个比拼谁更沉不住气的环节,但是他没有预料到的是,在最后一个小时刚开始的时候,第一个上去提问的人竟然是一名古龍。

就是刚刚那个莫名其妙凑上来和白夜明搭讪的古龍,气定神闲的向着其中坐着的另一名同样身份为白夜明还未知的古龍走去。看这个样子,这两只古龍是准备先进行一发1对1的较量了。

“我没有想到你会上来直接选择我。”被挑战的古龍,在来者还没有开口提问的时候,竟然就先嘀咕了这么一句。

“这很奇怪吗?我不相信你没有想到过。”

“不,这并不奇怪,我只是没有想到你会如此的急不可耐。”

“急不可耐?”那只古龍笑了一声,“你也知道我想要和你比一比已经那么的久了,在外面我做不到,现在可是唯一的机会。我怕在这场游戏之中不率先向你提问的话,后面那些小虫子们叽叽喳喳地涌上来,可就不一定有机会了。”

“你这又是何必呢。但既然你如此执着,那你就说出你的问题吧。”

“你并不想回答这个问题对不对?不论我说出来什么,你都并不会作答。因为你并不想跟我正面的冲突上。那么你还问问题是什么干嘛,直接认输不就好了吗?”

“我确实是不想回答你的问题,但是问题还是要问出来的。毕竟如果你因为说了这个问题而失去了某些优势,导致折在了这个环节,我又何乐而不为呢。”

“好。那你听好,我的问题就是:......”说着他一口气报出了1000个二维的坐标点,然后问道:“找找一种连线的方式,把所有的点都用线段连到一起,要求即不能重复,也不能缺失,求问总路径最短的方案是什么样子的。”

白夜明听到这个问题,感觉真的是绝了。因为这个问题在地球上也是存在的,被称为哈密顿回路问题。

这个问题是从一开始大家都听说过的七桥问题中(注1)逐渐延伸过来的。在数学上已经被证明为了是一个np完全问题。这说明并没有一种确切的解法可以按部就班地给出解题所需要的所有步骤。

唯一可能的做法,就是利用计算机编程来寻找最优解。

编写一个用于解决这种的被称为最小哈密顿回路的问题的程序其实并不困难。实际上只要稍微有些编程基础的初学者都可以独立地去写出一个可行的计算机程序。

但是解决这个问题确又是很难的。

这并不矛盾,算法真的很简单,最不用动脑子的算法就是枚举法,把每一种可能的连线方式都枚举出来,然后分别求出每一种可能性总距离,在进行比较。

试想一下,假如在只有5个点的情况下,实际上总可能性的次数是120种。首先从5个点之中选出一个.as.,这时候可能性是5,然后每个点的下一个点都有四种选择,再然后是3个选择...以此类推。所有的总选择数就是5*4*3*2*1120。

同理,假如有1000个点的话,那么总可能性就是1000!(注2),这大约是一个2568位数。也就是亿...亿....亿(中间有285个亿字)那么多种可能性。

白夜明不知道在地球上最先进的超级计算机已经可以做到每秒钟运算多少次了。但想必15分钟是绝对算不完的,甚至有可能给个15年都算不完。

这是一个在理论上就不可能被正常人类解答出来的问题。这也正是白夜明说绝了的问题。

因为这就是一个没有什么实际意义的问题。它知道答案,就说明它能算出来。它能算出来,就说明所有古龍都能算出来。所以古龍能算出来的,

所以这个问题就成为了一个对人类来说不可能解答,但是对古龍来说可以解答的问题。这也就意味着只要古龍在最后一轮是提问者,回答者是人类的话,它们就一定会赢。

↑返回顶部↑

书页/目录