睿文小說 > 我的學習群裡全是真大佬 > 第96章 他不會是在瞎寫吧

第96章 他不會是在瞎寫吧

⬅ 上一章 📋 目錄 ⚠ 報錯 下一章 ➡
⭐ 加入書籤
推薦閱讀: 花都風流第一兵王 代嫁寵妻是替身 天鋒戰神 穿越古代賺錢養娃 我覺醒了神龍血脈 我的老婆國色天香 隱婚嬌妻別想跑 遲遲也歡喜 全職獵人之佔蔔師

contentstart

李東剛纔太過興奮,這會兒才反應過來自己坐錯位置了。

“啊,不好意思啊,我看錯座號了。”

李東連忙站起身,把靠窗的A座讓了出來,坐到了旁邊靠過道的

C座上。

那個男生見李東態度挺好,也客氣的點了點頭,把行李塞進行李架後,便在靠窗的位置坐了下來。

他叫秦飛,是北理工電腦科學與技術專業的一名大三學生。

作為常年混跡在京都地鐵4號線上的高校學子,秦飛平時的課業壓力其實非常大,尤其是他主攻的方向還是“高效能計算(HPC)與底層演演算法優化”。

今年大三升大四,秦飛正處於衝刺考研的關鍵期。

本來這個暑假他是冇打算回老家的,想留在學校實驗室裡繼續肝他的算力專案。

但由於自己太過優秀,前期複習進度遠超預期,考研保底基本冇啥懸唸了。

再加上過年那會兒就冇回家,於是纔回家看了看爸媽。

現在開學了,他自然也要回學校了。

坐到座位上後,秦飛掏出一副降噪耳機戴上,就將目光投向窗外飛速倒退的風景。

而坐在旁邊的李東,已經從包裡拿出了那台聯想膝上型電腦,直接架在了高鐵的摺疊小桌板上。

“今天,我非得把那座屎山程式碼給推平了不可!”

李東開啟電腦。

他果斷拋棄了之前那個效率低下的Python指令碼,開啟了C 的整合開發環境(IDE)。

要跑黎曼Zeta函式的非平凡零點驗證,必須上底層語言,同時要用GMP和MPFR庫來保證計算精度。

0.3的基礎屬性直接拉滿,配上【程式碼直覺(基礎版)】

他覺得自己現在強的可怕……

“劈裡啪啦……劈裡啪啦……”

戴著降噪耳機的秦飛被身旁李東的動作給吸引了。

他微微偏過頭,瞥了一眼。

“ThinkBook?”

秦飛在心裡暗暗搖了搖頭。

“買個主打輕薄商務的輕薄本用來敲程式碼?這散熱壓得住嗎?這同學怕是被割韭菜了吧……”

帶著一絲懂行人的優越感,秦飛又看向了李東的電腦螢幕,然後就愣了一下。

void

RiemannSiegelZ

(...)

mpfr_t

theta_t;

“嗯?”

秦飛眉頭微挑。

“用C 寫黎曼-西格爾公式?這小子在跑黎曼Zeta函式的非平凡零點驗證?”

秦飛心裡多少有些意外,在高鐵上居然遇到了同專業的學生?

不過他還是帶著上位者的心態在看李東的程式碼。

因為在他們北理工的高效能計算實驗室裡,這種專案實在是太常見了。

計算機算力發展到今天,用經典的數學難題,比如計算圓周率百億位呀、大素數篩法這些來作為Benchmark(基準測試),去檢驗一套底層演演算法的優化程度,是他們這幫HPC方向學生的家常便飯。

而且,秦飛前段時間為了準備考研複試和畢業設計的開題,自己也手搓過一套驗證黎曼零點的程式。

“想法倒是不錯,用這個來練手。”

秦飛搖了搖頭,看著那檯膝上型電腦,在心裡暗暗吐槽。

“不過,就憑這台被割韭菜的輕薄本,你這演演算法能跑到什麼級彆?”

“十萬級?還是百萬級?”

“估計跑到一百萬個零點,這記憶體分配的碎片和CPU的溫度,就能把這台機子直接乾藍屏吧。”

秦飛心中篤定。

因為他自己當時做這個專案的時候,可是動用了學校實驗室的高效能伺服器集群。

通過極其嚴苛的多執行緒併發控製和CPU三級快取的命中率優化,他硬生生將零點計算推到了上億級的恐怖規模!

他甚至覺得,如果當時自己再把記憶體指標的回收機製打磨一下,摸到十億級的門檻也不是不可能。

“還是太業餘了呀……”

秦飛有些好為人師的搖了搖頭,索性也不看風景了,就這麼饒有興致的盯著李東的螢幕,權當是在旅途中找點樂子了。

此時,李東也冇注意旁邊有個高手在,他隻優化自己的演演算法。

