资治通鉴

计算模拟历史

以前闲着无聊的时候曾经做过一个《资治通鉴》的字频统计,单以频率计,中国历史不过是“王”与“人”,“义”与“忠”,“将军”与“刺史”,“长安”与“洛阳”。

既然有了频率,自然也就有了概率和条件概率。根据条件概率,当给出一个序列的字词后,预测下一个字词是什么,就变成了一个简单的最大似然估计问题。如果觉得这个序列太长,计算起来太麻烦,可以假设简化的马尔科夫结构,譬如假设下一个词的概率取决与之前的n个词而不是整个序列,这基本上就是计算语言学里的 n-gram 算法了。

所以我们可以用《资治通鉴》作为语料得出经验条件概率,然后来随机模拟出历史文本,产生原汁原味(至少是统计意义上的)史书 (技术细节见附录)。 虽然这只是文字游戏,但是仍然能从概率上看出《资治通鉴》记述的历史中,最容易重现怎样的事件。

譬如下面这则 (random seed = 2000):

撰 刘 崇 俊 以 惟 岳 又 从 入 关 , 宣 等 从 太 子 也 , 惧 履 危 亡 之 事 , 发 步 骑 二 十 骑 自 北 至 北 寺 狱 , 竟 不 使 宗 庙 社 稷 。 宗 元 为 柳 州 司 马 。 坚 大 怒 , 士 气 彫 沮 , 无 事 , 更 为 后 拒 , 倍 急 于 亡 命 聚 众 二 万 会 麻 秋 、 姚 、 宋 赤 眉 将 逢 安 为 新 都 , 剽 掠 。

我们可以这样翻译:

刘崇俊因为惟岳(人名,可能是李惟岳。刘崇俊是五代人,李惟岳是晚唐人,相差不算太远)一起入关(姑且认为是潼关,但是李惟岳在和河北,真实历史是不会入关的),而宣(人名)等人却追随太子而去,害怕这是危亡社稷的事情,于是发步骑二十骑(区区二十骑!估计是武林高手),从北面到北寺狱(这是东汉时候黄门署属下的监狱,鞫禁将相大臣的,好吧,晚唐也有宦官之祸,这里东汉的宦官乱入了,不过二十骑到北寺狱,难道是要劫狱?),最终也没有拜谒宗庙(不把皇帝放在眼中啊)。

柳宗元被任命为柳州司马(二王八司马嘛,承接上文,还是和阉祸有关)。

(某)坚大怒(不知道是孙坚?苻坚?杨坚?),士气不振,好在也没有什么大事,继续抗拒(王师?)。 因急于亡命,聚众两万人与麻秋汇合(麻秋登场,那么坚应该是苻坚了,但是麻秋很早就被苻坚的伯伯苻健杀死了)。

(与此同时)姚、宋(姚崇,宋璟?)率领赤眉军把逢安(这个地名是自动产生的,历史上似乎没有,权且当作是四川 蓬安 吧)作为新的都城,四处剽掠。

我们来梳理一下这段模拟历史的脉络:

这大概是一个王朝末年的乱象。 地方农民起义(赤眉),建立政权(所以有新都),负责讨伐的将领反而形成军阀割据,一些军阀随权臣(刘崇俊)入京,干预朝政(惟岳),一些军阀在地方反叛(坚),勾结外敌(麻秋是羯族人)。这一切的原因可能是因为朝廷宦官弄权已久(北寺狱),忠良被贬(柳宗元)。 军阀入京大概是打着清除宦官的名义(所以要发兵北寺狱),但是同时他们也不把社稷放在眼里。 京城在军阀到来前似乎已经被反贼攻克,所以皇帝和太子分道逃亡。如今皇帝似乎已经回到京城,而太子却还在外面招兵买马(宣等人追随),似乎有不臣之心。

简而言之: 中央朝政腐败,宦官专政,两宫不和。地方盗贼风起,军阀割据,外患不断。

难道这就是随机生成的中国历史最典型的场景? :-)

附录

文中使用的通鉴文本是从维普网上下载的,做了一些简单的清理,上传到了百度云(链接)。 为了避免古文分词的麻烦,在作 n-gram 的时候以字为单位,所以用 gsub 在每个字的后面加入空格。 n-gram 选择 n=2.

 library(ngram)        
 file<-"C:/Users/Zeng/Downloads/zztj.txt"     
 str=scan(file,"character",encoding="GB2312")      
 s = concat(str)      
 s = gsub("(.)", "\\1 ", s)         
 ng = ngram(s, 2)  
 o = babble(ng, 100,seed=2000)  
 Encoding(o)<-"UTF-8"  
 o  
Blog分类: 

脍炙《通鉴》

(这是一篇关于很枯燥的技术,很枯燥的历史文本,和不太枯燥的统计的 blog)

看过一篇关于《全宋词》词频统计文章,挺有趣的,想用类似的方法处理一下《资治通鉴》,所以就趁周末花了几个小时作了一下。

