
攻略 / 放置遊戲
放置遊戲為什麼用巨大的數字:K、M、aa 和 e308
放置遊戲裡的 K、M、B、T、aa 和 1.5e45 代表什麼、數字為何爆炸成長、為何 1e308 是神奇的極限,以及程式如何處理比電腦能容納的還大的數字,並分享我們自己遇到的 bug。
放置遊戲使用巨大的數字,因為遊戲裡的一切都以指數成長:每次升級都會讓收入倍增,所以幾個小時後你就在百萬級,幾週後就超越了所有有名字的數。為了讓這些數字好讀,遊戲會把它們縮寫:K 代表千,M 代表百萬,B 代表 10 億(英文的 billion),T 代表 1 兆(英文的 trillion),再往後是 aa、ab、ac 這樣的字母,或像 1.5e45 這樣的科學記號,意思是 1.5 後面還有 45 位數。
速查表:K = 10^3、M = 10^6、B = 10^9、T = 10^12,之後每前進一個字母就大 1,000 倍。在科學記號中,e 後面的數字表示第一位數之後還有幾位數:1e6 是 100 萬,1e12 是 1 兆。
三種常見的表示法
| 數值 | 英文縮寫 | 字母 | 科學記號 |
|---|---|---|---|
| 1,000 | 1K | 1K 或 1a | 1e3 |
| 1,000,000 | 1M | 1M 或 1b | 1e6 |
| 1,000,000,000 | 1B | 1B 或 1c | 1e9 |
| 10^12 | 1T | 1T 或 1d | 1e12 |
| 10^15 | 1Qa(1000 兆) | 1aa | 1e15 |
| 10^18 | 1Qi(100 京) | 1ab | 1e18 |
| 10^33 | 1Dc(10 溝) | 1ag | 1e33 |
每款遊戲都有自己的系統,容易讓人混淆,但只要知道規則就很好懂:每一級都是前一級的一千倍。
我們遊戲裡的實例
即使是同一間工作室的兩款遊戲也可能不同。在《Idle AI Factory》中,數字依序是 K、M、B、T,接著開始兩個字母一組:aa 代表 10^15、ab 代表 10^18、ac 代表 10^21,依此類推,共 120 個後綴。在《Idle Ronin》中,字母一開始就出現:1a 是一千、1b 是一百萬、1c 是十億,一路到 z,然後是 aa、bb、cc。表中共有 1,743 個後綴,萬一你超過最後一個,遊戲會顯示「A Lot!」。《Idle Ronin》也能在設定中改用科學記號,許多老玩家都比較喜歡這樣。
數字為什麼會爆炸成長
放置遊戲的成本和獎勵每一步都會按一定百分比成長,也就是指數成長。在《Idle Ronin》中,前期敵人的生命值每一關會增加 55% 到 57%。過了 140 關後,這個累積效果會達到約 10^28,也就是一個 29 位數。我們的指南放置遊戲的成長機制有曲線圖。

為什麼 1e308 是個神奇的數字
大多數遊戲以 64 位元浮點數(稱為 double)儲存數字。double 能容納的最大數約為 1.8 x 10^308,超過之後電腦就會回傳無限大。這個極限在增量遊戲玩家間非常有名,《Antimatter Dimensions》甚至把它變成遊戲的一部分:抵達約 1.8e308 的 Infinity(無限)是遊戲的第一個大目標。
較小的 32 位元 float 格式更早就會用盡,大約在 3.4 x 10^38。正如我們親身發現的,這一點很重要。
我們的 bug:當敵人的生命值變成無限大
《Idle Ronin》源自一款更早的放置遊戲,在那份程式碼中,敵人的生命值是用 32 位元 float 計算的。過了第 140 關,敵人的生命值會逼近 10^28,而大約從第 316 關開始,float 就溢位成了無限大。之後的關卡出現了完全沒有生命值的敵人,到了第 1000 關左右,計算結果變成 NaN(not a number,「不是數字」),讓進度完全卡住。
解決方法是用 double 計算整條曲線,並把第 1000 關之後的部分交給遊戲自己的大數型別處理。這種型別會儲存一個普通的數,再加上一個另外記錄多出幾個零的計數器,因此可以遠遠超過 double 的極限。這也是遊戲裡有一張 1,743 個後綴的表的原因。
遊戲如何處理超越無限的數字
瀏覽器上的增量遊戲也撞上了同一道牆,玩家社群為此做出了工具。最有名的是 Patashu 的 break_infinity.js,它獻給《Antimatter Dimensions》的作者,以及為了執行這款遊戲而吃力的「all the CPUs that struggled to run」。它把位數和指數存成兩個獨立的數,可以處理到約 10^(9 x 10^15)。它的後繼者 break_eternity.js 走得更遠,遠到要用一座冪塔才能描述它的極限。
代價是精確度。數字大到這種程度時,遊戲只會保留大約前 15 位數。沒有人會發現:當你的收入達到 1.52e1204 時,前幾位之後的數字根本無關緊要。
快速讀懂大數字的方法
- 數字母,不要數位數。每一級(從 K 到 M、從 aa 到 ab)都大 1,000 倍。
- 科學記號就比較指數。3e45 是 3e42 的一千倍。
- 如果遊戲允許,就切換表示法。當數字超過有名字的範圍時,科學記號比較容易比較。
- 用倍率思考。x2 升級會讓指數加 0.3;x10 升級會讓指數加 1。
常見問題
放置遊戲中 T 之後是什麼?
Qa 代表 quadrillion(1000 兆),Qi 代表 quintillion(100 京),接著是 sextillion、septillion 等等;字母表示法則是 aa、ab、ac。每一級都是前一級的 1,000 倍。
放置遊戲裡的 e 是什麼意思?
那是科學記號:1e6 表示 1 後面有 6 個零,也就是一百萬。2.5e20 表示 2.5 後面還有 20 位數。
放置遊戲裡的 aa 是什麼意思?
在大多數使用字母的遊戲中,aa 是 T 之後的第一級,也就是 10^15。有些遊戲(例如《Idle Ronin》)會更早開始用字母,所以請確認遊戲的單位。
放置遊戲為什麼停在 1e308?
因為標準的 64 位元數字無法超過這個值。能走得更遠的遊戲都使用自己的數字型別。
資料來源
- ONI Games 遊戲程式碼:《Idle Ronin》(double_evrac.cs、PlayerDatabase.CalculateEnemyHP)與《Idle AI Factory》(NiceCurrencyFormat.cs),2026 年 9 月。
- break_infinity.js 與 break_eternity.js,Patashu,GitHub。








