兩小時解開卡了一年的難題:一個會包含自己的壓縮包,與AI改寫的工程工時帳
一名開發者讓AI在兩小時內做出包含自身的遞迴7z壓縮包,本文從技術替代曲線與工程工時成本,拆解ZIP Quine這道老難題被AI改寫的過程。
2026年10月1日,開發者 Mabbs 在個人部落格發布文章《如何製作一個「完整」的部落格壓縮包》,隨後張貼於 V2EX 程式設計師節點討論。事件的技術核心是所謂 Quine 壓縮包:一個壓縮檔解壓後,內容包含與自身完全相同的壓縮檔,理論上可以無限遞迴解壓下去。發文者稱,這個壓縮包目前託管於 mayx.eu.org,體積約 20MB,內含全站部落格內容加上壓縮包本身。
這件事值得拆的不是套娃本身,而是一道卡住人類開發者一年以上的技術難題,被 AI 在兩小時內找到可行路徑,中間的替代機制是什麼。
難題的結構:為什麼 ZIP 做不到
Quine 壓縮包的困難點在於壓縮演算法的自指性。發文者自述,去年嘗試以 ZIP Quine 實現時,卡在 DEFLATE 演算法的 32KiB 回溯窗口。DEFLATE 屬於 LZ77 家族,壓縮時只能引用前方 32KiB 範圍內的歷史資料;當壓縮檔的輸出結果需要包含自己,而自身體積遠超 32KiB 時,後段資料無法回頭引用前段已產生的位元流,自指結構難以收斂。
AI 給出的替代路徑是換演算法,改用 LZMA2 搭配 7z 容器。LZMA 同屬 LZ77 家族,但字典尺寸遠大於 32KiB,發文者在討論中確認理論上 LZ77 家族演算法都具備實作 Quine 的條件,只是窗口尺寸決定了工程難度。另一個技術環節是 CRC32 校驗碼的求解:壓縮包需要對「包含自己的自己」算出正確校驗值,發文者提到 AI 產出兩種解法,一是以高斯消元法求解的「偷懶版」,二是以擴展歐幾裏得演算法處理的「硬核版」,另外附贈一份 tar.xz 版本的生成器。
從技術替代曲線看,這裡沒有新演算法被發明。LZMA2 是 7-Zip 既有格式,CRC32 求解的數學工具都是教科書內容。替代發生在另一層:把論文、生成器框架餵給 AI 後,跨領域組合(壓縮演算法特性、密碼學校驗、自指結構)的搜尋成本被大幅壓低。發文者的原話是,人類嘗試一年未果,AI 兩小時產出可運行的遞迴壓縮包。
討論區修正的兩個事實
V2EX 討論串本身修正了原文的兩處判斷。其一,發文者原稱 zstd「不是很知名、一般解壓軟體處理不了」所以選 LZMA2,網友 lovelylain 指出 zstd 已廣泛用於替代 gzip;網友 NewYear 補充主流瀏覽器的請求頭兩年多前就納入 zstd,Accept-Encoding 欄位可直接驗證。發文者實測後承認資訊過時。其二,關於「每次遞迴解壓都變大一點」的進階變體,發文者轉述 AI 的說法:若要求解壓後可原地運行,被引用的前段資料已是明文,無法再作為壓縮輸入,除非存兩份壓縮後資料,而他實測部落格內容的壓縮率約 50%,這樣做不劃算。
這兩處修正恰好劃出了本次成果的邊界:達成的是固定大小的歸檔型 Quine,壓縮增益來自部落格文字內容本身,而非自指結構帶來的額外壓縮。發文者後續在討論中更新,外層再套一層 7z 壓縮不影響其需求,已另外加上。
工時帳:兩小時對一年
若把這件事記成一本帳,最直接的科目是工程時間。發文者投入的結構是:一年前的人工嘗試(失敗於 DEFLATE 窗口限制),加上本次將論文與生成器交給 AI 的兩小時迭代。產出是一個可下載、可無限遞迴解壓的 20MB 壓縮包,以及一份公開的實作記錄。
這與我們先前追蹤的AI 免費額度完成微信小遊戲開發案例屬於同一類帳目:AI 沒有降低任務的理論難度,降低的是把既有知識組裝成可運行程式的搜尋與試錯成本。差別在於,泡麵等級的應用開發替代的是初級工程工時,而 Quine 壓縮包替代的是跨壓縮演算法與數論的組合式難題工時,這類難題過去的典型解法是等少數具備雙背景的開發者出手,或根本無人解。
發文者自己也提出疑問:組合式創新算不算創新。這個問題在工時帳上有個可量化的切入方式。一年對兩小時,中間約四千多倍的時間差,就是這道難題的知識組裝成本被壓縮的幅度。至於原創性歸屬,帳上沒有這一欄。
收束
這個壓縮包不會改變任何市場數字,它的價值在於提供了一個乾淨的對照組:同一人、同一難題、兩種工具路徑,時間成本相差三個數量級。當這類對照在愈來愈多的冷門技術角落重複出現,被重估的不只是單一任務的工時,而是「跨領域組合式難題」這整個品類的定價。發文者留了一個未完成的分支,遞迴時逐層變大的壓縮包,目前無解,或許只是還沒有人把對的論文餵給對的模型。