• 首页
  • 上一页
  • 目录
  • 下一页
  • 书架

《我的学习群里全是真大佬》

第96章 他不会是在瞎写吧
。」

    秦飞心中笃定。

    因为他自己当时做这个项目的时候,可是动用了学校实验室的高性能伺服器集群。

    通过极其严苛的多线程并发控制和CPU三级缓存的命中率优化,他硬生生将零点计算推到了上亿级的恐怖规模!

    他甚至觉得,如果当时自己再把内存指针的回收机制打磨一下,摸到十亿级的门槛也不是不可能。

    「还是太业余了呀————」

    秦飞有些好为人师的摇了摇头,索性也不看风景了,就这麽饶有兴致的盯着李东的屏幕,权当是在旅途中找点乐子了。

    此时,李东也没注意旁边有个高手在,他只优化自己的算法。

    秦飞看着,先是暗自点头。

    「嗯,不错。」

    「知道抛弃原始的欧拉乘积公式,直接上Riemann—Siegelformula。」

    「主和项的循环写得很规范,余项展开的泰勒截断也算合理。」

    「时间复杂度标准的0(t^(1/2)),对於一个普通学生来说,这代码底子算得上紮实了。」

    秦飞在心里给出了一个「中规中矩」的评价。

    然而,就在秦飞以为李东接下来会顺理成章的去写多线程加速代码时。

    李东却突然停了下来。

    然後就按下了退格键,竟然把刚刚写好的,那段堪称教科书般标准的黎曼一西格尔主和项循环计算代码————

    删掉了一大半!

    秦飞愣了一下。

    「他干嘛?写错撤回了?」

    但接下来李东敲出的代码,却让秦飞彻底看迷糊了。

    李东没有去纠结如何加快单次计算的速度。

    他有【代码直觉】还有《黎曼绝笔》里的那种降维数学思维,他现在已经可以初步找到通往现代计算机底层逻辑的完美桥梁了。

    他在代码顶部,重新引入了一个名为&It;>;的头文件。

    这是着名的快速傅立叶变换(FFT)开源库。

    然後又在代码中定义一个密集的评估网格。

    voidMultiPointEvaluation Grid(...)

    他将需要逐个点代入t值去硬算的黎曼Zeta函数,通过构建局部多项式,强行转化为了在网格点上的泰勒级数展开。

    紧接着,李东调用了FFT算法,让这些多项式在频域内进行高速相乘。

    秦飞已经把降噪耳取了下来,眼睛看着李东的电脑屏幕,呼吸都变得有些急促了。

    「等等————这特麽是在干什麽?」

    秦飞想用自己学过的知识去去解析这套代码背後的逻辑。

    「算黎曼Zeta函数,你引个快速傅立叶变换(FFT)进来干嘛?这两者八竿子打不着啊!」

    「还有这个多点求值矩阵?他把泰勒展开放在网格上————」

    突然,他好像想到了什麽「他————他不是在算单点!他是在利用FFT的高效卷积特性,把一个大区间内的所有零点求值,强行打包成了一个并行的多项式运算?」

    「用多点求值去分摊黎曼—西格尔公式主和项那恐怖的计算开销?」

    这其实就是黎曼写在手稿里,没未被後世学界发现的零点计算的思路。

    比後来公开的Odlyzko—Schonhage算法早了近一个半世纪,甚至在数学底层上,把後者的时间复杂度又往下压了整整一个维度。

    但秦飞不可能知道啊!

    在他的认知里,黎曼—西格尔公式带来的0(t^(1/2))复杂度,就是单零点计算的理论下限。


    -->>(第2/3页)(本章未完,请点击下一页继续阅读)
  • 加入书签
  • 上一页
  • 目录
  • 下一页
Copyright shukugu.com 返回首页
顶部