悲嘆之種的經濟學

以個體模擬(agent-based simulation)分析《魔法少女小圓》的魔法少女系統

星之宮悠奈(Yuna Hoshinomiya)

獨立研究者

這是一份為了好玩而寫的獨立研究,未經同儕審查。所有結論都是模型在既定假設下的性質,發現問題歡迎到 GitHub 開 issue。

本研究的實作與撰稿借助大型語言模型(Claude Opus 5, Anthropic),研究方向、規則與定稿由作者決定。可由機器檢驗的部分逐項核對過,建模取捨與詮釋則只經過一位非該領域專業的讀者審閱。詳見論文附錄〈重現與驗證〉。

資源循環示意圖:候選人、魔法少女、魔女、悲嘆之種與丘比之間的流動
資源循環。實線為主循環,紫色虛線為丘比的兩項作用,點線為兩個邊界流:魔女從模型外部湧入,以及寶石碎裂造成的折損(不產生魔女,因此沒有能量可回收)。

摘要

《魔法少女小圓》中的魔法少女、魔女與丘比構成一個子系統。本研究將其寫成一個資源循環,並以個體模擬(agent-based simulation)觀察它在系統層面的表現,也就是把每一名魔法少女與每一隻魔女都當成獨立個體逐一模擬,再看整體會浮現什麼樣的規律。模型的每一條規則都取自作品設定:淨化是把污濁移入悲嘆之種而非消滅它、裝滿的種子會孵化為新魔女除非被丘比吞食、擊敗魔女不一定留下種子、混濁的寶石會削弱持有者的戰力,以及使魔吞噬人類後會成長為魔女。作品設定已給出數值的量直接採用,其餘則對照作品中的三項特徵校準:一座城市維持少數幾名魔法少女、資深者的資歷達數年、多數生涯以魔女化收場。

研究發現有四:一、在作品所呈現的密度下,主導濁化收支的是與魔女的戰鬥,少女之間的爭奪僅佔其 0.15;該比值隨密度上升,要到同時約九名少女才會跨越一比一,遠高於作品所描繪的規模。二、少女折損的速率由締約速率決定,與種子供給幾乎無關;種子供給改變的是折損的方式,以及丘比的回收量。三、累積回收量會飽和。積極招募換得的優勢只是暫時的,因為它取自一個只能消耗一次的存量,也就是龐氏(Ponzi)結構。四、一座對外封閉的城市只有兩種結局:少女因缺乏種子而餓死,或使魔增殖而城市失守。

以上結果均為模型在既定假設下的性質,並以一條精確的守恆恆等式檢驗程式實作。

四項發現

  1. 在作品的密度下,主導濁化收支的是戰鬥。少女與魔女戰鬥所受的濁化是彼此爭奪的 6.7 倍,爭奪僅佔 0.15。該比值隨密度上升,要到同時約 9.4 名少女才跨越一比一,比作品所描繪的一至五人高出一個數量級。
  2. 折損速率取決於締約,而非種子供給。在整個魔女移入率的範圍內,折損都維持在每日 0.0034 至 0.0045,與締約率一致。把種子供給變充裕,改變的不是折損人數而是折損方式:魔女化比例由 99.5% 降至 89.1%,丘比的回收也隨之由每日 0.0050 降到 0.0038。
  3. 累積回收量會飽和。招募率超過 0.016 之後,8000 日的總量落在 45.0 至 46.9 之間,而在 0.004 時僅 13.8。積極招募換得的優勢取自一個只能消耗一次的存量,也就是龐氏(Ponzi)結構。
  4. 封閉的城市不是餓死就是失守。使魔成熟率 0.005 以下時,少女幾乎無法淨化,生涯恰好等於自然壽命;0.02 時魔女增至 173.5 隻,全部模擬皆失守。中間沒有可持續的狀態。