词是长短句,统计两个字组成的词频比较合适,《通鉴》是古文,文字结构不同,所以我统计了单字频,两字词词频,三字词词频,四字词词频,和五字词词频。同时也记录各个统计单位(字或词)出现的卷数。《通鉴》294卷,从三家分晋到五代结束共共1362年,所以卷数可以作为时间的度量。

《全宋词》的词频是用 R 作的。R 虽然是不错的统计软件,也是我的最爱之一,但是 R 并不适合作文本分析,更不适合来作数据库操作。所以就用了 C# 和 Kdb +3.0。 C# 用来分析文本,.Net 是懒人的福音,并且多线程运算非常简单,能够大大提升文本处理速度,Kdb+用来储存数据,它差不多是性能最好的 in-memory 数据库了,从它的网站上能下载到免费版本。这个分析里数据库是重头戏,因为需要查询数百万行的数据 row,如果用 MySQL,估计会龟速到死。另外 Kdb + 本身只有 300多K,不用安装,很方便。还有就是 Kdb+ 的 Q 语言也能满足编程需要。

Kdb+ 的网站提供了各种语言 API 的源码,C# 的 API 不支持多线程,所以需要在适当的地方加锁。Kdb 唯一的问题是不支持 UTF-8。它用的是 UTF-7,所以在注入中文文字数据的时候可能会出现乱码,为了省事,从 C# 里 publish 数据的时候,直接 publish 为三字节的 int[] 了。query kdb 时用了一个免费的 GUI QPad。QPad 似乎是用 Java 写的,它的编码默认是 UTF-8,所以在 query  Kdb 的时候直接把三字节的 int vector  cast 成 char,在 QPad 里显示的就是中文了,所以也很方便。

产生数据的 C# 代码非常简单,发布数据的时候自动生成 Kdb 的 schema。使用的《资治通鉴》的文本是网上广为流传的国学网简体版,在生成数据前,先用 C# 作了预处理,主要是用正则表达式替换掉了现代语言的“污染”(譬如:“后一页”,公元xxx年 等)

下表是各个字、词频的数据量:

类别 数据行数
单字            2,586,329
双字            2,102,023
三字            1,633,875
四字            1,221,713
五字                851,403

从上表看,《资治通鉴》应该有近两百六十万字。

单字的字频统计如下:

排名 次数 百分比 累积百分比 
1 66087 2.56% 2.56%
2 39874 1.54% 4.10%
3 35677 1.38% 5.48%
4 34376 1.33% 6.81%
5 21578 0.83% 7.64%
6 21279 0.82% 8.46%
7 20182 0.78% 9.24%
8 20100 0.78% 10.02%
9 19035 0.74% 10.76%
10 18209 0.70% 11.46%
11 18083 0.70% 12.16%
12 使 17160 0.66% 12.82%
13 16116 0.62% 13.45%
14 16031 0.62% 14.07%
15 15600 0.60% 14.67%
16 15558 0.60% 15.27%
17 15252 0.59% 15.86%
18 14746 0.57% 16.43%
19 12826 0.50% 16.93%
20 12536 0.48% 17.41%

“之”字当之无愧的排在了第一位。第一个非虚词是“王”,它包含了姓和爵位,第一个动词是“曰”。“人”的频率也很高,“将”,“军” 在双字词频中也会遇到。“帝”字排名32,“后”字排名33。但是因为是简体字,“后”并不专指皇\王后。

下面是价值观念的排名:

排名 次数 百分比
152 3507 0.14%
181 3004 0.12%
223 2475 0.10%
240 2287 0.09%
253 2190 0.08%
294 1935 0.07%
767 694 0.03%

义、忠、孝排名在前,智排名最后,倒正印证了司马温公那句话:“凡取人之术,苟不得圣人、君子而与之,与其得小人,不若得愚人。”当然这个数据里噪音很多。

另外还有很多有趣的东西,就不一一叙述了。下面看一下两个字的词频:

排名 最早卷数 次数 百分比
            1 将军 1             6,176 0.29%
            2 刺史 21             4,790 0.23%
            3 州刺 21             4,110 0.20%
            4 节度 29             3,698 0.18%
            5 以为 1             3,479 0.17%
            6 度使 203             3,202 0.15%
            7 天下 1             2,972 0.14%
            8 尚书 20             2,742 0.13%
            9 太子 1             2,584 0.12%
          10 陛下 6             2,492 0.12%
          11 不能 1             2,375 0.11%
          12 不可 1             2,351 0.11%
          13 太后 3             2,165 0.10%
          14 皇帝 6             2,050 0.10%
          15 太守 5             2,010 0.10%
          16 大将 6             1,813 0.09%
          17 遣使 4             1,501 0.07%
          18 司马 1             1,480 0.07%
          19 二月 4             1,477 0.07%
          20 馀人 2             1,463 0.07%

“将军”出现的频率最高,在第一卷里就出现了,“度史”显然是“节度使”里出现的,虽然在203卷才出现,但是它居然出现了3202次,唉,唐朝啊!“节度”一次出现的要比“节度使”早。“皇帝”一次最早在第6卷出现,其实那时还是昭襄王元年,但是因为文本中出现了“秦始皇帝上”。

