§32.1 为什么需要计算机模拟§32.2 重要性抽样§32.3 梅特罗波利斯算法§32.4 例:二维伊辛模型§32.5 统计误差、临界慢化与有限尺寸标度§32.6 分子动力学§32.7 自由能的计算§32.8 本章小结自测题 本章目标
(1) 理解为什么要用计算机"做实验",以及为什么必须用重要性抽样;(2) 推导梅特罗波利斯算法满足细致平衡,并用它模拟二维伊辛模型;(3) 理解统计误差、临界慢化与有限尺寸标度;(4) 推导分子动力学的韦尔莱算法,学会测量温度、压强、对关联函数与扩散系数;(5) 用热力学积分与粒子插入法计算自由能与化学势。
§32.1 为什么需要计算机模拟
对相互作用系统,配分函数一般无法解析计算(第17 、18章 )。直接数值求和也不可能:10 × 10 10\times10 10 × 10 的伊辛模型就有 2 100 ≈ 1 0 30 2^{100}\approx10^{30} 2 100 ≈ 1 0 30 个组态;N N N 个粒子的位形积分是 3 N 3N 3 N 维的积分,用每维只取 10 个点的网格也需要 1 0 3 N 10^{3N} 1 0 3 N 个点。解决办法是随机抽样 :不去遍历所有组态,而是按照玻尔兹曼分布抽取有代表性的组态,用样本平均代替系综平均。这有两种方式:
蒙特卡罗方法 :构造一个随机过程,使它的平稳分布就是玻尔兹曼分布(梅特罗波利斯、罗森布鲁斯夫妇、特勒夫妇,1953);
分子动力学 :直接对牛顿方程作数值积分,按各态历经假设(§2.7 )用时间平均代替系综平均(奥尔德与温赖特,1957)。
§32.2 重要性抽样
要计算 ⟨ A ⟩ = ∑ i A i e − β E i / Z \langle A\rangle = \sum_iA_ie^{-\beta E_i}/Z ⟨ A ⟩ = ∑ i A i e − β E i / Z 。若均匀地随机选取组态,绝大多数被选中的组态能量很高、玻尔兹曼因子小得可以忽略,对平均几乎没有贡献——高维空间中,玻尔兹曼分布集中在相空间里一个极小的区域(§2.3.4 、§4.4 )。重要性抽样 :直接按概率 P i = e − β E i / Z P_i = e^{-\beta E_i}/Z P i = e − β E i / Z 抽取 M M M 个组态 i 1 , … , i M i_1,\dots,i_M i 1 , … , i M ,则
⟨ A ⟩ ≈ A ˉ = 1 M ∑ k = 1 M A i k (32.1) \langle A\rangle\approx\bar A = \frac1M\sum_{k=1}^MA_{i_k} \tag{32.1} ⟨ A ⟩ ≈ A ˉ = M 1 k = 1 ∑ M A i k ( 32.1 )
若样本相互独立,由中心极限定理(提示 C6 ),A ˉ \bar A A ˉ 的统计误差为 V a r ( A ) / M \sqrt{\mathrm{Var}(A)/M} Var ( A ) / M ,按 M − 1 / 2 M^{-1/2} M − 1/2 减小,与系统的维数无关。困难在于:Z Z Z 未知,无法直接按 P i P_i P i 抽样。
§32.3 梅特罗波利斯算法
思路 :构造一个马尔可夫过程(§23.6 ),使它的跃迁速率满足细致平衡 (23.18) :
W ( i → j ) W ( j → i ) = e − β ( E j − E i ) (32.2) \frac{W(i\to j)}{W(j\to i)} = e^{-\beta(E_j - E_i)} \tag{32.2} W ( j → i ) W ( i → j ) = e − β ( E j − E i ) ( 32.2 )
由 §23.6 ,这样的过程从任何初态出发,分布都会趋向玻尔兹曼分布(只要过程是各态历经的:任何组态都能经过有限步到达任何其他组态)。注意 (32.2) 只涉及能量差 ,不需要知道 Z Z Z 。
梅特罗波利斯规则 :
从当前组态 i i i 出发,提出一个试探组态 j j j (例如翻转一个随机选取的自旋,或把一个随机选取的粒子移动一小段随机距离),提议是对称的:从 i i i 提出 j j j 的概率等于从 j j j 提出 i i i 的概率;
计算 Δ E = E j − E i \Delta E = E_j - E_i Δ E = E j − E i ;
以概率 min ( 1 , e − β Δ E ) \min\left(1,e^{-\beta\Delta E}\right) min ( 1 , e − β Δ E ) 接受 j j j ,否则保留 i i i (并把 i i i 再计一次)。
验证细致平衡 :设 E j > E i E_j>E_i E j > E i ,则 W ( i → j ) ∝ e − β ( E j − E i ) W(i\to j)\propto e^{-\beta(E_j - E_i)} W ( i → j ) ∝ e − β ( E j − E i ) ,W ( j → i ) ∝ 1 W(j\to i)\propto1 W ( j → i ) ∝ 1 (提议概率相同,相消),两者之比正是 (32.2) ;E j < E i E_j<E_i E j < E i 时同理。
能量降低的步总被接受,能量升高的步以玻尔兹曼因子的概率被接受:系统主要在低能组态附近活动,又能借助热涨落越过势垒。
§32.4 例:二维伊辛模型
对伊辛模型,翻转自旋 s i s_i s i 的能量变化只依赖于它的近邻:Δ E = 2 J s i ∑ j ∈ 近邻 s j \Delta E = 2Js_i\sum_{j\in\text{近邻}}s_j Δ E = 2 J s i ∑ j ∈ 近邻 s j ,在正方晶格上只能取 0 , ± 4 J , ± 8 J 0,\pm4J,\pm8J 0 , ± 4 J , ± 8 J 。把格点像棋盘一样分成两套,同一套中的自旋互不相邻,可以同时更新。下面是一个完整的 Python 程序(以 J = k B = 1 J = k_{\mathrm B} = 1 J = k B = 1 为单位,周期性边界):
Python 复制
import numpy as np
def ising_mc ( L , T , n_sweep = 6000 , n_therm = 1500 , seed = 1 ):
rng = np . random . default_rng (seed)
s = np . ones ((L, L), dtype = np.int8) # 从全部向上出发
i , j = np . indices ((L, L))
sublattices = [(i + j) % 2 == c for c in ( 0 , 1 )] # 棋盘的两套格点
m_samples = []
for sweep in range (n_sweep):
for mask in sublattices :
nb = (np . roll (s, 1 , 0 ) + np . roll (s, - 1 , 0 )
+ np . roll (s, 1 , 1 ) + np . roll (s, - 1 , 1 ) )
dE = 2 * s * nb # 翻转每个自旋的能量变化
accept = rng . random ((L, L)) < np . exp ( - np. maximum (dE, 0 ) / T)
s [ mask & accept ] *= - 1 # 梅特罗波利斯规则
if sweep >= n_therm : # 先弃去趋向平衡的部分
m_samples . append ( abs (s. mean ()))
return np . mean (m_samples)
print ( ising_mc ( 32 , 2.0 )) # 约 0.911
用这个程序得到的每个自旋平均磁化的绝对值 ⟨ ∣ m ∣ ⟩ \langle\lvert m\rvert\rangle ⟨∣ m ∣⟩ ,与杨振宁的严格结果 (§18.6 ) 比较(k B T c / J = 2.269 k_{\mathrm B}T_{\mathrm c}/J = 2.269 k B T c / J = 2.269 ):
k B T / J k_{\mathrm B}T/J k B T / J L = 16 L = 16 L = 16 L = 32 L = 32 L = 32 L = 64 L = 64 L = 64 严格值(L = ∞ L = \infty L = ∞ ) 2.0 0.91 0.91 0.91 0.911 2.2 0.77 0.78 0.79 0.785 2.3 0.64 0.57 0.42 0 2.5 0.37 0.21 0.10 0
远离 T c T_{\mathrm c} T c 时,即使很小的晶格也给出精确的结果;在 T c T_{\mathrm c} T c 附近与 T c T_{\mathrm c} T c 以上,有限尺寸效应很明显:有限的系统中没有真正的相变(§21.4 ),⟨ ∣ m ∣ ⟩ \langle\lvert m\rvert\rangle ⟨∣ m ∣⟩ 随 L L L 增大才缓慢地趋于零。§32.5 将说明如何利用这种尺寸依赖。
∣ m ∣ \lvert m\rvert ∣ m ∣ ,最近 300 次扫描 严格解(L = ∞ L = \infty L = ∞ ,h = 0 h = 0 h = 0 )⟨ ∣ m ∣ ⟩ \langle\lvert m\rvert\rangle ⟨∣ m ∣⟩ —
图 32.1 二维伊辛模型的梅特罗波利斯模拟:96 × 96 96\times96 96 × 96 的正方晶格,周期性边界,棋盘式更新,与上面的程序相同(多了一个外场)。深色格点自旋向上。把温度调到 k B T c / J = 2.269 k_{\mathrm B}T_{\mathrm c}/J = 2.269 k B T c / J = 2.269 附近,可以看到各种大小的畴和明显变慢的弛豫(§32.5)。这张图需要打开浏览器的 JavaScript 才能显示。
§32.5 统计误差、临界慢化与有限尺寸标度
关联时间 。马尔可夫链中相继的样本不是独立的:每一步只改变一个或几个自旋。若某个量的自关联函数(§22.4 ,以"扫描"即每个自旋平均被尝试一次为时间单位)的积分关联时间为 τ \tau τ ,则 M M M 次扫描中大约只有 M / ( 2 τ ) M/(2\tau) M / ( 2 τ ) 个独立样本,统计误差相应地增大。
临界慢化 。在临界点附近,关联长度 ξ \xi ξ 很大,局域的单自旋翻转要改变大小为 ξ \xi ξ 的区域需要很多步:τ ∝ ξ z \tau\propto\xi^z τ ∝ ξ z ,在 T c T_{\mathrm c} T c 处 τ ∝ L z \tau\propto L^z τ ∝ L z 。对二维伊辛模型的梅特罗波利斯算法,z ≈ 2.17 z\approx2.17 z ≈ 2.17 。斯文森–王(1987)与沃尔夫(1989)的集团算法 一次翻转一整团相互关联的自旋(集团的选取规则保证细致平衡),把 z z z 降低到 0.3 以下,使临界点附近的模拟效率提高了许多个数量级。
有限尺寸标度 。有限系统中 ξ \xi ξ 不能超过 L L L 。由 χ ∝ ∣ t ∣ − γ ∝ ξ γ / ν \chi\propto\lvert t\rvert^{-\gamma}\propto\xi^{\gamma/\nu} χ ∝ ∣ t ∣ − γ ∝ ξ γ / ν ,在尺寸为 L L L 的系统中可以写成标度形式
χ ( t , L ) = L γ / ν Φ ( L 1 / ν t ) (32.3) \chi(t,L) = L^{\gamma/\nu}\,\Phi\left(L^{1/\nu}t\right) \tag{32.3} χ ( t , L ) = L γ / ν Φ ( L 1/ ν t ) ( 32.3 )
(当 L ≫ ξ L\gg\xi L ≫ ξ 时 Φ ( x ) ∝ ∣ x ∣ − γ \Phi(x)\propto\lvert x\rvert^{-\gamma} Φ ( x ) ∝ ∣ x ∣ − γ ,回到无限系统的结果;当 ξ ≫ L \xi\gg L ξ ≫ L 时 χ \chi χ 被截断在 L γ / ν L^{\gamma/\nu} L γ / ν 。)由此:χ \chi χ 的峰高 ∝ L γ / ν \propto L^{\gamma/\nu} ∝ L γ / ν (二维伊辛模型为 L 7 / 4 L^{7/4} L 7/4 );峰的位置偏离 T c T_{\mathrm c} T c 的距离 ∝ L − 1 / ν \propto L^{-1/\nu} ∝ L − 1/ ν ;把不同 L L L 的数据画成 χ L − γ / ν \chi L^{-\gamma/\nu} χ L − γ / ν 对 L 1 / ν t L^{1/\nu}t L 1/ ν t ,应落在同一条曲线上。宾德累积量 U L = 1 − ⟨ m 4 ⟩ 3 ⟨ m 2 ⟩ 2 U_L = 1 - \frac{\langle m^4\rangle}{3\langle m^2\rangle^2} U L = 1 − 3 ⟨ m 2 ⟩ 2 ⟨ m 4 ⟩ 是一个无量纲的量,在 T c T_{\mathrm c} T c 处与 L L L 无关,所以不同 L L L 的 U L ( T ) U_L(T) U L ( T ) 曲线交于一点,给出 T c T_{\mathrm c} T c 的精确估计。今天三维伊辛模型最精确的临界温度,以及精度仅次于共形自举(§20.5 )的临界指数,大多来自这类有限尺寸标度分析。
§32.6 分子动力学
韦尔莱算法 。对每个粒子的牛顿方程 m r ¨ = F ( r ) m\ddot{\mathbf r} = \mathbf F(\mathbf r) m r ¨ = F ( r ) 作数值积分。把 r ( t ± Δ t ) \mathbf r(t\pm\Delta t) r ( t ± Δ t ) 泰勒展开(提示 A3 ):r ( t ± Δ t ) = r ± v Δ t + 1 2 a Δ t 2 ± 1 6 \dddot r Δ t 3 + O ( Δ t 4 ) \mathbf r(t\pm\Delta t) = \mathbf r\pm\mathbf v\Delta t + \frac12\mathbf a\Delta t^2\pm\frac16\dddot{\mathbf r}\Delta t^3 + O(\Delta t^4) r ( t ± Δ t ) = r ± v Δ t + 2 1 a Δ t 2 ± 6 1 \dddot r Δ t 3 + O ( Δ t 4 ) ,两式相加,奇次项相消:
r ( t + Δ t ) = 2 r ( t ) − r ( t − Δ t ) + F ( t ) m Δ t 2 + O ( Δ t 4 ) (32.4) \mathbf r(t + \Delta t) = 2\mathbf r(t) - \mathbf r(t - \Delta t) + \frac{\mathbf F(t)}{m}\Delta t^2 + O(\Delta t^4) \tag{32.4} r ( t + Δ t ) = 2 r ( t ) − r ( t − Δ t ) + m F ( t ) Δ t 2 + O ( Δ t 4 ) ( 32.4 )
(韦尔莱,1967。)等价的"速度韦尔莱"形式为:r ( t + Δ t ) = r + v Δ t + F ( t ) 2 m Δ t 2 \mathbf r(t + \Delta t) = \mathbf r + \mathbf v\Delta t + \frac{\mathbf F(t)}{2m}\Delta t^2 r ( t + Δ t ) = r + v Δ t + 2 m F ( t ) Δ t 2 ,v ( t + Δ t ) = v + F ( t ) + F ( t + Δ t ) 2 m Δ t \mathbf v(t + \Delta t) = \mathbf v + \frac{\mathbf F(t) + \mathbf F(t + \Delta t)}{2m}\Delta t v ( t + Δ t ) = v + 2 m F ( t ) + F ( t + Δ t ) Δ t 。这个算法是时间可逆的(把 Δ t \Delta t Δ t 换成 − Δ t -\Delta t − Δ t 就沿原路返回,与 §P1.2 一致),并且是一种"辛"积分方法:像真实的哈密顿演化一样保持相空间的几何结构(其中包括相空间体积,刘维尔定理,§2.6 )。正因为如此,总能量的误差在长时间内只是有界地振荡而不会系统地漂移,这对长时间模拟至关重要。时间步长通常取最快振动周期的约 1/20:对伦纳德–琼斯氩约 10 fs,对含 C–H 键的分子约 1 fs。
测量 (周期性边界条件下的 N N N 个粒子):
温度:由均分定理,3 2 N k B T = ⟨ K ⟩ \frac32Nk_{\mathrm B}T = \langle K\rangle 2 3 N k B T = ⟨ K ⟩ (K K K 为总动能);
压强:由 (17.16) 的推导推广到一般的力,p = n k B T + 1 3 V ⟨ ∑ i < j r i j ⋅ F i j ⟩ p = nk_{\mathrm B}T + \frac{1}{3V}\left\langle\sum_{i<j}\mathbf r_{ij}\cdot\mathbf F_{ij}\right\rangle p = n k B T + 3 V 1 ⟨ ∑ i < j r ij ⋅ F ij ⟩ ;
对关联函数 g ( r ) g(r) g ( r ) :统计粒子对的距离直方图(§17.7 ),再傅里叶变换得到 S ( k ) S(k) S ( k ) (§22.3 ),可以与衍射实验直接比较;
扩散系数:由均方位移 ⟨ ∣ r ( t ) − r ( 0 ) ∣ 2 ⟩ → 6 D t \langle\lvert\mathbf r(t) - \mathbf r(0)\rvert^2\rangle\to6Dt ⟨∣ r ( t ) − r ( 0 ) ∣ 2 ⟩ → 6 D t ,或由格林–久保公式 (23.9) ;黏度、热导率同样可以用格林–久保公式(§24.7 )由平衡模拟算出。
恒温 。上述算法保持能量守恒,抽样的是微正则系综。要模拟恒定温度,可以给每个粒子加上朗之万方程中的摩擦与随机力,两者的比例由 (23.6) 确定,这样就抽样正则系综(朗之万恒温器);也可以用确定性的诺泽–胡佛方法。
一个历史上的发现 。奥尔德与温赖特(1957)以及伍德与雅各布森(1957)的模拟发现:只有排斥、没有任何吸引的硬球,在足够高的密度下也会结晶。有序的晶体反而比无序的流体熵更高——在高密度下,排列整齐的球各自有更大的"活动空间"。这个纯粹由熵驱动的相变在当时出人意料,后来在胶体悬浮液中被实验证实。
§32.7 自由能的计算
自由能与熵不是某个量的系综平均,不能直接从样本平均得到,需要专门的方法。
热力学积分 。设哈密顿量依赖于参数 λ \lambda λ (例如从理想气体 λ = 0 \lambda = 0 λ = 0 逐渐"打开"相互作用到 λ = 1 \lambda = 1 λ = 1 )。由 F = − k B T ln Z F = -k_{\mathrm B}T\ln Z F = − k B T ln Z ,∂ F ∂ λ = − k B T Z ∂ Z ∂ λ = 1 Z ∑ ∂ H ∂ λ e − β H \frac{\partial F}{\partial\lambda} = -\frac{k_{\mathrm B}T}{Z}\frac{\partial Z}{\partial\lambda} = \frac1Z\sum\frac{\partial\mathcal H}{\partial\lambda}e^{-\beta\mathcal H} ∂ λ ∂ F = − Z k B T ∂ λ ∂ Z = Z 1 ∑ ∂ λ ∂ H e − β H ,即
F ( 1 ) − F ( 0 ) = ∫ 0 1 ⟨ ∂ H ∂ λ ⟩ λ d λ (32.5) F(1) - F(0) = \int_0^1\left\langle\frac{\partial\mathcal H}{\partial\lambda}\right\rangle_\lambda d\lambda \tag{32.5} F ( 1 ) − F ( 0 ) = ∫ 0 1 ⟨ ∂ λ ∂ H ⟩ λ d λ ( 32.5 )
在若干个 λ \lambda λ 值上做平衡模拟,测量 ⟨ ∂ H / ∂ λ ⟩ λ \langle\partial\mathcal H/\partial\lambda\rangle_\lambda ⟨ ∂ H / ∂ λ ⟩ λ ,再数值积分。
维多姆粒子插入法 。化学势 μ = F ( N + 1 ) − F ( N ) = − k B T ln ( Z N + 1 / Z N ) \mu = F(N+1) - F(N) = -k_{\mathrm B}T\ln(Z_{N+1}/Z_N) μ = F ( N + 1 ) − F ( N ) = − k B T ln ( Z N + 1 / Z N ) 。由 (17.2) ,Z N + 1 Z N = Q N + 1 ( N + 1 ) λ 3 Q N \frac{Z_{N+1}}{Z_N} = \frac{Q_{N+1}}{(N+1)\lambda^3Q_N} Z N Z N + 1 = ( N + 1 ) λ 3 Q N Q N + 1 ;而 Q N + 1 / Q N = V ⟨ e − β Δ U ⟩ N Q_{N+1}/Q_N = V\langle e^{-\beta\Delta U}\rangle_N Q N + 1 / Q N = V ⟨ e − β Δ U ⟩ N ,其中 Δ U \Delta U Δ U 是在 N N N 粒子系统中随机位置插入一个"试验粒子"时它与其他粒子的相互作用能,平均对 N N N 粒子的平衡组态与插入位置进行。于是
μ = k B T ln ( N + 1 ) λ 3 V ⏟ 理想气体部分 − k B T ln ⟨ e − β Δ U ⟩ N ⏟ 剩余部分 (32.6) \mu = \underbrace{k_{\mathrm B}T\ln\frac{(N+1)\lambda^3}{V}}_{\text{理想气体部分}}\ \underbrace{-\ k_{\mathrm B}T\ln\left\langle e^{-\beta\Delta U}\right\rangle_N}_{\text{剩余部分}} \tag{32.6} μ = 理想气体部分 k B T ln V ( N + 1 ) λ 3 剩余部分 − k B T ln ⟨ e − β Δ U ⟩ N ( 32.6 )
第一项就是 (3.17) 。对稠密液体,随机插入的粒子几乎总与别的粒子重叠,e − β Δ U ≈ 0 e^{-\beta\Delta U}\approx0 e − β Δ U ≈ 0 ,这个方法就失效了,需要更复杂的技巧。远离平衡的拉伸实验与模拟中,还可以用雅津斯基等式(§33.4 )由非平衡功的分布求出平衡自由能差。
§32.8 本章小结
高维的系综平均必须用重要性抽样;统计误差按样本数的 − 1 / 2 -1/2 − 1/2 次方减小。
梅特罗波利斯算法用满足细致平衡的马尔可夫链抽取玻尔兹曼分布,只需要能量差。
临界点附近有临界慢化 τ ∝ L z \tau\propto L^z τ ∝ L z ,集团算法可以克服它;有限尺寸标度把尺寸效应变成测量临界指数的工具。
分子动力学用时间可逆、保持相空间体积的韦尔莱算法积分牛顿方程;输运系数可以由平衡模拟的格林–久保公式求出。
自由能需要专门的方法:热力学积分、粒子插入法、非平衡功的等式。
自测题
证明:若梅特罗波利斯算法的提议不对称(从 i i i 提出 j j j 的概率 q i j ≠ q j i q_{ij}\ne q_{ji} q ij = q ji ),把接受概率改为 min ( 1 , q j i q i j e − β Δ E ) \min\left(1,\frac{q_{ji}}{q_{ij}}e^{-\beta\Delta E}\right) min ( 1 , q ij q ji e − β Δ E ) 仍满足细致平衡(梅特罗波利斯–黑斯廷斯算法)。
修改 §32.4 的程序,计算每个自旋的磁化率 χ = β N ( ⟨ m 2 ⟩ − ⟨ ∣ m ∣ ⟩ 2 ) \chi = \beta N(\langle m^2\rangle - \langle\lvert m\rvert\rangle^2) χ = βN (⟨ m 2 ⟩ − ⟨∣ m ∣ ⟩ 2 ) ,对 L = 16 L = 16 L = 16 、32 32 32 找出峰的位置与高度,并检验峰高之比是否接近 2 7 / 4 ≈ 3.4 2^{7/4}\approx3.4 2 7/4 ≈ 3.4 。
用速度韦尔莱算法积分一维谐振子(ω = 1 \omega = 1 ω = 1 ),取 Δ t = 0.1 \Delta t = 0.1 Δ t = 0.1 ,验证能量误差不随时间累积;再用简单的欧拉法 ( x , v ) ← ( x + v Δ t , v − x Δ t ) (x,v)\leftarrow(x + v\Delta t,\ v - x\Delta t) ( x , v ) ← ( x + v Δ t , v − x Δ t ) (同时更新,右边都用旧值)比较。[答:欧拉法的能量每步乘以 1 + Δ t 2 1 + \Delta t^2 1 + Δ t 2 ,不断增长;若先更新 x x x 、再用新的 x x x 更新 v v v ,就成为"辛欧拉法",能量误差有界]
由 (32.5) 证明:若 H ( λ ) \mathcal H(\lambda) H ( λ ) 是 λ \lambda λ 的线性函数,则 F ( λ ) F(\lambda) F ( λ ) 是 λ \lambda λ 的凹函数。[提示:计算 ∂ 2 F / ∂ λ 2 = − β ( ⟨ ( ∂ λ H ) 2 ⟩ − ⟨ ∂ λ H ⟩ 2 ) ≤ 0 \partial^2F/\partial\lambda^2 = -\beta\left(\langle(\partial_\lambda\mathcal H)^2\rangle - \langle\partial_\lambda\mathcal H\rangle^2\right)\le0 ∂ 2 F / ∂ λ 2 = − β ( ⟨( ∂ λ H ) 2 ⟩ − ⟨ ∂ λ H ⟩ 2 ) ≤ 0 ]
这一篇已记为读完。标为未读