濁化收支分解與爭奪對戰鬥的成本比值
發現一。左:一生的濁化來源與去向。右:爭奪成本對戰鬥成本的比值,虛線為兩者相等處。
爭奪對戰鬥的比值與生涯中位數隨同時人數的變化
發現一的邊界。左:比值隨同時人數上升,在約 9.4 名少女處跨越一比一。右:生涯中位數隨同時人數的變化。
魔女化比例、丘比回收量與生涯存活曲線
發現二。左:魔女化比例對跨城市移入率。中:丘比的回收量與僅計絕望的預測值。右:兩種情況下的生涯存活曲線。
不同評估期間下的最適招募率與回收軌跡
發現三。左:三種評估期間下,正規化累積回收量對招募率。右:候選人池受限時的回收軌跡。
封閉城市中少女與魔女的數量以及失守比例
發現四。左:少女與魔女的同時人數對使魔成熟率。右:城市被判定失守的模擬比例。

延伸實驗:以強化學習調整丘比的招募率,能勝過固定招募率嗎?

結果三只比較了固定招募率。既然候選人池的水位是可觀測的狀態,一個依狀態調整的招募策略照理應該更好:池子見底時降低招募,回補後再提高。本研究以表格式 Q-learning(強化學習的一種,reinforcement learning)搜尋這樣的策略,決策以 100 日為一個宏觀步,動作為六個離散招募率,並以折現因子取代評估期間。

結果是否定的。三個折現因子下各訓練 2000 個回合,學到的策略都沒有勝過最佳固定招募率,但差距很小。

折現因子學到的策略最佳固定招募率差距
0.946.347.6−2.8%
0.9945.347.6−4.9%
0.99946.547.6−2.4%

這個結果不代表固定招募率比較好,而是說明回收量受候選人流入速度封頂。固定招募率的回收在 0.016 以上已形成平台,學到的策略正落在平台之內,學習曲線自第 200 回合起也沒有上升趨勢。因此本研究只能說,在這組參數下,依狀態調整的策略沒有可證實的優勢。

延伸實驗:放養使魔划得來嗎?

作品設定裡使魔不掉落悲嘆之種,但吞噬足夠人類之後會成長為魔女,因此有些魔法少女會刻意不獵殺使魔,等它成熟為魔女再收種子,設定裡把這種作法稱為放養(witch farming),作品中也有角色為此起過爭執。基準模型把使魔簡化成一個成熟率,模型裡也就不存在這個取捨。本實驗把使魔還原成獨立個體:它會吞噬人類,母體魔女被擊敗時會跟著消滅,被提前清除則一無所獲。再以此掃描採取放養的少女比例。

放養確實推高了種子供給,但沒有換到任何東西。實際成熟率上升 4.3 倍,而生涯長度與丘比的回收量都落在重複試驗的雜訊之內;真正上升的是這筆帳裡沒有人在計算的那項成本。

放養比例實際成熟率生涯中位數丘比回收量人類損失/千日
00.0022211635.416.3
0.50.0037911535.918.3
10.0094910634.024.6
放養比例對生涯長度、丘比回收量與人類損失的影響
使魔作為個體。左:生涯長度中位數。中:丘比的累積回收量。右:每千日的人類損失。

原因與結果三是同一件事:限制回收量的是候選人抵達的速度,而不是種子供給。生涯長度不動則是因為額外的種子必然伴隨額外的魔女,戰鬥所耗抵銷了淨化所得。需要說明的是,這是族群層次的收支,不是對任何一名少女的斷言。

重現

環境以 uv 管理。九組實驗使用確定性種子,重跑會得到相同數字。

git clone https://github.com/yuna0x0/madoka-magica-abm.git
cd madoka-magica-abm
uv sync
uv run madoka-abm experiments   # 單核心約一分鐘

論文以 Typst 編譯,中文版需要一套 CJK 襯線字型(預設 Noto Serif CJK TC)。

引用

@misc{hoshinomiya2026griefseed,
  title  = {The Grief Seed Economy: An Agent-Based Model of the Magical Girl
            System in Puella Magi Madoka Magica},
  author = {Hoshinomiya, Yuna},
  year   = {2026},
  url    = {https://madoka-magica-abm.pages.dev},
  note   = {Independent study, not peer reviewed. Code and data:
            https://github.com/yuna0x0/madoka-magica-abm}
}