两字地名出现的最多的是“长安”,排名43,最早出现在第5卷,不过那里的“长安”并不是长安城,而是赵国的长安君。“洛阳”其次,排名81,最早出现在第2卷,三家分晋不久,洛阳附近就成了三晋与秦国的战场。

三个字的词频:

排名 最早卷数 次数 百分比
1 州刺史 21 4102 0.25%
2 节度使 210 3195 0.20%
3 大将军 6 1547 0.09%
4 平章事 203 933 0.06%
5 同平章 203 901 0.06%
6 十二月 4 704 0.04%
7 之子也 13 700 0.04%
8 十一月 7 686 0.04%
9 部尚书 70 655 0.04%
10 指挥使 254 578 0.04%

比较有趣的是“之子也”,老子英雄儿好汉。

四字字频:

排名 最早卷数 次数 百分比
1 同平章事 203 900 0.07%
2 仪同三司 49 403 0.03%
3 都指挥使 254 374 0.03%
4 日有食之 1 368 0.03%
5 中书侍郎 73 325 0.03%
6 节度使李 217 312 0.03%
7 散骑常侍 69 308 0.03%
8 开府仪同 79 300 0.02%
9 府仪同三 79 283 0.02%
10 御史大夫 9 281 0.02%

鉴于“州刺史”在三字字频中频繁出现,所以频率出现比较高的各个州刺史的频率单列出来:

排名 最早卷数 次数 百分比
15 豫州刺史 58 220 0.02%
19 荆州刺史 49 195 0.02%
26 兗州刺史 37 172 0.01%
32 徐州刺史 30 167 0.01%
38 扬州刺史 24 152 0.01%
42 雍州刺史 65 147 0.01%
52 江州刺史 86 122 0.01%
64 益州刺史 39 113 0.01%
68 二州刺史 49 111 0.01%
74 秦州刺史 79 109 0.01%
101 青州刺史 21 91 0.01%
105 梁州刺史 84 90 0.01%
107 冀州刺史 27 88 0.01%
114 并州刺史 52 84 0.01%
135 凉州刺史 31 71 0.01%
165 幽州刺史 50 62 0.01%
196 广州刺史 80 55 0.00%

豫州刺史第58卷时才登场,但是雄踞第一,而豫、荆、兖、徐、扬也勾勒出了中国政治地理的热点。顺便提一句,最早登场的豫州刺史是王允,而最早登场的荆州刺史是杨震。

五字词已经没有太大的意义:

排名 最早卷数 次数 百分比
               1 府仪同三司 79 283 0.03%
               2 开府仪同三 79 283 0.03%
               3 尚书左仆射 77 167 0.02%
               4 皇帝上之下 10 140 0.02%
               5 为中书侍郎 84 118 0.01%
               6 尚书右仆射 81 115 0.01%
               7 军都指挥使 256 111 0.01%
               8 骠骑大将军 39 107 0.01%
               9 河东节度使 214 101 0.01%
            10 督中外诸军 74 97 0.01%

最后看看慕容家的英杰们谁的全名被提到的次数最多:

次数
慕容彦超 27
慕容垂 26
慕容廆 24
慕容绍宗 15
慕容恪 18
慕容评 18
慕容皝 17
慕容农 15
慕容翰 15
慕容仁 12
慕容白曜 10

似乎是慕容彦超险胜慕容垂……慢着!慕容垂最初的名字是慕容霸,而慕容霸被提及了10次,所以慕容垂以 36 次远远胜出 (慕容缺这个全名并没有出现在《通鉴》中:))。

Blog分类: 

遇稼轩赤壁、斗酒彘肩、风雨渡江

image去年八月的时候读完第十二遍《资治通鉴》,决定不再看《通鉴》了,边际效用递减,再读下去就可惜了一部好书,闲暇的时候读了一些杂书,包括 The Economist给了书评的 《Why the West Rules - For Now: The Patterns of History and What they Reveal about the Future》,其实很一般,没有什么特别独到的见解,比一直很喜欢的《The Rise of the West: A History of the Human Community》逊色很多,也许只是我的个人口味,也许是因为以前教学生的时候,一直都用 McNeill 的这本书作教科书,日久生情:)不管怎样,以后估计不会再有机会在讲台上侃侃而谈上下五千年,纵横八万里了。。。翻看了以前教课、作TA时学生给的评价:

  • GREAT CLASS TAKE WITH PROFESSOR ZENG! He's so nice!
  • When I walked in for our first class discussion, I was so happy to see Kai because he has been one of the most knowledgeable TAs that I've ever had. He really knows the course material and helps us out with it.
  • Kai is one of the most intelligent, helpful TAs I've had at Northwestern.

算是对过去的一个总结吧,好在基本上还没有误人子弟(其实也误了,尽管我不是一个马克思主义者,但是因为贪图历史唯物主义的简洁美丽,解释历史时候经意不经意间总会给出历史唯物主义的解释,虽然同时也努力给学生更多元的角度和理论,但是从期末的 paper 来看,学生还是更接受历史唯物主义。。。所以马克思主义是不会被死掉的 ^_^)

