第十章:A国军队的阴谋
在A国某处的地下一层,A国的五百名特种兵聚集在这里,他们坐着,每个人身前有个桌子,桌子上摆着开着机的PQC300。然后在五百名特种兵摆成的矩阵的中间,站着一名教官,教官身前也有一个桌子,桌子上摆着台PQC300,与特种兵不同的是,教官桌子上的PQC300运行着一段代码,代码的内容是死循环一段解决一个题目的代码,这个题目是:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。
不难看出,A国的军队能有此举,肯定是梁小乐他们的秘密暴露了。事实也确实是这样的。A国的情报局会用爬虫收集梁小乐所在国家C国的博客的情报,刚好梁小乐发博客那天,A国情报局的爬虫程序嗅探到了“未来”这个敏感字眼,于是A国的情报人员立刻查看,一看就知道了异同化这一秘密。于是A国的情报人员就一直跟踪梁小乐的行为,在PQC全国赛的时候,A国入侵了梁小乐队伍所在房间的摄像头,A国发现梁小乐的表现非常优秀。于是就有了以上的举措,A国军队打算通过死循环来达到异同化必然发生的目的,让500名优秀的特种兵接受异同化,从而使得他们变成超强的存在。
A国的500名特种兵都等待着,实际上他们只是觉得奇怪,像是什么奇怪的仪式,他们是不知道异同化这个概念的。突然,在死循环之中的PQC300亮出一道光,所有的在场人员脑袋里都闪过一道光,教官拿起预先准备好的眼镜,转了一圈,发现异同化成功了,500名特种兵的脑袋里都有白色的回路。教官取下那个和李达然制造出来的功能一样的眼镜,并把它收了起来。接下来教官指导他们离开地下一层,回去继续训练。
A国的高层知道了500名特种兵异同化成功的消息,他们知道,这500名特种兵的代码精神是做事明里一套,暗里一套。所以唯一处理他们的办法是给他们假身份的支持,放逐他们到其它国家,与他们断绝联系,不再理会他们,他们有回国的权利,也有在外发展的权利,这些都由他们吧,但是如果他们回国从政的话,则不接受他们当高官,不给予他们过高的权利。在A国的高层看来,这500名特种兵是训练有素的病毒,因为明里一套,暗里一套的代码精神根本不值得任何人新人,可是这件事除了他们没有人知道了,他们足以骗过除了高管以外的所有人,因为是特种兵,所以他们训练有素,这个世界只要别人训练有素,就肯定有饭碗可以吃饭,这是铁则,肯定没有什么问题能难倒他们的。A国高管就是希望这500名特种兵能在其他国家获得权力,然后用权力搞破坏。
不久后,A国的这项计划就此实施。
与此同时,在G国,一位C国国籍的小学生易小小正在家里做编程实验,他的父母在客厅看着电视。易小小在看一本很破旧的,由一位叫良谋先生写的数学书,其中有一章讲一项数学规律,数学规律的内容是:把数字看成是年份,然后根据生肖赋值。这里把鼠年赋值为1,牛年赋值为2,虎年赋值为3,兔年赋值为4,龙年赋值为5,蛇年赋值为6,马年赋值为7,羊年赋值为8,猴年赋值为9,鸡年赋值为10,狗年赋值为11,猪年赋值为12。比如数字1,我们把它看成是公元1年,公元1年是鸡年,赋值10,用1和10做差得绝对值,答案为9。所有的答案都会落到0,3,6,9这四个数中(如果数字的值大于12,做差的时候则把数字的每一位相加,直到数字的大小归到1至12之中,再与原数字对应的生效所赋的值进行做差)。
易小小觉得这个数学规律很有趣,但又暂时想不到为什么,于是打算写个程序把前25000个数的结果都输出出来,然后慢慢看。易小小不急不慢地编着程序,虽然易小小只是小学生,但他操作PQC300已经相当熟练了。就在易小小的程序快把结果输出完了的时候,PQC300上出现了一道光。被那道光闪了一下眼睛的易小小揉了揉眼睛,然后他发现他明白了那个数学规律其中的道理,他还知道他的爸爸和他的妈妈很爱他,他突然觉得他知道很多很多。他甚至知道了A国的计划,于是他又在大脑里搜索化解的办法。他突然意识到自己虽然什么都知道,但是这样子遇事才做出判断实在太不方便了,于是易小小开始在大脑里面搜索解决方案,他知道良谋先生的另一项数学的发现可以解决这个问题,而且知道他现在跑去学校,用入门第三排左手边第四台PQC300运行就能重新异同化成自己喜欢的样子了。
事不宜迟,易小小马上出发,跑到学校跟门卫说了一声之后易小小来到了电脑教室。发现里面空无一人,真是太好了。易小小拨开了电脑教室的电源,冲到用入门第三排左手边第四台PQC300前,开机。然后开始在大脑里搜索良谋先生的那个数学发现具体是什么?具体内容是:
素数分布的探究
一、一个变换
实际场景:一排小方块排成一排,然后对折,把不能对折的小方块取出来。重复这项操作,直到小方块两两排成一列,这个过程中取出来的小方块就是这个变换的结果。
例如(这里拿1来表示小方块):
1111111111111111111111111(25)
对折1次:111111111111(12)
111111111111
总共取出1个小方块。
对折2次:111111(6)
111111
111111
111111
总共取出1个小方块。
对折3次:111(3)
111
111
111
111
111
111
111
总共取出1个小方块。
对折4次:11(2)
11
11
11
11
11
11
11
总共取出9个小方块。
因为小方块已经两两排成1列,所以变换结束。故25通过此变换后结果为9。
二、此变换的应用
我们可以通过程序查找像25和9这样,变换前的数是某数的平方,变换后的数是某数的平方的数对列。
这里列下程序查找结果(这里忽略了0的情况):
25 9
36 4
100 36
144 16
400 144
576 64
1600 576
。。。。。。
603979776 67108864
1677721600 603979776
不难发现,从36和4开始,每个变换前的数,在下一列,都会变成变换后的数,而且把这些数每一位相加,如果得到的不是个位数,则继续每一位相加,直到得到个位数,会发现它们的结果都是9。而且有一个有趣的数就是576,这个数在手机九宫格里打,输出的结果有可能是“老婆”。
三、规律解析
注:中间为数队列,左右两边为对应的规律。这里把所有的数字都对应到1-9中(方法就是把一个数所有数位相加,直到得到1-9的其中一个数字)。左右两边为数字的规律。
四、探究素数分布
这里使用的区间是36,144,576,2304,9216,36864,147456,589824,2359296,9437184。
附上程序:
include<iostream>
include<cmath>
using namespace std;
int isPrime(int n);
const int n = 9437184;//左区间
const int m = 37748736;//右区间
int main() {
int count = 0;
for(int i = n;i <= m;++i) {
if(isPrime(i)) {
++count;
}
}
cout << count << endl;
return 0;
}
int isPrime(int n) //判断一个数是否为素数的函数
{ if(n < 2) return false;
for(int i = 2; i <= sqrt(n); i++) {
if((n % i) == 0) // 如果能被除了1和它本身的数整除,就不是素数
return false;
}
return true; // 是素数
}
得到的结果是:23,71,237,800,2766,9723,34703,125174,456172。
发现得到的点是可以用指数拟合的。
在运行代码之后,异同化果然再次发生了,易小小的代码精神从全知,变成了随时能知道。