ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

柯西积分公式与高阶导数公式:从原理到实战计算

柯西积分公式与高阶导数公式:从原理到实战计算 1. 柯西积分公式到底在算什么很多人第一次看到柯西积分公式脑子里冒出来的第一个念头是这不就是把边界上的值拿来算内部的函数值吗凭什么更让人困惑的是这个公式长得极其简洁简洁到让人觉得它是不是漏了什么条件。但恰恰是这个看起来“过于简单”的公式撑起了整个复变函数论后续一大半的内容——留数定理、调和函数、最大模原理全都从它派生出来。柯西积分公式的标准形式是这样的设函数 ( f(z) ) 在简单闭曲线 ( C ) 及其内部解析( z_0 ) 是 ( C ) 内部的任意一点那么[ f(z_0) \frac{1}{2\pi i} \oint_C \frac{f(z)}{z - z_0} , dz ]我第一次认真琢磨这个公式的时候盯着它看了很久。左边是函数在某一个点的值右边是一个绕着这个点的闭合路径积分。一个“点”的信息被一条“线”上的信息完全确定了。这在实变函数的世界里是不可想象的——你给我一个实数轴上某点的函数值我完全没法从周围的值推出来因为实函数可以在这个点连续但在任何邻域内剧烈震荡。但复解析函数不行它“刚性”得离谱知道边界上的全部信息内部的每一点都被锁死了。这个公式解决的核心问题是如何用边界信息重构内部信息。它的应用场景非常具体——当你需要计算某个解析函数在特定点的值时如果直接代入很困难但沿着一条包围该点的曲线做积分反而容易那这个公式就是你的首选工具。反过来它也经常被用来计算某些看起来无从下手的闭合路径积分把被积函数拆成 ( \frac{f(z)}{z-z_0} ) 的形式积分值直接就是 ( 2\pi i f(z_0) )。适合读这篇内容的人是正在学复变函数、被各种积分公式绕得有点晕的本科生也是需要快速回忆这些工具怎么用的工程师或研究生。我不打算把教材上的推导原封不动搬一遍而是想把这几个公式之间的逻辑关系、什么时候用哪个、用的时候容易在哪里翻车按我自己踩过的顺序讲清楚。2. 从柯西积分定理到积分公式的逻辑跳跃2.1 柯西积分定理是“零”积分公式是“非零”柯西积分定理说的是如果 ( f(z) ) 在简单闭曲线 ( C ) 及其内部解析那么[ \oint_C f(z) , dz 0 ]这个结论本身已经很反直觉了——一个任意形状的闭合路径只要函数在里面没有奇点积分就是零。但它的“问题”在于它只告诉你结果是零没告诉你如果里面有奇点会怎样。柯西积分公式恰恰就是来处理“里面有奇点”的情况的。被积函数 ( \frac{f(z)}{z-z_0} ) 在 ( z z_0 ) 处有一个一阶极点所以柯西积分定理不能直接用。但我们可以把路径缩小绕开这个奇点然后利用解析函数的良好性质把积分算出来。这里的关键操作是以 ( z_0 ) 为圆心、( \rho ) 为半径做一个足够小的圆 ( C_\rho )使得这个小圆完全落在 ( C ) 内部。然后在 ( C ) 和 ( C_\rho ) 之间的环形区域上被积函数是解析的。根据复连通区域的柯西积分定理沿外边界逆时针的积分减去沿内边界逆时针的积分等于零也就是说[ \oint_C \frac{f(z)}{z - z_0} , dz \oint_{C_\rho} \frac{f(z)}{z - z_0} , dz ]这一步是整个推导的枢纽。它的意思是不管你的外边界 ( C ) 长什么样只要它包围了 ( z_0 ) 且不包围其他奇点积分值只取决于那个小圆上的积分。路径可以任意变形积分值不变——这就是复积分“路径形变原理”的威力。2.2 为什么小圆上的积分能算出来现在问题归结为计算[ \oint_{C_\rho} \frac{f(z)}{z - z_0} , dz ]在 ( C_\rho ) 上( z z_0 \rho e^{i\theta} )所以 ( dz i\rho e^{i\theta} d\theta )代入得[ \oint_{C_\rho} \frac{f(z)}{z - z_0} , dz \int_0^{2\pi} \frac{f(z_0 \rho e^{i\theta})}{\rho e^{i\theta}} \cdot i\rho e^{i\theta} , d\theta i \int_0^{2\pi} f(z_0 \rho e^{i\theta}) , d\theta ]到这里( \rho ) 还在里面。但因为我们知道积分值与 ( \rho ) 无关路径形变原理保证的所以可以让 ( \rho \to 0 )。由于 ( f ) 在 ( z_0 ) 处连续解析必连续( f(z_0 \rho e^{i\theta}) \to f(z_0) ) 对 ( \theta ) 一致成立。于是[ i \int_0^{2\pi} f(z_0 \rho e^{i\theta}) , d\theta \to i \int_0^{2\pi} f(z_0) , d\theta 2\pi i f(z_0) ]这就是柯西积分公式的完整推导。我特意把这个过程写出来是因为很多人只记结论不知道中间那个“缩小圆”的操作有多重要。这个操作在后面推导高阶导数公式、留数定理时会被反复使用是复分析里最核心的技术手段之一。注意这里用到了 ( f ) 在 ( z_0 ) 处的连续性。如果 ( f ) 只是可积但不连续这个极限过程就不成立。解析函数的连续性保证了这一步的合法性这也是为什么柯西积分公式要求 ( f ) 解析而不是仅仅可积。2.3 一个容易混淆的点公式里的 ( f(z) ) 在积分号里面初学者经常犯的一个错误是看到 ( \oint_C \frac{f(z)}{z-z_0} dz 2\pi i f(z_0) )就以为可以把 ( f(z) ) 直接“提出来”变成 ( f(z_0) )。实际上( f(z) ) 在积分过程中是随 ( z ) 变化的不能直接提。我们之所以能得到 ( f(z_0) )是因为把路径缩到无穷小之后( f(z) ) 在路径上的值趋近于 ( f(z_0) )。这个区别在计算具体积分时非常关键。比如计算 ( \oint_{|z|2} \frac{e^z}{z-1} dz )正确的做法是识别出 ( f(z) e^z )( z_0 1 )然后直接得 ( 2\pi i e^1 2\pi i e )。但如果你试图把 ( e^z ) 展开成级数再逐项积分虽然也能做但会多花好几倍时间。3. 高阶导数公式柯西积分公式的“套娃”操作3.1 从一阶到高阶的推广逻辑柯西积分公式给出的是 ( f(z_0) ) 的表达式。那 ( f(z_0) ) 呢( f(z_0) ) 呢一个自然的想法是既然 ( f(z_0) \frac{1}{2\pi i} \oint_C \frac{f(z)}{z-z_0} dz )那我能不能对 ( z_0 ) 求导在积分号下求导得到[ f(z_0) \frac{1}{2\pi i} \oint_C \frac{f(z)}{(z-z_0)^2} , dz ]再求一次导[ f(z_0) \frac{2!}{2\pi i} \oint_C \frac{f(z)}{(z-z_0)^3} , dz ]一般地[ f^{(n)}(z_0) \frac{n!}{2\pi i} \oint_C \frac{f(z)}{(z-z_0)^{n1}} , dz ]这就是高阶导数公式。它的证明需要说明在积分号下求导是合法的这依赖于 ( f ) 的解析性和 ( C ) 与 ( z_0 ) 的正距离。教材上通常会花一些篇幅处理这个技术细节但实际使用时你只需要记住这个公式的形式和适用条件。我第一次看到这个公式时的反应是一个解析函数居然有任意阶导数而且每一阶导数都可以用积分表示出来。这在实函数里是完全不可能的——实函数可以一阶可导但二阶不可导比如 ( f(x) x|x| ) 在 ( x0 ) 处一阶可导但二阶不可导。但复解析函数一旦一阶可导就自动无穷次可导这个性质叫做“解析函数的无穷可微性”。3.2 高阶导数公式在计算中的典型用法高阶导数公式最常见的用法是计算形如 ( \oint_C \frac{g(z)}{(z-z_0)^{n1}} dz ) 的积分。识别出 ( g(z) ) 就是公式里的 ( f(z) )然后直接套公式[ \oint_C \frac{g(z)}{(z-z_0)^{n1}} , dz \frac{2\pi i}{n!} g^{(n)}(z_0) ]举个例子计算 ( \oint_{|z|1} \frac{e^z}{z^3} dz )。这里 ( z_0 0 )( n 2 )( g(z) e^z )。( g(z) e^z )所以 ( g(0) 1 )。积分值就是 ( \frac{2\pi i}{2!} \cdot 1 \pi i )。如果不用高阶导数公式你就得把 ( e^z ) 展开成泰勒级数然后逐项积分利用 ( \oint z^k dz ) 的性质来算。两种方法结果一样但高阶导数公式显然快得多。提示使用高阶导数公式时一定要确认 ( z_0 ) 在 ( C ) 内部且 ( g(z) ) 在 ( C ) 及其内部解析。如果 ( g(z) ) 在 ( C ) 内部还有其他奇点这个公式就不能直接用需要先做部分分式分解或者用留数定理。3.3 一个我踩过的坑阶数判断错误有一次我在计算 ( \oint_{|z|2} \frac{\sin z}{z^4} dz ) 时看到分母是 ( z^4 )第一反应是 ( n1 4 )所以 ( n 3 )然后去算 ( \sin z ) 的三阶导数。但实际上( \sin z ) 在 ( z0 ) 处的泰勒展开是 ( z - \frac{z^3}{3!} \frac{z^5}{5!} - \cdots )除以 ( z^4 ) 之后只有 ( \frac{1}{z^3} ) 这一项会贡献非零积分因为 ( \oint z^{-1} dz 2\pi i )其他 ( z^k ) 在 ( k \neq -1 ) 时积分为零。所以实际上只有 ( -\frac{1}{3!} \cdot \frac{1}{z} ) 这一项有贡献积分值是 ( 2\pi i \cdot (-\frac{1}{6}) -\frac{\pi i}{3} )。用高阶导数公式验证( g(z) \sin z )( n 3 )( g(z) -\cos z )( g(0) -1 )。积分值 ( \frac{2\pi i}{3!} \cdot (-1) -\frac{\pi i}{3} )。结果一致。这个坑的教训是不要看到分母的幂次就直接套公式要先确认分子在 ( z_0 ) 处的泰勒展开中哪些项会“存活”下来。有时候高阶导数算出来是零积分也就为零但如果你没意识到这一点可能会在计算上浪费很多时间。4. 柯西积分公式在实积分计算中的实战4.1 为什么复积分方法能算实积分柯西积分公式和高阶导数公式的一个经典应用是计算某些实变量积分。这些积分用实分析的方法做非常困难但用复积分的方法可以很优雅地解决。核心思路是把实积分转化为复平面上的闭合路径积分然后利用柯西积分公式或留数定理计算。常见的类型包括( \int_0^{2\pi} R(\cos\theta, \sin\theta) d\theta ) 型( \int_{-\infty}^{\infty} \frac{P(x)}{Q(x)} dx ) 型( Q ) 的次数比 ( P ) 高至少两次( \int_{-\infty}^{\infty} \frac{P(x)}{Q(x)} e^{iax} dx ) 型需要用到 Jordan 引理这里我重点讲第一种因为它和柯西积分公式的联系最直接。4.2 三角有理函数积分的标准操作对于 ( \int_0^{2\pi} R(\cos\theta, \sin\theta) d\theta )标准做法是令 ( z e^{i\theta} )则 ( d\theta \frac{dz}{iz} )且[ \cos\theta \frac{z z^{-1}}{2}, \quad \sin\theta \frac{z - z^{-1}}{2i} ]代入后积分变成沿单位圆 ( |z| 1 ) 的闭合路径积分[ \int_0^{2\pi} R(\cos\theta, \sin\theta) , d\theta \oint_{|z|1} R\left(\frac{zz^{-1}}{2}, \frac{z-z^{-1}}{2i}\right) \frac{dz}{iz} ]这个积分通常是有理函数积分可以用柯西积分公式或留数定理计算。举个具体的例子计算 ( \int_0^{2\pi} \frac{d\theta}{2 \cos\theta} )。代入 ( z e^{i\theta} )[ \int_0^{2\pi} \frac{d\theta}{2 \cos\theta} \oint_{|z|1} \frac{1}{2 \frac{zz^{-1}}{2}} \cdot \frac{dz}{iz} \oint_{|z|1} \frac{2}{4 z z^{-1}} \cdot \frac{dz}{iz} ]化简[ \oint_{|z|1} \frac{2}{z^2 4z 1} \cdot \frac{dz}{i} \frac{2}{i} \oint_{|z|1} \frac{dz}{z^2 4z 1} ]分母的根是 ( z -2 \pm \sqrt{3} )。其中 ( -2 \sqrt{3} \approx -0.268 ) 在单位圆内( -2 - \sqrt{3} \approx -3.732 ) 在单位圆外。所以被积函数在单位圆内只有一个一阶极点 ( z_0 -2 \sqrt{3} )。用柯西积分公式[ \oint_{|z|1} \frac{dz}{z^2 4z 1} \oint_{|z|1} \frac{1}{(z - z_0)(z - z_1)} dz ]其中 ( z_1 -2 - \sqrt{3} )。把 ( \frac{1}{z - z_1} ) 看作 ( f(z) )它在单位圆内解析所以[ \oint_{|z|1} \frac{f(z)}{z - z_0} dz 2\pi i f(z_0) 2\pi i \cdot \frac{1}{z_0 - z_1} 2\pi i \cdot \frac{1}{2\sqrt{3}} \frac{\pi i}{\sqrt{3}} ]最终[ \int_0^{2\pi} \frac{d\theta}{2 \cos\theta} \frac{2}{i} \cdot \frac{\pi i}{\sqrt{3}} \frac{2\pi}{\sqrt{3}} ]这个结果可以用实分析的方法验证但过程要繁琐得多。复积分方法的优势在于它把三角函数的积分转化成了代数方程的求根问题而求根是机械化的操作。4.3 实积分计算中的常见陷阱用复积分方法算实积分时有几个地方特别容易出错第一极点是否在积分路径上。如果实积分的被积函数在积分区间内有奇点直接转化会出问题。比如 ( \int_0^{2\pi} \frac{d\theta}{1 - 2a\cos\theta a^2} ) 当 ( |a| 1 ) 时分母在 ( \theta 0 ) 处为零这时候积分是发散的不能直接套公式。第二单位圆内极点的个数和阶数。有时候分母的根恰好落在单位圆上这时候积分路径需要做一个小半圆绕过去处理起来要小心。我一般会先检查分母的根是否在单位圆上如果在就说明这个积分需要特殊处理。第三( dz ) 替换时的系数。( d\theta \frac{dz}{iz} )这个 ( \frac{1}{i} ) 经常被漏掉。我自己的习惯是每次替换后都重新检查一遍系数确保没有遗漏。注意用复积分方法算实积分时最后的结果必须是实数。如果你算出来一个带虚部的数那一定是中间某一步出错了。这个可以作为快速自检的方法。5. 柯西积分公式的“边界”什么时候不能用5.1 解析性条件不能放松柯西积分公式要求 ( f(z) ) 在 ( C ) 及其内部解析。如果 ( f ) 在 ( C ) 内部有奇点公式就不能直接用。但很多时候被积函数在 ( C ) 内部确实有奇点这时候需要做的是把奇点“挖掉”。具体操作是以每个奇点为圆心做小圆然后用复连通区域的柯西积分定理把外边界积分转化为各个小圆上的积分之和。每个小圆上的积分可以用柯西积分公式或高阶导数公式计算。这就是留数定理的雏形。比如计算 ( \oint_{|z|3} \frac{e^z}{z(z-1)} dz )。被积函数在 ( z0 ) 和 ( z1 ) 处各有一个一阶极点都在 ( |z|3 ) 内部。这时候不能直接套柯西积分公式需要做部分分式分解[ \frac{1}{z(z-1)} \frac{1}{z-1} - \frac{1}{z} ]所以[ \oint_{|z|3} \frac{e^z}{z(z-1)} dz \oint_{|z|3} \frac{e^z}{z-1} dz - \oint_{|z|3} \frac{e^z}{z} dz ]两个积分分别用柯西积分公式[ 2\pi i e^1 - 2\pi i e^0 2\pi i (e - 1) ]如果直接用留数定理两个一阶极点的留数分别是 ( e^1 ) 和 ( -e^0 )和是 ( e - 1 )乘以 ( 2\pi i ) 得到同样的结果。5.2 路径不能穿过奇点柯西积分公式的另一个隐含条件是积分路径 ( C ) 不能穿过被积函数的奇点。如果 ( C ) 穿过了奇点积分本身就没有定义被积函数在路径上无界。在实际计算中这意味着你需要先确认积分路径和被积函数奇点的位置关系。如果路径穿过了奇点要么换一条路径如果积分值与路径无关要么这个积分本身就是发散的。我遇到过一种情况题目给的路径是一个以原点为中心的正方形但被积函数在正方形的某条边上有一个极点。这时候正确的做法是说明这个积分在通常意义下不存在或者考虑柯西主值的定义。但在大多数课程作业和考试中这种情况通常不会出现因为出题人会避免这种“病态”情形。5.3 无穷远点的处理当积分路径延伸到无穷远时柯西积分公式不能直接使用因为无穷远点不是有限点。这时候需要用到“无穷远点的留数”或者“大圆弧引理”来处理。常见的处理方式是做一个大半圆 ( C_R ) 把实轴上的积分路径闭合起来然后证明沿大半圆的积分在 ( R \to \infty ) 时趋于零。这个证明通常需要估计被积函数在大圆弧上的增长速度。比如计算 ( \int_{-\infty}^{\infty} \frac{dx}{x^2 1} )。做上半平面的大半圆 ( C_R )沿 ( C_R ) 的积分估计[ \left| \int_{C_R} \frac{dz}{z^2 1} \right| \leq \frac{\pi R}{R^2 - 1} \to 0 \quad (R \to \infty) ]所以实轴上的积分等于闭合路径积分而闭合路径内只有一个极点 ( z i )留数是 ( \frac{1}{2i} )积分值是 ( 2\pi i \cdot \frac{1}{2i} \pi )。这个估计过程是实积分计算中最容易被忽略的一步。很多人直接假设大圆弧上的积分为零但严格来说你需要证明它确实趋于零。对于 ( \frac{1}{z^21} ) 这种分母次数比分子高两次的情况大圆弧积分确实趋于零但如果分母只高一次比如 ( \frac{1}{z-1} )大圆弧积分就不趋于零这时候需要更精细的处理。6. 我自己的练习路径和几个实用建议6.1 从“识别类型”开始而不是从“计算”开始我刚开始学柯西积分公式的时候最大的问题是拿到一个积分不知道用哪个公式。后来我总结了一个简单的判断流程被积函数形式首选方法注意事项( \frac{f(z)}{z-z_0} )( f ) 解析柯西积分公式确认 ( z_0 ) 在路径内部( \frac{f(z)}{(z-z_0)^{n1}} )( f ) 解析高阶导数公式确认 ( n ) 的值和 ( f^{(n)}(z_0) )多个极点部分分式分解或留数定理确认所有极点都在路径内部三角有理函数( z e^{i\theta} ) 替换检查单位圆上的极点无穷区间上的有理函数大半圆闭合 留数定理验证大圆弧积分趋于零这个表格不是万能的但它能覆盖大多数标准题型。我的建议是先花时间识别类型再动手计算。识别类型花的那一分钟能帮你省下后面十分钟的无效计算。6.2 验证结果的两个实用技巧技巧一用特殊值检验。如果你算出的结果是一个表达式试着代入一些特殊值看看是否合理。比如算 ( \oint_{|z|1} \frac{e^z}{z} dz )结果是 ( 2\pi i )。如果你算出来是 ( \pi i )那肯定错了因为 ( e^0 1 )积分值应该是 ( 2\pi i \cdot 1 )。技巧二用级数展开交叉验证。对于 ( \oint \frac{f(z)}{z^{n1}} dz ) 型的积分你可以把 ( f(z) ) 展开成泰勒级数然后看哪一项的幂次是 ( -1 )。那一项的系数乘以 ( 2\pi i ) 就是积分值。这个方法和高阶导数公式是等价的但有时候级数展开更直观。比如 ( \oint_{|z|1} \frac{\cos z}{z^3} dz )。( \cos z 1 - \frac{z^2}{2!} \frac{z^4}{4!} - \cdots )除以 ( z^3 ) 后( \frac{1}{z^3} ) 项和 ( \frac{1}{z} ) 项中只有 ( -\frac{1}{2!} \cdot \frac{1}{z} ) 这一项有非零积分。所以积分值是 ( 2\pi i \cdot (-\frac{1}{2}) -\pi i )。用高阶导数公式验证( f(z) \cos z )( n 2 )( f(z) -\cos z )( f(0) -1 )积分值 ( \frac{2\pi i}{2!} \cdot (-1) -\pi i )。一致。6.3 一个容易被忽略的细节路径的方向柯西积分公式里的路径 ( C ) 是逆时针方向的。如果你用的路径是顺时针方向积分值会差一个负号。这个细节在考试中经常被扣分因为很多人只记公式不记方向。我自己的习惯是每次写积分的时候都在路径符号旁边标注方向。比如 ( \oint_{C^} ) 表示逆时针( \oint_{C^-} ) 表示顺时针。这样在代入公式的时候就不会搞错符号。提示如果题目没有明确说明路径方向通常默认是逆时针。但如果题目给的是一个具体的参数化路径比如 ( z e^{-i\theta} )( \theta ) 从 ( 0 ) 到 ( 2\pi )那这个路径实际上是顺时针的因为 ( e^{-i\theta} ) 随着 ( \theta ) 增加是顺时针转的。这时候需要把方向考虑进去。6.4 关于计算量的一个经验判断柯西积分公式和高阶导数公式的计算量通常很小但前提是你识别对了类型。如果你发现自己在做一个积分时计算量突然变得很大——比如需要展开很长的级数、或者需要算很高阶的导数——那很可能你选错了方法。比如计算 ( \oint_{|z|2} \frac{z^2 1}{z(z-1)(z-2)} dz )。如果你试图用部分分式分解会得到三个系数然后分别计算三个积分。但如果你注意到 ( z2 ) 在路径上( |z|2 ) 经过 ( z2 )这个积分本身就是发散的不需要算。再比如 ( \oint_{|z|1} \frac{e^z}{z^5} dz )。用高阶导数公式( n4 )需要算 ( e^z ) 的四阶导数但 ( e^z ) 的四阶导数还是 ( e^z )所以 ( f^{(4)}(0) 1 )积分值是 ( \frac{2\pi i}{4!} \frac{\pi i}{12} )。计算量并不大。但如果你试图展开 ( e^z ) 的级数需要展开到 ( z^4 ) 项也不算太麻烦。两种方法都可以。我的经验是如果被积函数是 ( e^z )、( \sin z )、( \cos z ) 这类导数有规律的函数高阶导数公式通常更快如果被积函数是有理函数部分分式分解或留数定理通常更直接。7. 从柯西积分公式到留数定理的自然延伸柯西积分公式处理的是 ( \frac{f(z)}{z-z_0} ) 这种形式其中 ( f ) 解析。但如果被积函数在 ( z_0 ) 处的奇点不是一阶极点而是更高阶的极点或者本质奇点柯西积分公式就不能直接用了。这时候需要更一般的工具——留数定理。留数定理说的是( \oint_C f(z) dz 2\pi i \sum \text{Res}(f, z_k) )其中 ( z_k ) 是 ( C ) 内部的所有孤立奇点。对于一阶极点留数的计算就是 ( \lim_{z \to z_0} (z-z_0) f(z) )这本质上就是柯西积分公式的推广。对于 ( m ) 阶极点留数的计算需要求 ( m-1 ) 阶导数这又是高阶导数公式的推广。所以柯西积分公式、高阶导数公式、留数定理本质上是一条线上的三个点。理解了柯西积分公式的推导逻辑留数定理的证明也就顺理成章了。我在学完柯西积分公式之后花了一些时间把留数定理的证明自己推了一遍。推完之后最大的感受是柯西积分公式是整个复分析计算体系的“原子”。留数定理、辐角原理、儒歇定理全都可以从它出发推出来。如果你只记结论不记推导遇到稍微变形的题目就会卡住但如果你理解了那个“缩小圆”的操作很多问题都能自己推出来。最后分享一个我自己的练习方法每学完一个公式我都会找几个“看起来不能用这个公式”的积分然后想办法把它转化成能用这个公式的形式。这个过程比单纯做课后习题更有价值因为它训练的是“识别和转化”的能力而不是“套公式”的能力。柯西积分公式的题目难的不是计算而是识别——识别出哪个是 ( f(z) )哪个是 ( z_0 )路径是否包围了奇点奇点的阶数是多少。这些判断做对了计算就是一两行的事。
返回列表