以后没有机会站在讲台教历史、政治学、数学、统计或者经济学了,因为马上要去investment bank 作 quant trading,再打交道的大概只有 stochastic calculus, C++ & R, time-series analysis 和孔方兄了,也是一种解放,虽然喜欢教书,喜欢作研究,但是实在厌倦了被可恶的 reviewer 一遍又一遍的逼着 rewrite paper —— 我的paper还没有改好,穆巴拉克都已经下台了,唉,硬是把我的 prediction 给逼成了history  ……

所以华尔街也好,只要模型能产生收益、能赚钱,大概没有人会 care 你的 introduction 部分是否 review了足够多的 literature, 是否把所有的前辈高人都阿谀一遍…… 当然也不会有人再 care 北匈奴最后流落何方,或者秦始皇的百万雄师终于何处 ……

但是这些却已经是我的世界的一部分,至少在我作白日梦的时候(现在作白日梦的机会越来越少了),我是驰骋在这样的世界里。。。因为决定不再读《通鉴》,又重新翻起了《二十四史》,我知道这是在食言,所以跳过了前十九史,从《宋史》开始重读。

很喜欢宋朝,记得以前说过无数次,如果可以穿越,最希望到达的目的地是司马温公时代的洛阳和马克斯·韦伯时代的维也纳,也很着迷宋人的笔记,其间的八卦乐趣,远胜于现在的娱乐周刊,但是我却不是很喜欢《宋史》。

元代编纂的《宋史》实在太粗糙了,《四库全书总目》的评价很恰如其分:

其书仅一代之史,而卷帙几盈五百。检校既已难周,又大旨以表章道学为宗,馀事皆不甚措意,故舛谬不能殚数。

所以以前《宋史》只通读过一遍,如今再读,反而兴趣盎然——大概也可以用边际效用来解释:)

所以我的世界里又会有些新的人物,譬如可怜的翰林学士承旨陶榖,因为生活在没有 Google 的时代,当宋太祖问他比宰相第一等的官职是什么的时候,他竟然回答“唐有参知机务、参知政事”,宋时宰相的职衔为同中书门下平章事,而唐代的参知政事的地位是高于同平章事的,因为一知半解而又不能 Google 的陶榖,宋代的副相便被称作参知政事了——副相反而比宰相有了一个更高的职衔;

又譬如幸运的元佑皇后,两次被废,两次复位,不仅躲过了汴京沦陷的浩劫,而且后来又垂帘听政,不由让人感慨塞翁失马,福祸相依。

当然最重要的还是那些英雄们,两宋英雄辈出,但是最喜欢的还是虞允文,他是多少读书人心中的梦想 —— 如果明末能有这样一个人物,或者如果史可法能有虞允文一半的才智,也许南明小朝廷也不会如此快的覆灭。也正是清末有一个这样的人物曾国藩,清廷才得以残喘。(其实明末的瞿式耜也能算得上是这样的英雄吧,可惜大势已去)。

英雄之外还有文士,譬如苏东坡,大概也是中国所有文士中最喜欢的一位……

这个如 Matrix 般丰富多彩的世界!

有这样世界的不单单是我,还有辛弃疾:

我志在寥阔,畴昔梦登天。摩挲素月,人世俯仰已千年。有客骖麟并凤,云遇青山赤壁,相约上高寒。酌酒援北斗,我亦虱其间。
 
少歌曰,神甚放,形则眠。鸿鹄一再高举,天地睹方圆。欲重歌兮梦觉,推枕惘然独念,人事底亏全。有美人可语,秋水隔娟娟。

青山(李白)赤壁(苏轼)在他的世界里,可以相约酌酒,而他们又在我的世界里“斗酒彘肩,风雨渡江,岂不快哉!”:)

P.S.:某日对同学说:如果穿越了,一定带上装有股票数据的闪盘,回到30年代,即便是从一块钱开始,现在也要发大财了;同学开始没有明白我在说什么,明白了之后问道:“如果回到30年代,你拿什么来读你闪盘上的数据?” ——现实就是这么残酷,所以每个人都需要一个自己的虚拟世界:)

Blog分类: 

坐妲己

眨眼一个月了,忙起来就没时间写 blog 了,每天开始操心稻粱之事,少了闲谈和八卦的功夫。并且有更适合懒人的微博或是 facebook,以前有了新鲜事儿,还能大书特书几段,现在最多在 facebook 上喊一句“装了 Maple 14 了,我的囧函数可以上色了”,或者“ 在 Windows Mobile 手机上装了 Android Froyo,告别微软了”之类的话(不爽的地方是必须要用英语 –_-)。

当然最关键的还是意识的问题,不知道被弓形虫入侵了还是纯粹是忙碌,好奇心大大的减少了,譬如昨天晚上路过纽约证券交易所,看到一副巨大的中文广告“安博教育”遮住了 NYSE 的美国国旗,搁在以前肯定会马上把手机拿出来 Google 一下安博是何方神圣,现在看了以后,最多只觉得一大块儿白布挺扎眼的,不如原红红蓝蓝的星条旗好看;

