// 全局常量與變數
變數「總程序員數」為一千萬。 // 中國程序員總數
常數「文言專家數」為一百。 // 懂文言者基數
變數「知文言概率」為百分之五。 // 隨機知文言之機
// 初始狀態:一人創語言,傳百人
變數「知者」為列表。 // 知wenyan-lang者
加「一」於「知者」。 // 創始者自知
變數「待傳者」為列表。 // 待傳播隊列
加「百」於「待傳者」。 // 初始傳百人
變數「天數」為零。 // 計日
// 主循環:至盡人皆知
為數「天數」至「總程序員數」之時:
若「知者」之長 ≥ 「總程序員數」則:
跳出循環。
// 處理待傳播者
變數「新傳」為空列表。
為數「零」至「待傳者」之長之時:
變數「當前」為「待傳者」之第當前項。
// 若知文言則傳播
若「當前」知文言乎? // 隨機驗概率
變數「隨機」為亂數介於零至一。
若「隨機」 < 「知文言概率」則:
// 傳百人,延十日
加「百」於「新傳」。
加「天數+十」於「傳播日程」。
// 移除已處理者
刪「待傳者」之第當前項。
// 更新知者與待傳者
為數「零」至「新傳」之長之時:
加「新傳」之第當前項於「知者」。
加「新傳」之第當前項於「待傳者」。
// 檢查日程傳播
為數「零」至「傳播日程」之長之時:
若「傳播日程」之第當前項 == 「天數」則:
// 觸發傳播
加「百」於「待傳者」。
刪「傳播日程」之第當前項。
// 計日
「天數」增一。
// 輸出結果
天地!「盡人皆知需」+「天數」+「日」。
```
![[调皮]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_13.aaa8265.png)