秦飛看著,先是暗自點頭。

“嗯,不錯。”

“知道拋棄原始的歐拉乘積公式,直接上Riemann-Siegel

formula。”

“主和項的迴圈寫得很規範,餘項展開的泰勒截斷也算合理。”

“時間複雜度標準的

O

(t^(1\/2)),對於一個普通學生來說,這程式碼底子算得上紮實了。”

秦飛在心裡給出了一個“中規中矩”的評價。

然而,就在秦飛以為李東接下來會順理成章的去寫多執行緒加速程式碼時。

李東卻突然停了下來。

然後就按下了退格鍵,竟然把剛剛寫好的,那段堪稱教科書般標準的黎曼-西格爾主和項迴圈計算程式碼……

刪掉了一大半!

秦飛愣了一下。

“他乾嘛?寫錯撤回了?”

但接下來李東敲出的程式碼,卻讓秦飛徹底看迷糊了。

李東冇有去糾結如何加快單次計算的速度。

他有【程式碼直覺】還有《黎曼絕筆》裡的那種降維數學思維,他現在已經可以初步找到通往現代計算機底層邏輯的完美橋梁了。

他在程式碼頂部,重新引入了一個名為的頭檔案。

這是著名的快速傅裡葉變換(FFT)開源庫。

然後又在程式碼中定義一個密集的評估網格。

void

MultiPointEvaluation_Grid

(...)

他將需要逐個點代入t值去硬算的黎曼Zeta函式,通過構建區域性多項式,強行轉化為了在網格點上的泰勒級數展開。

緊接著,李東呼叫了FFT演演算法,讓這些多項式在頻域內進行高速相乘。

秦飛已經把降噪耳取了下來,眼睛看著李東的電腦螢幕,呼吸都變得有些急促了。

“等等……這特麼是在乾什麼?”

秦飛想用自己學過的知識去去解析這套程式碼背後的邏輯。

“算黎曼Zeta函式,你引個快速傅裡葉變換(FFT)進來乾嘛?這兩者八竿子打不著啊!”

“還有這個多點求值矩陣?他把泰勒展開放在網格上……”

突然,他好像想到了什麼

“他……他不是在算單點!他是在利用FFT的高效卷積特性,把一個大區間內的所有零點求值,強行打包成了一個並行的多項式運算?”

“用多點求值去分攤黎曼-西格爾公式主和項那恐怖的計算開銷?”

這其實就是黎曼寫在手稿裡,冇未被後世學界發現的零點計算的思路。

比後來公開的Odlyzko–Schnhage演演算法早了近一個半世紀,甚至在數學底層上,把後者的時間複雜度又往下壓了整整一個維度。

但秦飛不可能知道啊!

在他的認知裡,黎曼-西格爾公式帶來的

O

(t^(1\/2))複雜度,就是單零點計算的理論下限。

哪怕是學界最快的OS演演算法,也隻是工程化的極限優化,根本不可能跳出這個數學框架。

而現在,眼前這個傢夥,他到底在乾什麼?是想要推翻整個計算架構嗎?

“這怎麼可能?!”

秦飛感覺他瘋了。

“把主和項展開成矩陣運算,理論上雖然能降低平均複雜度,但誤差怎麼控製?你這麼搞,浮點數的截斷誤差絕對會呈指數級爆炸的!”

然而,還冇等秦飛在心裡反駁完。

李東繼續在多點求值的網格間,穿插了幾段帶限函式的插值濾波程式碼,完美的將積分路徑的截斷誤差死死的鎖在了一個極小的數學邊界內!

每一行指標的遊走,每一次記憶體的複用,都用的很優雅。

“不對……就算是

OS演演算法,也不可能用這麼少的程式碼、這麼低的記憶體開銷實現!”

“他這個插值邏輯,根本不是現代數值分析的思路……這到底是哪來的演演算法?!”

秦飛徹底看呆了。

雖然他認識那些

C 的語法,但組合在一起的演演算法邏輯,他已經完全跟不上了。

“他不會是在瞎寫吧?”

“這樣寫……真的可以跑通嗎?”

秦飛陷入了深深的自我懷疑中。

contentend

第 1 頁
⬅ 上一章 📋 目錄 ⚠ 報錯 下一章 ➡
升級 VIP · 無廣告 + VIP 章節全解鎖
👑 VIP 特權 全站去廣告清爽閱讀 · VIP 章節無限暢讀,月卡僅 $5
報錯獎勵 發現文字亂碼、缺章、內容重複?點上方「章節報錯」回報,審核通過立獲 3天VIP
書單獎勵 前往 個人中心 投稿你的私藏書單,審核通過立獲 7天VIP
⭐ 立即升級 VIP · 月卡僅 $5
還沒有帳號? 免費註冊 | 登入後購買