所以也就没了长篇累牍写八卦的兴致,其实有一件事儿挺好玩的,一个长久以来的疑惑,就是《汉书》(以及《通鉴》)上提到的汉宫屏风上绘的“纣王踞妲己”是怎么个“踞”法,因为很难想象纣王那样高大威武的人,如何踞在柔媚的妲己身上,那还不得给压出毛病来?但问题是后来人的注疏都没有注这个“踞”字是什么意思(譬如胡三省注的《通鉴》只是标了反切,没有释意),要么他们觉得可能就是本意:张开腿坐,要么他们觉得不值得深究。但是这却是一个值得深究的问题,因为这画是有教育意义的:皇帝问:“此图何戒?”班伯回答说:“‘沉湎于酒’,微子所以告去也;‘式号式呼’,《大雅》所以流连也。《诗》、《书》淫乱之戒,其原皆在于酒。”

大约古人对这个字的解释也有不少糊涂的,所以到了明朝,这幅有着教育意义的屏风就被描述成了(敏感词),这差得就远了,如果是(敏感词),班固的爷爷还指着(敏感词)说了一通《诗》、《书》那就太乐了:)

后来新中国第一任高等教育部长马叙伦老先生在《读两汉书记》里也提到了这个字,认为“踞”是假借“据”字,而“据”又和“據”相通(现在简化字,据和據完全相同了,但是在古汉字里,两个是不同的字),有“杖持”的意思,所以“踞”不是坐,而是依靠、依据的意思,也就说是纣王喝醉了搂着妲己作长夜之乐。看到这个解释以后,觉得挺有道理的,也这么认为了,直到后来看了东汉武梁祠的画像。

果然纸上得来终觉浅,东汉武梁祠画像里的夏桀(和纣王一起挨骂的好兄弟),真真是伸腿骑坐妇人身上的。xiajie正佐证了《后汉书·逸民传》里提到的“桀驾人车”。如果夏桀可以如此,那纣王如此也在情理中,亦不为过了,也许妲己也是妇好一样的女英雄:)更有趣的是文字的演进:

5C3C[1]  这大约就是人坐人象形字的根源,又恰好是一个圣人的名字,而这位圣人又是纣王的后裔(这段是瞎扯了,不说了,毕竟是圣人老师,我们应该尊重)。

Blog分类: 

禁枪与禁弓弩

NPR 新闻里又在讨论禁枪,原因是这个月的五角大楼枪击案。经过排查,发现犯罪嫌疑人用的手枪是田纳西警察局收缴又卖给 dealer ,然后几经辗转,到了犯罪嫌疑人的手上。新闻讨论的一方主张禁枪,另一方反对禁枪,理由其实也已经很古老 —— 即使禁枪,犯罪分子也总能搞到枪,而善良的市民由于没有枪支的保护,反而会变得更加危险。虽然这个观点很古老,但是以前没有意识到的是,这样的论点仔细考证起来,在公元前一二四年汉代的一次廷议上就有了。

《通鉴·汉纪十一》:“(公孙)弘尝奏言:‘十贼彍弩,百吏不敢前。请禁民毋得挟弓弩,便。’上下其议。”

因为弓弩的杀伤力太大,所以丞相公孙弘请禁弓弩。汉武帝把这条建议让大臣讨论。有一位侍中反对禁弓弩,理由是:

且所为禁者,为盗贼之以攻夺也;攻夺之罪死,然而不止者,大奸之于重诛,固不避也。臣恐邪人挟之而吏不能止,良民以自备而抵法禁,是擅贼威而夺民救也。窃以为大不便。

大意也是说,盗贼本来就是作奸犯科之人,你就是禁了弓弩,他们也会不顾禁令,不顾惩罚去持有弓弩,倒是普通遵纪守法的良民,会遵守法律不再持有弓弩,也失去了保护自己的手段,这样一来,盗贼会更加作威作福,而普通百姓则会遭殃。讨论的结果:汉武帝决定不禁弓弩,和现在美国的情形一样。

关于禁枪的问题,应该是犯罪学研究的问题,没有读过相关的文献,不知道数据的支持怎样,但是从理论上讲,倒是觉得禁枪和枪械犯罪率可能会存在一个非线性关系,i.e. 我们不把禁枪当做一个 binary choices(禁与不禁),而是把它当做一个连续变量,用政府禁枪的 efforts 来度量(譬如在禁枪上的 budget),这样禁枪与枪械犯罪率可能存在一个如下的关系:

image假设没有 effort constraint (譬如 budget constraint),政府没收所有在民间的枪支,那么枪械犯罪数肯定会触及 x 轴,也就是说犯罪数为零 ,但是由于 constraint 的存在, effort=< max_effort(无论是财政上的,还是制度,法律,政治上的),特别是 f(effort=max_effort)>=f(effort=0),(f()是图中effort和 crimes 之间的函数),那么任何花费在禁枪上的 effort 都是白费,不能使犯罪率升高,而更进一步,当 max_effort 小于 f’(effort)=0 的哪一点(就是图中的顶点),那么任何禁枪的努力都会增加枪械的犯罪率——正如那个古老的观点,良民缴枪,邪人继续持枪。

换句话说,公孙弘和那位侍中的观点其实不矛盾,关键是朝廷有多少可支配资源,以及肯花多少资源(上面一直在讨论充分条件,而不是必要条件)……

不胡扯了,继续算我的 stochastic growth model 去了 —— 这是一个运气活儿,closed-form solution 唯一的算法就是 guess & verify,要靠撞大运,可是今天的运气不佳,sigh 。。。

Blog分类: 

冬天的最后一天

走在路上听 NPR,播音员提到今天是冬天的最后一天,明天就是春天了,想了一下节气,21日是春分,算上美国和中国的时差,美国这里20日是春分,播音员说的应该就是这个吧,翻出了 06 年08年春分的 blog,时间过得真快,又一个冬天过去了。

说起冬天最后的一天,想起了今天午饭时看得一小段《通鉴》:

冬,十二月晦,论杀魏其于渭城。

魏其侯窦婴死在了冬天的最后一天(十二月三十日)。其实,只要能活过这一天,他就不用死了,因为按照汉律,春天是不能杀人的,而过了“冬十二月晦”就是春正月了。《汉书》里记载了不少这样的案例,譬如《酷吏传》里王温舒:

(王温舒)捕郡中豪猾,相连坐千余家。上书请,大者至族,小者乃死,家尽没入偿臧。奏行不过二日,得可,事论报,至流血十余里。河内皆怪其奏,以为神速。尽十二月,郡中无犬吠之盗。其颇不得,失之旁郡,追求,会春,温舒顿足叹曰:“嗟乎,令冬月益展一月,足吾事矣!”其好杀行威不爱人如此。

因为冬十二月一过,到了春天,王温舒就不能再抓捕盗贼杀人了,所以他才顿足感叹,如果冬天在多一个月,他就能杀尽所有要杀的人。

这些案例中最有名的还是“五日京兆”这个典故。因为风言京兆尹张敞要被罢官,他的一名属下故意不执行张敞的命令而早退回家去了,别人劝阻这位属下,他反而说:“今五日京兆耳,安能复案事?” 张敞得知了这番言论,马上把这位属下拘押起来。此时已经是残冬,再过几日就要到春天了,于是张敞昼夜不停的审理此案,终于赶在十二月结束以前结案处死了这位部下。

回到魏其侯的故事里,如果他再多活一天,到了春天就不会被处死;不仅如此,一心要处死他的武安侯田蚡也将在春三月死掉,所以过了三月,窦婴将再不会有性命之虞;而到了夏五月,汉武帝就会颁布全国性的大赦,到那时窦婴不仅不会死,还会免去牢狱之灾。再过几年,田蚡交结淮南王的事情败露,也许窦婴还会被恢复爵位……如果能活过冬天的最后一天,所有的一切都会成为可能。

也是因此,司马温公在这段记述中恐怕是有意点出这个”晦“字,是春秋笔法(《春秋》未必有”笔法“,但是经过杜预的解读,到了宋代,这样的一字褒贬非常的流行,譬如欧阳修的”六臣“),用以说明田蚡的险恶。(相比较,《汉书·武帝纪》里述及此事只说:“四年冬,魏其侯窦婴有罪,弃市。” 就略去了具体的日子)

不管怎样,这个故事告诉我们一定要顽强的活过冬天,春天来了,一切都会好起来!

Blog分类: 

蜀人嗜辣渊源

找不到合适的闲书在闲暇时看,所以只好又很没追求的去读《通鉴》,一些以前没有太在意的细节,现在重新读起,细想起来,倒也很有趣,譬如枸酱。

枸酱这个汉武帝时的故事,用时下流行的话说就是“一罐酱引发的血案” ——并不只我这么说,太史公也在《史记·西南夷列传》里评论:“然南夷之端,见枸酱番禺,大夏杖邛竹。”

故事本身倒也不复杂,唐蒙出使南越,南越王为了款待他,给他吃了枸酱,唐蒙问枸酱哪里来的,南越王说从西北顺牂牁江转卖到江边的番禺而来;唐蒙回到长安,问了蜀地的商人,得知“独蜀出枸酱”,所以他猜测从四川经夜郎可以顺牂牁江而下到达南越,走这条路征服南越要比从长沙、豫章直接南下方便(当年秦军为了直接南下,不得不挖运河),于是就有汉武帝对西南夷的征讨和经营,以致“道不通,士罢饿离湿,死者甚众;西南夷又数反,发兵兴击,秏费无功。”

从这则故事里,能看到很多道理,譬如不要给来历不明的客人吃好吃的东西,给他吃了也不也要告诉他是什么等等,不过最有趣的,还是探究蜀人所喜好的枸酱到底是什么东西,是怎样的一种味道。虽然各种各样的文献都出了不同的解释,但是大多数人都认为枸酱就是蒟酱,是用蒌叶制成的一种酱,蒌叶是胡椒科的植物,叶和果实有一种天然的辛辣,所以枸酱的味道应该是辣的,也就说枸酱是一种辣酱。

因此也可以(不严谨的)得出,四川人早在辣椒穿到中国之前就已经喜欢辣味,并不是辣椒的传入改变了蜀人的口味,而是蜀人的口味导致了辣椒在四川的流行。

顺便一提,两汉以后,因为《史记》《汉书》的赞美,枸酱已经成为美味的代指,就像杜康并不一定就指特定的一种酒一样,枸酱所指代的美味也越来越多,以至于讹传起来,譬如《三言》里的这则故事:

次日,仍又发起风来。到午后,风定了。有几只小船儿,载着市上土物来卖。杨公见李氏非但晓得法术,又晓得天文,心中欢喜。就叫船上人买些新鲜果品土物,奉承李氏。又有一只船上叫卖蒟酱,这蒟酱滋味如何?

有诗为证:
白玉盘中簇绛茵,光明金鼎露丰神。椹精八月枝头熟,酿就人间琥珀新。

杨公说道:“我只闻得说,蒟酱是滇蜀美味,也不曾得吃。何不买些与奶奶吃?”叫水手去问那卖蒟酱的:“这一罐子要卖多少钱?”卖蒟酱的说:“要五百贯足钱。”杨公说:“恁的,叫小厮进舱里,问奶奶讨钱数与他。”小厮进到舱里,问奶奶取钱买酱。李氏说:“这酱不要买他的,买了有口舌。”小厮出来回覆杨公。杨公说:“买一罐酱值得甚的,便有口舌?奶奶只是见贵了,不舍得钱,故如此说。”自把些银子与这蛮人,买了这罐酱,拿进舱里去。揭开罐子看时,这酱端的香气就喷出来,颜色就如红玛瑙一般可爱;吃些在口里,且是甜美得好。李氏慌忙讨这罐子酱盖了,说道:“老爹不可吃他的,口舌就来了。这蒟酱我这里没有的,出在南越国。其木似穀树,其叶如桑椹,长二三寸,又不肯多生。九月后,霜里方熟。土人采之,酿酝成酱;先进王家,诚为珍味!这个是盗出来卖的,事已露了。”

无论如何,你也看不出它是辣酱。

Blog分类: 

国内的书真便宜

家里那边正好牡丹花会,又赶上五·一的假期,所以有不少打折的书卖。老妈打电话问我要不要买什么书,想了想,书太沉,买了也不好带过来,还是择其精要吧,原来的简装本《资治通鉴》已经翻破了,于是就让她和老爸去书市买一套硬皮的《资治通鉴》和《曾国藩全集》,这样耐磨一些,我看书和穿鞋一样,破坏力太大。

爸妈买了这两部书,厚厚的十六开大本,一共10本,又给姥姥买了一套大字的《四书五经》,有四五本的样子。姥姥今年已经 87 岁了,眼睛虽然看书没有问题,但是如果字太小,看久了还是吃不消,现在大字版本的书不好买,可巧碰上了。一共三部书,厚厚的精装十几本,尽管标价加起来4000多元钱,但是实际上一共才只花了 400 元钱,没想到会这么便宜。记得高中时买过一本盗版的《穆斯林的葬礼》,纸张的质量很差,盗印的错别字也很多,竟然还要25块钱(呵呵,记忆犹新啊),现在的精装书却这么的便宜,是一件好事儿。

买了新书是一件很兴奋的事情。记得十二岁生日的时候,老妈的一个同事送了我一套89年版的《辞海》,按照90年代初的生活水平,一部《辞海》着实价值不菲,拿在手里,激动的一夜都没睡着:)

Blog分类: 

司马温公的无厘头

用无厘头来称呼司马温公有些不敬了,不过重读他对慕容绍宗一生片断的选择与描写,让人不自然想到了这三个字。

《资治通鉴》是一部通史,有别于纪传体史书,所以花在每个人身上的笔墨都不多,除了帝王以外的人物,司马光往往选择一两件此人最闪亮并与主要事件相关的事情来书写。譬如慕容绍宗,第一次提到是第152卷,慕容绍宗劝谏尔朱荣不要杀魏大臣,没有被采纳,于是有了河阴之役;第二次提到是第154卷,高欢希望就食山东,请示尔朱兆,尔朱兆应准了,但是慕容绍宗认为这是养虎为患,不能答应高欢,可惜尔朱兆没听。接着,第三次提起慕容绍宗是在下一卷第155卷,高欢大败尔朱兆,尔朱兆对着慕容绍宗叹息:“不用公言,以至于此!”第四次提及慕容绍宗是下一卷第156卷,尔朱兆兵败自杀,慕容绍宗携尔朱荣妻子及尔朱兆馀众投降高欢。至此并没有见慕容绍宗有太大的过人之处。

第157卷,第158卷没提慕容绍宗,让人更以为慕容绍宗也许不过是一个小人物,到此也就该下场了,而到了第159卷,一处虚写,顿时让人觉得慕容绍宗不同凡响,故事是这样的,高欢病重,世子高澄在左右服侍,高欢看到高澄面有忧色就问道:“我虽病,汝面更有余忧,何也?”高澄还没有来得及回答。高欢接着又问:“是不是担心侯景叛乱。”高澄说“是”。高欢接着说侯景飞扬跋扈,只有自己能蓄养,高澄无法肯定无法驾驭,然后开始交待身后之事,说他死了以后先不要发丧,然后又逐一评价了一下身边的大臣,认为某某忠直,可以信赖,某某耿直,需要宽待等等,直到最后,话锋一转说:“堪敌侯景者,唯有慕容绍宗,我故不贵之,留以遗汝。”先抑后扬,一下子把慕容绍宗拥上前台高处,同时也解释了慕容绍宗投降后默默无闻的原因。

第160卷,侯景反叛,又是一处虚写慕容绍宗。侯景反后,高澄调兵遣将征讨侯景,派了好几员大将,最后才派遣慕容绍宗。而侯景这边,当他听说朝廷派韩轨来讨伐他,评价是:“啖猪肠儿何能为!”,又听到朝廷派了高岳,评价是:“兵精人凡。”高澄派遣的几员打将都被侯景所轻。最后,侯景听说慕容绍宗来了,“叩鞍有惧色,曰:‘谁教鲜卑儿(指高澄)解遣绍宗来!若然,高王定未死邪?’”侯景听到高澄派遣慕容绍宗来,不仅吓得面有惧色,还据此猜测高欢肯定没死,此处的虚写更让人觉得慕容绍宗是一个空前绝后的大英雄。

然后慕容绍宗出马,先与梁人交战,因为梁人不听侯景的告诫,被慕容绍宗击败。此处,慕容绍宗与侯景不分伯仲,但是作为“读者”对于慕容绍宗还是很期待的。

终于,慕容绍宗与侯景交手了,虽然慕容绍宗猜破了侯景的诡计,但是仍然被侯景大败,逃到谯城。“读者”有些失望了,不仅读者失望,裨将们也责难慕容绍宗,慕容绍宗的回答是:“侯景太厉害了,不信你们去试试。”于是斛律光和张恃显就披甲提兵,出去试,慕容绍宗告诫他们,千万不要过河,这点还是值得赞许的,说明慕容绍宗的心胸还是很宽广的,没有要害这二人的意思。二人出战,不渡水,侯景隔着河冲二人喊:“你们怎么知道不渡河过来?肯定是慕容绍宗教你们的。”--呵呵,这里又见高人过招的境界。

尽管斛律光与张恃显没有渡河但是还是被侯景大败,张恃显被侯景生擒,不过又被放了;斛律光也狼狈的逃回谯城。呵呵,斛律光后来也是高齐的一员大将,这是他第一次出场,居然这么狼狈,反到衬托了侯景与慕容绍宗的厉害。不过似乎侯景稍胜一筹。

后来证明,这是一种先扬后抑,虽然侯景很牛,但是最终不敌慕容绍宗,大败而逃,祸患南梁去了。到此,慕容绍宗的光辉形象才完全展开,虚写与实写合一。

如此大将,“读者”们都期待他有一番大作为,高澄也一样,在平定了侯景以后,就让慕容绍宗去攻打西魏王思政镇守的颖川,久攻不下,于是有人进言用水攻,然后修筑围堰,水灌颖川,城垛崩溃,王思政疲于奔命的当修理工,而此时西魏的救兵也被大水阻挡,眼看就要城破。一日,慕容绍宗与刘丰到围堰上视察军情,突然起了大风,尘土飞扬,于是慕容绍宗就和刘丰一起到船里避风,结果暴风到来,吹断了缆绳(缆绳都可以吹断?),他们所坐的船居然向颖川城飘去。而城上的人也拿长钩来钩船,见此状,慕容绍宗与刘丰只好跳水逃生了,但是。。。但是慕容绍宗居然不会游泳,被淹死了!一代大将,就这样死掉了,ft 之极。刘丰就会游泳,一直游到一个土山上,结果被射死了。

呵呵,记得以前看《新少林五祖》红花会总舵主出场的镜头甚为华丽,漫天的红花,英雄气概,令人景仰,结果第二个镜头就死翘翘了;而司马温公笔下的慕容绍宗也差不多,先开始几处虚写,让人觉得绍宗必不是凡人(好比漫天红花),然后实写一笔大破侯景(英雄气概,令人景仰),结果。。。下一个镜头就淹死了,ft。

顺便提及一句,这个慕容绍宗就是当年前燕太原王慕容恪的后人,《天龙八部》慕容复的祖先。据《北史》与《北齐书》上说慕容绍宗之所以在投降没有马上被重用的原因之一是他在任青州刺史时,曾经登广固城,对亲信说“大丈夫有复先业理不?”当年他的先人慕容恪就是在广固大破段龛,为前燕立国奠定了基础。这句复国的话被他的仇家探听到报告给了高欢,于是他就丢掉了刺史之职,被征入京了。呵呵,看来慕容家还是和有传统的。慕容绍宗的儿子慕容三藏也是一代名将,孙子慕容遐因为不从汉王杨谅造反而为人称道。

Blog分类: