{
    "version": "https://jsonfeed.org/version/1",
    "title": "流年印记",
    "description": "数学 & 软件工程",
    "home_page_url": "https://hk2012.github.io",
    "items": [
        {
            "id": "https://hk2012.github.io/2024/06/17/course/%E8%90%A5%E9%94%802.0/",
            "url": "https://hk2012.github.io/2024/06/17/course/%E8%90%A5%E9%94%802.0/",
            "title": "营销2.0",
            "date_published": "2024-06-17T03:10:00.000Z",
            "content_html": "<h1 id=\"营销20\"><a class=\"anchor\" href=\"#营销20\">#</a> 营销 2.0</h1>\n<p>Base URLs:</p>\n<ul>\n<li>&lt;a href=&quot;<span class=\"exturl\" data-url=\"aHR0cDovLzEwLjEwLjAuNTc6MjgwOTMvbWVtYmVyL2FjYXBtdHIv\">http://10.10.0.57:28093/member/acapmtr/</span>&quot;&gt; 测试环境: <span class=\"exturl\" data-url=\"aHR0cDovLzEwLjEwLjAuNTc6MjgwOTMvbWVtYmVyL2FjYXBtdHIv\">http://10.10.0.57:28093/member/acapmtr/</span>&lt;/a&gt;</li>\n</ul>\n<h1 id=\"authentication\"><a class=\"anchor\" href=\"#authentication\">#</a> Authentication</h1>\n<h1 id=\"用户行为分析\"><a class=\"anchor\" href=\"#用户行为分析\">#</a> 用户行为分析</h1>\n<h2 id=\"post-柱状图\"><a class=\"anchor\" href=\"#post-柱状图\">#</a> POST 柱状图</h2>\n<p>POST /analysisChannelGrowth/queryBarChartMessage</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-30\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"category\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数\"><a class=\"anchor\" href=\"#请求参数\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td>否</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» staDate</td>\n<td>body</td>\n<td>string</td>\n<td>是</td>\n<td>日期</td>\n</tr>\n<tr>\n<td>» type</td>\n<td>body</td>\n<td>string</td>\n<td>是</td>\n<td>日期类型，年、月、日</td>\n</tr>\n<tr>\n<td>» category</td>\n<td>body</td>\n<td>string</td>\n<td>是</td>\n<td>分类</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果\"><a class=\"anchor\" href=\"#返回结果\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构\"><a class=\"anchor\" href=\"#返回数据结构\">#</a> 返回数据结构</h3>\n<h1 id=\"用户行为分析用户查缴异常\"><a class=\"anchor\" href=\"#用户行为分析用户查缴异常\">#</a> 用户行为分析 / 用户查缴异常</h1>\n<h2 id=\"post-缴费_柱状图\"><a class=\"anchor\" href=\"#post-缴费_柱状图\">#</a> POST 缴费_柱状图</h2>\n<p>POST /analysisPaymentAnomalies/queryBarChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"city\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"南京\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-2\"><a class=\"anchor\" href=\"#请求参数-2\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td>否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-2\"><a class=\"anchor\" href=\"#返回结果-2\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-2\"><a class=\"anchor\" href=\"#返回数据结构-2\">#</a> 返回数据结构</h3>\n<h2 id=\"post-新增用户和同比\"><a class=\"anchor\" href=\"#post-新增用户和同比\">#</a> POST 新增用户和同比</h2>\n<p>POST /analysisChannelGrowth/queryGrowthMessage</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-3\"><a class=\"anchor\" href=\"#请求参数-3\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td>否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-3\"><a class=\"anchor\" href=\"#返回结果-3\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-3\"><a class=\"anchor\" href=\"#返回数据结构-3\">#</a> 返回数据结构</h3>\n<h1 id=\"用户行为分析用户查缴异常-2\"><a class=\"anchor\" href=\"#用户行为分析用户查缴异常-2\">#</a> 用户行为分析 / 用户查缴异常</h1>\n<h2 id=\"post-缴费_汇总\"><a class=\"anchor\" href=\"#post-缴费_汇总\">#</a> POST 缴费_汇总</h2>\n<p>POST /analysisPaymentAnomalies/queryTotalMessage</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-4\"><a class=\"anchor\" href=\"#返回结果-4\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-4\"><a class=\"anchor\" href=\"#返回数据结构-4\">#</a> 返回数据结构</h3>\n<h2 id=\"post-缴费_柱状图-2\"><a class=\"anchor\" href=\"#post-缴费_柱状图-2\">#</a> POST 缴费_柱状图</h2>\n<p>POST /analysisPaymentAnomalies/queryBarChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"city\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"南京\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-4\"><a class=\"anchor\" href=\"#请求参数-4\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td>否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-5\"><a class=\"anchor\" href=\"#返回结果-5\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-5\"><a class=\"anchor\" href=\"#返回数据结构-5\">#</a> 返回数据结构</h3>\n<h2 id=\"post-欠费笔数\"><a class=\"anchor\" href=\"#post-欠费笔数\">#</a> POST 欠费笔数</h2>\n<p>POST /analysisUserDebts/queryDebtCount</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-21\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-5\"><a class=\"anchor\" href=\"#请求参数-5\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td>否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>500 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"timestamp\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"status\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"error\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>  <span class=\"token property\">\"path\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-6\"><a class=\"anchor\" href=\"#返回结果-6\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>500</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjYuMQ==\">Internal Server Error</span></td>\n<td>服务器错误</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-6\"><a class=\"anchor\" href=\"#返回数据结构-6\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>500</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» timestamp</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» status</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» error</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» path</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-欠费金额\"><a class=\"anchor\" href=\"#post-欠费金额\">#</a> POST 欠费金额</h2>\n<p>POST /analysisUserDebts/queryDebtAmount</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-21\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-6\"><a class=\"anchor\" href=\"#请求参数-6\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td>否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-7\"><a class=\"anchor\" href=\"#返回结果-7\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-7\"><a class=\"anchor\" href=\"#返回数据结构-7\">#</a> 返回数据结构</h3>\n<h2 id=\"post-查询欠费笔数柱状图\"><a class=\"anchor\" href=\"#post-查询欠费笔数柱状图\">#</a> POST  查询欠费笔数柱状图</h2>\n<p>POST /analysisUserDebts/queryCountBarChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"year\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"city\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"南京\"</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-7\"><a class=\"anchor\" href=\"#请求参数-7\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» staDate</td>\n<td>body</td>\n<td>string</td>\n<td>是</td>\n<td>日期</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» type</td>\n<td>body</td>\n<td>string</td>\n<td>是</td>\n<td>日期类型</td>\n<td>day month year 三种类型</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-8\"><a class=\"anchor\" href=\"#返回结果-8\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-8\"><a class=\"anchor\" href=\"#返回数据结构-8\">#</a> 返回数据结构</h3>\n<h2 id=\"post-欠费表-_-查询欠费金额数柱状图\"><a class=\"anchor\" href=\"#post-欠费表-_-查询欠费金额数柱状图\">#</a> POST 欠费表 _ 查询欠费金额数柱状图</h2>\n<p>POST /analysisUserDebts/queryAmountBarchart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-28\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-8\"><a class=\"anchor\" href=\"#请求参数-8\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» staDate</td>\n<td>body</td>\n<td>string</td>\n<td>是</td>\n<td>日期</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» type</td>\n<td>body</td>\n<td>string</td>\n<td>是</td>\n<td>日期类型</td>\n<td>year month day</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-9\"><a class=\"anchor\" href=\"#返回结果-9\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-9\"><a class=\"anchor\" href=\"#返回数据结构-9\">#</a> 返回数据结构</h3>\n<h1 id=\"用户行为分析客户细分和定位\"><a class=\"anchor\" href=\"#用户行为分析客户细分和定位\">#</a> 用户行为分析 / 客户细分和定位</h1>\n<h2 id=\"post-客户细分和定位-查询\"><a class=\"anchor\" href=\"#post-客户细分和定位-查询\">#</a> POST 客户细分和定位 查询</h2>\n<p>POST /analysisCustomerPosition/queryCustomerPosition</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"userCategory\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"electricityCategory\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05\"</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-9\"><a class=\"anchor\" href=\"#请求参数-9\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"id\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"userId\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"userCode\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"userCategory\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token property\">\"userName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>      <span class=\"token property\">\"electricityCategory\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>      <span class=\"token property\">\"paymentMethod\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>      <span class=\"token property\">\"channelName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>      <span class=\"token property\">\"electricityAddress\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>      <span class=\"token property\">\"stopPowerStatus\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>      <span class=\"token property\">\"sendPowerDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>      <span class=\"token property\">\"settleFlag\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>      <span class=\"token property\">\"paymentDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>      <span class=\"token property\">\"amount\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-10\"><a class=\"anchor\" href=\"#返回结果-10\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-10\"><a class=\"anchor\" href=\"#返回数据结构-10\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» id</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» userId</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» userCode</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» userCategory</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» userName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» electricityCategory</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» paymentMethod</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» channelName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» electricityAddress</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» stopPowerStatus</td>\n<td>boolean</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» sendPowerDate</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» settleFlag</td>\n<td>boolean</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» paymentDate</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» amount</td>\n<td>number</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-客户细分和定位-导出\"><a class=\"anchor\" href=\"#post-客户细分和定位-导出\">#</a> POST 客户细分和定位 导出</h2>\n<p>POST /analysisCustomerPosition/export</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"userCategory\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"electricityCategory\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05\"</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-10\"><a class=\"anchor\" href=\"#请求参数-10\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-11\"><a class=\"anchor\" href=\"#返回结果-11\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-11\"><a class=\"anchor\" href=\"#返回数据结构-11\">#</a> 返回数据结构</h3>\n<h2 id=\"post-客户细分和定位-用户分类\"><a class=\"anchor\" href=\"#post-客户细分和定位-用户分类\">#</a> POST 客户细分和定位 用户分类</h2>\n<p>POST /analysisCustomerPosition/queryUserCategory</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-12\"><a class=\"anchor\" href=\"#返回结果-12\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-12\"><a class=\"anchor\" href=\"#返回数据结构-12\">#</a> 返回数据结构</h3>\n<h2 id=\"post-客户细分和定位-用电分类\"><a class=\"anchor\" href=\"#post-客户细分和定位-用电分类\">#</a> POST 客户细分和定位 用电分类</h2>\n<p>POST /analysisCustomerPosition/queryElectricityCategory</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-13\"><a class=\"anchor\" href=\"#返回结果-13\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-13\"><a class=\"anchor\" href=\"#返回数据结构-13\">#</a> 返回数据结构</h3>\n<h1 id=\"用户行为分析跨渠道用户行为\"><a class=\"anchor\" href=\"#用户行为分析跨渠道用户行为\">#</a> 用户行为分析 / 跨渠道用户行为</h1>\n<h2 id=\"post-跨渠道用户行为查询\"><a class=\"anchor\" href=\"#post-跨渠道用户行为查询\">#</a> POST 跨渠道用户行为查询</h2>\n<p>POST /analysisUserBehaviorCrossChannel/queryMessage</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"payChannel\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"signChannel\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-11\"><a class=\"anchor\" href=\"#请求参数-11\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» payChannel</td>\n<td>body</td>\n<td>string</td>\n<td>否</td>\n<td>支付渠道</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» signChannel</td>\n<td>body</td>\n<td>string</td>\n<td>否</td>\n<td>签约渠道</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-14\"><a class=\"anchor\" href=\"#返回结果-14\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-14\"><a class=\"anchor\" href=\"#返回数据结构-14\">#</a> 返回数据结构</h3>\n<h2 id=\"post-签约渠道下拉框_查询\"><a class=\"anchor\" href=\"#post-签约渠道下拉框_查询\">#</a> POST 签约渠道下拉框_查询</h2>\n<p>POST /analysisUserBehaviorCrossChannel/querySignChannel</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-15\"><a class=\"anchor\" href=\"#返回结果-15\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-15\"><a class=\"anchor\" href=\"#返回数据结构-15\">#</a> 返回数据结构</h3>\n<h2 id=\"post-支付渠道下拉框_查询\"><a class=\"anchor\" href=\"#post-支付渠道下拉框_查询\">#</a> POST 支付渠道下拉框_查询</h2>\n<p>POST /analysisUserBehaviorCrossChannel/queryPayChannel</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-16\"><a class=\"anchor\" href=\"#返回结果-16\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-16\"><a class=\"anchor\" href=\"#返回数据结构-16\">#</a> 返回数据结构</h3>\n<h1 id=\"用户行为分析用户频繁缴费分析\"><a class=\"anchor\" href=\"#用户行为分析用户频繁缴费分析\">#</a> 用户行为分析 / 用户频繁缴费分析</h1>\n<h2 id=\"post-频繁交费分析饼图\"><a class=\"anchor\" href=\"#post-频繁交费分析饼图\">#</a> POST 频繁交费分析饼图</h2>\n<p>POST /analysisUserPayment/queryPieChartMessage</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05\"</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-12\"><a class=\"anchor\" href=\"#请求参数-12\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-17\"><a class=\"anchor\" href=\"#返回结果-17\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-17\"><a class=\"anchor\" href=\"#返回数据结构-17\">#</a> 返回数据结构</h3>\n<h2 id=\"post-频繁交费分析柱状图\"><a class=\"anchor\" href=\"#post-频繁交费分析柱状图\">#</a> POST 频繁交费分析柱状图</h2>\n<p>POST /analysisUserPayment/queryBarChartMessage</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"city\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"南京\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-13\"><a class=\"anchor\" href=\"#请求参数-13\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-18\"><a class=\"anchor\" href=\"#返回结果-18\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-18\"><a class=\"anchor\" href=\"#返回数据结构-18\">#</a> 返回数据结构</h3>\n<h1 id=\"用户行为分析托收签约未反馈分析\"><a class=\"anchor\" href=\"#用户行为分析托收签约未反馈分析\">#</a> 用户行为分析 / 托收签约未反馈分析</h1>\n<h2 id=\"post-托收签约未反馈分析查询\"><a class=\"anchor\" href=\"#post-托收签约未反馈分析查询\">#</a> POST 托收签约未反馈分析查询</h2>\n<p>POST /analysisCollectionAgreement/queryNoFeedbackChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-21\"</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-14\"><a class=\"anchor\" href=\"#请求参数-14\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-19\"><a class=\"anchor\" href=\"#返回结果-19\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-19\"><a class=\"anchor\" href=\"#返回数据结构-19\">#</a> 返回数据结构</h3>\n<h1 id=\"用户行为分析渠道交叉分析\"><a class=\"anchor\" href=\"#用户行为分析渠道交叉分析\">#</a> 用户行为分析 / 渠道交叉分析</h1>\n<h2 id=\"post-渠道交叉分析_雷达图\"><a class=\"anchor\" href=\"#post-渠道交叉分析_雷达图\">#</a> POST 渠道交叉分析_雷达图</h2>\n<p>POST /analysisCrossChannel/queryRadarChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-23\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-15\"><a class=\"anchor\" href=\"#请求参数-15\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-20\"><a class=\"anchor\" href=\"#返回结果-20\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-20\"><a class=\"anchor\" href=\"#返回数据结构-20\">#</a> 返回数据结构</h3>\n<h2 id=\"post-渠道交叉分析_柱状图\"><a class=\"anchor\" href=\"#post-渠道交叉分析_柱状图\">#</a> POST 渠道交叉分析_柱状图</h2>\n<p>POST /analysisCrossChannel/queryBarChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-23\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"city\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"南京\"</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-16\"><a class=\"anchor\" href=\"#请求参数-16\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-21\"><a class=\"anchor\" href=\"#返回结果-21\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-21\"><a class=\"anchor\" href=\"#返回数据结构-21\">#</a> 返回数据结构</h3>\n<h1 id=\"用户行为分析渠道满意度评估\"><a class=\"anchor\" href=\"#用户行为分析渠道满意度评估\">#</a> 用户行为分析 / 渠道满意度评估</h1>\n<h2 id=\"post-渠道满意度评估_最受欢迎top10\"><a class=\"anchor\" href=\"#post-渠道满意度评估_最受欢迎top10\">#</a> POST 渠道满意度评估_最受欢迎 Top10</h2>\n<p>POST /analysisChannelSatisfaction/querySatisfactionTop10</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-21\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-17\"><a class=\"anchor\" href=\"#请求参数-17\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-22\"><a class=\"anchor\" href=\"#返回结果-22\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-22\"><a class=\"anchor\" href=\"#返回数据结构-22\">#</a> 返回数据结构</h3>\n<h2 id=\"post-渠道满意度评估_整体满意度\"><a class=\"anchor\" href=\"#post-渠道满意度评估_整体满意度\">#</a> POST 渠道满意度评估_整体满意度</h2>\n<p>POST /analysisChannelSatisfaction/queryChannelSatisfaction</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"month\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-18\"><a class=\"anchor\" href=\"#请求参数-18\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-23\"><a class=\"anchor\" href=\"#返回结果-23\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-23\"><a class=\"anchor\" href=\"#返回数据结构-23\">#</a> 返回数据结构</h3>\n<h2 id=\"post-渠道满意度评估_柱状图\"><a class=\"anchor\" href=\"#post-渠道满意度评估_柱状图\">#</a> POST 渠道满意度评估_柱状图</h2>\n<p>POST /analysisChannelSatisfaction/queryBarChartMessage</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"year\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-19\"><a class=\"anchor\" href=\"#请求参数-19\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-24\"><a class=\"anchor\" href=\"#返回结果-24\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-24\"><a class=\"anchor\" href=\"#返回数据结构-24\">#</a> 返回数据结构</h3>\n<h1 id=\"用户行为分析用户渠道偏好分析\"><a class=\"anchor\" href=\"#用户行为分析用户渠道偏好分析\">#</a> 用户行为分析 / 用户渠道偏好分析</h1>\n<h2 id=\"post-用户渠道偏好分析雷达图\"><a class=\"anchor\" href=\"#post-用户渠道偏好分析雷达图\">#</a> POST 用户渠道偏好分析雷达图</h2>\n<p>POST /analysisChannelSignups/queryRadarChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"month\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-20\"><a class=\"anchor\" href=\"#请求参数-20\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"count\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"percentage\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-25\"><a class=\"anchor\" href=\"#返回结果-25\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-25\"><a class=\"anchor\" href=\"#返回数据结构-25\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» description</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» count</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» percentage</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-用户渠道偏好分析_柱状图\"><a class=\"anchor\" href=\"#post-用户渠道偏好分析_柱状图\">#</a> POST 用户渠道偏好分析_柱状图</h2>\n<p>POST /analysisChannelSignups/queryBarChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"month\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-21\"><a class=\"anchor\" href=\"#请求参数-21\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"count\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"percentage\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-26\"><a class=\"anchor\" href=\"#返回结果-26\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-26\"><a class=\"anchor\" href=\"#返回数据结构-26\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» description</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» count</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» percentage</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"渠道数据应用渠道数据融合和关联\"><a class=\"anchor\" href=\"#渠道数据应用渠道数据融合和关联\">#</a> 渠道数据应用 / 渠道数据融合和关联</h1>\n<h2 id=\"post-查询渠道数据融合和关联信息\"><a class=\"anchor\" href=\"#post-查询渠道数据融合和关联信息\">#</a> POST 查询渠道数据融合和关联信息</h2>\n<p>POST /appChannelDataFusion/queryFusion</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"userType\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"VIP用户\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"paymentDueDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-31\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-22\"><a class=\"anchor\" href=\"#请求参数-22\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-27\"><a class=\"anchor\" href=\"#返回结果-27\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-27\"><a class=\"anchor\" href=\"#返回数据结构-27\">#</a> 返回数据结构</h3>\n<h2 id=\"post-查询用户类型\"><a class=\"anchor\" href=\"#post-查询用户类型\">#</a> POST 查询用户类型</h2>\n<p>POST /appChannelDataFusion/queryUserType</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-28\"><a class=\"anchor\" href=\"#返回结果-28\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-28\"><a class=\"anchor\" href=\"#返回数据结构-28\">#</a> 返回数据结构</h3>\n<h2 id=\"post-查询费用年月\"><a class=\"anchor\" href=\"#post-查询费用年月\">#</a> POST 查询费用年月</h2>\n<p>POST /appChannelDataFusion/queryPaymentDate</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-29\"><a class=\"anchor\" href=\"#返回结果-29\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-29\"><a class=\"anchor\" href=\"#返回数据结构-29\">#</a> 返回数据结构</h3>\n<h1 id=\"渠道数据应用渠道风险识别\"><a class=\"anchor\" href=\"#渠道数据应用渠道风险识别\">#</a> 渠道数据应用 / 渠道风险识别</h1>\n<h2 id=\"post-渠道风险识别_今日突增交易量\"><a class=\"anchor\" href=\"#post-渠道风险识别_今日突增交易量\">#</a> POST 渠道风险识别_今日突增交易量</h2>\n<p>POST /appChannelRisk/queryVolume</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-30\"><a class=\"anchor\" href=\"#返回结果-30\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-30\"><a class=\"anchor\" href=\"#返回数据结构-30\">#</a> 返回数据结构</h3>\n<h2 id=\"post-渠道风险识别_今日异常高额交易金额\"><a class=\"anchor\" href=\"#post-渠道风险识别_今日异常高额交易金额\">#</a> POST 渠道风险识别_今日异常高额交易金额</h2>\n<p>POST /appChannelRisk/queryAmount</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-31\"><a class=\"anchor\" href=\"#返回结果-31\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-31\"><a class=\"anchor\" href=\"#返回数据结构-31\">#</a> 返回数据结构</h3>\n<h2 id=\"post-渠道风险识别_柱状图\"><a class=\"anchor\" href=\"#post-渠道风险识别_柱状图\">#</a> POST 渠道风险识别_柱状图</h2>\n<p>POST /appChannelRisk/queryBarChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"count\"</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-23\"><a class=\"anchor\" href=\"#请求参数-23\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-32\"><a class=\"anchor\" href=\"#返回结果-32\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-32\"><a class=\"anchor\" href=\"#返回数据结构-32\">#</a> 返回数据结构</h3>\n<h1 id=\"渠道数据应用渠道风险应急处置\"><a class=\"anchor\" href=\"#渠道数据应用渠道风险应急处置\">#</a> 渠道数据应用 / 渠道风险应急处置</h1>\n<h2 id=\"post-渠道风险应急处置_列表信息\"><a class=\"anchor\" href=\"#post-渠道风险应急处置_列表信息\">#</a> POST 渠道风险应急处置_列表信息</h2>\n<p>POST /appRiskProcessing/queryList</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-33\"><a class=\"anchor\" href=\"#返回结果-33\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-33\"><a class=\"anchor\" href=\"#返回数据结构-33\">#</a> 返回数据结构</h3>\n<h2 id=\"post-渠道风险应急处置_饼图\"><a class=\"anchor\" href=\"#post-渠道风险应急处置_饼图\">#</a> POST 渠道风险应急处置_饼图</h2>\n<p>POST /appRiskProcessing/queryPieChart</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-34\"><a class=\"anchor\" href=\"#返回结果-34\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-34\"><a class=\"anchor\" href=\"#返回数据结构-34\">#</a> 返回数据结构</h3>\n<h1 id=\"渠道数据应用重点渠道交费监控\"><a class=\"anchor\" href=\"#渠道数据应用重点渠道交费监控\">#</a> 渠道数据应用 / 重点渠道交费监控</h1>\n<h2 id=\"post-重点渠道交费监控_渠道异常笔数\"><a class=\"anchor\" href=\"#post-重点渠道交费监控_渠道异常笔数\">#</a> POST 重点渠道交费监控_渠道异常笔数</h2>\n<p>POST /appChannelAnomalyData/queryTotalInfo</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"year\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-24\"><a class=\"anchor\" href=\"#请求参数-24\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» staDate</td>\n<td>body</td>\n<td>string</td>\n<td>是</td>\n<td>日期</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» type</td>\n<td>body</td>\n<td>string</td>\n<td>是</td>\n<td>日期类型</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-35\"><a class=\"anchor\" href=\"#返回结果-35\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-35\"><a class=\"anchor\" href=\"#返回数据结构-35\">#</a> 返回数据结构</h3>\n<h2 id=\"post-重点渠道交费监控_渠道异常柱状图\"><a class=\"anchor\" href=\"#post-重点渠道交费监控_渠道异常柱状图\">#</a> POST 重点渠道交费监控_渠道异常柱状图</h2>\n<p>POST /appChannelAnomalyData/queryBarChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"year\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-25\"><a class=\"anchor\" href=\"#请求参数-25\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"count\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-36\"><a class=\"anchor\" href=\"#返回结果-36\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-36\"><a class=\"anchor\" href=\"#返回数据结构-36\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» count</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» description</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-重点渠道交费监控_查询交易量和交易金额\"><a class=\"anchor\" href=\"#post-重点渠道交费监控_查询交易量和交易金额\">#</a> POST 重点渠道交费监控_查询交易量和交易金额</h2>\n<p>POST /appChannelTransactionData/queryTotalInfo</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"year\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-26\"><a class=\"anchor\" href=\"#请求参数-26\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token property\">\"volume\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token property\">\"amount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>  <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-37\"><a class=\"anchor\" href=\"#返回结果-37\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-37\"><a class=\"anchor\" href=\"#返回数据结构-37\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>object</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» volume</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» amount</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-重点渠道交费监控_交易量和交易金额柱状图\"><a class=\"anchor\" href=\"#post-重点渠道交费监控_交易量和交易金额柱状图\">#</a> POST 重点渠道交费监控_交易量和交易金额柱状图</h2>\n<p>POST /appChannelTransactionData/queryBarchart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-19\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-27\"><a class=\"anchor\" href=\"#请求参数-27\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"volume\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"amount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"category\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-38\"><a class=\"anchor\" href=\"#返回结果-38\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-38\"><a class=\"anchor\" href=\"#返回数据结构-38\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» volume</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» amount</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» category</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"渠道数据应用渠道检修通知管理\"><a class=\"anchor\" href=\"#渠道数据应用渠道检修通知管理\">#</a> 渠道数据应用 / 渠道检修通知管理</h1>\n<h2 id=\"post-渠道检修通知管理\"><a class=\"anchor\" href=\"#post-渠道检修通知管理\">#</a> POST 渠道检修通知管理</h2>\n<p>POST /appMaintenanceNotices/queryMaintenance</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"id\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"channelName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"maintenanceStartTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"maintenanceContent\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token property\">\"runningStatus\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>      <span class=\"token property\">\"estimatedRecoveryTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>      <span class=\"token property\">\"actualRecoveryTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-39\"><a class=\"anchor\" href=\"#返回结果-39\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-39\"><a class=\"anchor\" href=\"#返回数据结构-39\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» id</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» channelName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» maintenanceStartTime</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» maintenanceContent</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» runningStatus</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» estimatedRecoveryTime</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» actualRecoveryTime</td>\n<td>string¦null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"渠道数据应用渠道下线通知管理\"><a class=\"anchor\" href=\"#渠道数据应用渠道下线通知管理\">#</a> 渠道数据应用 / 渠道下线通知管理</h1>\n<h2 id=\"post-渠道下线通知管理\"><a class=\"anchor\" href=\"#post-渠道下线通知管理\">#</a> POST  渠道下线通知管理</h2>\n<p>POST /appChannelOfflineNotices/queryOffline</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"id\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"channelName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"offlineTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"offlineContent\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token property\">\"currentStatus\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-40\"><a class=\"anchor\" href=\"#返回结果-40\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-40\"><a class=\"anchor\" href=\"#返回数据结构-40\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» id</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» channelName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» offlineTime</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» offlineContent</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» currentStatus</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"渠道数据应用接口分级监控\"><a class=\"anchor\" href=\"#渠道数据应用接口分级监控\">#</a> 渠道数据应用 / 接口分级监控</h1>\n<h2 id=\"post-接口分级监控_汇总\"><a class=\"anchor\" href=\"#post-接口分级监控_汇总\">#</a> POST 接口分级监控_汇总</h2>\n<p>POST /appInterfaceMonitoring/queryInterFaceTotal</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"level\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"一级\"</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-28\"><a class=\"anchor\" href=\"#请求参数-28\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token property\">\"callTotal\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token property\">\"responseTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token property\">\"throughput\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token property\">\"successRate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-41\"><a class=\"anchor\" href=\"#返回结果-41\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-41\"><a class=\"anchor\" href=\"#返回数据结构-41\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>object</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» callTotal</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» responseTime</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» throughput</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» successRate</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-接口分级监控-折线图\"><a class=\"anchor\" href=\"#post-接口分级监控-折线图\">#</a> POST 接口分级监控 折线图</h2>\n<p>POST /appInterfaceMonitoring/queryLineChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"level\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"一级\"</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-29\"><a class=\"anchor\" href=\"#请求参数-29\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"timeSlice\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"callTotal\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"responseTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"throughput\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token property\">\"successRate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-42\"><a class=\"anchor\" href=\"#返回结果-42\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-42\"><a class=\"anchor\" href=\"#返回数据结构-42\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» timeSlice</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» callTotal</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» responseTime</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» throughput</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» successRate</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"渠道数据应用渠道联系人管理\"><a class=\"anchor\" href=\"#渠道数据应用渠道联系人管理\">#</a> 渠道数据应用 / 渠道联系人管理</h1>\n<h2 id=\"post-渠道信息管理_查询\"><a class=\"anchor\" href=\"#post-渠道信息管理_查询\">#</a> POST 渠道信息管理_查询</h2>\n<p>POST /appChannelInfo/queryList</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05-26\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-30\"><a class=\"anchor\" href=\"#请求参数-30\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"id\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"channelName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"cityName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"outletCode\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token property\">\"transactionCount\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>      <span class=\"token property\">\"transactionAmount\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>      <span class=\"token property\">\"channelStatus\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>      <span class=\"token property\">\"contactName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>      <span class=\"token property\">\"contactPhone\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>      <span class=\"token property\">\"positionRole\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>      <span class=\"token property\">\"outletLocation\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>      <span class=\"token property\">\"dataDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-43\"><a class=\"anchor\" href=\"#返回结果-43\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-43\"><a class=\"anchor\" href=\"#返回数据结构-43\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» id</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» channelName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» cityName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» outletCode</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionCount</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionAmount</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» channelStatus</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» contactName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» contactPhone</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» positionRole</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» outletLocation</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» dataDate</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-渠道信息管理_导出\"><a class=\"anchor\" href=\"#post-渠道信息管理_导出\">#</a> POST 渠道信息管理_导出</h2>\n<p>POST /appChannelInfo/export</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"year\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-31\"><a class=\"anchor\" href=\"#请求参数-31\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-44\"><a class=\"anchor\" href=\"#返回结果-44\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-44\"><a class=\"anchor\" href=\"#返回数据结构-44\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"渠道数据应用渠道位置管理\"><a class=\"anchor\" href=\"#渠道数据应用渠道位置管理\">#</a> 渠道数据应用 / 渠道位置管理</h1>\n<h2 id=\"post-渠道位置管理_查询区域地图\"><a class=\"anchor\" href=\"#post-渠道位置管理_查询区域地图\">#</a> POST 渠道位置管理_查询区域地图</h2>\n<p>POST /appChannelLocation/queryAreaMap</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"month\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"channelName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-32\"><a class=\"anchor\" href=\"#请求参数-32\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-45\"><a class=\"anchor\" href=\"#返回结果-45\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-45\"><a class=\"anchor\" href=\"#返回数据结构-45\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[string]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道模型构建\"><a class=\"anchor\" href=\"#模型构建与应用渠道模型构建\">#</a> 模型构建与应用 / 渠道模型构建</h1>\n<h2 id=\"post-查询渠道模型构建汇总信息\"><a class=\"anchor\" href=\"#post-查询渠道模型构建汇总信息\">#</a> POST 查询渠道模型构建汇总信息</h2>\n<p>POST /modTransactions/queryTotalInfo</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"month\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-33\"><a class=\"anchor\" href=\"#请求参数-33\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token property\">\"transactionCount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token property\">\"firstContactResolutionRate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token property\">\"remittanceTimelinessSeconds\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token property\">\"channelFailureRate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-46\"><a class=\"anchor\" href=\"#返回结果-46\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-46\"><a class=\"anchor\" href=\"#返回数据结构-46\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>object</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionCount</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» firstContactResolutionRate</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» remittanceTimelinessSeconds</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» channelFailureRate</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-交易量柱状图\"><a class=\"anchor\" href=\"#post-交易量柱状图\">#</a> POST 交易量柱状图</h2>\n<p>POST /modTransactions/queryBarChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-05\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"month\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"category\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"淮安市\"</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-34\"><a class=\"anchor\" href=\"#请求参数-34\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"count\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-47\"><a class=\"anchor\" href=\"#返回结果-47\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-47\"><a class=\"anchor\" href=\"#返回数据结构-47\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» count</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» description</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用模型信息查询\"><a class=\"anchor\" href=\"#模型构建与应用模型信息查询\">#</a> 模型构建与应用 / 模型信息查询</h1>\n<h2 id=\"post-一键快查\"><a class=\"anchor\" href=\"#post-一键快查\">#</a> POST 一键快查</h2>\n<p>POST /modUserTransactions/oneClickQuickSearch</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"searchWord\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"中国银行\"</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-35\"><a class=\"anchor\" href=\"#请求参数-35\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"transactionId\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"userName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"userNumber\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"paymentChannel\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token property\">\"channelCode\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>      <span class=\"token property\">\"channelContactPerson\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>      <span class=\"token property\">\"isPowerOff\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>      <span class=\"token property\">\"powerUsageType\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>      <span class=\"token property\">\"userStatus\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>      <span class=\"token property\">\"paymentType\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>      <span class=\"token property\">\"transactionNumber\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>      <span class=\"token property\">\"transactionDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-48\"><a class=\"anchor\" href=\"#返回结果-48\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-48\"><a class=\"anchor\" href=\"#返回数据结构-48\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionId</td>\n<td>integer</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» userName</td>\n<td>string</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» userNumber</td>\n<td>string</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» paymentChannel</td>\n<td>string</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» channelCode</td>\n<td>string</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» channelContactPerson</td>\n<td>string</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» isPowerOff</td>\n<td>boolean</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» powerUsageType</td>\n<td>string</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» userStatus</td>\n<td>string</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» paymentType</td>\n<td>string</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionNumber</td>\n<td>string</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionDate</td>\n<td>string</td>\n<td>false</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道模型视图1渠道趋势走向图\"><a class=\"anchor\" href=\"#模型构建与应用渠道模型视图1渠道趋势走向图\">#</a> 模型构建与应用 / 渠道模型视图 / 1．渠道趋势走向图</h1>\n<h2 id=\"post-渠道趋势走向-折线图表\"><a class=\"anchor\" href=\"#post-渠道趋势走向-折线图表\">#</a> POST 渠道趋势走向 折线图表</h2>\n<p>POST /modChannelTrend/queryLineChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2023\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"year\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-36\"><a class=\"anchor\" href=\"#请求参数-36\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"timePeriod\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"collectionCount\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"deductionCount\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"collectionReceivedCount\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token property\">\"reconciliationCount\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-49\"><a class=\"anchor\" href=\"#返回结果-49\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-49\"><a class=\"anchor\" href=\"#返回数据结构-49\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» timePeriod</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» collectionCount</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» deductionCount</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» collectionReceivedCount</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» reconciliationCount</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道模型视图2营商环境满意度对比\"><a class=\"anchor\" href=\"#模型构建与应用渠道模型视图2营商环境满意度对比\">#</a> 模型构建与应用 / 渠道模型视图 / 2．营商环境满意度对比</h1>\n<h2 id=\"post-营商环境满意度对比\"><a class=\"anchor\" href=\"#post-营商环境满意度对比\">#</a> POST 营商环境满意度对比</h2>\n<p>POST /modCitySatisfaction/querySatisLimit13</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"cityName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"transactionCount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"satisfactionRate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-50\"><a class=\"anchor\" href=\"#返回结果-50\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-50\"><a class=\"anchor\" href=\"#返回数据结构-50\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» cityName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionCount</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» satisfactionRate</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道模型视图3今日累计金额\"><a class=\"anchor\" href=\"#模型构建与应用渠道模型视图3今日累计金额\">#</a> 模型构建与应用 / 渠道模型视图 / 3．今日累计金额</h1>\n<h2 id=\"post-今日累计成交金额\"><a class=\"anchor\" href=\"#post-今日累计成交金额\">#</a> POST 今日累计成交金额</h2>\n<p>POST /modDailyTransactions/queryTransactionInfo</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-37\"><a class=\"anchor\" href=\"#请求参数-37\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token property\">\"todayVolume\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token property\">\"todayAmount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token property\">\"yesterdayAmount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token property\">\"comparison\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-51\"><a class=\"anchor\" href=\"#返回结果-51\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-51\"><a class=\"anchor\" href=\"#返回数据结构-51\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>object</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» todayVolume</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>今日交易数</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» todayAmount</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>今日累计成交金额</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» yesterdayAmount</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>昨日交易额</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» comparison</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>今日交易额同比增长</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-地图展示\"><a class=\"anchor\" href=\"#post-地图展示\">#</a> POST 地图展示</h2>\n<p>POST /modDailyTransactions/queryAreaMap</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"cityName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"channelCount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"transactionCount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"transactionAmount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-52\"><a class=\"anchor\" href=\"#返回结果-52\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-52\"><a class=\"anchor\" href=\"#返回数据结构-52\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» cityName</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>城市名称</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» channelCount</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>渠道数量</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionCount</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>交易量</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionAmount</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>交易金额</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道模型视图4异常情况\"><a class=\"anchor\" href=\"#模型构建与应用渠道模型视图4异常情况\">#</a> 模型构建与应用 / 渠道模型视图 / 4．异常情况</h1>\n<h2 id=\"post-异常情况\"><a class=\"anchor\" href=\"#post-异常情况\">#</a> POST 异常情况</h2>\n<p>POST /modAbnormalTransactions/queryAbnormalMessage</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2023-06-04\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-38\"><a class=\"anchor\" href=\"#请求参数-38\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token property\">\"abnormalCount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token property\">\"abnormalRate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token property\">\"reconciliationRate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token property\">\"reconciliationCount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-53\"><a class=\"anchor\" href=\"#返回结果-53\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-53\"><a class=\"anchor\" href=\"#返回数据结构-53\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>object</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» abnormalCount</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» abnormalRate</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» reconciliationRate</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» reconciliationCount</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道模型视图6实时督办监控\"><a class=\"anchor\" href=\"#模型构建与应用渠道模型视图6实时督办监控\">#</a> 模型构建与应用 / 渠道模型视图 / 6．实时督办监控</h1>\n<h2 id=\"post-实时督办监控\"><a class=\"anchor\" href=\"#post-实时督办监控\">#</a> POST 实时督办监控</h2>\n<p>POST /modSupervision/monitor</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"id\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"userNumber\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"channelName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"orderNumber\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token property\">\"supervisionStartTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>      <span class=\"token property\">\"processingStatus\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-54\"><a class=\"anchor\" href=\"#返回结果-54\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-54\"><a class=\"anchor\" href=\"#返回数据结构-54\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» id</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» userNumber</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» channelName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» orderNumber</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» supervisionStartTime</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» processingStatus</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道模型视图713地市缴费趋势\"><a class=\"anchor\" href=\"#模型构建与应用渠道模型视图713地市缴费趋势\">#</a> 模型构建与应用 / 渠道模型视图 / 7．13 地市缴费趋势</h1>\n<h2 id=\"post-柱状图-2\"><a class=\"anchor\" href=\"#post-柱状图-2\">#</a> POST 柱状图</h2>\n<p>POST /modCityPaymentTrends/querySumCountAndAmount</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"startDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2022\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"endDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"year\"</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-39\"><a class=\"anchor\" href=\"#请求参数-39\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"transactionCount\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"transactionAmount\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"timePeriod\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-55\"><a class=\"anchor\" href=\"#返回结果-55\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-55\"><a class=\"anchor\" href=\"#返回数据结构-55\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionCount</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionAmount</td>\n<td>number</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» timePeriod</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道模型视图8最新动态\"><a class=\"anchor\" href=\"#模型构建与应用渠道模型视图8最新动态\">#</a> 模型构建与应用 / 渠道模型视图 / 8．最新动态</h1>\n<h2 id=\"post-最新20条动态信息\"><a class=\"anchor\" href=\"#post-最新20条动态信息\">#</a> POST 最新 20 条动态信息</h2>\n<p>POST /modNotification/queryMessage</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"id\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"transactionTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-56\"><a class=\"anchor\" href=\"#返回结果-56\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-56\"><a class=\"anchor\" href=\"#返回数据结构-56\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» id</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionTime</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-今日动态信息导出\"><a class=\"anchor\" href=\"#post-今日动态信息导出\">#</a> POST 今日动态信息导出</h2>\n<p>POST /modNotification/export</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<h3 id=\"返回结果-57\"><a class=\"anchor\" href=\"#返回结果-57\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-57\"><a class=\"anchor\" href=\"#返回数据结构-57\">#</a> 返回数据结构</h3>\n<h1 id=\"模型构建与应用渠道数据管理质量改进\"><a class=\"anchor\" href=\"#模型构建与应用渠道数据管理质量改进\">#</a> 模型构建与应用 / 渠道数据管理 / 质量改进</h1>\n<h2 id=\"post-渠道数据质量改进\"><a class=\"anchor\" href=\"#post-渠道数据质量改进\">#</a> POST 渠道数据质量改进</h2>\n<p>POST /modQualityImprovement/queryQualityTotal</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-06\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"month\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-40\"><a class=\"anchor\" href=\"#请求参数-40\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"integrityPercentage\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"accuracyPercentage\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-58\"><a class=\"anchor\" href=\"#返回结果-58\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-58\"><a class=\"anchor\" href=\"#返回数据结构-58\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» integrityPercentage</td>\n<td>integer</td>\n<td>false</td>\n<td>none</td>\n<td>完整性百分比</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» accuracyPercentage</td>\n<td>integer</td>\n<td>false</td>\n<td>none</td>\n<td>准确率 百分比</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-数据质量改进折线图\"><a class=\"anchor\" href=\"#post-数据质量改进折线图\">#</a> POST 数据质量改进折线图</h2>\n<p>POST /modQualityImprovement/queryBarchart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-06-11\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-41\"><a class=\"anchor\" href=\"#请求参数-41\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"accuracy\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"integrity\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-59\"><a class=\"anchor\" href=\"#返回结果-59\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-59\"><a class=\"anchor\" href=\"#返回数据结构-59\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» description</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>地市</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» accuracy</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>准确性</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» integrity</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>完整性</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道数据合规性检测\"><a class=\"anchor\" href=\"#模型构建与应用渠道数据合规性检测\">#</a> 模型构建与应用 / 渠道数据合规性检测</h1>\n<h2 id=\"post-渠道数据合规性检测\"><a class=\"anchor\" href=\"#post-渠道数据合规性检测\">#</a> POST 渠道数据合规性检测</h2>\n<p>POST /modComplianceInterfaceData/queryPieChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-06-01\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-42\"><a class=\"anchor\" href=\"#请求参数-42\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-60\"><a class=\"anchor\" href=\"#返回结果-60\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-60\"><a class=\"anchor\" href=\"#返回数据结构-60\">#</a> 返回数据结构</h3>\n<h2 id=\"post-查询异常接口数据\"><a class=\"anchor\" href=\"#post-查询异常接口数据\">#</a> POST 查询异常接口数据</h2>\n<p>POST /modAnomalyInterfaceData/queryPieChart</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-06-01\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-43\"><a class=\"anchor\" href=\"#请求参数-43\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"value\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"percentage\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-61\"><a class=\"anchor\" href=\"#返回结果-61\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-61\"><a class=\"anchor\" href=\"#返回数据结构-61\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» value</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» description</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» percentage</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道调用链时间线筛选\"><a class=\"anchor\" href=\"#模型构建与应用渠道调用链时间线筛选\">#</a> 模型构建与应用 / 渠道调用链时间线筛选</h1>\n<h2 id=\"post-全链路查询信息\"><a class=\"anchor\" href=\"#post-全链路查询信息\">#</a> POST 全链路查询信息</h2>\n<p>POST /modAllChainMain/queryAllChain</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"linkStartTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-06-15\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"userCode\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-44\"><a class=\"anchor\" href=\"#请求参数-44\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token property\">\"modAllChainMains\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>        <span class=\"token property\">\"id\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>        <span class=\"token property\">\"userName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>        <span class=\"token property\">\"userCode\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token property\">\"linkName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        <span class=\"token property\">\"linkStartTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>        <span class=\"token property\">\"billingMonth\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>        <span class=\"token property\">\"transactionCode\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        <span class=\"token property\">\"supplierName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>        <span class=\"token property\">\"transactionName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>      <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token punctuation\">]</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>  <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-62\"><a class=\"anchor\" href=\"#返回结果-62\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-62\"><a class=\"anchor\" href=\"#返回数据结构-62\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>object</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» modAllChainMains</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» id</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» userName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» userCode</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» linkName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» linkStartTime</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» billingMonth</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» transactionCode</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» supplierName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» transactionName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-流程图信息\"><a class=\"anchor\" href=\"#post-流程图信息\">#</a> POST 流程图信息</h2>\n<p>POST /modAllChainMain/queryFlowInfo</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"mainId\"</span><span class=\"token operator\">:</span> <span class=\"token number\">866</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-45\"><a class=\"anchor\" href=\"#请求参数-45\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"nodeName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"status\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"color\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"startTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token property\">\"endTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-63\"><a class=\"anchor\" href=\"#返回结果-63\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-63\"><a class=\"anchor\" href=\"#返回数据结构-63\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» nodeName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» status</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» color</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» startTime</td>\n<td>string¦null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» endTime</td>\n<td>string¦null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-流程节点信息\"><a class=\"anchor\" href=\"#post-流程节点信息\">#</a> POST 流程节点信息</h2>\n<p>POST /modAllChainMain/queryStepInfo</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"mainId\"</span><span class=\"token operator\">:</span> <span class=\"token number\">866</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-46\"><a class=\"anchor\" href=\"#请求参数-46\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>404 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"timestamp\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"status\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"error\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>  <span class=\"token property\">\"path\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-64\"><a class=\"anchor\" href=\"#返回结果-64\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>404</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuNA==\">Not Found</span></td>\n<td>记录不存在</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-64\"><a class=\"anchor\" href=\"#返回数据结构-64\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>404</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» timestamp</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» status</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» error</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» path</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用渠道数据用户转化分析\"><a class=\"anchor\" href=\"#模型构建与应用渠道数据用户转化分析\">#</a> 模型构建与应用 / 渠道数据用户转化分析</h1>\n<h2 id=\"post-渠道数据用户转化结果\"><a class=\"anchor\" href=\"#post-渠道数据用户转化结果\">#</a> POST 渠道数据用户转化结果</h2>\n<p>POST /modConversionSummary/queryBarChart</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token property\">\"conversionRate\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token property\">\"avgPayAmountRate\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token property\">\"retentionRate\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token property\">\"chartVOList\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>        <span class=\"token property\">\"month\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token property\">\"conversionRate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        <span class=\"token property\">\"avgPayAmount\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>        <span class=\"token property\">\"retentionRate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>      <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token punctuation\">]</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>  <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-65\"><a class=\"anchor\" href=\"#返回结果-65\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-65\"><a class=\"anchor\" href=\"#返回数据结构-65\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>object</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» conversionRate</td>\n<td>number</td>\n<td>true</td>\n<td>none</td>\n<td>充值转化率</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» avgPayAmountRate</td>\n<td>integer</td>\n<td>true</td>\n<td>none</td>\n<td>平均交费金额</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» retentionRate</td>\n<td>number</td>\n<td>true</td>\n<td>none</td>\n<td>用户留存率</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» chartVOList</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» month</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» conversionRate</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>充值转化率</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» avgPayAmount</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»»» retentionRate</td>\n<td>string</td>\n<td>true</td>\n<td>none</td>\n<td>用户留存率</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"模型构建与应用数据关联\"><a class=\"anchor\" href=\"#模型构建与应用数据关联\">#</a> 模型构建与应用 / 数据关联</h1>\n<h2 id=\"post-查询数据\"><a class=\"anchor\" href=\"#post-查询数据\">#</a> POST 查询数据</h2>\n<p>POST /modDataTransactions/queryMessage</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-06-12\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-47\"><a class=\"anchor\" href=\"#请求参数-47\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>      <span class=\"token property\">\"id\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>      <span class=\"token property\">\"userId\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>      <span class=\"token property\">\"userName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>      <span class=\"token property\">\"signChannel\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>      <span class=\"token property\">\"signTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>      <span class=\"token property\">\"accountNumber\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>      <span class=\"token property\">\"contactPerson\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>      <span class=\"token property\">\"transactionTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>      <span class=\"token property\">\"transactionId\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>      <span class=\"token property\">\"billingCycle\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-66\"><a class=\"anchor\" href=\"#返回结果-66\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-66\"><a class=\"anchor\" href=\"#返回数据结构-66\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>[object]</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» id</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» userId</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» userName</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» signChannel</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» signTime</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» accountNumber</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» contactPerson</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionTime</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» transactionId</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» billingCycle</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-导出\"><a class=\"anchor\" href=\"#post-导出\">#</a> POST 导出</h2>\n<p>POST /modDataTransactions/export</p>\n<blockquote>\n<p>Body 请求参数</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"staDate\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2024-06-12\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"day\"</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"请求参数-48\"><a class=\"anchor\" href=\"#请求参数-48\">#</a> 请求参数</h3>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>位置</th>\n<th>类型</th>\n<th>必选</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>body</td>\n<td>body</td>\n<td>object</td>\n<td colspan=\"2\">否</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<h3 id=\"返回结果-67\"><a class=\"anchor\" href=\"#返回结果-67\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-67\"><a class=\"anchor\" href=\"#返回数据结构-67\">#</a> 返回数据结构</h3>\n<h1 id=\"模型构建与应用渠道数据效果评估\"><a class=\"anchor\" href=\"#模型构建与应用渠道数据效果评估\">#</a> 模型构建与应用 / 渠道数据效果评估</h1>\n<h2 id=\"post-数据处理能力\"><a class=\"anchor\" href=\"#post-数据处理能力\">#</a> POST 数据处理能力</h2>\n<p>POST /modCapabilities/queryMessage</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>200 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"code\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token property\">\"数据安全能力\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token property\">\"数据整合能力\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token property\">\"数据清洗能力\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>  <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  <span class=\"token property\">\"total\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  <span class=\"token property\">\"traceID\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  <span class=\"token property\">\"reminderType\"</span><span class=\"token operator\">:</span> <span class=\"token null keyword\">null</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-68\"><a class=\"anchor\" href=\"#返回结果-68\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuMQ==\">OK</span></td>\n<td>成功</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-68\"><a class=\"anchor\" href=\"#返回数据结构-68\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>200</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» code</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» data</td>\n<td>object</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» 数据安全能力</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» 数据整合能力</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>»» 数据清洗能力</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» total</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» traceID</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» reminderType</td>\n<td>null</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"post-数据利用价值\"><a class=\"anchor\" href=\"#post-数据利用价值\">#</a> POST 数据利用价值</h2>\n<p>POST /modUtilization/queryMessage</p>\n<blockquote>\n<p>返回示例</p>\n</blockquote>\n<blockquote>\n<p>405 Response</p>\n</blockquote>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>  <span class=\"token property\">\"timestamp\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>  <span class=\"token property\">\"status\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  <span class=\"token property\">\"error\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>  <span class=\"token property\">\"message\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>  <span class=\"token property\">\"path\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"返回结果-69\"><a class=\"anchor\" href=\"#返回结果-69\">#</a> 返回结果</h3>\n<table>\n<thead>\n<tr>\n<th>状态码</th>\n<th>状态码含义</th>\n<th>说明</th>\n<th>数据模型</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>405</td>\n<td><span class=\"exturl\" data-url=\"aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuNQ==\">Method Not Allowed</span></td>\n<td>请求有误</td>\n<td>Inline</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"返回数据结构-69\"><a class=\"anchor\" href=\"#返回数据结构-69\">#</a> 返回数据结构</h3>\n<p>状态码 <strong>405</strong></p>\n<table>\n<thead>\n<tr>\n<th>名称</th>\n<th>类型</th>\n<th>必选</th>\n<th>约束</th>\n<th>中文名</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>» timestamp</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» status</td>\n<td>integer</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» error</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» message</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n<tr>\n<td>» path</td>\n<td>string</td>\n<td>true</td>\n<td colspan=\"2\">none</td>\n<td>none</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"数据模型\"><a class=\"anchor\" href=\"#数据模型\">#</a> 数据模型</h1>\n",
            "tags": []
        },
        {
            "id": "https://hk2012.github.io/2024/05/14/math/linearAlgebra/",
            "url": "https://hk2012.github.io/2024/05/14/math/linearAlgebra/",
            "title": "线性代数（数学二）",
            "date_published": "2024-05-14T08:48:53.000Z",
            "content_html": "<h1 id=\"行列式\"><a class=\"anchor\" href=\"#行列式\">#</a> 行列式</h1>\n<ul>\n<li>概念：行列式是一个<span class=\"rainbow\">数</span>，它是不同行不同列元素乘积的<span class=\"red\">代数和</span></li>\n</ul>\n<div class=\"note info\">\n<ul>\n<li>两行两列行列式 （主对角线相乘 - 副对角线相乘）</li>\n</ul>\n</div>\n<ul>\n<li>\n<p>高中时的写法</p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">∣</mo><mtable rowspacing=\"0.15999999999999992em\" columnalign=\"center\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mi>a</mi></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mi>b</mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mi>c</mi></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mi>d</mi></mstyle></mtd></mtr></mtable><mo fence=\"true\">∣</mo></mrow><mo>=</mo><mi>a</mi><mi>d</mi><mo>−</mo><mi>b</mi><mi>c</mi></mrow><annotation encoding=\"application/x-tex\">\\left|\\begin{array}{c}\na &amp; b \\\\\nc &amp; d \\\\\n\\end{array}\\right| = ad - bc\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.42999em;vertical-align:-0.9500199999999999em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.4799700000000002em;\"><span style=\"top:-1.65598em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.25698em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.85798em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.87897em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.47997em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9500199999999999em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.45em;\"><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">c</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.45em;\"><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">b</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">d</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.4799700000000002em;\"><span style=\"top:-1.65598em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.25698em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.85798em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.87897em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.47997em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9500199999999999em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.77777em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">d</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mord mathnormal\">c</span></span></span></span></span></p>\n</li>\n<li>\n<p>大学的写法</p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">∣</mo><mtable rowspacing=\"0.15999999999999992em\" columnalign=\"center\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>11</mn></msub></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>12</mn></msub></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>21</mn></msub></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>22</mn></msub></mstyle></mtd></mtr></mtable><mo fence=\"true\">∣</mo></mrow><mo>=</mo><msub><mi>a</mi><mn>11</mn></msub><msub><mi>a</mi><mn>22</mn></msub><mo>−</mo><msub><mi>a</mi><mn>12</mn></msub><msub><mi>a</mi><mn>21</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\left|\\begin{array}{c}\na_{11} &amp; a_{12} \\\\\na_{21} &amp; a_{22} \\\\\n\\end{array}\\right| = a_{11}a_{22} - a_{12}a_{21}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.42999em;vertical-align:-0.9500199999999999em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.4799700000000002em;\"><span style=\"top:-1.65598em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.25698em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.85798em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.87897em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.47997em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9500199999999999em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.45em;\"><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.45em;\"><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.4799700000000002em;\"><span style=\"top:-1.65598em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.25698em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.85798em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.87897em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.47997em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9500199999999999em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>三行三列行列式 （主对角线相乘 - 副对角线相乘）</p>\n</div>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">∣</mo><mtable rowspacing=\"0.15999999999999992em\" columnalign=\"center\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>11</mn></msub></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>12</mn></msub></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>13</mn></msub></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>21</mn></msub></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>22</mn></msub></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>23</mn></msub></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>31</mn></msub></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>32</mn></msub></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>a</mi><mn>33</mn></msub></mstyle></mtd></mtr></mtable><mo fence=\"true\">∣</mo></mrow><mo>=</mo><msub><mi>a</mi><mn>11</mn></msub><msub><mi>a</mi><mn>22</mn></msub><msub><mi>a</mi><mn>33</mn></msub><mo>+</mo><msub><mi>a</mi><mn>12</mn></msub><msub><mi>a</mi><mn>23</mn></msub><msub><mi>a</mi><mn>31</mn></msub><mo>+</mo><msub><mi>a</mi><mn>13</mn></msub><msub><mi>a</mi><mn>21</mn></msub><msub><mi>a</mi><mn>32</mn></msub><mo>−</mo><msub><mi>a</mi><mn>13</mn></msub><msub><mi>a</mi><mn>22</mn></msub><msub><mi>a</mi><mn>31</mn></msub><mo>−</mo><msub><mi>a</mi><mn>23</mn></msub><msub><mi>a</mi><mn>32</mn></msub><msub><mi>a</mi><mn>11</mn></msub><mo>−</mo><msub><mi>a</mi><mn>33</mn></msub><msub><mi>a</mi><mn>12</mn></msub><msub><mi>a</mi><mn>21</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\left|\\begin{array}{c}\na_{11} &amp; a_{12} &amp; a_{13} \\\\\na_{21} &amp; a_{22} &amp; a_{23} \\\\\na_{31} &amp; a_{32} &amp; a_{33} \\\\\n\\end{array}\\right| = a_{11}a_{22}a_{33} + a_{12}a_{23}a_{31} + a_{13}a_{21}a_{32} - a_{13}a_{22}a_{31} - a_{23}a_{32}a_{11} - a_{33}a_{12}a_{21}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:3.64199em;vertical-align:-1.5500299999999998em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0919600000000003em;\"><span style=\"top:-1.05597em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-1.65697em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.2579700000000003em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.8589700000000002em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.45997em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.4909600000000003em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-4.09196em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500299999999998em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">3</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">3</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span><span class=\"mord mtight\">3</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0919600000000003em;\"><span style=\"top:-1.05597em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-1.65697em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.2579700000000003em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.8589700000000002em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.45997em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.4909600000000003em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-4.09196em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500299999999998em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span><span class=\"mord mtight\">3</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">3</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">3</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">3</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">3</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span><span class=\"mord mtight\">3</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span></span></p>\n<ul>\n<li>\n<p>逆序数：如果一个大的数排在小的数之前，就称这两个数构成了一个逆序。一个排列的逆序总数则称为这个排列的逆序数</p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>N</mi><mo stretchy=\"false\">(</mo><mn>54123</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mn>4</mn><mo>+</mo><mn>3</mn><mo>+</mo><mn>0</mn><mo>+</mo><mn>0</mn><mo>+</mo><mn>0</mn><mo>=</mo><mn>7</mn></mrow><annotation encoding=\"application/x-tex\">N(54123) = 4 + 3 + 0 + 0 + 0 = 7</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">N</span><span class=\"mopen\">(</span><span class=\"mord\">5</span><span class=\"mord\">4</span><span class=\"mord\">1</span><span class=\"mord\">2</span><span class=\"mord\">3</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">4</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">3</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">7</span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>偶排列：逆序数为偶数的排列</p>\n</li>\n<li>\n<p>奇排列：逆序数为奇数的排列</p>\n</li>\n<li>\n<p>对换：交换两个数，如果排列作偶数次，排列<span class=\"red\">性质不变</span>；排列作奇数次，排列性质则会<span class=\"red\">发生改变</span></p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>N</mi><mo stretchy=\"false\">(</mo><mn>54213</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mn>4</mn><mo>+</mo><mn>3</mn><mo>+</mo><mn>1</mn><mo>+</mo><mn>0</mn><mo>+</mo><mn>0</mn><mo>=</mo><mn>8</mn></mrow><annotation encoding=\"application/x-tex\">N(54213) = 4 + 3 + 1 + 0 + 0 = 8</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">N</span><span class=\"mopen\">(</span><span class=\"mord\">5</span><span class=\"mord\">4</span><span class=\"mord\">2</span><span class=\"mord\">1</span><span class=\"mord\">3</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">4</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">3</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">8</span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>n 阶行列式</p>\n<ul>\n<li>按行排列：行标取标准排列，列标取排列的所有可能，从不同行不同列取出 n 个元素相乘。符号由列标排列的奇偶性决定</li>\n<li>主对角线的上三角下三角行列式等于<span class=\"red\">主对角线相乘</span></li>\n<li>负对角线的上三角下三角行列式等于<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mo>−</mo><msup><mn>1</mn><mfrac><mrow><mi>n</mi><mo stretchy=\"false\">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy=\"false\">)</mo></mrow><mn>2</mn></mfrac></msup><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(-1^{\\frac{n(n-1)}{2}})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.33945em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord\">1</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.08945em;\"><span style=\"top:-3.363em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mopen nulldelimiter sizing reset-size3 size6\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.0377857142857143em;\"><span style=\"top:-2.656em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.2255000000000003em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line mtight\" style=\"border-bottom-width:0.049em;\"></span></span><span style=\"top:-3.5020714285714285em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.344em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter sizing reset-size3 size6\"></span></span></span></span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span><span class=\"red\"> 负对角线相乘</span></li>\n<li>按列排列：列标取标准排列，行标取排列的所有可能，从不同行不同列取出 n 个元素相乘。符号由行标排列的奇偶性决定</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info\">\n<p>行列式五大性质</p>\n</div>\n<ol>\n<li>\n<p>经过转置行列式的值不变 <span class=\"rainbow\">(行列式的行和列的性质相同)</span></p>\n</li>\n<li>\n<p>两行行列式互换位置，行列式变号</p>\n<ul>\n<li>两行行列式相同，行列式的值为 0</li>\n</ul>\n</li>\n<li>\n<p>某行 (或列) 行列式如有公因子 K, 则可把 K 提出行列式记号外（亦即用数 K 乘列式 | A | 等于用 K 乘它的的某行或列）</p>\n<ul>\n<li>\n<p>某行（或列）的元素都为 0，行列式的值为 0</p>\n</li>\n<li>\n<p>若两行（或列）的元素对应成比例，行列式的值为 0</p>\n</li>\n</ul>\n</li>\n<li>\n<p>如果行列式某行（或列）是两个元素之和，则可把行列式拆成拆成两行列之和。</p>\n</li>\n<li>\n<p>把某行（或列）的 K 倍加到另一行（或列），行列式的值不变。</p>\n</li>\n</ol>\n<div class=\"note info\">\n<p>转置</p>\n</div>\n<ul>\n<li>将行列式的行变成列，列变成行，符号 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>D</mi><mi>T</mi></msup></mrow><annotation encoding=\"application/x-tex\">D^T</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8413309999999999em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8413309999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em;\">T</span></span></span></span></span></span></span></span></span></span></span></li>\n</ul>\n<div class=\"note info\">\n<p>余子式</p>\n</div>\n<ul>\n<li>去掉某个元素所在行和所在列的元素去掉，所形成的新的行列式</li>\n</ul>\n<div class=\"note info\">\n<p>代数余子式</p>\n</div>\n<ul>\n<li>\n<p>在原来余子式的前面加上（-1）的行列下标和的次方数。 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mo>−</mo><msup><mn>1</mn><mrow><mi>i</mi><mo>+</mo><mi>j</mi></mrow></msup><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(-1^{i+j})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.0746639999999998em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord\">1</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.824664em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">i</span><span class=\"mbin mtight\">+</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em;\">j</span></span></span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p>异乘变零定理</p>\n</li>\n<li>\n<p>拉普拉斯</p>\n<ul>\n<li>取定 k 行，由 K 行元素组成的所有 K 阶子式与代数余子式乘积之后 = Determinant</li>\n</ul>\n</li>\n</ul>\n<h1 id=\"矩阵\"><a class=\"anchor\" href=\"#矩阵\">#</a> 矩阵</h1>\n<ul>\n<li>Markdown 矩阵写法</li>\n</ul>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token operator\">-</span> 常规写法</pre></td></tr><tr><td data-num=\"2\"></td><td><pre>    $$\\begin<span class=\"token punctuation\">&#123;</span>matrix<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>    <span class=\"token number\">1</span><span class=\"token operator\">&amp;</span><span class=\"token number\">1</span><span class=\"token operator\">&amp;</span><span class=\"token number\">1</span><span class=\"token operator\">&amp;</span><span class=\"token number\">1</span>\\\\</pre></td></tr><tr><td data-num=\"4\"></td><td><pre>    <span class=\"token number\">2</span><span class=\"token operator\">&amp;</span><span class=\"token number\">2</span><span class=\"token operator\">&amp;</span><span class=\"token number\">2</span><span class=\"token operator\">&amp;</span><span class=\"token number\">2</span>\\\\</pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token number\">4</span><span class=\"token operator\">&amp;</span><span class=\"token number\">4</span><span class=\"token operator\">&amp;</span><span class=\"token number\">4</span><span class=\"token operator\">&amp;</span><span class=\"token number\">4</span>\\\\</pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    \\end<span class=\"token punctuation\">&#123;</span>matrix<span class=\"token punctuation\">&#125;</span>$$</pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token operator\">-</span> 在起始、结束标记用下列词替换 matrix</pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    pmatrix：小括号边框</pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    bmatrix：中括号边框</pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token class-name\">Bmatrix</span>：大括号边框</pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    vmatrix：单竖线边框</pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token class-name\">Vmatrix</span>：双竖线边框</pre></td></tr></table></figure><ul>\n<li>伴随矩阵：只有方阵才有伴随矩阵\n<ul>\n<li>求所有元素的代数余子式</li>\n<li>按行求的代数余子式，按列放构成的矩阵</li>\n</ul>\n</li>\n<li>逆矩阵\n<ul>\n<li>未必所有的方阵都可逆</li>\n<li>若可逆，逆矩阵必唯一</li>\n<li>定理：\n<ul>\n<li>A 可逆充要条件 ：<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo mathvariant=\"normal\">≠</mo><mn>0</mn><mo separator=\"true\">,</mo><msup><mi>A</mi><mrow><mo>−</mo><mn>1</mn></mrow></msup><mo>=</mo><mfrac><mn>1</mn><mrow><mi mathvariant=\"normal\">∣</mi><mi>A</mi><mi mathvariant=\"normal\">∣</mi></mrow></mfrac><msup><mi>A</mi><mo>∗</mo></msup></mrow><annotation encoding=\"application/x-tex\">|A| \\neq 0 ,A^{-1} = \\frac{1}{|A|}A^*</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.008548em;vertical-align:-0.19444em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">A</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.365108em;vertical-align:-0.52em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">∣</span><span class=\"mord mathnormal mtight\">A</span><span class=\"mord mtight\">∣</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord mathnormal\">A</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.688696em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mbin mtight\">∗</span></span></span></span></span></span></span></span></span></span></span></li>\n<li>A 可逆必要条件：<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>A</mi><msup><mi>A</mi><mrow><mo>−</mo><mn>1</mn></mrow></msup><mi mathvariant=\"normal\">∣</mi><mo>=</mo><mi mathvariant=\"normal\">∣</mi><mi>E</mi><mi mathvariant=\"normal\">∣</mi><mi mathvariant=\"normal\">∣</mi><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mi mathvariant=\"normal\">∣</mi><msup><mi>A</mi><mrow><mo>−</mo><mn>1</mn></mrow></msup><mo>=</mo><mn>1</mn><mi mathvariant=\"normal\">∣</mi><mi mathvariant=\"normal\">∣</mi><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo mathvariant=\"normal\">≠</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">|AA^{-1}| = |E| |A||A^{-1} = 1| |A| \\neq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.064108em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">A</span><span class=\"mord\"><span class=\"mord mathnormal\">A</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.064108em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em;\">E</span><span class=\"mord\">∣</span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mord\">∣</span><span class=\"mord\"><span class=\"mord mathnormal\">A</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">1</span><span class=\"mord\">∣</span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info\">\n<p>初等变换</p>\n</div>\n<ul>\n<li>本质：是对矩阵的一种变换，矩阵与矩阵之间用符号 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>→</mo></mrow><annotation encoding=\"application/x-tex\">\\rightarrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.36687em;vertical-align:0em;\"></span><span class=\"mrel\">→</span></span></span></span>，不能使用 =</li>\n</ul>\n<p>分别呈现为：</p>\n<ul>\n<li>\n<p>交换两行</p>\n<ul>\n<li>例：将第一行和第二行交换</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mo>⟶</mo><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow></mrow><annotation encoding=\"application/x-tex\">\\begin{bmatrix}\n  1&amp;1&amp;1&amp;1\\\\\n  2&amp;2&amp;2&amp;2\\\\\n  4&amp;4&amp;4&amp;4\\\\\n  \\end{bmatrix}\n  \\longrightarrow\n  \\begin{bmatrix}\n  2&amp;2&amp;2&amp;2\\\\\n  1&amp;1&amp;1&amp;1\\\\\n  4&amp;4&amp;4&amp;4\\\\\n  \\end{bmatrix}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:3.6010299999999997em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⟶</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.6010299999999997em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>当该矩阵为方阵时 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo>→</mo><mi mathvariant=\"normal\">∣</mi><mi>B</mi><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">|A| \\rightarrow |B|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mord\">∣</span></span></span></span>，该矩阵的行列式为<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo>=</mo><mo>−</mo><mi mathvariant=\"normal\">∣</mi><mi>B</mi><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">|A| = -|B|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">−</span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mord\">∣</span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>用<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>k</mi><mspace width=\"1em\"/><mo stretchy=\"false\">(</mo><mi>k</mi><mo mathvariant=\"normal\">≠</mo><mn>0</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">k \\quad(k \\neq 0)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">0</span><span class=\"mclose\">)</span></span></span></span> 乘某一行</p>\n<ul>\n<li>例：将第一行乘以 6</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mo>⟶</mo><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>6</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>6</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>6</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>6</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow></mrow><annotation encoding=\"application/x-tex\">\\begin{bmatrix}\n  1&amp;1&amp;1&amp;1\\\\\n  2&amp;2&amp;2&amp;2\\\\\n  4&amp;4&amp;4&amp;4\\\\\n  \\end{bmatrix}\n  \\longrightarrow\n  \\begin{bmatrix}\n  6&amp;6&amp;6&amp;6\\\\\n  2&amp;2&amp;2&amp;2\\\\\n  4&amp;4&amp;4&amp;4\\\\\n  \\end{bmatrix}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:3.6010299999999997em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⟶</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.6010299999999997em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">6</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">6</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">6</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">6</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>当该矩阵为方阵时 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo>→</mo><mi mathvariant=\"normal\">∣</mi><mi>B</mi><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">|A| \\rightarrow |B|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mord\">∣</span></span></span></span>，该矩阵的行列式为<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo>=</mo><mi>k</mi><mi mathvariant=\"normal\">∣</mi><mi>B</mi><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">|A| = k|B|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mord\">∣</span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>某一行的 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>l</mi></mrow><annotation encoding=\"application/x-tex\">l</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em;\">l</span></span></span></span> 倍加到另一行上去</p>\n<ul>\n<li>例：将第一行的 - 4 倍加到第三行上去</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mo>⟶</mo><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow></mrow><annotation encoding=\"application/x-tex\">\\begin{bmatrix}\n  1&amp;1&amp;1&amp;1\\\\\n  2&amp;2&amp;2&amp;2\\\\\n  4&amp;4&amp;4&amp;4\\\\\n  \\end{bmatrix}\n  \\longrightarrow\n  \\begin{bmatrix}\n  1&amp;1&amp;1&amp;1\\\\\n  2&amp;2&amp;2&amp;2\\\\\n  0&amp;0&amp;0&amp;0\\\\\n  \\end{bmatrix}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:3.6010299999999997em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⟶</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.6010299999999997em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>当该矩阵为方阵时 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo>→</mo><mi mathvariant=\"normal\">∣</mi><mi>B</mi><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">|A| \\rightarrow |B|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mord\">∣</span></span></span></span>，该矩阵的行列式为<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo>=</mo><mi mathvariant=\"normal\">∣</mi><mi>B</mi><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">|A| = |B|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mord\">∣</span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>任意矩阵可以通过初等变换化为标准型</p>\n<ul>\n<li>标准型\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>A</mi><mn>44</mn></msub></mrow><annotation encoding=\"application/x-tex\">A_{44}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.83333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">A</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">4</span><span class=\"mord mtight\">4</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 的标准型为 5 种</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow></mrow><annotation encoding=\"application/x-tex\">\\begin{bmatrix}\n  0&amp;0&amp;0&amp;0\\\\\n  0&amp;0&amp;0&amp;0\\\\\n  0&amp;0&amp;0&amp;0\\\\\n  0&amp;0&amp;0&amp;0\\\\\n  \\end{bmatrix}\n  \\begin{bmatrix}\n  1&amp;0&amp;0&amp;0\\\\\n  0&amp;0&amp;0&amp;0\\\\\n  0&amp;0&amp;0&amp;0\\\\\n  0&amp;0&amp;0&amp;0\\\\\n  \\end{bmatrix}\n  \\begin{bmatrix}\n  1&amp;0&amp;0&amp;0\\\\\n  0&amp;1&amp;0&amp;0\\\\\n  0&amp;0&amp;0&amp;0\\\\\n  0&amp;0&amp;0&amp;0\\\\\n  \\end{bmatrix}\n  \\begin{bmatrix}\n  1&amp;0&amp;0&amp;0\\\\\n  0&amp;1&amp;0&amp;0\\\\\n  0&amp;0&amp;1&amp;0\\\\\n  0&amp;0&amp;0&amp;0\\\\\n  \\end{bmatrix}\n  \\begin{bmatrix}\n  1&amp;0&amp;0&amp;0\\\\\n  0&amp;1&amp;0&amp;0\\\\\n  0&amp;0&amp;1&amp;0\\\\\n  0&amp;0&amp;0&amp;1\\\\\n  \\end{bmatrix}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:4.80303em;vertical-align:-2.15003em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n</ul>\n</li>\n<li>例：将矩阵变化为上面 5 种的一种</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>1</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>3</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mo>⟶</mo><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mo>⟶</mo><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>1</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mo>⟶</mo><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow></mrow><annotation encoding=\"application/x-tex\">\\begin{bmatrix}\n  1&amp;2&amp;1\\\\\n  1&amp;-1&amp;0\\\\\n  0&amp;1&amp;1\\\\\n  1&amp;3&amp;1\\\\\n  \\end{bmatrix}\n  \\longrightarrow\n  \\begin{bmatrix}\n  1&amp;2&amp;1\\\\\n  0&amp;1&amp;1\\\\\n  0&amp;1&amp;1\\\\\n  0&amp;1&amp;1\\\\\n  \\end{bmatrix}\n  \\longrightarrow\n  \\begin{bmatrix}\n  1&amp;0&amp;-1\\\\\n  0&amp;1&amp;1\\\\\n  0&amp;0&amp;0\\\\\n  0&amp;0&amp;0\\\\\n  \\end{bmatrix}\n  \\longrightarrow\n  \\begin{bmatrix}\n  1&amp;0&amp;0\\\\\n  0&amp;1&amp;0\\\\\n  0&amp;0&amp;0\\\\\n  0&amp;0&amp;0\\\\\n  \\end{bmatrix}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:4.80303em;vertical-align:-2.15003em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">1</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⟶</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:4.80303em;vertical-align:-2.15003em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⟶</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:4.80303em;vertical-align:-2.15003em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⟶</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:4.80303em;vertical-align:-2.15003em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6529999999999996em;\"><span style=\"top:-1.6499900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.79999em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.3959900000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-3.4119800000000002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.653em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.15003em;\"><span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n</ul>\n</li>\n<li>\n<p>初等变换的性质</p>\n<ul>\n<li>\n<p>反身性 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>A</mi><mo>≅</mo><mi>A</mi></mrow><annotation encoding=\"application/x-tex\">A \\cong A</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≅</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span></span></span></span></p>\n</li>\n<li>\n<p>对称性 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>A</mi><mo>≅</mo><mi>B</mi><mo>→</mo><mi>B</mi><mo>≅</mo><mi>A</mi></mrow><annotation encoding=\"application/x-tex\">A \\cong B \\rightarrow B \\cong A</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≅</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≅</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span></span></span></span></p>\n</li>\n<li>\n<p>传递性 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>A</mi><mo>≅</mo><mi>B</mi><mspace width=\"1em\"/><mi>B</mi><mo>≅</mo><mi>C</mi><mo>→</mo><mi>A</mi><mo>≅</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">A \\cong B \\quad B \\cong C  \\rightarrow A \\cong C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≅</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≅</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≅</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></p>\n</li>\n</ul>\n</li>\n<li>\n<p>特征值</p>\n</li>\n<li>\n<p>特征向量</p>\n</li>\n<li>\n<p>行列式</p>\n</li>\n</ul>\n<h1 id=\"向量\"><a class=\"anchor\" href=\"#向量\">#</a> 向量</h1>\n<div class=\"note info\">\n<p>定义</p>\n</div>\n<ul>\n<li>\n<p>n 个数 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><msub><mi>a</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">a_1 .... a_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 组成的有序数组 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><msub><mi>a</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mo separator=\"true\">,</mo><msub><mi>a</mi><mi>n</mi></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(a_1 , a_2 , ... , a_n)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p>行向量</p>\n</li>\n<li>\n<p>列向量</p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>k</mi><mi>α</mi><mo>=</mo><mn>0</mn><mo>⇒</mo><mi>k</mi><mo>=</mo><mn>0</mn><mspace width=\"1em\"/><mi>o</mi><mi>r</mi><mspace width=\"1em\"/><mi>α</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">k\\alpha = 0 \\Rightarrow k = 0 \\quad or \\quad \\alpha = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">r</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>向量间的线性关系</p>\n</div>\n<ul>\n<li>线性组合\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\beta,\\alpha_1,\\alpha_2,\\dots,\\alpha_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 是 m 维向量，若存在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>k</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>k</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>k</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">k_1,k_2,\\dots,k_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>, 使<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi><mo>=</mo><msub><mi>k</mi><mn>1</mn></msub><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><msub><mi>k</mi><mn>2</mn></msub><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><mo>⋯</mo><mo>+</mo><msub><mi>k</mi><mi>n</mi></msub><msub><mi>α</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\beta = k_1\\alpha_1 + k_2\\alpha_2 + \\dots +k_n\\alpha_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"minner\">⋯</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>\n<ul>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>1</mn><mn>2</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>=</mo><mn>1</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>1</mn><mn>0</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>+</mo><mn>2</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>0</mn><mn>1</mn></mfrac><mo fence=\"true\">)</mo></mrow></mrow><annotation encoding=\"application/x-tex\">\\binom{1}{2} = 1 \\times \\binom{1}{0} + 2 \\times \\binom{0}{1}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">2</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span></span></span></span></span></p>\n</li>\n</ul>\n</li>\n<li>系数表示可以全取 0\n<ul>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>0</mn><mn>0</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>=</mo><mn>0</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>1</mn><mn>0</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>+</mo><mn>0</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>0</mn><mn>1</mn></mfrac><mo fence=\"true\">)</mo></mrow></mrow><annotation encoding=\"application/x-tex\">\\binom{0}{0} = 0 \\times \\binom{1}{0} + 0 \\times \\binom{0}{1}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span></span></span></span></span></p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info\">\n<p>性质</p>\n</div>\n<ul>\n<li>零向量可由任意向量组表示\n<ul>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mn>0</mn><mo>=</mo><mn>0</mn><mo>×</mo><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><mn>0</mn><mo>×</mo><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><mo>⋯</mo><mo>+</mo><mn>0</mn><mo>×</mo><msub><mi>α</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">0 = 0 \\times \\alpha_1 + 0 \\times \\alpha_2 + \\dots + 0 \\times \\alpha_n\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"minner\">⋯</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n</ul>\n</li>\n<li>向量组中任一向量可由向量组表示\n<ul>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><msub><mi>α</mi><mn>3</mn></msub><mo>=</mo><mn>0</mn><mo>×</mo><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><mn>0</mn><mo>×</mo><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><mn>1</mn><mo>×</mo><msub><mi>α</mi><mn>3</mn></msub><mo>+</mo><mn>0</mn><mo>×</mo><msub><mi>α</mi><mn>4</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_3 = 0 \\times \\alpha_1 + 0 \\times \\alpha_2 + 1 \\times \\alpha_3 + 0 \\times \\alpha_4\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n</ul>\n</li>\n<li>任意向量可由<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>ϵ</mi><mn>1</mn></msub><mo>=</mo><mo stretchy=\"false\">(</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>0</mn><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><mn>0</mn><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><msub><mi>ϵ</mi><mn>2</mn></msub><mo>=</mo><mo stretchy=\"false\">(</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>1</mn><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><mn>0</mn><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>ϵ</mi><mi>n</mi></msub><mo>=</mo><mo stretchy=\"false\">(</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>0</mn><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><mn>1</mn><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo></mrow><annotation encoding=\"application/x-tex\">\\epsilon_1 = (1,0,\\dots,0),\\epsilon_2 = (0,1,\\dots,0),\\dots,\\epsilon_n = (0,0,\\dots,1),</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">ϵ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">ϵ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">ϵ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span></span></span></span> 表示\n<ul>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo stretchy=\"false\">(</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>2</mn><mo separator=\"true\">,</mo><mn>3</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn><mo>×</mo><mo stretchy=\"false\">(</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>0</mn><mo stretchy=\"false\">)</mo><mo>+</mo><mn>2</mn><mo>×</mo><mo stretchy=\"false\">(</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>0</mn><mo stretchy=\"false\">)</mo><mo>+</mo><mn>3</mn><mo>×</mo><mo stretchy=\"false\">(</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>1</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(1,2,3) = 1 \\times (1,0,0) + 2 \\times (0,1,0) + 3 \\times (0,0,1)\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">2</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">3</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">2</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">3</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span></span></span></span></span></p>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info\">\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>β</mi><mo>=</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>3</mn><mo separator=\"true\">,</mo><mn>2</mn><mo separator=\"true\">,</mo><mo>−</mo><mn>4</mn><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>1</mn></msub><mo>=</mo><mo stretchy=\"false\">(</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>1</mn><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo>=</mo><mo stretchy=\"false\">(</mo><mn>2</mn><mo separator=\"true\">,</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>0</mn><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>3</mn></msub><mo>=</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>1</mn><mo separator=\"true\">,</mo><mo>−</mo><mn>2</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\beta = (-3,2,-4),\\alpha_1 = (1,0,1),\\alpha_2 = (2,1,0),\\alpha_3 = (-1,1,-2)\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">3</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">2</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">−</span><span class=\"mord\">4</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">2</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">−</span><span class=\"mord\">2</span><span class=\"mclose\">)</span></span></span></span></span></p>\n</div>\n<ul>\n<li>解：</li>\n</ul>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mspace width=\"1em\"/><mi>β</mi><mo>=</mo><msub><mi>k</mi><mn>1</mn></msub><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><msub><mi>k</mi><mn>2</mn></msub><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><msub><mi>k</mi><mn>3</mn></msub><msub><mi>α</mi><mn>3</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\quad \\beta = k_1\\alpha_1 + k_2\\alpha_2 + k_3\\alpha_3\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span></span></p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo stretchy=\"false\">(</mo><mo>−</mo><mn>3</mn><mo separator=\"true\">,</mo><mn>2</mn><mo separator=\"true\">,</mo><mo>−</mo><mn>4</mn><mo stretchy=\"false\">)</mo><mo>=</mo><msub><mi>k</mi><mn>1</mn></msub><mo stretchy=\"false\">(</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>1</mn><mo stretchy=\"false\">)</mo><mo>+</mo><msub><mi>k</mi><mn>2</mn></msub><mo stretchy=\"false\">(</mo><mn>2</mn><mo separator=\"true\">,</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>0</mn><mo stretchy=\"false\">)</mo><mo>+</mo><msub><mi>k</mi><mn>3</mn></msub><mo stretchy=\"false\">(</mo><mo>−</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>1</mn><mo separator=\"true\">,</mo><mo>−</mo><mn>2</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(-3,2,-4) = k_1(1,0,1) + k_2(2,1,0) + k_3(-1,1,-2)\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">3</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">2</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">−</span><span class=\"mord\">4</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\">2</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">−</span><span class=\"mord\">2</span><span class=\"mclose\">)</span></span></span></span></span></p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo fence=\"true\">{</mo><mtable rowspacing=\"0.15999999999999992em\" columnalign=\"center\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><msub><mi>k</mi><mn>1</mn></msub><mo>+</mo><mn>2</mn><msub><mi>k</mi><mn>2</mn></msub><mo>−</mo><msub><mi>k</mi><mn>3</mn></msub><mo>=</mo><mo>−</mo><mn>3</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><msub><mi>k</mi><mn>2</mn></msub><mo>+</mo><msub><mi>k</mi><mn>3</mn></msub><mo>=</mo><mn>2</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><msub><mi>k</mi><mn>1</mn></msub><mo>−</mo><mn>2</mn><msub><mi>k</mi><mn>3</mn></msub><mo>=</mo><mo>−</mo><mn>4</mn></mrow></mstyle></mtd></mtr></mtable></mrow><annotation encoding=\"application/x-tex\">\\left\\{\n\\begin{array}{c}       \n    k_1 + 2k_2 - k_3 = -3 \\\\\n    k_2 + k_3 = 2 \\\\\n    k_1 - 2k_3 = -4\n\\end{array}\n\\right.</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:3.60004em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.49999em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎩</span></span></span><span style=\"top:-2.20499em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎪</span></span></span><span style=\"top:-3.15001em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎨</span></span></span><span style=\"top:-4.00501em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎪</span></span></span><span style=\"top:-4.30002em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎧</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">2</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">−</span><span class=\"mord\">3</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">2</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">−</span><span class=\"mord\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo fence=\"true\">{</mo><mtable rowspacing=\"0.15999999999999992em\" columnalign=\"center\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><msub><mi>k</mi><mn>1</mn></msub><mo>=</mo><mn>2</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><msub><mi>K</mi><mn>2</mn></msub><mo>=</mo><mo>−</mo><mn>1</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><msub><mi>k</mi><mn>3</mn></msub><mo>=</mo><mn>3</mn></mrow></mstyle></mtd></mtr></mtable></mrow><annotation encoding=\"application/x-tex\">\\left\\{\n\\begin{array}{c}       \n    k_1 = 2 \\\\\n    K_2 = -1 \\\\\n    k_3 = 3\n\\end{array}\n\\right.</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:3.60004em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.49999em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎩</span></span></span><span style=\"top:-2.20499em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎪</span></span></span><span style=\"top:-3.15001em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎨</span></span></span><span style=\"top:-4.00501em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎪</span></span></span><span style=\"top:-4.30002em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎧</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">2</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">K</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">−</span><span class=\"mord\">1</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo>∴</mo><mi>β</mi><mo>=</mo><mn>2</mn><msub><mi>α</mi><mn>1</mn></msub><mo>−</mo><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><mn>3</mn><msub><mi>α</mi><mn>3</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\therefore \\beta = 2\\alpha_1 - \\alpha_2 + 3\\alpha_3\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69224em;vertical-align:0em;\"></span><span class=\"mrel amsrm\">∴</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.79444em;vertical-align:-0.15em;\"></span><span class=\"mord\">2</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.79444em;vertical-align:-0.15em;\"></span><span class=\"mord\">3</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span></span></p>\n<div class=\"note info\">\n<p>向量组的等价</p>\n</div>\n<ul>\n<li>若 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mi>m</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\dots,\\alpha_m</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">m</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 和 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>β</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>β</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>β</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\beta_1,\\beta_2,\\dots,\\beta_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 同维度</li>\n<li>两个向量组可以相互线性表示\n<ul>\n<li>反身性：{<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mi>m</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\dots,\\alpha_m</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">m</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>≅</mo></mrow><annotation encoding=\"application/x-tex\">\\cong</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.589em;vertical-align:0em;\"></span><span class=\"mrel\">≅</span></span></span></span> {<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>β</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>β</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>β</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\beta_1,\\beta_2,\\dots,\\beta_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>}</li>\n<li>对称性：{<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mi>m</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\dots,\\alpha_m</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">m</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>≅</mo></mrow><annotation encoding=\"application/x-tex\">\\cong</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.589em;vertical-align:0em;\"></span><span class=\"mrel\">≅</span></span></span></span> {<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>β</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>β</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>β</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\beta_1,\\beta_2,\\dots,\\beta_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>⇔</mo></mrow><annotation encoding=\"application/x-tex\">\\Leftrightarrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.36687em;vertical-align:0em;\"></span><span class=\"mrel\">⇔</span></span></span></span>  {<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>β</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>β</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>β</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\beta_1,\\beta_2,\\dots,\\beta_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>≅</mo></mrow><annotation encoding=\"application/x-tex\">\\cong</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.589em;vertical-align:0em;\"></span><span class=\"mrel\">≅</span></span></span></span> {<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mi>m</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\dots,\\alpha_m</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">m</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>}</li>\n<li>传递性: {<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mi>m</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\dots,\\alpha_m</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">m</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>≅</mo></mrow><annotation encoding=\"application/x-tex\">\\cong</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.589em;vertical-align:0em;\"></span><span class=\"mrel\">≅</span></span></span></span> {<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>β</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>β</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>β</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\beta_1,\\beta_2,\\dots,\\beta_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} 、{<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>β</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>β</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>β</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\beta_1,\\beta_2,\\dots,\\beta_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05278em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>≅</mo></mrow><annotation encoding=\"application/x-tex\">\\cong</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.589em;vertical-align:0em;\"></span><span class=\"mrel\">≅</span></span></span></span> {<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>γ</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>γ</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>γ</mi><mi>s</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\gamma_1,\\gamma_2,\\dots,\\gamma_s</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05556em;\">γ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05556em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05556em;\">γ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05556em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05556em;\">γ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05556em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">s</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>⟹</mo></mrow><annotation encoding=\"application/x-tex\">\\Longrightarrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.549em;vertical-align:-0.024em;\"></span><span class=\"mrel\">⟹</span></span></span></span> {<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mi>m</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\dots,\\alpha_m</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">m</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>≅</mo></mrow><annotation encoding=\"application/x-tex\">\\cong</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.589em;vertical-align:0em;\"></span><span class=\"mrel\">≅</span></span></span></span> {<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>γ</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>γ</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>γ</mi><mi>s</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\gamma_1,\\gamma_2,\\dots,\\gamma_s</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05556em;\">γ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05556em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05556em;\">γ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05556em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05556em;\">γ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.05556em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">s</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>}</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info\">\n<p>向量间线性相关</p>\n</div>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>a</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">a_1,a_2,\\dots,a_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 是 n 个 m 维向量，若<span class=\"rainbow\">存在</span>一组不全为 0 的<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>k</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>k</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>k</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">k_1,k_2,\\dots,k_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 使得<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><msub><mi>k</mi><mn>1</mn></msub><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><msub><mi>k</mi><mn>2</mn></msub><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><mo>⋯</mo><mo>+</mo><msub><mi>k</mi><mi>n</mi></msub><msub><mi>α</mi><mi>n</mi></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">k_1\\alpha_1 + k_2\\alpha_2 + \\dots +k_n\\alpha_n = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"minner\">⋯</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n就称<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>a</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">a_1,a_2,\\dots,a_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 是线性相关的。</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mn>1</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>2</mn><mn>0</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>−</mo><mn>2</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>1</mn><mn>0</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>+</mo><mn>0</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>8</mn><mn>9</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">1 \\times \\binom{2}{0} - 2 \\times \\binom{1}{0} + 0 \\times \\binom{8}{9} = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">2</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">9</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">8</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mn>2</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>1</mn><mn>0</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>+</mo><mn>2</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>0</mn><mn>1</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>−</mo><mn>1</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>2</mn><mn>3</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">2 \\times \\binom{1}{0}+2 \\times \\binom{0}{1} - 1 \\times \\binom{2}{3} = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">2</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">2</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>向量间线性无关</p>\n</div>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>a</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">a_1,a_2,\\dots,a_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 是 n 个 m 维向量，若<span class=\"rainbow\">找不到</span>一组不全为 0 的<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>k</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>k</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>k</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">k_1,k_2,\\dots,k_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 使得<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><msub><mi>k</mi><mn>1</mn></msub><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><msub><mi>k</mi><mn>2</mn></msub><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><mo>⋯</mo><mo>+</mo><msub><mi>k</mi><mi>n</mi></msub><msub><mi>α</mi><mi>n</mi></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">k_1\\alpha_1 + k_2\\alpha_2 + \\dots +k_n\\alpha_n = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"minner\">⋯</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n就称<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>a</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">a_1,a_2,\\dots,a_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 不是线性相关的。</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>a</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">a_1,a_2,\\dots,a_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 是 n 个 m 维向量，<span class=\"rainbow\">必全为 0</span> 的<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>k</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>k</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>k</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">k_1,k_2,\\dots,k_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 使得<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><msub><mi>k</mi><mn>1</mn></msub><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><msub><mi>k</mi><mn>2</mn></msub><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><mo>⋯</mo><mo>+</mo><msub><mi>k</mi><mi>n</mi></msub><msub><mi>α</mi><mi>n</mi></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">k_1\\alpha_1 + k_2\\alpha_2 + \\dots +k_n\\alpha_n = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"minner\">⋯</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n就称<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>a</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">a_1,a_2,\\dots,a_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 不是线性相关的。</li>\n</ul>\n<div class=\"note info\">\n<p>线性相关或无关的性质</p>\n</div>\n<ol>\n<li>向量组中两向量成比例，必定线性相关</li>\n</ol>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo>−</mo><mn>1</mn><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>1</mn><mn>2</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>+</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>×</mo><mrow><mo fence=\"true\">(</mo><mfrac linethickness=\"0px\"><mn>2</mn><mn>4</mn></mfrac><mo fence=\"true\">)</mo></mrow><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">-1 \\times \\binom{1}{2} + \\frac{1}{2} \\times \\binom{2}{4} = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.40003em;vertical-align:-0.95003em;\"></span><span class=\"mord\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">(</span></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size3\">)</span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n<ol start=\"2\">\n<li>含零向量的任意向量组必线性相关</li>\n</ol>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mn>0</mn><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><mn>0</mn><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><mn>1</mn><mo>×</mo><mn>0</mn><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">0\\alpha_1 + 0\\alpha_2 + 1 \\times 0 = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.79444em;vertical-align:-0.15em;\"></span><span class=\"mord\">0</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.79444em;vertical-align:-0.15em;\"></span><span class=\"mord\">0</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n<ol start=\"3\">\n<li>任意一个零向量必线性相关</li>\n</ol>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mn>1</mn><mo>×</mo><mn>0</mn><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">1 \\times 0 = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n<ol start=\"4\">\n<li>任意一个非零向量必线性无关</li>\n</ol>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>α</mi><mo mathvariant=\"normal\">≠</mo><mn>0</mn><mo separator=\"true\">,</mo><mi>k</mi><mi>α</mi><mo>=</mo><mn>0</mn><mo>⇒</mo><mi>k</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\alpha \\neq 0 , k\\alpha = 0 \\Rightarrow k = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n<ol start=\"5\">\n<li>一个向量<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>α</mi></mrow><annotation encoding=\"application/x-tex\">\\alpha</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span></span></span></span> 线性相关 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>⇔</mo><mi>α</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\Leftrightarrow \\alpha = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.36687em;vertical-align:0em;\"></span><span class=\"mrel\">⇔</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ol>\n<div class=\"note info\">\n<p>线性相关证明</p>\n</div>\n<ul>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mi>r</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\dots, \\alpha_r</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.02778em;\">r</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 线性相关，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mi>r</mi></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mrow><mi>r</mi><mo>+</mo><mn>1</mn></mrow></msub><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><msub><mi>α</mi><mi>s</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\dots,\\alpha_r, \\alpha_{r + 1}, \\dots ,\\alpha_{s}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.638891em;vertical-align:-0.208331em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.02778em;\">r</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.301108em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.02778em;\">r</span><span class=\"mbin mtight\">+</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.208331em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">s</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 也线性相关</p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>3</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\alpha_3</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 线性相关，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>3</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>4</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>5</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\alpha_3,\\alpha_4,\\alpha_5</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">5</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 也线性相关</p>\n</li>\n<li>\n<p>证明：</p>\n</li>\n</ul>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><msub><mi>k</mi><mn>1</mn></msub><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><msub><mi>k</mi><mn>2</mn></msub><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><msub><mi>k</mi><mn>3</mn></msub><msub><mi>α</mi><mn>3</mn></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">k_1\\alpha_1 + k_2\\alpha_2 + k_3\\alpha_3 = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><msub><mi>k</mi><mn>1</mn></msub><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><msub><mi>k</mi><mn>2</mn></msub><msub><mi>α</mi><mn>2</mn></msub><mo>+</mo><msub><mi>k</mi><mn>3</mn></msub><msub><mi>α</mi><mn>3</mn></msub><mo>+</mo><mn>0</mn><msub><mi>α</mi><mn>4</mn></msub><mo>+</mo><mn>0</mn><msub><mi>α</mi><mn>5</mn></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">k_1\\alpha_1 + k_2\\alpha_2 + k_3\\alpha_3 + 0\\alpha_4 + 0\\alpha_5 = 0\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.79444em;vertical-align:-0.15em;\"></span><span class=\"mord\">0</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.79444em;vertical-align:-0.15em;\"></span><span class=\"mord\">0</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">5</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></span></p>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∵</mo><mspace width=\"1em\"/><msub><mi>k</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>k</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><msub><mi>k</mi><mn>3</mn></msub><mo separator=\"true\">,</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\because \\quad k_1,k_2,k_3,0,0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69224em;vertical-align:0em;\"></span><span class=\"mrel amsrm\">∵</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span></span></span></span> 不全为 0<br />\n<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∴</mo><mspace width=\"1em\"/><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>3</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>4</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>5</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\therefore \\quad \\alpha_1,\\alpha_2,\\alpha_3,\\alpha_4,\\alpha_5</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69224em;vertical-align:0em;\"></span><span class=\"mrel amsrm\">∴</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">5</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 是线性相关的</p>\n<ul>\n<li>结论\n<ul>\n<li>部分组线性相关 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>→</mo></mrow><annotation encoding=\"application/x-tex\">\\rightarrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.36687em;vertical-align:0em;\"></span><span class=\"mrel\">→</span></span></span></span> 整体组线性相关</li>\n<li>整体组线性无关 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>→</mo></mrow><annotation encoding=\"application/x-tex\">\\rightarrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.36687em;vertical-align:0em;\"></span><span class=\"mrel\">→</span></span></span></span> 部分组线性无关</li>\n<li>线性无关的向量组，接长向量组也线性无关</li>\n<li>线性相关的向量组，截短向量组也线性相关</li>\n<li>n 个 n 维向量组，若构成的行列式<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>D</mi><mo mathvariant=\"normal\">≠</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">D \\neq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span>, 则该向量组线性无关</li>\n<li>n 个 n 维向量组，若构成的行列式<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>D</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">D = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span>, 则该向量组线性相关</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info\">\n<p>向量组的秩</p>\n</div>\n<ul>\n<li>极大线性无关组：\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>3</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>4</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>5</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2,\\alpha_3,\\alpha_4,\\alpha_5</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">5</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 的部分组<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>\n<ol>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 线性无关</li>\n<li>每个向量均可由<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>α</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>α</mi><mn>2</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\alpha_1,\\alpha_2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.0037em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 表示</li>\n</ol>\n</li>\n</ul>\n</li>\n</ul>\n<h1 id=\"线性方程组\"><a class=\"anchor\" href=\"#线性方程组\">#</a> 线性方程组</h1>\n<h1 id=\"特征值和特征向量\"><a class=\"anchor\" href=\"#特征值和特征向量\">#</a> 特征值和特征向量</h1>\n<ul>\n<li>\n<p>A 为 n 阶矩阵，若数 λ 和 n 维非 0 列向量 x 满足 Ax=λx，那么数 λ 称为 A 的特征值，x 称为 A 的对应于特征值 λ 的特征向量。式 Ax=λx 也可写成 (A-λE) x=0，并且 |λE-A | 叫做 A 的特征多项式。当特征多项式等于 0 的时候，称为 A 的特征方程，特征方程是一个齐次线性方程组，求解特征值的过程其实就是求解特征方程的解。</p>\n</li>\n<li>\n<p>特征值和特征向量是线性代数中的重要概念，通常与矩阵相关。在矩阵中，特征值和特征向量提供了对矩阵变换行为的一种理解。</p>\n<ol>\n<li><span class=\"blue\">特征向量</span>（Eigenvectors）：对于一个方阵（如 n x n 的矩阵），如果存在一个非零向量 v，使得矩阵 A 作用于这个向量后，得到的结果只是这个向量的一个标量倍数，即 Av = λv，其中 λ 是一个常数，称为特征值。这个向量 v 就称为矩阵 A 的特征向量。</li>\n<li><span class=\"blue\">特征值</span>（Eigenvalues）：特征值是表示特征向量放缩倍数的常数。在方阵 A 中，特征值 λ 表示当矩阵作用于相应的特征向量时，向量被放缩的倍数。</li>\n<li>特征值和特征向量对于理解线性变换的本质非常重要，它们在很多领域中都有广泛的应用，如物理学、工程学、计算机科学等。在机器学习和数据分析中，特征值和特征向量常用于降维、主成分分析（PCA）、特征提取等任务中。</li>\n</ol>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>A</mi><mi>x</mi><mo>=</mo><mi>λ</mi><mi>x</mi><mo>⇒</mo><mi>A</mi><mi>x</mi><mo>=</mo><mi>λ</mi><mi>E</mi><mi>x</mi><mo>⇒</mo><mo stretchy=\"false\">(</mo><mi>λ</mi><mo>−</mo><mi>A</mi><mo stretchy=\"false\">)</mo><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">A x = \\lambda x \\Rightarrow A x = \\lambda E x \\Rightarrow (\\lambda - A) x\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">λ</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">λ</span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em;\">E</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">x</span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>λ</mi><mi>E</mi><mo>−</mo><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo>=</mo><mrow><mo fence=\"true\">∣</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mi>λ</mi><mo>−</mo><msub><mi>a</mi><mn>11</mn></msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><msub><mi>a</mi><mn>12</mn></msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><msub><mi>a</mi><mrow><mn>1</mn><mi>n</mi></mrow></msub></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><msub><mi>a</mi><mn>21</mn></msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mi>λ</mi><mo>−</mo><msub><mi>a</mi><mn>22</mn></msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><msub><mi>a</mi><mrow><mn>2</mn><mi>n</mi></mrow></msub></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><msub><mi>a</mi><mrow><mi>m</mi><mn>1</mn></mrow></msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><msub><mi>a</mi><mrow><mi>m</mi><mn>1</mn></mrow></msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo><mo separator=\"true\">⋅</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mi>λ</mi><mo>−</mo><msub><mi>a</mi><mrow><mi>m</mi><mi>n</mi></mrow></msub></mrow></mstyle></mtd></mtr></mtable><mo fence=\"true\">∣</mo></mrow></mrow><annotation encoding=\"application/x-tex\">|\\lambda E - A| = \\begin{vmatrix}\n  \\lambda - a_{11} &amp; -a_{12} &amp; ··· &amp; -a_{1n} \\\\ \n  -a_{21} &amp; \\lambda - a_{22} &amp; ··· &amp; -a_{2n} \\\\ \n  ··· &amp; ··· &amp; ··· &amp; ··· \\\\ \n  -a_{m1} &amp; -a_{m1} &amp; ··· &amp; \\lambda - a_{mn} \\\\ \n  \\end{vmatrix}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">λ</span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em;\">E</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:4.85399em;vertical-align:-2.1500399999999997em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.70395em;\"><span style=\"top:-0.45596000000000014em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-1.0569600000000001em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-1.65796em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.25896em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.85996em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.46096em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-4.06196em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-4.10295em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-4.70395em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500399999999997em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">m</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">m</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.6500000000000004em;\"><span style=\"top:-4.8100000000000005em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mathnormal mtight\">n</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.61em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mathnormal mtight\">n</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-2.4099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mpunct\">⋅</span></span></span><span style=\"top:-1.2099999999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">m</span><span class=\"mord mathnormal mtight\">n</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500000000000004em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.70395em;\"><span style=\"top:-0.45596000000000014em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-1.0569600000000001em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-1.65796em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.25896em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.85996em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.46096em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-4.06196em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-4.10295em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-4.70395em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.1500399999999997em;\"><span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>\n<p>以下为示例：</p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mtable width=\"100%\"><mtr><mtd width=\"50%\"></mtd><mtd><mrow><mi>A</mi><mo>=</mo><mrow><mo fence=\"true\">(</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>5</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>6</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>4</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>9</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>5</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>3</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>7</mn></mrow></mstyle></mtd></mtr></mtable><mo fence=\"true\">)</mo></mrow></mrow></mtd><mtd width=\"50%\"></mtd><mtd><mtext>(1)</mtext></mtd></mtr></mtable><annotation encoding=\"application/x-tex\">A = \\left(\n\\begin{matrix}\n4 &amp; 2 &amp; -5 \\\\\n6 &amp; 4 &amp; -9 \\\\\n5 &amp; 3 &amp; -7 \\\\\n\\end{matrix}\n\\right)\n\\tag{1}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.60004em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎝</span></span></span><span style=\"top:-3.2550000000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"overlay\" style=\"height:0.3em;width:0.875em;\"><svg width='0.875em' height='0.3em' style='width:0.875em' viewBox='0 0 875 300' preserveAspectRatio='xMinYMin'><path d='M291 0 H417 V300 H291 z'/></svg></span></span><span style=\"top:-4.05002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎛</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">6</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">5</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">5</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">9</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">7</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎠</span></span></span><span style=\"top:-3.2550000000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"overlay\" style=\"height:0.3em;width:0.875em;\"><svg width='0.875em' height='0.3em' style='width:0.875em' viewBox='0 0 875 300' preserveAspectRatio='xMinYMin'><path d='M457 0 H583 V300 H457 z'/></svg></span></span><span style=\"top:-4.05002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎞</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span></span><span class=\"tag\"><span class=\"strut\" style=\"height:3.60004em;vertical-align:-1.55002em;\"></span><span class=\"mord text\"><span class=\"mord\">(</span><span class=\"mord\"><span class=\"mord\">1</span></span><span class=\"mord\">)</span></span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mtable width=\"100%\"><mtr><mtd width=\"50%\"></mtd><mtd><mrow><mi mathvariant=\"normal\">∣</mi><mi>λ</mi><mi>E</mi><mo>−</mo><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo>=</mo><mrow><mo fence=\"true\">∣</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mi>λ</mi><mo>−</mo><mn>4</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>2</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>5</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>6</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mi>λ</mi><mo>−</mo><mn>4</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>9</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>5</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>3</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mi>λ</mi><mo>+</mo><mn>7</mn></mrow></mstyle></mtd></mtr></mtable><mo fence=\"true\">∣</mo></mrow><mo>=</mo><mn>0</mn></mrow></mtd><mtd width=\"50%\"></mtd><mtd><mtext>(2)</mtext></mtd></mtr></mtable><annotation encoding=\"application/x-tex\">|\\lambda E - A| = \\begin{vmatrix}\n  \\lambda - 4 &amp; -2 &amp; 5 \\\\ \n  -6 &amp; \\lambda - 4 &amp; 9 \\\\ \n  -5 &amp; -3 &amp; \\lambda + 7 \\\\ \n  \\end{vmatrix} = {0}\n  \\tag{2}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">λ</span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em;\">E</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.64199em;vertical-align:-1.5500299999999998em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0919600000000003em;\"><span style=\"top:-1.05597em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-1.65697em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.2579700000000003em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.8589700000000002em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.45997em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.4909600000000003em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-4.09196em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500299999999998em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">4</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">6</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">5</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">2</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">4</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">5</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">9</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">7</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0919600000000003em;\"><span style=\"top:-1.05597em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-1.65697em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.2579700000000003em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-2.8589700000000002em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.45997em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-3.4909600000000003em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span><span style=\"top:-4.09196em;\"><span class=\"pstrut\" style=\"height:2.606em;\"></span><span class=\"delimsizinginner delim-size1\"><span>∣</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500299999999998em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span class=\"tag\"><span class=\"strut\" style=\"height:3.64199em;vertical-align:-1.5500299999999998em;\"></span><span class=\"mord text\"><span class=\"mord\">(</span><span class=\"mord\"><span class=\"mord\">2</span></span><span class=\"mord\">)</span></span></span></span></span></span></p>\n</li>\n<li>\n<p>计算行列式得<br />\n<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mo stretchy=\"false\">(</mo><mi>λ</mi><mo>−</mo><mn>4</mn><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>λ</mi><mo>−</mo><mn>4</mn><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>λ</mi><mo>+</mo><mn>7</mn><mo stretchy=\"false\">)</mo><mo>+</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>2</mn><mo stretchy=\"false\">)</mo><mo>∗</mo><mn>9</mn><mo>∗</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>5</mn><mo stretchy=\"false\">)</mo><mo>+</mo><mn>5</mn><mo>∗</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>6</mn><mo stretchy=\"false\">)</mo><mo>∗</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>3</mn><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">)</mo><mo>−</mo><mo stretchy=\"false\">(</mo><mn>5</mn><mo>∗</mo><mo stretchy=\"false\">(</mo><mi>λ</mi><mo>−</mo><mn>4</mn><mo stretchy=\"false\">)</mo><mo>∗</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>5</mn><mo stretchy=\"false\">)</mo><mo>+</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>2</mn><mo stretchy=\"false\">)</mo><mo>∗</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>6</mn><mo stretchy=\"false\">)</mo><mo>∗</mo><mo stretchy=\"false\">(</mo><mi>λ</mi><mo>+</mo><mn>7</mn><mo stretchy=\"false\">)</mo><mo>+</mo><mo stretchy=\"false\">(</mo><mi>λ</mi><mo>−</mo><mn>4</mn><mo stretchy=\"false\">)</mo><mo>∗</mo><mn>9</mn><mo>∗</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>3</mn><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">((\\lambda - 4)(\\lambda - 4)(\\lambda + 7)+(-2)*9*(-5)+5*(-6)*(-3))-(5*(\\lambda - 4)*(-5)+(-2)*(-6)*(\\lambda + 7)+(\\lambda - 4)*9*(-3))</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">4</span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">4</span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">7</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">2</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">9</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">5</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">5</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">6</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">3</span><span class=\"mclose\">)</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">5</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">4</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">5</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">2</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">6</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">7</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">4</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">9</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">3</span><span class=\"mclose\">)</span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p>备注：3 行 3 列的矩阵 ， 可以直接采用<span class=\"red\">主对角线 - 副对角线</span></p>\n</li>\n<li>\n<p>化简得：</p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>λ</mi><mn>2</mn></msup><mo>∗</mo><mo stretchy=\"false\">(</mo><mi>λ</mi><mo>−</mo><mn>1</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\lambda^2 * (\\lambda - 1) = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8141079999999999em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">λ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>得到特征值：</p>\n<ol>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>λ</mi><mn>1</mn></msub><mo>=</mo><mn>1</mn><mo separator=\"true\">,</mo><msub><mi>λ</mi><mn>2</mn></msub><mo>=</mo><msub><mi>λ</mi><mn>3</mn></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\lambda_1 = 1,\\lambda_2 = \\lambda_3 = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>λ</mi><mn>1</mn></msub><mo>=</mo><mn>1</mn><mo separator=\"true\">,</mo><mo>⇒</mo><mo stretchy=\"false\">(</mo><mi>E</mi><mo>−</mo><mi>A</mi><mo stretchy=\"false\">)</mo><mi>x</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\lambda_1 = 1, \\Rightarrow (E -A)x = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8388800000000001em;vertical-align:-0.19444em;\"></span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em;\">E</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ol>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>E</mi><mo>−</mo><mi>A</mi><mo>=</mo><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>3</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>2</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>5</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>6</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>3</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>9</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>5</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>3</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>8</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mo>⇒</mo><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>1</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>1</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow></mrow><annotation encoding=\"application/x-tex\">E - A = \\begin{bmatrix}\n-3 &amp; -2 &amp; 5\\\\ \n-6 &amp; -3 &amp; 9\\\\ \n-5 &amp; -3 &amp; 8\\\\ \n\\end{bmatrix}\n\\Rightarrow\n\\begin{bmatrix}\n1 &amp; 0 &amp; -1\\\\ \n0 &amp; 1 &amp; -1\\\\ \n0 &amp; 0 &amp; 0\\\\ \n\\end{bmatrix}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.76666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em;\">E</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.6010299999999997em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">3</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">6</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">5</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">2</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">3</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">5</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">9</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">8</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.6010299999999997em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">1</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>E</mi><mo>−</mo><mi>A</mi><mo stretchy=\"false\">)</mo><mi>x</mi><mo>=</mo><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>1</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>1</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mrow><mo fence=\"true\">(</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>x</mi><mn>1</mn></msub></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>x</mi><mn>2</mn></msub></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>x</mi><mn>3</mn></msub></mstyle></mtd></mtr></mtable><mo fence=\"true\">)</mo></mrow><mo>=</mo><mn>0</mn><mo>⇒</mo><mrow><mo fence=\"true\">{</mo><mtable rowspacing=\"0.3599999999999999em\" columnalign=\"left left\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>−</mo><msub><mi>x</mi><mn>3</mn></msub><mo>=</mo><mn>0</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><msub><mi>x</mi><mn>2</mn></msub><mo>−</mo><msub><mi>x</mi><mn>3</mn></msub><mo>=</mo><mn>0</mn></mrow></mstyle></mtd></mtr></mtable></mrow></mrow><annotation encoding=\"application/x-tex\">(E -A)x = \n\\begin{bmatrix}\n1 &amp; 0 &amp; -1\\\\ \n0 &amp; 1 &amp; -1\\\\ \n0 &amp; 0 &amp; 0\\\\ \n\\end{bmatrix}\n\\left(\\begin{matrix}\nx_1 \\\\ \nx_2\\\\ \nx_3\\\\ \n\\end{matrix}\\right)\n= 0\n\\Rightarrow\n\\begin{cases}\nx_1 - x_3 = 0 \\\\\nx_2 - x_3 = 0\n\\end{cases}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em;\">E</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.6010299999999997em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">1</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎝</span></span></span><span style=\"top:-3.2550000000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"overlay\" style=\"height:0.3em;width:0.875em;\"><svg width='0.875em' height='0.3em' style='width:0.875em' viewBox='0 0 875 300' preserveAspectRatio='xMinYMin'><path d='M291 0 H417 V300 H291 z'/></svg></span></span><span style=\"top:-4.05002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎛</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎠</span></span></span><span style=\"top:-3.2550000000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"overlay\" style=\"height:0.3em;width:0.875em;\"><svg width='0.875em' height='0.3em' style='width:0.875em' viewBox='0 0 875 300' preserveAspectRatio='xMinYMin'><path d='M457 0 H583 V300 H457 z'/></svg></span></span><span style=\"top:-4.05002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎞</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.0000299999999998em;vertical-align:-1.25003em;\"></span><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size4\">{</span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-l\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.69em;\"><span style=\"top:-3.69em;\"><span class=\"pstrut\" style=\"height:3.008em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">0</span></span></span><span style=\"top:-2.25em;\"><span class=\"pstrut\" style=\"height:3.008em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.19em;\"><span></span></span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></p>\n</li>\n<li>\n<p>令 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">x_1 = 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span> 得到特征矩阵：</p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><msub><mi>ξ</mi><mn>1</mn></msub><mo>=</mo><mrow><mo fence=\"true\">(</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">)</mo></mrow></mrow><annotation encoding=\"application/x-tex\">\\xi_1 = \n\\left(\\begin{matrix}\n1 \\\\ \n1 \\\\ \n1 \\\\ \n\\end{matrix}\\right)\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.04601em;\">ξ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.04601em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.60004em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎝</span></span></span><span style=\"top:-3.2550000000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"overlay\" style=\"height:0.3em;width:0.875em;\"><svg width='0.875em' height='0.3em' style='width:0.875em' viewBox='0 0 875 300' preserveAspectRatio='xMinYMin'><path d='M291 0 H417 V300 H291 z'/></svg></span></span><span style=\"top:-4.05002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎛</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎠</span></span></span><span style=\"top:-3.2550000000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"overlay\" style=\"height:0.3em;width:0.875em;\"><svg width='0.875em' height='0.3em' style='width:0.875em' viewBox='0 0 875 300' preserveAspectRatio='xMinYMin'><path d='M457 0 H583 V300 H457 z'/></svg></span></span><span style=\"top:-4.05002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎞</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>\n<p>同理，当<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>λ</mi><mn>2</mn></msub><mo>=</mo><msub><mi>λ</mi><mn>3</mn></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\lambda_2 = \\lambda_3 = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> 得：</p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>E</mi><mo>−</mo><mi>A</mi><mo stretchy=\"false\">)</mo><mi>x</mi><mo>=</mo><mrow><mo fence=\"true\">[</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>2</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>2</mn></mrow></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>3</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>0</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">]</mo></mrow><mrow><mo fence=\"true\">(</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>x</mi><mn>1</mn></msub></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>x</mi><mn>2</mn></msub></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>x</mi><mn>3</mn></msub></mstyle></mtd></mtr></mtable><mo fence=\"true\">)</mo></mrow><mo>=</mo><mn>0</mn><mo>⇒</mo><mrow><mo fence=\"true\">{</mo><mtable rowspacing=\"0.3599999999999999em\" columnalign=\"left left\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>2</mn><msub><mi>x</mi><mn>1</mn></msub><mo>+</mo><msub><mi>x</mi><mn>3</mn></msub><mo>=</mo><mn>0</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mo>−</mo><mn>2</mn><msub><mi>x</mi><mn>2</mn></msub><mo>+</mo><mn>3</mn><msub><mi>x</mi><mn>3</mn></msub><mo>=</mo><mn>0</mn></mrow></mstyle></mtd></mtr></mtable></mrow></mrow><annotation encoding=\"application/x-tex\">(E -A)x = \n\\begin{bmatrix}\n-2 &amp; 0 &amp; 1\\\\ \n0 &amp; -2 &amp; 3\\\\ \n0 &amp; 0 &amp; 0\\\\ \n\\end{bmatrix}\n\\left(\\begin{matrix}\nx_1 \\\\ \nx_2\\\\ \nx_3\\\\ \n\\end{matrix}\\right)\n= 0\n\\Rightarrow\n\\begin{cases}\n-2x_1 + x_3 = 0 \\\\\n-2x_2 + 3x_3 = 0\n\\end{cases}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em;\">E</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.6010299999999997em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎣</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎢</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎡</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">2</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">2</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"arraycolsep\" style=\"width:0.5em;\"></span><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.0510099999999998em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎦</span></span></span><span style=\"top:-2.8099900000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎥</span></span></span><span style=\"top:-4.05101em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎤</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎝</span></span></span><span style=\"top:-3.2550000000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"overlay\" style=\"height:0.3em;width:0.875em;\"><svg width='0.875em' height='0.3em' style='width:0.875em' viewBox='0 0 875 300' preserveAspectRatio='xMinYMin'><path d='M291 0 H417 V300 H291 z'/></svg></span></span><span style=\"top:-4.05002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎛</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎠</span></span></span><span style=\"top:-3.2550000000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"overlay\" style=\"height:0.3em;width:0.875em;\"><svg width='0.875em' height='0.3em' style='width:0.875em' viewBox='0 0 875 300' preserveAspectRatio='xMinYMin'><path d='M457 0 H583 V300 H457 z'/></svg></span></span><span style=\"top:-4.05002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎞</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.0000299999999998em;vertical-align:-1.25003em;\"></span><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em;\"><span class=\"delimsizing size4\">{</span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-l\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.69em;\"><span style=\"top:-3.69em;\"><span class=\"pstrut\" style=\"height:3.008em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">2</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">0</span></span></span><span style=\"top:-2.25em;\"><span class=\"pstrut\" style=\"height:3.008em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">2</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">3</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.19em;\"><span></span></span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></p>\n</li>\n<li>\n<p>令 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">x_1 = 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span> 得到特征矩阵：</p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><msub><mi>ξ</mi><mn>2</mn></msub><mo>=</mo><msub><mi>ξ</mi><mn>3</mn></msub><mo>=</mo><mrow><mo fence=\"true\">(</mo><mtable rowspacing=\"0.15999999999999992em\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>3</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>2</mn></mstyle></mtd></mtr></mtable><mo fence=\"true\">)</mo></mrow></mrow><annotation encoding=\"application/x-tex\">\\xi_2 = \\xi_3 =  \n\\left(\\begin{matrix}\n1 \\\\ \n3 \\\\ \n2 \\\\ \n\\end{matrix}\\right)\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.04601em;\">ξ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.04601em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.04601em;\">ξ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.04601em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.60004em;vertical-align:-1.55002em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎝</span></span></span><span style=\"top:-3.2550000000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"overlay\" style=\"height:0.3em;width:0.875em;\"><svg width='0.875em' height='0.3em' style='width:0.875em' viewBox='0 0 875 300' preserveAspectRatio='xMinYMin'><path d='M291 0 H417 V300 H291 z'/></svg></span></span><span style=\"top:-4.05002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎛</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-c\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05em;\"><span style=\"top:-4.21em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span><span style=\"top:-3.0099999999999993em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-1.8099999999999994em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5500000000000007em;\"><span></span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.05002em;\"><span style=\"top:-2.2500000000000004em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎠</span></span></span><span style=\"top:-3.2550000000000003em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"overlay\" style=\"height:0.3em;width:0.875em;\"><svg width='0.875em' height='0.3em' style='width:0.875em' viewBox='0 0 875 300' preserveAspectRatio='xMinYMin'><path d='M457 0 H583 V300 H457 z'/></svg></span></span><span style=\"top:-4.05002em;\"><span class=\"pstrut\" style=\"height:3.1550000000000002em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎞</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.55002em;\"><span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n</ul>\n",
            "tags": []
        },
        {
            "id": "https://hk2012.github.io/2024/05/14/note/MySQL/",
            "url": "https://hk2012.github.io/2024/05/14/note/MySQL/",
            "title": "MySQL 知识总结",
            "date_published": "2024-05-14T03:10:00.000Z",
            "content_html": "<h1 id=\"索引\"><a class=\"anchor\" href=\"#索引\">#</a> 索引</h1>\n<h2 id=\"数据库索引的定义和作用\"><a class=\"anchor\" href=\"#数据库索引的定义和作用\">#</a> 数据库索引的定义和作用</h2>\n<ul>\n<li>\n<p>定义： 索引（Index） 是数据库管理系统中的一种数据结构，它以特定的方式存储数据表中的某些字段（列）的信息，以加快数据检索的速度。索引类似于书籍的目录，通过它可以快速找到所需的信息，而无需扫描整个表。</p>\n</li>\n<li>\n<p>作用：</p>\n<ol>\n<li>提高查询速度：索引大大加快了 SELECT 查询的速度，尤其是对大表的查询。例如，搜索、排序和分组操作可以显著受益于索引。</li>\n<li>提高数据的检索效率：通过减少磁盘 I/O 操作，索引能有效提升数据检索的效率。</li>\n<li>强制唯一性：唯一索引（Unique Index）可以确保表中某列的值是唯一的，帮助维持数据的完整性。</li>\n<li>加快表连接速度：在进行表连接（JOIN）操作时，索引能够加速连接操作。</li>\n<li>提升排序和分组性能：在执行 ORDER BY 和 GROUP BY 语句时，索引能够加速这些操作。</li>\n</ol>\n</li>\n<li>\n<p>索引的类型</p>\n<ol>\n<li>主键索引（Primary Key Index）：\n<ul>\n<li>唯一标识表中的记录，不允许空值。每个表只能有一个主键索引。</li>\n</ul>\n</li>\n<li>唯一索引（Unique Index）：\n<ul>\n<li>保证索引列的所有值是唯一的，可以有空值。一个表可以有多个唯一索引。</li>\n</ul>\n</li>\n<li>普通索引（普通索引 / Non-Unique Index）：\n<ul>\n<li>最基本的索引类型，不强制唯一性，允许重复值。</li>\n</ul>\n</li>\n<li>复合索引（Composite Index / 多列索引）：\n<ul>\n<li>包含多个列的索引，通过组合多个列来创建索引，提高组合查询的效率。</li>\n</ul>\n</li>\n<li>全文索引（Full-Text Index）：\n<ul>\n<li>用于全文搜索，适合大文本字段的搜索。支持 MATCH AGAINST 操作。</li>\n</ul>\n</li>\n<li>空间索引（Spatial Index）：\n<ul>\n<li>用于地理空间数据类型的索引，适用于空间数据的快速查询（如点、线、多边形等）。</li>\n</ul>\n</li>\n<li>哈希索引（Hash Index）：\n<ul>\n<li>使用哈希表实现的索引，适用于等值查询，不适用于范围查询。主要用于 Memory 引擎表。</li>\n</ul>\n</li>\n<li>聚簇索引（Clustered Index）：\n<ul>\n<li>数据行的物理顺序与索引的逻辑顺序一致。InnoDB 存储引擎的主键索引就是一种聚簇索引。</li>\n</ul>\n</li>\n<li>非聚簇索引（Non-Clustered Index）：\n<ul>\n<li>索引顺序与数据行的物理顺序无关，每个索引项指向实际数据行的位置。MyISAM 引擎中的索引是非聚簇索引。</li>\n</ul>\n</li>\n</ol>\n</li>\n<li>\n<p>索引的基础知识回顾</p>\n<ol>\n<li>创建索引：使用 CREATE INDEX 语句来创建普通索引和唯一索引，使用 ALTER TABLE 来创建主键索引。</li>\n<li>删除索引：使用 DROP INDEX 语句。</li>\n<li>查看索引：使用 SHOW INDEX FROM table_name 或 EXPLAIN 语句来查看表的索引情况。</li>\n<li>优化查询：通过分析和调整索引，可以显著优化查询性能。</li>\n<li>理解和使用索引是数据库优化的重要环节，可以显著提升数据库系统的性能。</li>\n</ol>\n</li>\n</ul>\n<h2 id=\"索引失效\"><a class=\"anchor\" href=\"#索引失效\">#</a> 索引失效</h2>\n<ul>\n<li>\n<p>在 MySQL 中，索引能够显著提高查询的效率，但在某些情况下，索引可能会失效，从而导致查询性能下降。以下是一些常见的 MySQL 索引失效场景及其原因：</p>\n<ol>\n<li>使用函数或操作符：\n<ul>\n<li>在查询条件中对索引列使用函数（如 LEFT (column, 3) = 'abc'）或操作符（如 column + 1 = 5）会导致索引失效，因为 MySQL 无法对函数或操作符的结果进行索引。</li>\n</ul>\n</li>\n<li>类型不匹配：\n<ul>\n<li>如果查询条件中的数据类型与索引列的数据类型不匹配，索引可能会失效。例如，索引列是字符串类型，但在查询中使用了数值类型的条件。</li>\n</ul>\n</li>\n<li>隐式转换：<br />\n类似于类型不匹配，如果 MySQL 需要对索引列进行隐式转换（如将字符串转换为数值），索引也会失效。</li>\n<li>前导通配符：\n<ul>\n<li>使用 LIKE 查询时，如果在通配符 % 或 _ 之前没有任何字符（如 LIKE '% abc'），索引将无法使用。这是因为 MySQL 无法确定从哪里开始扫描索引。</li>\n</ul>\n</li>\n<li>不符合最左前缀原则：\n<ul>\n<li>对于复合索引，如果查询条件不符合最左前缀原则，索引将失效。例如，复合索引 (a, b, c)，查询条件必须从 a 开始，如 (a, b) 或 (a)，而不能仅使用 b 或 c。</li>\n</ul>\n</li>\n<li>OR 条件：\n<ul>\n<li>在查询中使用 OR 条件，如果每个条件字段上没有独立的索引，索引会失效。例如，WHERE column1 = value1 OR column2 = value2，只有在 column1 和 column2 上都有独立索引时，索引才会生效。</li>\n</ul>\n</li>\n<li>范围查询影响后续列：\n<ul>\n<li>在复合索引中，如果其中一个列使用了范围查询（如 BETWEEN、&lt;、&gt;），则该列之后的索引列将无法使用。例如，复合索引 (a, b)，查询 WHERE a &gt; 5 AND b = 10 中，索引 b 将失效。</li>\n</ul>\n</li>\n<li>NULL 值判断：\n<ul>\n<li>对于索引列的 IS NULL 或 IS NOT NULL 判断，MySQL 通常不会使用索引，因为 NULL 值在索引中的处理有特殊情况。</li>\n</ul>\n</li>\n<li>表扫描：\n<ul>\n<li>在某些情况下，即使存在索引，MySQL 优化器也可能选择进行全表扫描（Table Scan），例如当表非常小，或统计信息显示使用索引的代价更高时。</li>\n</ul>\n</li>\n</ol>\n<ul>\n<li>通过注意上述这些情况，可以有效避免 MySQL 索引失效，确保查询性能的优化。在实际应用中，使用 EXPLAIN 语句可以帮助检查查询是否使用了索引，并进一步优化查询</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"浏览器执行流程\"><a class=\"anchor\" href=\"#浏览器执行流程\">#</a> 浏览器执行流程</h2>\n<ul>\n<li>在浏览器地址栏输入 192.168.1.1 访问网页时，首先执行的操作并不是直接建立 TCP 连接，而是执行 DNS 解析（域名解析）。不过，由于 192.168.1.1 是一个典型的私有 IP 地址，这个过程会稍微不同。以下是更详细的步骤：</li>\n</ul>\n<ol>\n<li>地址解析（跳过 DNS）：</li>\n</ol>\n<p>由于 192.168.1.1 是一个直接的 IP 地址，浏览器跳过了 DNS 解析步骤，因为不需要将域名转换为 IP 地址。<br />\n2. 建立 TCP 连接：</p>\n<p>浏览器向 192.168.1.1 的默认 HTTP 端口（通常是 80）或 HTTPS 端口（通常是 443）发起一个 TCP 连接请求。这个过程涉及三次握手，以确保连接的可靠性。<br />\n3. 发送 HTTP 请求：</p>\n<p>一旦 TCP 连接建立成功，浏览器会发送一个 HTTP 请求（例如 GET 请求）到该 IP 地址上的 Web 服务器。<br />\n4. 服务器处理请求并响应：</p>\n<p>192.168.1.1 上的 Web 服务器处理请求，并返回相应的网页数据。<br />\n5. 浏览器接收并渲染页面：</p>\n<p>浏览器接收服务器返回的网页数据，并开始渲染网页内容。<br />\n所以，尽管在这个特殊情况下（直接输入 IP 地址），DNS 解析步骤被跳过，但建立 TCP 连接依然是后续的关键步骤。</p>\n<h2 id=\"商业智能系统\"><a class=\"anchor\" href=\"#商业智能系统\">#</a> 商业智能系统</h2>\n<ul>\n<li>商业智能系统主要包括以下四个主要阶段：</li>\n</ul>\n<ol>\n<li>数据预处理：这是整个流程的起始点，涉及从不同来源收集原始数据，并通过<span class=\"rainbow\">抽取</span>（Extract）、<span class=\"rainbow\">转换</span>（Transform）和<span class=\"rainbow\">加载</span>（Load），即 ETL 过程，对数据进行清洗、格式化和整合，确保数据质量，以便后续分析使用。</li>\n<li>建立数据仓库：创建一个集中化的数据存储环境，用于存储经过预处理的大量历史数据。数据仓库支持高效的数据管理和查询，为复杂的分析任务提供坚实的基础。</li>\n<li>数据分析：利用统计学方法、联机分析处理（OLAP）和数据挖掘技术等手段，从数据中发现模式、趋势和关联性。这一阶段是商业智能系统智能化的核心，它能将数据转化为可操作的洞察。</li>\n<li>数据展现：将分析结果以图表、报告、仪表板等形式直观地展示给决策者和业务用户，使他们能够快速理解复杂的数据信息，从而基于数据驱动的洞察做出决策。这一步骤通常还包括数据可视化工具的应用，以便用户交互式地探索数据。这四个阶段共同构成了商业智能系统的核心流程，帮助企业更好地理解和利用其数据资产，提高决策效率和质量。</li>\n</ol>\n<h2 id=\"面向对象分析与设计区别\"><a class=\"anchor\" href=\"#面向对象分析与设计区别\">#</a> 面向对象分析与设计区别</h2>\n<ol>\n<li><span class=\"rainbow\">面向对象分析</span>（Object-Oriented Analysis, OOA）主要关注于理解并捕获问题领域的需求，识别参与者、用例以及领域对象，建立问题域的静态结构和动态行为的模型。</li>\n<li><span class=\"rainbow\">面向对象设计</span>（Object-Oriented Design, OOD）则是在分析的基础上，关注如何将问题域模型转化为可实现的解决方案，包括类的设计、接口设计、数据库设计等，更侧重于软件结构和组件的实现细节。因此，两者之间存在明显的区别。</li>\n</ol>\n<h2 id=\"案例题\"><a class=\"anchor\" href=\"#案例题\">#</a> 案例题</h2>\n<h3 id=\"第一题\"><a class=\"anchor\" href=\"#第一题\">#</a> 第一题</h3>\n<p><img data-src=\"/img/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91/%E6%8F%90%E4%BA%A4%E8%AE%A2%E5%8D%95%E7%94%A8%E4%BE%8B%E8%A1%A8.png\" alt=\"提交订单用例表\" /></p>\n<ol>\n<li>【问题 1】 （9 分）</li>\n</ol>\n<p>面向对象系统开发中，实体对象、控制对象和接口对象的含义是什么？</p>\n<ul>\n<li>\n<p>在面向对象的系统开发中，实体对象、控制对象和接口对象是三个重要的概念，它们在系统设计和实现中扮演不同的角色：</p>\n<ol>\n<li><span class=\"rainbow\">实体对象</span>（Entity Objects）：</li>\n</ol>\n<p>含义：实体对象表示系统中的业务实体或数据对象，它们通常与数据库中的表或记录相对应，包含业务数据和行为。<br />\n作用：管理和存储系统中的核心数据，反映业务逻辑中的实际事物。<br />\n示例：在电商系统中，会员、商品、订单等都是实体对象。<br />\n2. <span class=\"rainbow\">控制对象</span>（Control Objects）：</p>\n<p>含义：控制对象负责管理系统中的业务逻辑和控制流程，它们通常用来协调实体对象和接口对象之间的交互。<br />\n作用：处理复杂的业务逻辑和控制流程，执行用例的具体步骤。<br />\n示例：在提交订单的过程中，控制对象可能负责处理订单提交、支付流程等。<br />\n3. <span class=\"rainbow\">接口对象</span>（Boundary Objects）：</p>\n<p>含义：接口对象是系统与外部用户或其他系统之间的交互接口，通常用于处理用户输入和输出。<br />\n作用：提供与用户或外部系统交互的界面，管理用户的请求和系统的响应。<br />\n示例：在电商系统中，购物车页面、支付页面等都是接口对象。</p>\n</li>\n</ul>\n<ol start=\"2\">\n<li>【问题 2】 （10 分）</li>\n</ol>\n<p>面向对象系统分析与建模中，从潜在候选对象中筛选系统业务对象的原则有哪些？</p>\n<ul>\n<li>\n<p>在面向对象的系统分析与建模中，从潜在候选对象中筛选系统业务对象的原则如下：</p>\n<ol>\n<li>\n<p>相关性原则：业务对象必须与系统的主要功能和业务需求密切相关，能够准确反映系统的业务逻辑。</p>\n</li>\n<li>\n<p>独立性原则：业务对象应具有独立的身份和明确的职责，避免冗余和重复。</p>\n</li>\n<li>\n<p>可识别性原则：业务对象应易于识别和理解，通常对应于现实世界中的具体事物或概念。</p>\n</li>\n<li>\n<p>持久性原则：业务对象通常需要在系统中持久存储，并能够跨会话存在，例如数据库中的记录。</p>\n</li>\n<li>\n<p>可操作性原则：业务对象应具有明确的行为和操作，与系统的功能需求相对应。</p>\n</li>\n<li>\n<p>可复用性原则：优先选择那些在系统的多个部分可以复用的对象，提升系统的灵活性和扩展性。</p>\n</li>\n</ol>\n</li>\n</ul>\n<ol start=\"3\">\n<li>【问题 3】（6 分）</li>\n</ol>\n<p>根据题目所示 “提交订单” 用例详细描述，可以识别出哪些业务对象？</p>\n<ul>\n<li>\n<p>根据题目所示 “提交订单” 用例的详细描述，可以识别出以下业务对象：</p>\n<ol>\n<li>会员（Entity）：代表系统中的用户，需要登录系统进行操作。</li>\n<li>商品（Entity）：可加入购物车的产品。</li>\n<li>购物车（Entity）：存储会员选择的商品列表。</li>\n<li>订单（Entity）：包含提交后形成的订单信息。</li>\n<li>配送信息（Entity）：与订单关联的配送地址等信息。</li>\n<li>支付系统（Boundary）：处理用户支付相关操作的外部系统。</li>\n<li>支付密码（Entity）：用户为完成支付输入的密码。</li>\n<li>支付申请（Entity）：用户提交的支付请求。</li>\n<li>成功支付页面（Boundary）：显示支付成功的信息界面。</li>\n<li>商家（Entity）：负责商品的管理和发货。</li>\n<li>仓库（Entity）：负责打包和准备发货的商品存储地点。</li>\n<li>快递公司（Entity）：负责将订单商品送达会员指定的配送地址。</li>\n</ol>\n<ul>\n<li>这些业务对象共同构成了提交订单用例中的核心部分，涵盖了从商品选择到订单支付完成的整个流程。</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"第二题\"><a class=\"anchor\" href=\"#第二题\">#</a> 第二题</h3>\n<p><img data-src=\"/img/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91/%E6%A1%88%E4%BE%8B%E4%BA%8C%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE.png\" alt=\"案例二数据流图\" /><br />\n<img data-src=\"/img/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91/%E6%A1%88%E4%BE%8B%E4%BA%8C%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE(2).png\" alt=\"案例二数据流图(2)\" /></p>\n<ul>\n<li>\n<p>数据流图（DFD）在系统需求分析过程中主要作用是：</p>\n<ol>\n<li>\n<p>可视化系统流程：DFD 通过图形方式展示系统中数据的流动和处理过程，使系统的逻辑结构一目了然。它使用箭头表示数据流、方框表示数据存储、圆圈表示处理过程和矩形表示外部实体，帮助用户和开发人员理解系统的工作机制。</p>\n</li>\n<li>\n<p>明确功能需求：通过分解系统的各个功能模块，DFD 能够明确每个模块的输入、处理和输出。这有助于识别系统需要实现的具体功能和各功能之间的关系，为进一步的系统设计和开发提供清晰的指导。</p>\n</li>\n<li>\n<p>识别数据交互：DFD 展示了系统内部以及系统与外部实体之间的数据交互过程，明确了数据的输入来源、处理路径和输出目标。这对于定义系统接口、确保数据完整性和一致性非常重要。</p>\n</li>\n<li>\n<p>简化复杂系统：DFD 可以将复杂的系统逐级分解为多个层次，每个层次展示系统的一部分功能，使分析人员可以逐步理解和描述系统的各个部分，降低理解和分析的难度。</p>\n</li>\n<li>\n<p>沟通工具：作为一种直观的图形化工具，DFD 可以促进分析人员、开发人员和客户之间的沟通，确保各方对系统需求有一致的理解。它能够有效减少因需求不明确或理解不一致而导致的开发偏差和错误。</p>\n</li>\n</ol>\n<ul>\n<li>总之，DFD 在系统需求分析过程中通过可视化、明确功能、识别交互、简化复杂性和促进沟通等方面发挥重要作用，是系统分析和设计中不可或缺的工具。</li>\n</ul>\n</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/04/25/note/u%E7%9B%BE%E6%B5%8B%E8%AF%95/",
            "url": "https://hk2012.github.io/2024/04/25/note/u%E7%9B%BE%E6%B5%8B%E8%AF%95/",
            "title": "U盾测试",
            "date_published": "2024-04-25T01:05:00.000Z",
            "content_html": "<h1 id=\"前端网址\"><a class=\"anchor\" href=\"#前端网址\">#</a> 前端网址</h1>\n<ul>\n<li><span class=\"exturl\" data-url=\"aHR0cDovLzEwMy4yMS4xMTkuODQ6MTcwMDAvbWVzc2FnZS9tZXNzYWdldjIuaHRtbA==\">http://103.21.119.84:17000/message/messagev2.html</span></li>\n</ul>\n<h1 id=\"情况异常\"><a class=\"anchor\" href=\"#情况异常\">#</a> 情况异常</h1>\n<h2 id=\"第一种情况-可以复现\"><a class=\"anchor\" href=\"#第一种情况-可以复现\">#</a> 第一种情况 (可以复现)</h2>\n<ol>\n<li>采集指纹一 （食指）</li>\n<li>采集指纹二  (中指)</li>\n<li>删除指纹\n<ul>\n<li><img data-src=\"/img/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91/U%E7%9B%BE/u%E7%9B%BE%E6%B5%8B%E8%AF%95%E6%83%85%E5%86%B5%E4%B8%80.png\" alt=\"u盾测试情况一\" /></li>\n</ul>\n</li>\n<li>认证指纹 (食指)  -&gt; 成功</li>\n<li>认证指纹 (中指)  -&gt; 成功</li>\n<li>刷新页面后 再次点击删除\n<ul>\n<li><img data-src=\"/img/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91/U%E7%9B%BE/u%E7%9B%BE%E6%B5%8B%E8%AF%95%E4%B8%80%E5%88%B7%E6%96%B0%E5%90%8E.png\" alt=\"u盾测试一刷新后\" /></li>\n</ul>\n</li>\n<li>最后删除成功</li>\n</ol>\n<ul>\n<li>总结： 在页面不刷新的情况下，删除一次和删除多次情况是一样的，都是可以匹配上的</li>\n<li>原因：在页面刷新后，</li>\n</ul>\n<h2 id=\"第二种情况\"><a class=\"anchor\" href=\"#第二种情况\">#</a> 第二种情况</h2>\n<ol>\n<li>采集指纹一 （食指）</li>\n<li>采集指纹二  (中指)</li>\n<li>采集指纹二  (无名指)</li>\n<li>采集指纹二  (小指)</li>\n<li>四个手指的指纹都可以匹配上</li>\n</ol>\n<h2 id=\"第三种情况\"><a class=\"anchor\" href=\"#第三种情况\">#</a> 第三种情况</h2>\n<ol>\n<li>在认证步骤连续点击两次认证情况，会发生 <span class=\"blue\">下发</span>与<span class=\"red\">认证</span>错乱.</li>\n<li>在认证超时之后，指纹后录入情况，会发生 <span class=\"blue\">下发</span>与<span class=\"red\">认证</span>错乱.</li>\n</ol>\n<h1 id=\"交互方式\"><a class=\"anchor\" href=\"#交互方式\">#</a> 交互方式</h1>\n<ol>\n<li>连接 U 盾\n<ul>\n<li>测试 u 盾连接情况</li>\n</ul>\n</li>\n<li>采集 SN\n<ul>\n<li>获取安全 U 盾编号</li>\n</ul>\n</li>\n<li>采集身份证号\n<ul>\n<li>待开发</li>\n</ul>\n</li>\n<li>采集指纹\n<ul>\n<li>录入指纹一 和 指纹二 ，并存入 U 盾模组</li>\n</ul>\n</li>\n<li>删除指纹\n<ul>\n<li>将之前存储在模组中的指纹信息给删除 （<span class=\"red\">全部清空</span>）</li>\n</ul>\n</li>\n<li>安全认证 (比对)\n<ol>\n<li>下发 FP_UP 指令 （指录入当前指纹）</li>\n<li>对比 （将当前指纹，与之前存入模组间的指纹匹配）</li>\n<li>删除当前指纹信息</li>\n</ol>\n</li>\n<li>删除身份证号\n<ul>\n<li>待开发</li>\n</ul>\n</li>\n<li>获取指纹信息\n<ul>\n<li>当前指纹如果匹配失败，可以根据 index 获取当前指纹信息</li>\n</ul>\n<figure class=\"highlight json\"><figcaption data-lang=\"JSON\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>如果只录入一条指纹情况，错误指纹 index 如下</pre></td></tr><tr><td data-num=\"2\"></td><td><pre>verify finger info one index<span class=\"token operator\">:</span> <span class=\"token number\">116</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>如果录入两条指纹情况，错误指纹 index 如下</pre></td></tr><tr><td data-num=\"4\"></td><td><pre>verify finger info more index<span class=\"token operator\">:</span> <span class=\"token number\">100</span></pre></td></tr></table></figure></li>\n</ol>\n<h1 id=\"指令\"><a class=\"anchor\" href=\"#指令\">#</a> 指令</h1>\n<ul>\n<li>侦测到指纹指令\n<ul>\n<li>CMD_FP_DETECT</li>\n<li>0x50</li>\n</ul>\n</li>\n<li>指纹采集指令 - 仅要求比对结果\n<ul>\n<li>CMD_FP_CHECH</li>\n<li>0x50</li>\n</ul>\n</li>\n<li>指纹采集指令 - 指纹信息传输指令，从 host 传输到指纹终端用于比对\n<ul>\n<li>CMD_FP_TRANS</li>\n<li>0x50</li>\n</ul>\n</li>\n<li>指纹采集指令 - 根据指纹索引号，获取 0x50 0x17 下发的指纹信息\n<ul>\n<li>CMD_FP_GET</li>\n<li>0x50</li>\n</ul>\n</li>\n<li>指纹采集指令 - 采集指纹信息注册到指纹模组\n<ul>\n<li>CMD_FP_REG</li>\n<li>0x50</li>\n</ul>\n</li>\n<li>指纹采集指令 - 删除指纹指令\n<ul>\n<li>CMD_FP_DEL</li>\n<li>0x50</li>\n</ul>\n</li>\n<li>获取指纹模组序列 ID 指令\n<ul>\n<li>CMD_FPRS_CHIPID</li>\n<li>0x50</li>\n</ul>\n</li>\n<li>设置指纹模组序列 ID 指令\n<ul>\n<li>CMD_FPWS_CHIPID</li>\n<li>0x50</li>\n</ul>\n</li>\n<li>设置 / 读取 SN\n<ul>\n<li>CMD_CONFIG_CMD</li>\n</ul>\n</li>\n<li>删除保存的身份证信息\n<ul>\n<li>CMD_DEL_ID</li>\n</ul>\n</li>\n<li>保存身份证信息\n<ul>\n<li>CMD_ADD_ID</li>\n</ul>\n</li>\n<li>读取保存的身份证信息\n<ul>\n<li>CMD_RDSA_ID</li>\n</ul>\n</li>\n<li>设置标识信息\n<ul>\n<li>CMD_ADD_FLAG</li>\n</ul>\n</li>\n<li>读取标识标识\n<ul>\n<li>CMD_RD_FLAG</li>\n</ul>\n</li>\n<li>蜂鸣器操作\n<ul>\n<li>CMD_BUZZER</li>\n</ul>\n</li>\n</ul>\n<p>0x7c<br />\n0x7d<br />\n0x7E<br />\n0x7F<br />\n0x80<br />\n0x81<br />\n0x51</p>\n<p>0x10 （0x01||0x00）<br />\n0x11 （0x01||0x00）<br />\n0x17 （0x01||0x00） 0xXX 0xXX (两个字节指纹信息长度) 0xXX 0xXX 0xXX ... 指纹信息<br />\n 0x18 （0x01||0x00）0xII 0xII (指纹索引) 0xXX 0xXX（两字节信息长度）0xXX 0xXX 0xXX ... 指纹信息<br />\n 0x12 （0x01||0x00）0xII 0xII (指纹索引)  0xXX 0xXX（两字节信息长度）0xXX 0xXX 0xXX ... 指纹信息<br />\n 0x13 （0x01||0x00） 0xXX 0xXX 0xYY 0xYY<br />\n0x14 （0x01||0x00）（16 个字节）<br />\n0x15 （0x01||0x00）（16 个字节）</p>\n<p>SUBCMD+LEN+DATA<br />\n0（1 字节数据，值为 0，表示清除设备中保存的数据）<br />\n18 字节身份证号<br />\n 0x7F 0xXX 0xXX ...（18 位身份证号码）<br />\n0x80 (0x01||0x00) 0xXX 0xXX ...（16 位信息标识）<br />\n0x81 0xXX 0xXX ...（16 位信息标识）<br />\n1 - 长响 1 声，用于操作成功情况下；2 - 连续短响 2 声，用于出现错误情况下；</p>\n<p>指纹模组发送给上位机表示指纹模组侦测到指纹，上位机发送给指纹模组表示上位查询指纹信息 0x00 - 无 0x01 - 有<br />\n &quot; 上位机发送到指纹模组表示需要进行用户指纹或身份证认证，指令：0x11;<br />\n 指纹模组发送给上位机表示认证结果：0x00 - 失败 0x01 - 成功<br />\n指令：0x11 0x01||0x00 (成功 || 失败)<br />\n 认证完成后，需要上位机发送删除指纹指令，清除指纹模组中缓存的指纹信息，指纹索引是 0x00 0x64 至 0x01 0xF4，删除指纹指令：0x13&quot;<br />\n&quot; 上位机发送到指纹模组表示传输指纹信息，指令：0x17 0xXX 0xXX (两个字节指纹信息长度) 0xXX 0xXX 0xXX ... 指纹信息<br />\n指纹模组发送给上位机表示指纹传输结果 (0x00 - 失败 0x01 - 成功)<br />\n 指令：0x17 0x01||0x00 (成功 || 失败) (0xII 0xXII)(上传成功后，终端保存指纹信息，并返回保存两个指纹信息的索引号)&quot;<br />\n&quot; 上位机发送到指纹模组表示获取 0x50 0x17 指令上送至终端的指纹信息，指令：0x18 0xII 0xII 两位指纹索引<br />\n指纹模组发送给上位机表示获取指纹信息结果与指纹信息 (0x00 - 失败 0x01 - 成功)<br />\n 指令：0x18 0x01||0x00 (成功 || 失败) 0xII 0xII (指纹索引) 0xXX 0xXX (两个字节指纹信息长度) 0xXX 0xXX 0xXX ... 指纹信息<br />\n指纹数据长度一般是 1008 个字节，预留 2024 个字节 &quot;<br />\n&quot; 上位机发送到指纹模组表示采集指纹信息，指令：0x12 （0x00||0xAA） 注：0x00: 表示终端不需要保存指纹信息；0xAA：表示终端需要保存指纹信息<br />\n指纹模组发送给上位机表示采集指纹信息结果与指纹信息 (0x00 - 失败 0x01 - 成功)<br />\n 指令：0x12 0x01||0x00 (成功 || 失败) 0xII 0xII (指纹索引) 0xXX 0xXX (两个字节指纹信息长度) 0xXX 0xXX 0xXX ... 指纹信息<br />\n注：当终端不需要指纹信息时，指纹索引为 0x00 0x00<br />\n 指纹数据长度一般是 1008 个字节，预留 2024 个字节 &quot;<br />\n&quot; 上位机发送给指纹模组表示需要删除指纹：指令：0x13 0xXX 0xXX 0xYY 0xYY<br />\n0xXX 0xXX：两字节删除指纹开始索引；<br />\n0xYY 0xYY：两字节删除指纹结束索引；<br />\n 删除相同指纹时，0xXX 0xXX： == 0xYY 0xYY<br />\n 指纹模组发送给上位机表示删除指纹结果；指令：0x13 0x01||0x00 (成功 || 失败)&quot;</p>\n<p>设置时，直接 16 个；</p>\n<p>SUBCMD：0 - 读取 SN，1 - 设置 SN；LEN：SN 数据的长度；DATA：SN 的内容；<br />\n删除保存的身份证信息</p>\n<p>&quot; 上位机发送到设备表示读取设备中保存的身份证号信息，指令：0x7F<br />\n 设备发送给上位机表示读取结果<br />\n指令：0x7F  0xXX 0xXX ...（18 位身份证号码）如果设备中没有保存身份证信息，则身份证号码是 18 个 0xFF&quot;<br />\n&quot; 上位机发送到设备表示设置标识信息，指令：0x80 0xXX 0xXX ...（16 位信息标识）<br />\n设备发送给上位机表示设置结果<br />\n指令：0x80  0x01||0x00    注：0x01 - 成功 0x00 - 失败 &quot;<br />\n&quot; 上位机发送到设备表示读取标识信息，指令：0x81<br />\n 设备发送给上位机表示读取结果<br />\n指令：0x81 0xXX 0xXX ...（16 位信息标识）    注：失败 - 16 个 0xFF&quot;</p>\n",
            "tags": [
                "项目开发"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/04/24/doc/%E4%BB%8B%E7%BB%8D%E7%BA%BF%E7%A8%8B%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E5%92%8C%E7%8A%B6%E6%80%81/",
            "url": "https://hk2012.github.io/2024/04/24/doc/%E4%BB%8B%E7%BB%8D%E7%BA%BF%E7%A8%8B%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E5%92%8C%E7%8A%B6%E6%80%81/",
            "title": "介绍线程的生命周期和状态",
            "date_published": "2024-04-24T01:05:00.000Z",
            "content_html": "<h2 id=\"介绍线程的生命周期和状态\"><a class=\"anchor\" href=\"#介绍线程的生命周期和状态\">#</a> 介绍线程的生命周期和状态？</h2>\n<p><img data-src=\"/img/life.jpg\" alt=\"未命名文件.jpg\" /></p>\n<p><strong>1. 创建</strong><br />\n当程序使用 new 关键字创建了一个线程之后，该线程就处于一个新建状态（初始状态），此时它和其他 Java 对象一样，仅仅由 Java 虚拟机为其分配了内存，并初始化了其成员变量值。此时的线程对象没有表现出任何线程的动态特征，程序也不会执行线程的线程执行体。<br />\n<strong>2. 就绪</strong><br />\n当线程对象调用了 Thread.start () 方法之后，该线程处于就绪状态。Java 虚拟机会为其创建方法调用栈和程序计数器，处于这个状态的线程并没有开始运行，它只是表示该线程可以运行了。从 start () 源码中看出，start 后添加到了线程列表中，接着在 native 层添加到 VM 中，至于该线程何时开始运行，取决于 JVM 里线程调度器的调度 (如果 OS 调度选中了，就会进入到运行状态)。<br />\n<strong>3. 运行</strong><br />\n当线程对象调用了 Thread.start () 方法之后，该线程处于就绪状态。添加到了线程列表中，如果 OS 调度选中了，就会进入到运行状态<br />\n<strong> 4. 阻塞</strong><br />\n阻塞状态是线程因为某种原因放弃 CPU 使用权，暂时停止运行。直到线程进入就绪状态，才有机会转到运行状态。阻塞的情况大概三种：</p>\n<ul>\n<li>1、<strong>等待阻塞</strong>：运行的线程执行 wait () 方法，JVM 会把该线程放入等待池中。(wait 会释放持有的锁)</li>\n<li>2、<strong>同步阻塞</strong>：运行的线程在获取对象的同步锁时，若该同步锁被别的线程占用，则 JVM 会把该线程放入锁池中。</li>\n<li>3、<strong>其他阻塞</strong>：运行的线程执行 sleep () 或 join () 方法，或者发出了 I/O 请求时，JVM 会把该线程置为阻塞状态。当 sleep () 状态超时、join () 等待线程终止或者超时、或者 I/O 处理完毕时，线程重新转入就绪状态。（注意，sleep 是不会释放持有的锁）。</li>\n<li>线程睡眠：Thread.sleep (long millis) 方法，使线程转到阻塞状态。millis 参数设定睡眠的时间，以毫秒为单位。当睡眠结束后，就转为就绪（Runnable）状态。sleep () 平台移植性好。</li>\n<li>线程等待：Object 类中的 wait () 方法，导致当前的线程等待，直到其他线程调用此对象的 notify () 方法或 notifyAll () 唤醒方法。这个两个唤醒方法也是 Object 类中的方法，行为等价于调用 wait (0) 一样。唤醒线程后，就转为就绪（Runnable）状态。</li>\n<li>线程让步：Thread.yield () 方法，暂停当前正在执行的线程对象，把执行机会让给相同或者更高优先级的线程。</li>\n<li>线程加入：join () 方法，等待其他线程终止。在当前线程中调用另一个线程的 join () 方法，则当前线程转入阻塞状态，直到另一个进程运行结束，当前线程再由阻塞转为就绪状态。</li>\n<li>线程 I/O：线程执行某些 IO 操作，因为等待相关的资源而进入了阻塞状态。<span class=\"exturl\" data-url=\"aHR0cDovL3huLS1zeXN0ZW0tOW42anA2NmE4cTViMDd3dXI1Yy5pbg==\">比如说监听 system.in</span>，但是尚且没有收到键盘的输入，则进入阻塞状态。</li>\n<li>线程唤醒：Object 类中的 notify () 方法，唤醒在此对象监视器上等待的单个线程。如果所有线程都在此对象上等待，则会选择唤醒其中一个线程，选择是任意性的，并在对实现做出决定时发生。类似的方法还有一个 notifyAll ()，唤醒在此对象监视器上等待的所有线程。</li>\n</ul>\n<p><strong>5. 死亡</strong><br />\n线程会以以下三种方式之一结束，结束后就处于死亡状态:</p>\n<ul>\n<li>run () 方法执行完成，线程正常结束。</li>\n<li>线程抛出一个未捕获的 Exception 或 Error。</li>\n<li>直接调用该线程的 stop () 方法来结束该线程 —— 该方法容易导致死锁，通常不推荐使用</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/04/10/other/u%E7%9B%BE/",
            "url": "https://hk2012.github.io/2024/04/10/other/u%E7%9B%BE/",
            "title": "U盾项目代码熟悉",
            "date_published": "2024-04-10T11:09:00.000Z",
            "content_html": "<h1 id=\"代码分析\"><a class=\"anchor\" href=\"#代码分析\">#</a> 代码分析</h1>\n<h2 id=\"natchost-v1\"><a class=\"anchor\" href=\"#natchost-v1\">#</a> natchost-v1</h2>\n<h3 id=\"原始代码\"><a class=\"anchor\" href=\"#原始代码\">#</a> 原始代码</h3>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"stdafx.h\"</span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"windows.h\"</span></span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdio.h></span></span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;fcntl.h></span></span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;io.h></span></span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span><span class=\"token string\">&lt;string.h></span></span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;json/json.h></span></span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre></pre></td></tr><tr><td data-num=\"10\"></td><td><pre><span class=\"token keyword\">using</span> <span class=\"token keyword\">namespace</span> std<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">MAX_LEN</span> <span class=\"token expression\"><span class=\"token number\">4096</span></span></span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span>WINAPI <span class=\"token operator\">*</span>CONNECTPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span>WINAPI <span class=\"token operator\">*</span>COLLSNPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span>WINAPI <span class=\"token operator\">*</span>COLLIDPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre></pre></td></tr><tr><td data-num=\"19\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span>WINAPI <span class=\"token operator\">*</span>COLLFPRPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre></pre></td></tr><tr><td data-num=\"21\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span>WINAPI <span class=\"token operator\">*</span>DELFPPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span>WINAPI <span class=\"token operator\">*</span>VERIFYPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre></pre></td></tr><tr><td data-num=\"25\"></td><td><pre><span class=\"token comment\">// 从标准输入输出接收数据</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre><span class=\"token keyword\">char</span> g_input<span class=\"token punctuation\">[</span><span class=\"token number\">4096</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre></pre></td></tr><tr><td data-num=\"28\"></td><td><pre><span class=\"token comment\">// 写日志函数</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre></pre></td></tr><tr><td data-num=\"31\"></td><td><pre><span class=\"token comment\">// 读取标准输入的数据</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token function\">get_input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre></pre></td></tr><tr><td data-num=\"34\"></td><td><pre><span class=\"token comment\">// 输出</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre></pre></td></tr><tr><td data-num=\"37\"></td><td><pre><span class=\"token comment\">// 处理结束符</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">handle_EOF</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>src<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre></pre></td></tr><tr><td data-num=\"40\"></td><td><pre><span class=\"token comment\">// 拼接数组</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">arr_cat</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> from<span class=\"token punctuation\">,</span> <span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>src<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>string <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>string src<span class=\"token punctuation\">,</span> string sub<span class=\"token punctuation\">,</span> string dest<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>HINSTANCE WLinst<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre></pre></td></tr><tr><td data-num=\"47\"></td><td><pre><span class=\"token comment\">// 返回 0 为成功，其他值是失败</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>    <span class=\"token keyword\">int</span> result<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置数据流模式结果</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>    <span class=\"token keyword\">char</span> reclog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"recieve command: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>    <span class=\"token keyword\">char</span> commlog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"parsed command: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>    <span class=\"token keyword\">char</span> castlog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"cast command: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>    <span class=\"token keyword\">char</span> connlog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"usbkey connect response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>    <span class=\"token keyword\">char</span> snlog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"usbkey sn response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>    <span class=\"token keyword\">char</span> idlog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"usbkey id number response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>    <span class=\"token keyword\">char</span> fplog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"usbkey fingerprint response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>    <span class=\"token keyword\">char</span> dellog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"usbkey delete fingerprint response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>    <span class=\"token keyword\">char</span> verifylog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"usbkey verify response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>    <span class=\"token keyword\">char</span> inlen <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 接收字符串长度</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>    <span class=\"token comment\">//char message [] = \"&#123;\\\"text\\\": \\\"hello chrome extension\\\"&#125;\"; // 例子</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>    <span class=\"token comment\">//char message[] = \"&#123;\\\"command\\\": \\\"collFingerprint\\\", \\\"res\\\": &#123;\\\"code\\\":\\\"0\\\",\\\"content\\\":\\\"collect fingerprint failure!\\\"&#125;&#125;\";</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre></pre></td></tr><tr><td data-num=\"64\"></td><td><pre></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>    <span class=\"token comment\">// 设置数据流模式模式为二进制流</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>    result <span class=\"token operator\">=</span> <span class=\"token function\">_setmode</span><span class=\"token punctuation\">(</span><span class=\"token function\">_fileno</span><span class=\"token punctuation\">(</span><span class=\"token constant\">stdin</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> _O_BINARY<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>result <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Cannot set mode\\n\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre></pre></td></tr><tr><td data-num=\"70\"></td><td><pre>    WLinst <span class=\"token operator\">=</span> <span class=\"token function\">LoadLibrary</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"natcud.dll\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"71\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WLinst <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"72\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre></pre></td></tr><tr><td data-num=\"74\"></td><td><pre>    CONNECTPROC ffconnect <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>CONNECTPROC<span class=\"token punctuation\">)</span> <span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"ffconnect\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>    COLLSNPROC collsn <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLSNPROC<span class=\"token punctuation\">)</span> <span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collTerminalSN\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre>    COLLIDPROC collid <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLIDPROC<span class=\"token punctuation\">)</span> <span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collIdNumber\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre>    COLLFPRPROC collfp <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLFPRPROC<span class=\"token punctuation\">)</span> <span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collFingerPrint\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre>    DELFPPROC delfp <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>DELFPPROC<span class=\"token punctuation\">)</span> <span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"deleteFingerprints\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"79\"></td><td><pre>    VERIFYPROC verify <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>VERIFYPROC<span class=\"token punctuation\">)</span> <span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"verify\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre></pre></td></tr><tr><td data-num=\"81\"></td><td><pre></pre></td></tr><tr><td data-num=\"82\"></td><td><pre>    <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>tmpcomm <span class=\"token operator\">=</span> <span class=\"token function\">get_input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre>    <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>reclog<span class=\"token punctuation\">,</span> tmpcomm<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"84\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>reclog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"85\"></td><td><pre></pre></td></tr><tr><td data-num=\"86\"></td><td><pre>    std<span class=\"token double-colon punctuation\">::</span>string <span class=\"token function\">command</span><span class=\"token punctuation\">(</span>tmpcomm<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"87\"></td><td><pre>    <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>castlog<span class=\"token punctuation\">,</span> command<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"88\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>castlog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"89\"></td><td><pre></pre></td></tr><tr><td data-num=\"90\"></td><td><pre></pre></td></tr><tr><td data-num=\"91\"></td><td><pre>    <span class=\"token comment\">//std::string command = \"&#123;\\\"command\\\":\\\"collTerminalSN\\\"&#125;\";</span></pre></td></tr><tr><td data-num=\"92\"></td><td><pre><span class=\"token comment\">//\tstd::string command = \"&#123;\\\"command\\\": \\\"collTerminalSN\\\"&#125;\";</span></pre></td></tr><tr><td data-num=\"93\"></td><td><pre>    <span class=\"token comment\">//std::string command = \"&#123;\\\"command\\\": \\\"collIdNumber\\\",\\\"req\\\": &#123;\\\"serial\\\": \\\"32016225\\\",\\\"idNumber\\\": \\\"411481199110128450\\\"&#125;&#125;\";</span></pre></td></tr><tr><td data-num=\"94\"></td><td><pre>    <span class=\"token comment\">//std::string command = \"&#123;\\\"command\\\": \\\"collFingerprint\\\",\\\"req\\\": &#123;\\\"serial\\\": \\\"32016225\\\"&#125;&#125;\";</span></pre></td></tr><tr><td data-num=\"95\"></td><td><pre>    <span class=\"token comment\">//std::string command = \"&#123;\\\"command\\\": \\\"collFingerprint\\\",\\\"req\\\": &#123;\\\"serial\\\": \\\"32016225\\\",\\\"fingerNo\\\": \\\"\\\"&#125;&#125;\";</span></pre></td></tr><tr><td data-num=\"96\"></td><td><pre>    <span class=\"token comment\">//std::string command = \"&#123;\\\"command\\\": \\\"deleteFingerprints\\\",\\\"req\\\": &#123;\\\"serial\\\": \\\"32016225\\\"&#125;&#125;\";</span></pre></td></tr><tr><td data-num=\"97\"></td><td><pre>    <span class=\"token comment\">// 指令判断处理 ..........................</span></pre></td></tr><tr><td data-num=\"98\"></td><td><pre>    <span class=\"token comment\">//std::string command = \"&#123;\\\"command\\\": \\\"verify\\\",\\\"req\\\": &#123;\\\"serial\\\": \\\"30077052\\\"&#125;&#125;\";</span></pre></td></tr><tr><td data-num=\"99\"></td><td><pre></pre></td></tr><tr><td data-num=\"100\"></td><td><pre>    <span class=\"token comment\">//std::string command = \"&#123;\\\"cmd\\\": \\\"f\\\",\\\"req\\\": &#123;\\\"s\\\": \\\"30077052\\\",\\\"f\\\": 1&#125;&#125;\";</span></pre></td></tr><tr><td data-num=\"101\"></td><td><pre></pre></td></tr><tr><td data-num=\"102\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"103\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"104\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>command<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"105\"></td><td><pre>    string comname <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"106\"></td><td><pre>    <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>commlog<span class=\"token punctuation\">,</span> comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"107\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"108\"></td><td><pre></pre></td></tr><tr><td data-num=\"109\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"connect\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"110\"></td><td><pre></pre></td></tr><tr><td data-num=\"111\"></td><td><pre>        <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>rdata <span class=\"token operator\">=</span> <span class=\"token function\">ffconnect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"112\"></td><td><pre>        <span class=\"token comment\">// 写日志</span></pre></td></tr><tr><td data-num=\"113\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>connlog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"114\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>connlog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"115\"></td><td><pre></pre></td></tr><tr><td data-num=\"116\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"117\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value res<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"118\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"119\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"120\"></td><td><pre>        root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"121\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"122\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"123\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"124\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"125\"></td><td><pre></pre></td></tr><tr><td data-num=\"126\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"sn\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"127\"></td><td><pre>        <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>rdata <span class=\"token operator\">=</span> <span class=\"token function\">collsn</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"128\"></td><td><pre>        <span class=\"token comment\">// 写日志</span></pre></td></tr><tr><td data-num=\"129\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>snlog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"130\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>snlog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"131\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"132\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value res<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"133\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"134\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"135\"></td><td><pre>        root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"136\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"137\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"138\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"139\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"140\"></td><td><pre></pre></td></tr><tr><td data-num=\"141\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"i\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"142\"></td><td><pre></pre></td></tr><tr><td data-num=\"143\"></td><td><pre><span class=\"token comment\">// 读取 json 子结构</span></pre></td></tr><tr><td data-num=\"144\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"145\"></td><td><pre><span class=\"token comment\">//\t\tstring req=jData[\"command\"].asString().c_str();</span></pre></td></tr><tr><td data-num=\"146\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">// 转换成字符串</span></pre></td></tr><tr><td data-num=\"147\"></td><td><pre>        <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>rdata <span class=\"token operator\">=</span> <span class=\"token function\">collid</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"148\"></td><td><pre>        <span class=\"token comment\">// 写日志</span></pre></td></tr><tr><td data-num=\"149\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>idlog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"150\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>idlog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"151\"></td><td><pre></pre></td></tr><tr><td data-num=\"152\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"153\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value res<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"154\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"155\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"156\"></td><td><pre>        root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"157\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"158\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"159\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"160\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"161\"></td><td><pre></pre></td></tr><tr><td data-num=\"162\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"f\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"163\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"164\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">// 转换成字符串</span></pre></td></tr><tr><td data-num=\"165\"></td><td><pre>        <span class=\"token comment\">//char * req=(char *).asString().c_str();</span></pre></td></tr><tr><td data-num=\"166\"></td><td><pre>        <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>rdata <span class=\"token operator\">=</span> <span class=\"token function\">collfp</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"167\"></td><td><pre>        <span class=\"token comment\">// 写日志</span></pre></td></tr><tr><td data-num=\"168\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>fplog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"169\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>fplog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"170\"></td><td><pre></pre></td></tr><tr><td data-num=\"171\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"172\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value res<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"173\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"174\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"175\"></td><td><pre>        <span class=\"token comment\">//\troot.toStyledString();</span></pre></td></tr><tr><td data-num=\"176\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"177\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"178\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"179\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"180\"></td><td><pre></pre></td></tr><tr><td data-num=\"181\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"verify\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"182\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"183\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">// 转换成字符串</span></pre></td></tr><tr><td data-num=\"184\"></td><td><pre>        <span class=\"token comment\">// char * req=(char *)jData[\"req\"].asString().c_str();</span></pre></td></tr><tr><td data-num=\"185\"></td><td><pre>        <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>rdata <span class=\"token operator\">=</span> <span class=\"token function\">verify</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"186\"></td><td><pre></pre></td></tr><tr><td data-num=\"187\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value rtnData <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"188\"></td><td><pre>        string _rtnData <span class=\"token operator\">=</span> rtnData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"189\"></td><td><pre></pre></td></tr><tr><td data-num=\"190\"></td><td><pre>        <span class=\"token comment\">// 写日志</span></pre></td></tr><tr><td data-num=\"191\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>verifylog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"192\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>verifylog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"193\"></td><td><pre></pre></td></tr><tr><td data-num=\"194\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"195\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value res<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"196\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"197\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"198\"></td><td><pre>        root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"199\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"200\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"201\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"202\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"203\"></td><td><pre></pre></td></tr><tr><td data-num=\"204\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"delf\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"205\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"206\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">// 转换成字符串</span></pre></td></tr><tr><td data-num=\"207\"></td><td><pre>        <span class=\"token comment\">// char * req=(char *)jData[\"req\"].asString().c_str();</span></pre></td></tr><tr><td data-num=\"208\"></td><td><pre>        <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>rdata <span class=\"token operator\">=</span> <span class=\"token function\">delfp</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"209\"></td><td><pre>        <span class=\"token comment\">// 写日志</span></pre></td></tr><tr><td data-num=\"210\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>dellog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"211\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>dellog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"212\"></td><td><pre></pre></td></tr><tr><td data-num=\"213\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"214\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value res<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"215\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"216\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"217\"></td><td><pre>        root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"218\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"219\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"220\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"221\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"222\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"223\"></td><td><pre>        <span class=\"token keyword\">char</span> msg<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"command failure, exit\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"224\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>msg<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"225\"></td><td><pre>        <span class=\"token function\">exit</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"226\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"227\"></td><td><pre>    <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"exit program\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"228\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"229\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"230\"></td><td><pre></pre></td></tr><tr><td data-num=\"231\"></td><td><pre><span class=\"token comment\">// 读取标准输入的数据</span></pre></td></tr><tr><td data-num=\"232\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token function\">get_input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"233\"></td><td><pre>    <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 从接收字符串中前 4 个字节读取的数据长度</span></pre></td></tr><tr><td data-num=\"234\"></td><td><pre>    <span class=\"token keyword\">char</span> log<span class=\"token punctuation\">[</span>MAX_LEN<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 日志</span></pre></td></tr><tr><td data-num=\"235\"></td><td><pre>    <span class=\"token keyword\">char</span> log_len<span class=\"token punctuation\">[</span><span class=\"token number\">8</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 日值输出读取字符串的长度，临时值。</span></pre></td></tr><tr><td data-num=\"236\"></td><td><pre>    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 循环初始值</span></pre></td></tr><tr><td data-num=\"237\"></td><td><pre>    <span class=\"token keyword\">int</span> l<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"238\"></td><td><pre>    <span class=\"token comment\">// 读取数据流长度</span></pre></td></tr><tr><td data-num=\"239\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"240\"></td><td><pre>        <span class=\"token comment\">//l = char2hex(getchar());</span></pre></td></tr><tr><td data-num=\"241\"></td><td><pre>        l <span class=\"token operator\">=</span> <span class=\"token function\">getchar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"242\"></td><td><pre>        len <span class=\"token operator\">+=</span> l <span class=\"token operator\">&lt;&lt;</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">*</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"243\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"244\"></td><td><pre>    <span class=\"token comment\">// 失败返回</span></pre></td></tr><tr><td data-num=\"245\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>len <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"246\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"read error,len is 0\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"247\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"read error,len is 0\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"248\"></td><td><pre>        <span class=\"token function\">exit</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"249\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"250\"></td><td><pre></pre></td></tr><tr><td data-num=\"251\"></td><td><pre>    <span class=\"token function\">strcpy</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">,</span> <span class=\"token string\">\"read len is \"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"252\"></td><td><pre>    <span class=\"token function\">sprintf</span><span class=\"token punctuation\">(</span>log_len<span class=\"token punctuation\">,</span> <span class=\"token string\">\"%ld\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">long</span><span class=\"token punctuation\">)</span> len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"253\"></td><td><pre>    <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">,</span> log_len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"254\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"255\"></td><td><pre>    <span class=\"token comment\">// 读取数据流内容</span></pre></td></tr><tr><td data-num=\"256\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">fgets</span><span class=\"token punctuation\">(</span>g_input<span class=\"token punctuation\">,</span> len <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token constant\">stdin</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">!=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"257\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>g_input<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"258\"></td><td><pre>        <span class=\"token keyword\">return</span> g_input<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"259\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"260\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"read content error\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"261\"></td><td><pre>    <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"read content error\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"262\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"263\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"264\"></td><td><pre></pre></td></tr><tr><td data-num=\"265\"></td><td><pre><span class=\"token comment\">// 输出</span></pre></td></tr><tr><td data-num=\"266\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>message<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"267\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将要输出的字符串的长度</span></pre></td></tr><tr><td data-num=\"268\"></td><td><pre>    <span class=\"token keyword\">char</span> protocol_len<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 按照交互协调协议转换后，协议中的输出字符串长度</span></pre></td></tr><tr><td data-num=\"269\"></td><td><pre>    <span class=\"token keyword\">char</span> out_all<span class=\"token punctuation\">[</span><span class=\"token number\">1024</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 输出的所有字符串</span></pre></td></tr><tr><td data-num=\"270\"></td><td><pre>    <span class=\"token keyword\">char</span> log_len<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 日志中输出的字符串长度</span></pre></td></tr><tr><td data-num=\"271\"></td><td><pre>    <span class=\"token keyword\">char</span> log<span class=\"token punctuation\">[</span>MAX_LEN<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 日志内容</span></pre></td></tr><tr><td data-num=\"272\"></td><td><pre>    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"273\"></td><td><pre></pre></td></tr><tr><td data-num=\"274\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>message <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"275\"></td><td><pre>        <span class=\"token comment\">// 输出消息为空</span></pre></td></tr><tr><td data-num=\"276\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"out_write NULL\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"277\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"278\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"279\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"280\"></td><td><pre>    len <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"281\"></td><td><pre><span class=\"token comment\">//    printf(\"%zu\",len);</span></pre></td></tr><tr><td data-num=\"282\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>len <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"283\"></td><td><pre>        <span class=\"token comment\">// 长度为空</span></pre></td></tr><tr><td data-num=\"284\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"out_write len is 0\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"285\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"286\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"287\"></td><td><pre></pre></td></tr><tr><td data-num=\"288\"></td><td><pre>    <span class=\"token function\">strcpy</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">,</span> <span class=\"token string\">\"out_write content len is \"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"289\"></td><td><pre>    <span class=\"token function\">sprintf</span><span class=\"token punctuation\">(</span>log_len<span class=\"token punctuation\">,</span> <span class=\"token string\">\"%ld\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">long</span><span class=\"token punctuation\">)</span> len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"290\"></td><td><pre>    <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">,</span> log_len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"291\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"292\"></td><td><pre><span class=\"token comment\">/*</pre></td></tr><tr><td data-num=\"293\"></td><td><pre>    for(i = 0; i &lt; 4; i++)&#123;</pre></td></tr><tr><td data-num=\"294\"></td><td><pre>        protocol_len[i] = (char)((len >> (i * 8)) &amp; 0xFF);</pre></td></tr><tr><td data-num=\"295\"></td><td><pre>    &#125;</pre></td></tr><tr><td data-num=\"296\"></td><td><pre>    strcpy(out_all,protocol_len);</pre></td></tr><tr><td data-num=\"297\"></td><td><pre>    arr_cat(out_all,4,message, len);</pre></td></tr><tr><td data-num=\"298\"></td><td><pre>    fwrite(out_all, sizeof(char),  4+len,  stdout);</pre></td></tr><tr><td data-num=\"299\"></td><td><pre>*/</span></pre></td></tr><tr><td data-num=\"300\"></td><td><pre></pre></td></tr><tr><td data-num=\"301\"></td><td><pre>    <span class=\"token comment\">// We need to send the 4 bytes of length information</span></pre></td></tr><tr><td data-num=\"302\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"%c%c%c%c\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">(</span>len <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xff</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"303\"></td><td><pre>           <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"304\"></td><td><pre>           <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">>></span> <span class=\"token number\">16</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"305\"></td><td><pre>           <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">>></span> <span class=\"token number\">24</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"306\"></td><td><pre>    <span class=\"token comment\">// Now we can output our message</span></pre></td></tr><tr><td data-num=\"307\"></td><td><pre>    <span class=\"token function\">fwrite</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> len<span class=\"token punctuation\">,</span> <span class=\"token constant\">stdout</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"308\"></td><td><pre>    <span class=\"token comment\">//printf(\"%s\", message);</span></pre></td></tr><tr><td data-num=\"309\"></td><td><pre>    <span class=\"token function\">fflush</span><span class=\"token punctuation\">(</span><span class=\"token constant\">stdout</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"310\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"311\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"312\"></td><td><pre>    <span class=\"token comment\">// 刷新输出缓冲区，以确保消息立即被发送</span></pre></td></tr><tr><td data-num=\"313\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"314\"></td><td><pre></pre></td></tr><tr><td data-num=\"315\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>str<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"316\"></td><td><pre>    FILE <span class=\"token operator\">*</span>file <span class=\"token operator\">=</span> <span class=\"token function\">fopen</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"data.txt\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"a+\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"317\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>file <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"318\"></td><td><pre>        <span class=\"token comment\">// exit(1);</span></pre></td></tr><tr><td data-num=\"319\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"320\"></td><td><pre>    <span class=\"token comment\">//if(file.isope</span></pre></td></tr><tr><td data-num=\"321\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"322\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> wlen <span class=\"token operator\">=</span> <span class=\"token function\">fwrite</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> len<span class=\"token punctuation\">,</span> file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"323\"></td><td><pre>    <span class=\"token function\">fputc</span><span class=\"token punctuation\">(</span><span class=\"token char\">'\\n'</span><span class=\"token punctuation\">,</span> file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"324\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>len <span class=\"token operator\">!=</span> wlen<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"325\"></td><td><pre>        <span class=\"token comment\">//exit(1);</span></pre></td></tr><tr><td data-num=\"326\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"327\"></td><td><pre></pre></td></tr><tr><td data-num=\"328\"></td><td><pre>    <span class=\"token function\">fclose</span><span class=\"token punctuation\">(</span>file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"329\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"330\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"331\"></td><td><pre></pre></td></tr><tr><td data-num=\"332\"></td><td><pre><span class=\"token comment\">// 拼接数组</span></pre></td></tr><tr><td data-num=\"333\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">arr_cat</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> from<span class=\"token punctuation\">,</span> <span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>src<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"334\"></td><td><pre>    <span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"335\"></td><td><pre>    dest <span class=\"token operator\">=</span> dest <span class=\"token operator\">+</span> from<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"336\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">&lt;</span> len<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"337\"></td><td><pre>        <span class=\"token operator\">*</span>dest <span class=\"token operator\">=</span> <span class=\"token operator\">*</span>src<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"338\"></td><td><pre>        dest<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"339\"></td><td><pre>        src<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"340\"></td><td><pre>        i<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"341\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"342\"></td><td><pre>    <span class=\"token keyword\">return</span> i<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"343\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"344\"></td><td><pre></pre></td></tr><tr><td data-num=\"345\"></td><td><pre>string <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>string src<span class=\"token punctuation\">,</span> string sub<span class=\"token punctuation\">,</span> string dest<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"346\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"347\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> src<span class=\"token punctuation\">.</span><span class=\"token function\">length</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"348\"></td><td><pre>        <span class=\"token keyword\">int</span> idx <span class=\"token operator\">=</span> src<span class=\"token punctuation\">.</span><span class=\"token function\">find</span><span class=\"token punctuation\">(</span>sub<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"349\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>idx <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"350\"></td><td><pre>            <span class=\"token keyword\">return</span> src<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"351\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"352\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> slen <span class=\"token operator\">=</span> sub<span class=\"token punctuation\">.</span><span class=\"token function\">length</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"353\"></td><td><pre>        src <span class=\"token operator\">=</span> src<span class=\"token punctuation\">.</span><span class=\"token function\">replace</span><span class=\"token punctuation\">(</span>idx<span class=\"token punctuation\">,</span> slen<span class=\"token punctuation\">,</span> dest<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"354\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"355\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"356\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"357\"></td><td><pre></pre></td></tr><tr><td data-num=\"358\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">handle_EOF</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>src<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"359\"></td><td><pre>    <span class=\"token keyword\">char</span> arr<span class=\"token punctuation\">[</span>MAX_LEN<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"360\"></td><td><pre>    <span class=\"token keyword\">int</span> idx <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"361\"></td><td><pre>    <span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"362\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">&lt;</span> MAX_LEN<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"363\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>src <span class=\"token operator\">!=</span> <span class=\"token char\">'\\0'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"364\"></td><td><pre>            arr<span class=\"token punctuation\">[</span>idx<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token operator\">*</span>src<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"365\"></td><td><pre>            idx<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"366\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"367\"></td><td><pre>        src<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"368\"></td><td><pre>        i<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"369\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"370\"></td><td><pre>    arr<span class=\"token punctuation\">[</span>idx <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token char\">'\\0'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"371\"></td><td><pre>    dest <span class=\"token operator\">=</span> arr<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"372\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"373\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ul>\n<li>这段代码看起来是一个用于与 USB key 进行通信的程序。我来解释一下每个方法的作用和整体的功能：</li>\n</ul>\n<ol>\n<li>get_input (): 这个函数负责从标准输入读取数据。它首先读取前四个字节以确定接收到的数据的长度，然后根据长度读取实际的数据内容。</li>\n<li>out_write (const char *message): 这个函数用于向标准输出写入数据。它将输入的消息长度转换为四个字节的格式，并将消息内容输出到标准输出流中。</li>\n<li>write_log_file (const char *str): 这个函数用于将字符串写入日志文件 &quot;data.txt&quot; 中。它打开一个文件句柄，将字符串写入文件中，并在每个字符串后添加换行符。</li>\n<li>arr_cat (char *dest, unsigned int from, const char *src, unsigned int len): 这个函数用于将源数组的内容连接到目标数组的末尾。它接受目标数组的指针、起始位置、源数组的指针以及源数组的长度作为参数，并将源数组的内容复制到目标数组的末尾。</li>\n<li>replaceChar (string src, string sub, string dest): 这个函数用于在字符串中替换子字符串。它接受源字符串、要替换的子字符串以及替换后的字符串作为参数，并在源字符串中将所有匹配的子字符串替换为指定的字符串。</li>\n<li>handle_EOF (char *dest, char *src): 这个函数似乎有些问题，因为它试图将源数组的内容复制到目标数组中。然而，它使用了一个局部数组 arr，并将其指针赋给了目标数组，这意味着在函数返回后，arr 将超出作用域并丢失其内容。因此，这个函数可能无法正确工作。</li>\n</ol>\n<ul>\n<li>整体来说，这段代码是一个基于命令的 USB key 通信程序。它从标准输入读取命令，解析命令并调用相应的函数与 USB key 进行通信，然后将通信结果写入标准输出，并将相关信息记录在日志文件中。</li>\n</ul>\n<h3 id=\"整理后的代码\"><a class=\"anchor\" href=\"#整理后的代码\">#</a> 整理后的代码</h3>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"stdafx.h\"</span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"windows.h\"</span></span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdio.h></span></span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;fcntl.h></span></span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;io.h></span></span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;string.h></span></span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;json/json.h></span></span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token keyword\">using</span> <span class=\"token keyword\">namespace</span> std<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre></pre></td></tr><tr><td data-num=\"10\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">MAX_LEN</span> <span class=\"token expression\"><span class=\"token number\">4096</span></span></span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> CONNECTPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> COLLSNPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> COLLIDPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> COLLFPRPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> DELFPPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> VERIFYPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre></pre></td></tr><tr><td data-num=\"19\"></td><td><pre><span class=\"token comment\">// Function prototypes</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token function\">get_input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">arr_cat</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> from<span class=\"token punctuation\">,</span> <span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> src<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>string <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>string src<span class=\"token punctuation\">,</span> string sub<span class=\"token punctuation\">,</span> string dest<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">handle_EOF</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> src<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre><span class=\"token comment\">// Global variables</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre><span class=\"token keyword\">char</span> g_input<span class=\"token punctuation\">[</span>MAX_LEN<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>HINSTANCE WLinst<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre></pre></td></tr><tr><td data-num=\"31\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    <span class=\"token comment\">// Variables for logging</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token keyword\">char</span> reclog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"Received command: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    <span class=\"token keyword\">char</span> commlog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"Parsed command: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    <span class=\"token keyword\">char</span> castlog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"Casted command: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>    <span class=\"token keyword\">char</span> connlog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"USB key connect response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    <span class=\"token keyword\">char</span> snlog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"USB key SN response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    <span class=\"token keyword\">char</span> idlog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"USB key ID number response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>    <span class=\"token keyword\">char</span> fplog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"USB key fingerprint response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>    <span class=\"token keyword\">char</span> dellog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"USB key delete fingerprint response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>    <span class=\"token keyword\">char</span> verifylog<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"USB key verify response: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>    <span class=\"token comment\">// Set input/output mode to binary</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>    <span class=\"token keyword\">int</span> result <span class=\"token operator\">=</span> <span class=\"token function\">_setmode</span><span class=\"token punctuation\">(</span><span class=\"token function\">_fileno</span><span class=\"token punctuation\">(</span><span class=\"token constant\">stdin</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> _O_BINARY<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>result <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Cannot set mode\\n\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>    <span class=\"token comment\">// Load library</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>    WLinst <span class=\"token operator\">=</span> <span class=\"token function\">LoadLibrary</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"natcud.dll\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WLinst <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>    <span class=\"token comment\">// Function pointers</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>    CONNECTPROC ffconnect <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>CONNECTPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"ffconnect\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>    COLLSNPROC collsn <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLSNPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collTerminalSN\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>    COLLIDPROC collid <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLIDPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collIdNumber\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>    COLLFPRPROC collfp <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLFPRPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collFingerPrint\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>    DELFPPROC delfp <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>DELFPPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"deleteFingerprints\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>    VERIFYPROC verify <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>VERIFYPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"verify\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>    <span class=\"token comment\">// Get input</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>    <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> tmpcomm <span class=\"token operator\">=</span> <span class=\"token function\">get_input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>    <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>reclog<span class=\"token punctuation\">,</span> tmpcomm<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>reclog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>    <span class=\"token comment\">// Parse command</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>    std<span class=\"token double-colon punctuation\">::</span>string <span class=\"token function\">command</span><span class=\"token punctuation\">(</span>tmpcomm<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>    <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>castlog<span class=\"token punctuation\">,</span> command<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>castlog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre></pre></td></tr><tr><td data-num=\"71\"></td><td><pre>    <span class=\"token comment\">// Parse JSON command</span></pre></td></tr><tr><td data-num=\"72\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>command<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>    string comname <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre>    <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>commlog<span class=\"token punctuation\">,</span> comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre></pre></td></tr><tr><td data-num=\"79\"></td><td><pre>    <span class=\"token comment\">// Execute command based on its type</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"connect\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">ffconnect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"82\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>connlog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>connlog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"84\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"85\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"86\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"87\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"88\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"89\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"90\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"91\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"sn\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"92\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">collsn</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"93\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>snlog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"94\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>snlog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"95\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"96\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"97\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"98\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"99\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"100\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"101\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"102\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"i\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"103\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"104\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"105\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">collid</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"106\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>idlog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"107\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>idlog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"108\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"109\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"110\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"111\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"112\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"113\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"114\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"115\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"f\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"116\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"117\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"118\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">collfp</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"119\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>fplog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"120\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>fplog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"121\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"122\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"123\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"124\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"125\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"126\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"127\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"128\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"verify\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"129\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"130\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"131\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">verify</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"132\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>verifylog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"133\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>verifylog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"134\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"135\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"136\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"137\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"138\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"139\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"140\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"141\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"delf\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"142\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"143\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"144\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">delfp</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"145\"></td><td><pre>        <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>dellog<span class=\"token punctuation\">,</span> rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"146\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>dellog<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"147\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"148\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> comname<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"149\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"res\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rdata<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"150\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>string rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"151\"></td><td><pre>        string rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtnOut<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"152\"></td><td><pre>        rtn <span class=\"token operator\">=</span> <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"153\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rtn<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"154\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"155\"></td><td><pre>        <span class=\"token keyword\">char</span> msg<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"Command failure, exiting\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"156\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>msg<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"157\"></td><td><pre>        <span class=\"token function\">exit</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"158\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"159\"></td><td><pre></pre></td></tr><tr><td data-num=\"160\"></td><td><pre>    <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Exit program\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"161\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"162\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"163\"></td><td><pre></pre></td></tr><tr><td data-num=\"164\"></td><td><pre><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token function\">get_input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"165\"></td><td><pre>    <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"166\"></td><td><pre>    <span class=\"token keyword\">char</span> log<span class=\"token punctuation\">[</span>MAX_LEN<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"167\"></td><td><pre>    <span class=\"token keyword\">char</span> log_len<span class=\"token punctuation\">[</span><span class=\"token number\">8</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"168\"></td><td><pre>    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"169\"></td><td><pre>    <span class=\"token keyword\">int</span> l<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"170\"></td><td><pre>    <span class=\"token comment\">// Read data stream length</span></pre></td></tr><tr><td data-num=\"171\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"172\"></td><td><pre>        l <span class=\"token operator\">=</span> <span class=\"token function\">getchar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"173\"></td><td><pre>        len <span class=\"token operator\">+=</span> l <span class=\"token operator\">&lt;&lt;</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">*</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"174\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"175\"></td><td><pre>    <span class=\"token comment\">// Fail if length is 0</span></pre></td></tr><tr><td data-num=\"176\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>len <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"177\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Read error, length is 0\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"178\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Read error, length is 0\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"179\"></td><td><pre>        <span class=\"token function\">exit</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"180\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"181\"></td><td><pre>    <span class=\"token function\">strcpy</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">,</span> <span class=\"token string\">\"Read length is \"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"182\"></td><td><pre>    <span class=\"token function\">sprintf</span><span class=\"token punctuation\">(</span>log_len<span class=\"token punctuation\">,</span> <span class=\"token string\">\"%ld\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">long</span><span class=\"token punctuation\">)</span>len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"183\"></td><td><pre>    <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">,</span> log_len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"184\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"185\"></td><td><pre>    <span class=\"token comment\">// Read data stream content</span></pre></td></tr><tr><td data-num=\"186\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">fgets</span><span class=\"token punctuation\">(</span>g_input<span class=\"token punctuation\">,</span> len <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token constant\">stdin</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">!=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"187\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>g_input<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"188\"></td><td><pre>        <span class=\"token keyword\">return</span> g_input<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"189\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"190\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Read content error\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"191\"></td><td><pre>    <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Read content error\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"192\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"193\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"194\"></td><td><pre></pre></td></tr><tr><td data-num=\"195\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> message<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"196\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"197\"></td><td><pre>    <span class=\"token keyword\">char</span> protocol_len<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"198\"></td><td><pre>    <span class=\"token keyword\">char</span> out_all<span class=\"token punctuation\">[</span><span class=\"token number\">1024</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"199\"></td><td><pre>    <span class=\"token keyword\">char</span> log_len<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"200\"></td><td><pre>    <span class=\"token keyword\">char</span> log<span class=\"token punctuation\">[</span>MAX_LEN<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"201\"></td><td><pre>    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"202\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>message <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"203\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"out_write NULL\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"204\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"205\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"206\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"207\"></td><td><pre>    len <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"208\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>len <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"209\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"out_write length is 0\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"210\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"211\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"212\"></td><td><pre>    <span class=\"token function\">strcpy</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">,</span> <span class=\"token string\">\"out_write content length is \"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"213\"></td><td><pre>    <span class=\"token function\">sprintf</span><span class=\"token punctuation\">(</span>log_len<span class=\"token punctuation\">,</span> <span class=\"token string\">\"%ld\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">long</span><span class=\"token punctuation\">)</span>len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"214\"></td><td><pre>    <span class=\"token function\">strcat</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">,</span> log_len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"215\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>log<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"216\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"%c%c%c%c\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xff</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"217\"></td><td><pre>        <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"218\"></td><td><pre>        <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">>></span> <span class=\"token number\">16</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"219\"></td><td><pre>        <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">>></span> <span class=\"token number\">24</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"220\"></td><td><pre>    <span class=\"token function\">fwrite</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> len<span class=\"token punctuation\">,</span> <span class=\"token constant\">stdout</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"221\"></td><td><pre>    <span class=\"token function\">fflush</span><span class=\"token punctuation\">(</span><span class=\"token constant\">stdout</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"222\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"223\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"224\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"225\"></td><td><pre></pre></td></tr><tr><td data-num=\"226\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> str<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"227\"></td><td><pre>    FILE<span class=\"token operator\">*</span> file <span class=\"token operator\">=</span> <span class=\"token function\">fopen</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"data.txt\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"a+\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"228\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>file <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"229\"></td><td><pre>        <span class=\"token comment\">// exit(1);</span></pre></td></tr><tr><td data-num=\"230\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"231\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"232\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> wlen <span class=\"token operator\">=</span> <span class=\"token function\">fwrite</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> len<span class=\"token punctuation\">,</span> file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"233\"></td><td><pre>    <span class=\"token function\">fputc</span><span class=\"token punctuation\">(</span><span class=\"token char\">'\\n'</span><span class=\"token punctuation\">,</span> file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"234\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>len <span class=\"token operator\">!=</span> wlen<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"235\"></td><td><pre>        <span class=\"token comment\">//exit(1);</span></pre></td></tr><tr><td data-num=\"236\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"237\"></td><td><pre>    <span class=\"token function\">fclose</span><span class=\"token punctuation\">(</span>file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"238\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"239\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"240\"></td><td><pre></pre></td></tr><tr><td data-num=\"241\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">arr_cat</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> from<span class=\"token punctuation\">,</span> <span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> src<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"242\"></td><td><pre>    <span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"243\"></td><td><pre>    dest <span class=\"token operator\">=</span> dest <span class=\"token operator\">+</span> from<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"244\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">&lt;</span> len<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"245\"></td><td><pre>        <span class=\"token operator\">*</span>dest <span class=\"token operator\">=</span> <span class=\"token operator\">*</span>src<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"246\"></td><td><pre>        dest<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"247\"></td><td><pre>        src<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"248\"></td><td><pre>        i<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"249\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"250\"></td><td><pre>    <span class=\"token keyword\">return</span> i<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"251\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"252\"></td><td><pre></pre></td></tr><tr><td data-num=\"253\"></td><td><pre>string <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>string src<span class=\"token punctuation\">,</span> string sub<span class=\"token punctuation\">,</span> string dest<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"254\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"255\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> src<span class=\"token punctuation\">.</span><span class=\"token function\">length</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"256\"></td><td><pre>        <span class=\"token keyword\">int</span> idx <span class=\"token operator\">=</span> src<span class=\"token punctuation\">.</span><span class=\"token function\">find</span><span class=\"token punctuation\">(</span>sub<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"257\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>idx <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"258\"></td><td><pre>            <span class=\"token keyword\">return</span> src<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"259\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"260\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> slen <span class=\"token operator\">=</span> sub<span class=\"token punctuation\">.</span><span class=\"token function\">length</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"261\"></td><td><pre>        src <span class=\"token operator\">=</span> src<span class=\"token punctuation\">.</span><span class=\"token function\">replace</span><span class=\"token punctuation\">(</span>idx<span class=\"token punctuation\">,</span> slen<span class=\"token punctuation\">,</span> dest<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"262\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"263\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"264\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"265\"></td><td><pre></pre></td></tr><tr><td data-num=\"266\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">handle_EOF</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> src<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"267\"></td><td><pre>    <span class=\"token keyword\">char</span> arr<span class=\"token punctuation\">[</span>MAX_LEN<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"268\"></td><td><pre>    <span class=\"token keyword\">int</span> idx <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"269\"></td><td><pre>    <span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"270\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">&lt;</span> MAX_LEN<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"271\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>src <span class=\"token operator\">!=</span> <span class=\"token char\">'\\0'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"272\"></td><td><pre>            arr<span class=\"token punctuation\">[</span>idx<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token operator\">*</span>src<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"273\"></td><td><pre>            idx<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"274\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"275\"></td><td><pre>        src<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"276\"></td><td><pre>        i<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"277\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"278\"></td><td><pre>    arr<span class=\"token punctuation\">[</span>idx <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token char\">'\\0'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"279\"></td><td><pre>    dest <span class=\"token operator\">=</span> arr<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"280\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"281\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ul>\n<li>这段代码是一个与 USB key 进行通信的程序，主要负责从标准输入接收命令，解析命令并调用相应的函数与 USB key 进行交互，然后将结果输出到标准输出并记录日志。以下是每个方法的作用以及可能的优化点：</li>\n</ul>\n<ol>\n<li>get_input (): 该方法用于从标准输入读取数据。它首先读取前四个字节以确定接收到的数据的长度，然后根据长度读取实际的数据内容。优化点：目前没有看到明显的优化点，但可以考虑增加错误处理机制，以应对无效输入或读取错误。</li>\n<li>out_write (const char* message): 该方法用于向标准输出写入数据。它将输入的消息长度转换为四个字节的格式，并将消息内容输出到标准输出流中。优化点：可以考虑使用更有效率的方式将消息长度转换为四个字节的格式，例如使用位运算代替 sprintf。</li>\n<li>write_log_file (const char* str): 该方法用于将字符串写入日志文件 &quot;data.txt&quot; 中。它打开一个文件句柄，将字符串写入文件中，并在每个字符串后添加换行符。优化点：可以考虑批量写入日志，而不是每次写入都打开和关闭文件句柄，以提高效率。</li>\n<li>arr_cat (char* dest, unsigned int from, const char* src, unsigned int len): 该方法用于将源数组的内容连接到目标数组的末尾。它接受目标数组的指针、起始位置、源数组的指针以及源数组的长度作为参数，并将源数组的内容复制到目标数组的末尾。优化点：目前没有明显的优化点，因为这个函数的作用比较简单，已经比较高效。</li>\n<li>replaceChar (string src, string sub, string dest): 该方法用于在字符串中替换子字符串。它接受源字符串、要替换的子字符串以及替换后的字符串作为参数，并在源字符串中将所有匹配的子字符串替换为指定的字符串。优化点：目前没有明显的优化点，但可以考虑使用更高效的字符串替换算法，例如 Boyer-Moore 算法。</li>\n<li>handle_EOF (char* dest, char* src): 这个方法似乎有问题，因为它试图将源数组的内容复制到目标数组中。然而，它使用了一个局部数组 arr，并将其指针赋给了目标数组，这意味着在函数返回后，arr 将超出作用域并丢失其内容。因此，这个方法需要重写以正确工作。</li>\n</ol>\n<ul>\n<li>至于优化的建议，主要集中在文件操作、内存管理和字符串处理等方面。可以通过减少文件操作次数、使用更有效的内存分配和释放方式以及优化字符串处理算法来提高程序的性能和健壮性。</li>\n</ul>\n<h4 id=\"精简之后的代码\"><a class=\"anchor\" href=\"#精简之后的代码\">#</a> 精简之后的代码</h4>\n<ul>\n<li>这个版本将日志记录的部分移除，只保留了与 USB key 通信相关的功能。</li>\n</ul>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"stdafx.h\"</span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"windows.h\"</span></span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdio.h></span></span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;fcntl.h></span></span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;io.h></span></span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;json/json.h></span></span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">using</span> <span class=\"token keyword\">namespace</span> std<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre></pre></td></tr><tr><td data-num=\"9\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">MAX_LEN</span> <span class=\"token expression\"><span class=\"token number\">4096</span></span></span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> CONNECTPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> COLLSNPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> COLLIDPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> COLLFPRPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> DELFPPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> VERIFYPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre></pre></td></tr><tr><td data-num=\"18\"></td><td><pre><span class=\"token keyword\">char</span> g_input<span class=\"token punctuation\">[</span>MAX_LEN<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>HINSTANCE WLinst<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre></pre></td></tr><tr><td data-num=\"21\"></td><td><pre><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token function\">get_input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">arr_cat</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> from<span class=\"token punctuation\">,</span> <span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> src<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>string <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>string src<span class=\"token punctuation\">,</span> string sub<span class=\"token punctuation\">,</span> string dest<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">handle_EOF</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> src<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token keyword\">int</span> result <span class=\"token operator\">=</span> <span class=\"token function\">_setmode</span><span class=\"token punctuation\">(</span><span class=\"token function\">_fileno</span><span class=\"token punctuation\">(</span><span class=\"token constant\">stdin</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> _O_BINARY<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>result <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Cannot set mode\\n\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    WLinst <span class=\"token operator\">=</span> <span class=\"token function\">LoadLibrary</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"natcud.dll\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WLinst <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>    CONNECTPROC ffconnect <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>CONNECTPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"ffconnect\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    COLLSNPROC collsn <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLSNPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collTerminalSN\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    COLLIDPROC collid <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLIDPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collIdNumber\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>    COLLFPRPROC collfp <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLFPRPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collFingerPrint\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>    DELFPPROC delfp <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>DELFPPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"deleteFingerprints\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>    VERIFYPROC verify <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>VERIFYPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>WLinst<span class=\"token punctuation\">,</span> <span class=\"token string\">\"verify\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>    <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> tmpcomm <span class=\"token operator\">=</span> <span class=\"token function\">get_input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>tmpcomm<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>    string comname <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"connect\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">ffconnect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"sn\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">collsn</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"i\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">collid</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"f\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">collfp</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"verify\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">verify</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"71\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>comname<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"delf\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"72\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value reqData <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre>        string req <span class=\"token operator\">=</span> reqData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> rdata <span class=\"token operator\">=</span> <span class=\"token function\">delfp</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>req<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>        <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span>rdata<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre>        <span class=\"token function\">exit</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"79\"></td><td><pre></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>    <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Exit program\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"82\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre></pre></td></tr><tr><td data-num=\"84\"></td><td><pre><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token function\">get_input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"85\"></td><td><pre>    <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"86\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"87\"></td><td><pre>        <span class=\"token keyword\">int</span> l <span class=\"token operator\">=</span> <span class=\"token function\">getchar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"88\"></td><td><pre>        len <span class=\"token operator\">+=</span> l <span class=\"token operator\">&lt;&lt;</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">*</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"89\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"90\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>len <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"91\"></td><td><pre>        <span class=\"token function\">exit</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"92\"></td><td><pre></pre></td></tr><tr><td data-num=\"93\"></td><td><pre>    <span class=\"token function\">fgets</span><span class=\"token punctuation\">(</span>g_input<span class=\"token punctuation\">,</span> len <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token constant\">stdin</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"94\"></td><td><pre>    <span class=\"token keyword\">return</span> g_input<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"95\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"96\"></td><td><pre></pre></td></tr><tr><td data-num=\"97\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">out_write</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> message<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"98\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"99\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"%c%c%c%c\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xff</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"100\"></td><td><pre>        <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"101\"></td><td><pre>        <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">>></span> <span class=\"token number\">16</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"102\"></td><td><pre>        <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">>></span> <span class=\"token number\">24</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"103\"></td><td><pre>    <span class=\"token function\">fwrite</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> len<span class=\"token punctuation\">,</span> <span class=\"token constant\">stdout</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"104\"></td><td><pre>    <span class=\"token function\">fflush</span><span class=\"token punctuation\">(</span><span class=\"token constant\">stdout</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"105\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"106\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"107\"></td><td><pre></pre></td></tr><tr><td data-num=\"108\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">arr_cat</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> from<span class=\"token punctuation\">,</span> <span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> src<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"109\"></td><td><pre>    <span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"110\"></td><td><pre>    dest <span class=\"token operator\">=</span> dest <span class=\"token operator\">+</span> from<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"111\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">&lt;</span> len<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"112\"></td><td><pre>        <span class=\"token operator\">*</span>dest <span class=\"token operator\">=</span> <span class=\"token operator\">*</span>src<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"113\"></td><td><pre>        dest<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"114\"></td><td><pre>        src<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"115\"></td><td><pre>        i<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"116\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"117\"></td><td><pre>    <span class=\"token keyword\">return</span> i<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"118\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"119\"></td><td><pre></pre></td></tr><tr><td data-num=\"120\"></td><td><pre>string <span class=\"token function\">replaceChar</span><span class=\"token punctuation\">(</span>string src<span class=\"token punctuation\">,</span> string sub<span class=\"token punctuation\">,</span> string dest<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"121\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"122\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> src<span class=\"token punctuation\">.</span><span class=\"token function\">length</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"123\"></td><td><pre>        <span class=\"token keyword\">int</span> idx <span class=\"token operator\">=</span> src<span class=\"token punctuation\">.</span><span class=\"token function\">find</span><span class=\"token punctuation\">(</span>sub<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"124\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>idx <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"125\"></td><td><pre>            <span class=\"token keyword\">return</span> src<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"126\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"127\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> slen <span class=\"token operator\">=</span> sub<span class=\"token punctuation\">.</span><span class=\"token function\">length</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"128\"></td><td><pre>        src <span class=\"token operator\">=</span> src<span class=\"token punctuation\">.</span><span class=\"token function\">replace</span><span class=\"token punctuation\">(</span>idx<span class=\"token punctuation\">,</span> slen<span class=\"token punctuation\">,</span> dest<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"129\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"130\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"131\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"132\"></td><td><pre></pre></td></tr><tr><td data-num=\"133\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">handle_EOF</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> dest<span class=\"token punctuation\">,</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> src<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"134\"></td><td><pre>    <span class=\"token keyword\">char</span> arr<span class=\"token punctuation\">[</span>MAX_LEN<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"135\"></td><td><pre>    <span class=\"token keyword\">int</span> idx <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"136\"></td><td><pre>    <span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"137\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">&lt;</span> MAX_LEN<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"138\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>src <span class=\"token operator\">!=</span> <span class=\"token char\">'\\0'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"139\"></td><td><pre>            arr<span class=\"token punctuation\">[</span>idx<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token operator\">*</span>src<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"140\"></td><td><pre>            idx<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"141\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"142\"></td><td><pre>        src<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"143\"></td><td><pre>        i<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"144\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"145\"></td><td><pre>    arr<span class=\"token punctuation\">[</span>idx <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token char\">'\\0'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"146\"></td><td><pre>    dest <span class=\"token operator\">=</span> arr<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"147\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"148\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ul>\n<li>这段代码是一个简单的与外部库进行交互的程序，它通过标准输入接收命令，解析命令后调用外部库的相应函数，并将结果输出到标准输出。以下是每个方法的作用以及可能的优化点：</li>\n</ul>\n<ol>\n<li>get_input (): 该方法用于从标准输入读取数据。它首先读取前四个字节以确定接收到的数据的长度，然后根据长度读取实际的数据内容。优化点：可以增加错误处理机制，以应对无效输入或读取错误。</li>\n<li>out_write (const char* message): 该方法用于向标准输出写入数据。它将输入的消息长度转换为四个字节的格式，并将消息内容输出到标准输出流中。优化点：可以考虑使用更有效率的方式将消息长度转换为四个字节的格式，例如使用位运算代替 sprintf。</li>\n<li>arr_cat (char* dest, unsigned int from, const char* src, unsigned int len): 该方法用于将源数组的内容连接到目标数组的末尾。优化点：目前没有明显的优化点，因为这个函数的作用比较简单，已经比较高效。</li>\n<li>replaceChar (string src, string sub, string dest): 该方法用于在字符串中替换子字符串。优化点：目前没有明显的优化点，但可以考虑使用更高效的字符串替换算法，例如 Boyer-Moore 算法。</li>\n<li>handle_EOF (char* dest, char* src): 该方法似乎有问题，因为它试图将源数组的内容复制到目标数组中。然而，它使用了一个局部数组 arr，并将其指针赋给了目标数组，这意味着在函数返回后，arr 将超出作用域并丢失其内容。因此，这个方法需要重写以正确工作。</li>\n</ol>\n<ul>\n<li>针对这段代码的改进方向：</li>\n</ul>\n<ol>\n<li>错误处理：增加对输入数据的错误处理，例如长度为零或无效数据。</li>\n<li>内存管理：检查所有的内存分配和释放，确保没有内存泄漏或悬空指针。</li>\n<li>效率优化：尽可能减少文件操作次数，例如批量写入日志文件，以及优化字符串处理算法的性能。</li>\n<li>代码清晰度：提高代码的可读性和可维护性，例如使用更有意义的变量名和添加注释来解释代码的功能和逻辑。</li>\n</ol>\n<ul>\n<li>对于一个新手来说，可以逐步改进代码，首先着重处理错误情况，然后关注内存管理和效率优化，最后提高代码的可读性和清晰度。通过逐步改进，新手可以更好地理解代码，并逐渐掌握更高级的优化技巧和编程实践。</li>\n</ul>\n<h4 id=\"提高代码清晰度\"><a class=\"anchor\" href=\"#提高代码清晰度\">#</a> 提高代码清晰度</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"stdafx.h\"</span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"windows.h\"</span></span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdio.h></span></span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;fcntl.h></span></span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;io.h></span></span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;json/json.h></span></span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">using</span> <span class=\"token keyword\">namespace</span> std<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre></pre></td></tr><tr><td data-num=\"9\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">MAX_INPUT_LEN</span> <span class=\"token expression\"><span class=\"token number\">4096</span></span></span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre><span class=\"token comment\">// Function pointers for external library functions</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> CONNECTPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> COLLSNPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> COLLIDPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> COLLFPRPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> DELFPPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span>WINAPI<span class=\"token operator\">*</span> VERIFYPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre></pre></td></tr><tr><td data-num=\"19\"></td><td><pre><span class=\"token comment\">// Global variables</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre><span class=\"token keyword\">char</span> g_input<span class=\"token punctuation\">[</span>MAX_INPUT_LEN<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>HINSTANCE libraryInstance<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token comment\">// Function prototypes</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token function\">getInput</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">writeToOutput</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token comment\">// Set input mode to binary</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token keyword\">int</span> result <span class=\"token operator\">=</span> <span class=\"token function\">_setmode</span><span class=\"token punctuation\">(</span><span class=\"token function\">_fileno</span><span class=\"token punctuation\">(</span><span class=\"token constant\">stdin</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> _O_BINARY<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>result <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>        <span class=\"token function\">writeToOutput</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Cannot set input mode\\n\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token comment\">// Load library</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    libraryInstance <span class=\"token operator\">=</span> <span class=\"token function\">LoadLibrary</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"natcud.dll\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>libraryInstance <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    <span class=\"token comment\">// Function pointers for library functions</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>    CONNECTPROC connectFunction <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>CONNECTPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>libraryInstance<span class=\"token punctuation\">,</span> <span class=\"token string\">\"ffconnect\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>    COLLSNPROC collsnFunction <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLSNPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>libraryInstance<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collTerminalSN\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>    COLLIDPROC collidFunction <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLIDPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>libraryInstance<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collIdNumber\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>    COLLFPRPROC collfpFunction <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>COLLFPRPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>libraryInstance<span class=\"token punctuation\">,</span> <span class=\"token string\">\"collFingerPrint\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>    DELFPPROC delfpFunction <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>DELFPPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>libraryInstance<span class=\"token punctuation\">,</span> <span class=\"token string\">\"deleteFingerprints\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>    VERIFYPROC verifyFunction <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>VERIFYPROC<span class=\"token punctuation\">)</span><span class=\"token function\">GetProcAddress</span><span class=\"token punctuation\">(</span>libraryInstance<span class=\"token punctuation\">,</span> <span class=\"token string\">\"verify\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>    <span class=\"token comment\">// Get input from stdin</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>    <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> receivedInput <span class=\"token operator\">=</span> <span class=\"token function\">getInput</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>    <span class=\"token comment\">// Parse JSON input</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jsonData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader jsonReader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>    jsonReader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>receivedInput<span class=\"token punctuation\">,</span> jsonData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>    string commandName <span class=\"token operator\">=</span> jsonData<span class=\"token punctuation\">[</span><span class=\"token string\">\"cmd\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>    <span class=\"token comment\">// Execute command based on its type</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>commandName<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"connect\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> responseData <span class=\"token operator\">=</span> <span class=\"token function\">connectFunction</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>        <span class=\"token function\">writeToOutput</span><span class=\"token punctuation\">(</span>responseData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>commandName<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"sn\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> responseData <span class=\"token operator\">=</span> <span class=\"token function\">collsnFunction</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>        <span class=\"token function\">writeToOutput</span><span class=\"token punctuation\">(</span>responseData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>commandName<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"i\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value requestData <span class=\"token operator\">=</span> jsonData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>        string request <span class=\"token operator\">=</span> requestData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> responseData <span class=\"token operator\">=</span> <span class=\"token function\">collidFunction</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>request<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>        <span class=\"token function\">writeToOutput</span><span class=\"token punctuation\">(</span>responseData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>commandName<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"f\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value requestData <span class=\"token operator\">=</span> jsonData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>        string request <span class=\"token operator\">=</span> requestData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> responseData <span class=\"token operator\">=</span> <span class=\"token function\">collfpFunction</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>request<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"71\"></td><td><pre>        <span class=\"token function\">writeToOutput</span><span class=\"token punctuation\">(</span>responseData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"72\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>commandName<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"verify\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value requestData <span class=\"token operator\">=</span> jsonData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre>        string request <span class=\"token operator\">=</span> requestData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> responseData <span class=\"token operator\">=</span> <span class=\"token function\">verifyFunction</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>request<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre>        <span class=\"token function\">writeToOutput</span><span class=\"token punctuation\">(</span>responseData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">stricmp</span><span class=\"token punctuation\">(</span>commandName<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"delf\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre>        Json<span class=\"token double-colon punctuation\">::</span>Value requestData <span class=\"token operator\">=</span> jsonData<span class=\"token punctuation\">[</span><span class=\"token string\">\"req\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"79\"></td><td><pre>        string request <span class=\"token operator\">=</span> requestData<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>        <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> responseData <span class=\"token operator\">=</span> <span class=\"token function\">delfpFunction</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>request<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre>        <span class=\"token function\">writeToOutput</span><span class=\"token punctuation\">(</span>responseData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"82\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre>        <span class=\"token comment\">// Unknown command</span></pre></td></tr><tr><td data-num=\"84\"></td><td><pre>        <span class=\"token function\">exit</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"85\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"86\"></td><td><pre></pre></td></tr><tr><td data-num=\"87\"></td><td><pre>    <span class=\"token comment\">// Inform about program exit</span></pre></td></tr><tr><td data-num=\"88\"></td><td><pre>    <span class=\"token function\">writeToOutput</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Exit program\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"89\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"90\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"91\"></td><td><pre></pre></td></tr><tr><td data-num=\"92\"></td><td><pre><span class=\"token comment\">// Read input from stdin</span></pre></td></tr><tr><td data-num=\"93\"></td><td><pre><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> <span class=\"token function\">getInput</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"94\"></td><td><pre>    <span class=\"token keyword\">int</span> inputLength <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"95\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"96\"></td><td><pre>        <span class=\"token keyword\">int</span> byte <span class=\"token operator\">=</span> <span class=\"token function\">getchar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"97\"></td><td><pre>        inputLength <span class=\"token operator\">+=</span> byte <span class=\"token operator\">&lt;&lt;</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">*</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"98\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"99\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>inputLength <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"100\"></td><td><pre>        <span class=\"token function\">exit</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"101\"></td><td><pre></pre></td></tr><tr><td data-num=\"102\"></td><td><pre>    <span class=\"token function\">fgets</span><span class=\"token punctuation\">(</span>g_input<span class=\"token punctuation\">,</span> inputLength <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token constant\">stdin</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"103\"></td><td><pre>    <span class=\"token keyword\">return</span> g_input<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"104\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"105\"></td><td><pre></pre></td></tr><tr><td data-num=\"106\"></td><td><pre><span class=\"token comment\">// Write output to stdout</span></pre></td></tr><tr><td data-num=\"107\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">writeToOutput</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> message<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"108\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> messageLength <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"109\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"%c%c%c%c\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>messageLength <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xff</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"110\"></td><td><pre>        <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>messageLength <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"111\"></td><td><pre>        <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>messageLength <span class=\"token operator\">>></span> <span class=\"token number\">16</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"112\"></td><td><pre>        <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>messageLength <span class=\"token operator\">>></span> <span class=\"token number\">24</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"113\"></td><td><pre>    <span class=\"token function\">fwrite</span><span class=\"token punctuation\">(</span>message<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> messageLength<span class=\"token punctuation\">,</span> <span class=\"token constant\">stdout</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"114\"></td><td><pre>    <span class=\"token function\">fflush</span><span class=\"token punctuation\">(</span><span class=\"token constant\">stdout</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"115\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"116\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h2 id=\"demo1\"><a class=\"anchor\" href=\"#demo1\">#</a> demo1</h2>\n<h3 id=\"原始代码-2\"><a class=\"anchor\" href=\"#原始代码-2\">#</a> 原始代码</h3>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// demo1.cpp : Defines the initialization routines for the DLL.</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"stdafx.h\"</span></span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"demo1.h\"</span></span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;json/json.h></span></span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token comment\">// YSIDObjBB.cpp : Implementation of CYSIDObjBB</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"afxinet.h\"</span></span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"usb_thread.h\"</span></span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"TCPClient_FT.h\"</span></span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"global.h\"</span></span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"ZBase64.h\"</span></span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"GSSocket.h\"</span></span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token keyword\">using</span> <span class=\"token keyword\">namespace</span> std<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token keyword\">bool</span> bExit<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token keyword\">char</span> DataB<span class=\"token punctuation\">[</span><span class=\"token number\">100</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>Json<span class=\"token double-colon punctuation\">::</span>Value root<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>std<span class=\"token double-colon punctuation\">::</span>string rtnOut<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>CString SERVERIPARRAY<span class=\"token punctuation\">[</span><span class=\"token number\">16</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//ip 组</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>CString SERVERIP <span class=\"token operator\">=</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">;</span><span class=\"token comment\">// 实际连上的 IP</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>UINT SERVERCOUNT <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre><span class=\"token keyword\">char</span> mip<span class=\"token punctuation\">[</span><span class=\"token number\">30</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre><span class=\"token keyword\">char</span> sID<span class=\"token punctuation\">[</span><span class=\"token number\">30</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre><span class=\"token comment\">//CString SERVERIP ;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre><span class=\"token keyword\">char</span> CODEHEAD<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token char\">'0'</span><span class=\"token punctuation\">,</span> <span class=\"token char\">'1'</span><span class=\"token punctuation\">,</span> <span class=\"token char\">'T'</span><span class=\"token punctuation\">,</span> <span class=\"token char\">'Y'</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>CWinThread <span class=\"token operator\">*</span>usbread_thread<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>CWinThread <span class=\"token operator\">*</span>checkThread<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre></pre></td></tr><tr><td data-num=\"32\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> DelayTime<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>UINT nEndCode<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>HINSTANCE WLinst<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre><span class=\"token keyword\">typedef</span> <span class=\"token keyword\">int</span><span class=\"token punctuation\">(</span>WINAPI</pre></td></tr><tr><td data-num=\"36\"></td><td><pre><span class=\"token operator\">*</span>GETBMPPROC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>LPCSTR a<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre><span class=\"token keyword\">int</span> b</pre></td></tr><tr><td data-num=\"39\"></td><td><pre><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>GETBMPPROC AAAGetBmp<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre><span class=\"token keyword\">int</span> bEncrypt<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre><span class=\"token keyword\">extern</span> <span class=\"token keyword\">char</span> namebuf<span class=\"token punctuation\">[</span><span class=\"token number\">30</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre><span class=\"token keyword\">extern</span> UINT ClientPort<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre></pre></td></tr><tr><td data-num=\"45\"></td><td><pre><span class=\"token keyword\">char</span> AreaCode<span class=\"token punctuation\">[</span><span class=\"token number\">8</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre><span class=\"token keyword\">char</span> AreaCodeZ<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">8</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x01</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x02</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x03</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x04</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>                       <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre></pre></td></tr><tr><td data-num=\"66\"></td><td><pre><span class=\"token keyword\">char</span> ID<span class=\"token punctuation\">[</span><span class=\"token number\">8</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0x01</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x02</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x03</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x01</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre><span class=\"token comment\">//\tchar Key[8]=&#123;0x2E,0x16,09,0xc0,0x79,0x3f,0x5f,0x00&#125;;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> key1<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x2E1609C7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x793F5F08</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> key2<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xB83D9A75</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x53A8C40B</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> keys<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE76AB896</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x530C8D24</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"71\"></td><td><pre><span class=\"token comment\">//char minzu[58][10];</span></pre></td></tr><tr><td data-num=\"72\"></td><td><pre><span class=\"token keyword\">char</span> minzu<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">11</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token string\">\"未定义\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"汉\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"蒙古\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"回\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"藏\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"维吾尔\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"苗\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"彝\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"壮\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"布依\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"朝鲜\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"满\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"侗\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"瑶\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"白\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"土家\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"哈尼\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"哈萨克\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre>                    <span class=\"token string\">\"傣\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"黎\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"傈僳\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"佤\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"畲\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"高山\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"拉祜\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"水\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"东乡\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"纳西\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"景颇\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"柯尔克孜\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"土\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"达斡尔\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"仫佬\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"羌\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"布朗\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre>                    <span class=\"token string\">\"撒拉\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"毛南\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"仡佬\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"锡伯\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"阿昌\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"普米\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"塔吉克\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"怒\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"乌孜别克\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"俄罗斯\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"鄂温克\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"德昂\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"保安\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"裕固\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"京\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"塔塔尔\"</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>                    <span class=\"token string\">\"独龙\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"鄂伦春\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"赫哲\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"门巴\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"珞巴\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"基诺\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"其它\"</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre></pre></td></tr><tr><td data-num=\"77\"></td><td><pre><span class=\"token keyword\">char</span> gender<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">7</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token string\">\"未知\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"男\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"女\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"未说明\"</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre></pre></td></tr><tr><td data-num=\"79\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">TestConnect</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>ip<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>    WSADATA wsd<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre>    SOCKET cClient<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"82\"></td><td><pre>    <span class=\"token keyword\">int</span> ret<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre>    <span class=\"token keyword\">struct</span> <span class=\"token class-name\">sockaddr_in</span> server<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"84\"></td><td><pre>    hostent <span class=\"token operator\">*</span>host <span class=\"token operator\">=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"85\"></td><td><pre></pre></td></tr><tr><td data-num=\"86\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">WSAStartup</span><span class=\"token punctuation\">(</span><span class=\"token function\">MAKEWORD</span><span class=\"token punctuation\">(</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>wsd<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span> <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"87\"></td><td><pre>    cClient <span class=\"token operator\">=</span> <span class=\"token function\">socket</span><span class=\"token punctuation\">(</span>AF_INET<span class=\"token punctuation\">,</span> SOCK_STREAM<span class=\"token punctuation\">,</span> IPPROTO_TCP<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"88\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>cClient <span class=\"token operator\">==</span> INVALID_SOCKET<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span> <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"89\"></td><td><pre>    <span class=\"token comment\">//set Recv and Send time out</span></pre></td></tr><tr><td data-num=\"90\"></td><td><pre>    DWORD TimeOut <span class=\"token operator\">=</span> <span class=\"token number\">6000</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置发送超时 6 秒</span></pre></td></tr><tr><td data-num=\"91\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">setsockopt</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">,</span> SOL_SOCKET<span class=\"token punctuation\">,</span> SO_SNDTIMEO<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>TimeOut<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>TimeOut<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> SOCKET_ERROR<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"92\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"93\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"94\"></td><td><pre>    TimeOut <span class=\"token operator\">=</span> <span class=\"token number\">6000</span><span class=\"token punctuation\">;</span><span class=\"token comment\">// 设置接收超时 6 秒</span></pre></td></tr><tr><td data-num=\"95\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">setsockopt</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">,</span> SOL_SOCKET<span class=\"token punctuation\">,</span> SO_RCVTIMEO<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>TimeOut<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>TimeOut<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> SOCKET_ERROR<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"96\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"97\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"98\"></td><td><pre>    <span class=\"token comment\">// 设置非阻塞方式连接</span></pre></td></tr><tr><td data-num=\"99\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">long</span> ul <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"100\"></td><td><pre>    ret <span class=\"token operator\">=</span> <span class=\"token function\">ioctlsocket</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">,</span> FIONBIO<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">long</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>ul<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"101\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">==</span> SOCKET_ERROR<span class=\"token punctuation\">)</span><span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"102\"></td><td><pre></pre></td></tr><tr><td data-num=\"103\"></td><td><pre>    <span class=\"token comment\">// 连接</span></pre></td></tr><tr><td data-num=\"104\"></td><td><pre>    server<span class=\"token punctuation\">.</span>sin_family <span class=\"token operator\">=</span> AF_INET<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"105\"></td><td><pre>    server<span class=\"token punctuation\">.</span>sin_port <span class=\"token operator\">=</span> <span class=\"token function\">htons</span><span class=\"token punctuation\">(</span><span class=\"token number\">9007</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"106\"></td><td><pre>    server<span class=\"token punctuation\">.</span>sin_addr<span class=\"token punctuation\">.</span>s_addr <span class=\"token operator\">=</span> <span class=\"token function\">inet_addr</span><span class=\"token punctuation\">(</span>ip<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"107\"></td><td><pre>    <span class=\"token comment\">//\t    client.sin_addr.s_addr=inet_addr(\"192.168.1.106\");</span></pre></td></tr><tr><td data-num=\"108\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>server<span class=\"token punctuation\">.</span>sin_addr<span class=\"token punctuation\">.</span>s_addr <span class=\"token operator\">==</span> INADDR_NONE<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span> <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"109\"></td><td><pre></pre></td></tr><tr><td data-num=\"110\"></td><td><pre>    <span class=\"token function\">connect</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">struct</span> <span class=\"token class-name\">sockaddr</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>server<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>server<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 立即返回</span></pre></td></tr><tr><td data-num=\"111\"></td><td><pre></pre></td></tr><tr><td data-num=\"112\"></td><td><pre></pre></td></tr><tr><td data-num=\"113\"></td><td><pre>    <span class=\"token keyword\">struct</span> <span class=\"token class-name\">timeval</span> timeout<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"114\"></td><td><pre>    fd_set r<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"115\"></td><td><pre></pre></td></tr><tr><td data-num=\"116\"></td><td><pre>    <span class=\"token function\">FD_ZERO</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>r<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"117\"></td><td><pre>    <span class=\"token function\">FD_SET</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>r<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"118\"></td><td><pre>    timeout<span class=\"token punctuation\">.</span>tv_sec <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 连接超时 15 秒</span></pre></td></tr><tr><td data-num=\"119\"></td><td><pre>    timeout<span class=\"token punctuation\">.</span>tv_usec <span class=\"token operator\">=</span> <span class=\"token number\">200000</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"120\"></td><td><pre>    ret <span class=\"token operator\">=</span> <span class=\"token function\">select</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>r<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>timeout<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"121\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">&lt;=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"122\"></td><td><pre>        <span class=\"token double-colon punctuation\">::</span><span class=\"token function\">closesocket</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"123\"></td><td><pre></pre></td></tr><tr><td data-num=\"124\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"125\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"126\"></td><td><pre>        <span class=\"token double-colon punctuation\">::</span><span class=\"token function\">closesocket</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"127\"></td><td><pre></pre></td></tr><tr><td data-num=\"128\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"129\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"130\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"131\"></td><td><pre></pre></td></tr><tr><td data-num=\"132\"></td><td><pre></pre></td></tr><tr><td data-num=\"133\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">CleanFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"134\"></td><td><pre>    CString strFileTitle<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"135\"></td><td><pre></pre></td></tr><tr><td data-num=\"136\"></td><td><pre>    CFileFind finder<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"137\"></td><td><pre>    <span class=\"token keyword\">char</span> curpath<span class=\"token punctuation\">[</span><span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"138\"></td><td><pre></pre></td></tr><tr><td data-num=\"139\"></td><td><pre>    <span class=\"token function\">GetModuleFileName</span><span class=\"token punctuation\">(</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span> curpath<span class=\"token punctuation\">,</span> MAX_PATH<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"140\"></td><td><pre>    <span class=\"token punctuation\">(</span><span class=\"token function\">_tcsrchr</span><span class=\"token punctuation\">(</span>curpath<span class=\"token punctuation\">,</span> <span class=\"token function\">_T</span><span class=\"token punctuation\">(</span><span class=\"token char\">'\\\\'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//</span></pre></td></tr><tr><td data-num=\"141\"></td><td><pre></pre></td></tr><tr><td data-num=\"142\"></td><td><pre>    BOOL bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindFile</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"P*.bmp\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"143\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>bWorking<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"144\"></td><td><pre></pre></td></tr><tr><td data-num=\"145\"></td><td><pre>        bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindNextFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"146\"></td><td><pre>        strFileTitle <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">GetFileName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"147\"></td><td><pre></pre></td></tr><tr><td data-num=\"148\"></td><td><pre>        <span class=\"token class-name\">CFile</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">Remove</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>LPCSTR<span class=\"token punctuation\">)</span> strFileTitle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"149\"></td><td><pre></pre></td></tr><tr><td data-num=\"150\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"151\"></td><td><pre>    bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindFile</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"P*.txt\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"152\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>bWorking<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"153\"></td><td><pre></pre></td></tr><tr><td data-num=\"154\"></td><td><pre>        bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindNextFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"155\"></td><td><pre>        strFileTitle <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">GetFileName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"156\"></td><td><pre></pre></td></tr><tr><td data-num=\"157\"></td><td><pre>        <span class=\"token class-name\">CFile</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">Remove</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>LPCSTR<span class=\"token punctuation\">)</span> strFileTitle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"158\"></td><td><pre></pre></td></tr><tr><td data-num=\"159\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"160\"></td><td><pre></pre></td></tr><tr><td data-num=\"161\"></td><td><pre>    bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindFile</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wz.txt\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"162\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>bWorking<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"163\"></td><td><pre></pre></td></tr><tr><td data-num=\"164\"></td><td><pre>        bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindNextFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"165\"></td><td><pre>        strFileTitle <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">GetFileName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"166\"></td><td><pre></pre></td></tr><tr><td data-num=\"167\"></td><td><pre>        <span class=\"token class-name\">CFile</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">Remove</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>LPCSTR<span class=\"token punctuation\">)</span> strFileTitle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"168\"></td><td><pre></pre></td></tr><tr><td data-num=\"169\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"170\"></td><td><pre></pre></td></tr><tr><td data-num=\"171\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"172\"></td><td><pre></pre></td></tr><tr><td data-num=\"173\"></td><td><pre></pre></td></tr><tr><td data-num=\"174\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">GetCheck</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"175\"></td><td><pre>    <span class=\"token function\">srand</span><span class=\"token punctuation\">(</span><span class=\"token function\">time</span><span class=\"token punctuation\">(</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"176\"></td><td><pre>    <span class=\"token keyword\">int</span> check <span class=\"token operator\">=</span> <span class=\"token function\">rand</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">*</span> <span class=\"token number\">0xFFFF</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"177\"></td><td><pre></pre></td></tr><tr><td data-num=\"178\"></td><td><pre>    <span class=\"token keyword\">return</span> check<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"179\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"180\"></td><td><pre></pre></td></tr><tr><td data-num=\"181\"></td><td><pre><span class=\"token function\">WritePrivateProfileInt</span><span class=\"token punctuation\">(</span>   LPCTSTR</pre></td></tr><tr><td data-num=\"182\"></td><td><pre>lpAppName<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"183\"></td><td><pre>LPCTSTR lpKeyName<span class=\"token punctuation\">,</span> INT</pre></td></tr><tr><td data-num=\"184\"></td><td><pre>Value<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"185\"></td><td><pre>LPCTSTR lpFileName</pre></td></tr><tr><td data-num=\"186\"></td><td><pre><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"187\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"188\"></td><td><pre>TCHAR ValBuf<span class=\"token punctuation\">[</span><span class=\"token number\">16</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"189\"></td><td><pre><span class=\"token function\">sprintf</span><span class=\"token punctuation\">(</span>ValBuf<span class=\"token punctuation\">,</span> <span class=\"token function\">TEXT</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"%i\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> Value</pre></td></tr><tr><td data-num=\"190\"></td><td><pre><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"191\"></td><td><pre><span class=\"token keyword\">return</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"192\"></td><td><pre><span class=\"token function\">WritePrivateProfileString</span><span class=\"token punctuation\">(</span>   lpAppName<span class=\"token punctuation\">,</span> lpKeyName<span class=\"token punctuation\">,</span> ValBuf<span class=\"token punctuation\">,</span> lpFileName</pre></td></tr><tr><td data-num=\"193\"></td><td><pre><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"194\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"195\"></td><td><pre></pre></td></tr><tr><td data-num=\"196\"></td><td><pre></pre></td></tr><tr><td data-num=\"197\"></td><td><pre>CString <span class=\"token function\">EncodeImage</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>jpgname<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span><span class=\"token comment\">// 对图片进行 Base64 编码</span></pre></td></tr><tr><td data-num=\"198\"></td><td><pre>    ZBase64 zBase<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"199\"></td><td><pre>    <span class=\"token comment\">// 图片编码</span></pre></td></tr><tr><td data-num=\"200\"></td><td><pre>    CFile cbfBmp<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"201\"></td><td><pre>    cbfBmp<span class=\"token punctuation\">.</span><span class=\"token function\">Open</span><span class=\"token punctuation\">(</span>jpgname<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"202\"></td><td><pre>    <span class=\"token keyword\">int</span> iBmpSize <span class=\"token operator\">=</span> cbfBmp<span class=\"token punctuation\">.</span><span class=\"token function\">GetLength</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"203\"></td><td><pre></pre></td></tr><tr><td data-num=\"204\"></td><td><pre>    HGLOBAL hMemBmp <span class=\"token operator\">=</span> <span class=\"token function\">GlobalAlloc</span><span class=\"token punctuation\">(</span>GMEM_FIXED<span class=\"token punctuation\">,</span> iBmpSize<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"205\"></td><td><pre></pre></td></tr><tr><td data-num=\"206\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>hMemBmp <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">return</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"207\"></td><td><pre>    IStream <span class=\"token operator\">*</span>pStmBmp <span class=\"token operator\">=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"208\"></td><td><pre></pre></td></tr><tr><td data-num=\"209\"></td><td><pre>    <span class=\"token function\">CreateStreamOnHGlobal</span><span class=\"token punctuation\">(</span>hMemBmp<span class=\"token punctuation\">,</span> FALSE<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>pStmBmp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"210\"></td><td><pre></pre></td></tr><tr><td data-num=\"211\"></td><td><pre>    BYTE <span class=\"token operator\">*</span>pbyBmp <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>BYTE <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token function\">GlobalLock</span><span class=\"token punctuation\">(</span>hMemBmp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"212\"></td><td><pre>    cbfBmp<span class=\"token punctuation\">.</span><span class=\"token function\">SeekToBegin</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"213\"></td><td><pre>    cbfBmp<span class=\"token punctuation\">.</span><span class=\"token function\">Read</span><span class=\"token punctuation\">(</span>pbyBmp<span class=\"token punctuation\">,</span> iBmpSize<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"214\"></td><td><pre></pre></td></tr><tr><td data-num=\"215\"></td><td><pre>    string strTmpResult <span class=\"token operator\">=</span> zBase<span class=\"token punctuation\">.</span><span class=\"token function\">Encode</span><span class=\"token punctuation\">(</span>pbyBmp<span class=\"token punctuation\">,</span> iBmpSize<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"216\"></td><td><pre></pre></td></tr><tr><td data-num=\"217\"></td><td><pre>    CString result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"218\"></td><td><pre>    result <span class=\"token operator\">=</span> strTmpResult<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"219\"></td><td><pre>    <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"220\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"221\"></td><td><pre></pre></td></tr><tr><td data-num=\"222\"></td><td><pre></pre></td></tr><tr><td data-num=\"223\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">ReadCard</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"224\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"225\"></td><td><pre></pre></td></tr><tr><td data-num=\"226\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">ifndef</span> <span class=\"token expression\">_AFXDLL</span></span></pre></td></tr><tr><td data-num=\"227\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">_AFX_SOCK_THREAD_STATE</span> <span class=\"token expression\">AFX_MODULE_THREAD_STATE</span></span></pre></td></tr><tr><td data-num=\"228\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">_afxSockThreadState</span> <span class=\"token expression\"><span class=\"token function\">AfxGetModuleThreadState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></span></span></pre></td></tr><tr><td data-num=\"229\"></td><td><pre></pre></td></tr><tr><td data-num=\"230\"></td><td><pre>    _AFX_SOCK_THREAD_STATE <span class=\"token operator\">*</span>pState <span class=\"token operator\">=</span> _afxSockThreadState<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"231\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>pState<span class=\"token operator\">-></span>m_pmapSocketHandle <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"232\"></td><td><pre>        pState<span class=\"token operator\">-></span>m_pmapSocketHandle <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> CMapPtrToPtr<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"233\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>pState<span class=\"token operator\">-></span>m_pmapDeadSockets <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"234\"></td><td><pre>        pState<span class=\"token operator\">-></span>m_pmapDeadSockets <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> CMapPtrToPtr<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"235\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>pState<span class=\"token operator\">-></span>m_plistSocketNotifications <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"236\"></td><td><pre>        pState<span class=\"token operator\">-></span>m_plistSocketNotifications <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> CPtrList<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"237\"></td><td><pre></pre></td></tr><tr><td data-num=\"238\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">endif</span></span></pre></td></tr><tr><td data-num=\"239\"></td><td><pre>    <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>retString<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"240\"></td><td><pre></pre></td></tr><tr><td data-num=\"241\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"242\"></td><td><pre></pre></td></tr><tr><td data-num=\"243\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"244\"></td><td><pre>    retString <span class=\"token operator\">=</span> <span class=\"token string\">\"net failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"245\"></td><td><pre></pre></td></tr><tr><td data-num=\"246\"></td><td><pre>    <span class=\"token keyword\">return</span> retString<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"247\"></td><td><pre></pre></td></tr><tr><td data-num=\"248\"></td><td><pre></pre></td></tr><tr><td data-num=\"249\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"250\"></td><td><pre></pre></td></tr><tr><td data-num=\"251\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">ffconnect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"252\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"253\"></td><td><pre></pre></td></tr><tr><td data-num=\"254\"></td><td><pre>    <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>retString<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"255\"></td><td><pre></pre></td></tr><tr><td data-num=\"256\"></td><td><pre></pre></td></tr><tr><td data-num=\"257\"></td><td><pre>    CString strResult<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"258\"></td><td><pre></pre></td></tr><tr><td data-num=\"259\"></td><td><pre></pre></td></tr><tr><td data-num=\"260\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"261\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"262\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"conect device success\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"263\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"264\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"265\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"266\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"267\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"268\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"269\"></td><td><pre></pre></td></tr><tr><td data-num=\"270\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"271\"></td><td><pre></pre></td></tr><tr><td data-num=\"272\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"273\"></td><td><pre></pre></td></tr><tr><td data-num=\"274\"></td><td><pre></pre></td></tr><tr><td data-num=\"275\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">collTerminalSN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"276\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 1\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"277\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"278\"></td><td><pre></pre></td></tr><tr><td data-num=\"279\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"280\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"281\"></td><td><pre></pre></td></tr><tr><td data-num=\"282\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 2\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"283\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"284\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 3\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"285\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data <span class=\"token operator\">=</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"286\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"287\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"288\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"get SN failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"289\"></td><td><pre>            <span class=\"token comment\">//root[\"\"] =</span></pre></td></tr><tr><td data-num=\"290\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"291\"></td><td><pre>            <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 4\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"292\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"293\"></td><td><pre></pre></td></tr><tr><td data-num=\"294\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"295\"></td><td><pre>            <span class=\"token keyword\">char</span> sn<span class=\"token punctuation\">[</span><span class=\"token number\">9</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"296\"></td><td><pre>            <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>sn<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">9</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"297\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>sn<span class=\"token punctuation\">,</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"298\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> sn<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"299\"></td><td><pre></pre></td></tr><tr><td data-num=\"300\"></td><td><pre>            <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 5\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"301\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"302\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"303\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"304\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"305\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"306\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 6\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"307\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"308\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"309\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"310\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"311\"></td><td><pre></pre></td></tr><tr><td data-num=\"312\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">collIdNumber</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"313\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"314\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"315\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"316\"></td><td><pre>    string sinData <span class=\"token operator\">=</span> inData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"317\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>sinData<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"318\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"319\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"320\"></td><td><pre></pre></td></tr><tr><td data-num=\"321\"></td><td><pre>    string inID <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"i\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"322\"></td><td><pre>    string inSN <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"s\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"323\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"324\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data <span class=\"token operator\">=</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"325\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"326\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"2\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"327\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"get SN failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"328\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"329\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"330\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"331\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"332\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"333\"></td><td><pre>            <span class=\"token keyword\">int</span> ret <span class=\"token operator\">=</span> <span class=\"token function\">strncmp</span><span class=\"token punctuation\">(</span>inSN<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"334\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"335\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"3\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"336\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"SN not match\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"337\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"338\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"339\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"340\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"341\"></td><td><pre></pre></td></tr><tr><td data-num=\"342\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"343\"></td><td><pre></pre></td></tr><tr><td data-num=\"344\"></td><td><pre>        Data <span class=\"token operator\">=</span> <span class=\"token function\">DEL_ID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"345\"></td><td><pre></pre></td></tr><tr><td data-num=\"346\"></td><td><pre>        Data <span class=\"token operator\">=</span> <span class=\"token function\">ADD_ID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> inID<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"347\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"348\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"349\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"collect id number failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"350\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"351\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"352\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"353\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"354\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"355\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"356\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"357\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"collect id number failure!\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"358\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"359\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"360\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"361\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"362\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"363\"></td><td><pre></pre></td></tr><tr><td data-num=\"364\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"|\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"365\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span>inID<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"366\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> inSN<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"367\"></td><td><pre></pre></td></tr><tr><td data-num=\"368\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"369\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"370\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"371\"></td><td><pre></pre></td></tr><tr><td data-num=\"372\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"373\"></td><td><pre></pre></td></tr><tr><td data-num=\"374\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"375\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"376\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"377\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"378\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"379\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"380\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"381\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"382\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"383\"></td><td><pre></pre></td></tr><tr><td data-num=\"384\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">collFingerPrint</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"385\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collFingerPrint 0\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 写日志</span></pre></td></tr><tr><td data-num=\"386\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"387\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"388\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"389\"></td><td><pre>    string sinData <span class=\"token operator\">=</span> inData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"390\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>sinData<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"391\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"392\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"393\"></td><td><pre>    <span class=\"token keyword\">int</span> index <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"394\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collFingerPrint 1\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 写日志</span></pre></td></tr><tr><td data-num=\"395\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span><span class=\"token punctuation\">(</span>jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"f\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">isNull</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"396\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"f\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">isString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"397\"></td><td><pre>            string strindex <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"f\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"398\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>strindex<span class=\"token punctuation\">.</span><span class=\"token function\">empty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"399\"></td><td><pre>                index <span class=\"token operator\">=</span> <span class=\"token function\">atoi</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> strindex<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"400\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"401\"></td><td><pre></pre></td></tr><tr><td data-num=\"402\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"403\"></td><td><pre>            index <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"f\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asInt</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"404\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"405\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"406\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collFingerPrint 2\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"407\"></td><td><pre>    string inSN <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"s\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"408\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"409\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data <span class=\"token operator\">=</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"410\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"411\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"2\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"412\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"get SN failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"413\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"414\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"415\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"416\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"417\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"418\"></td><td><pre>            <span class=\"token keyword\">int</span> ret <span class=\"token operator\">=</span> <span class=\"token function\">strncmp</span><span class=\"token punctuation\">(</span>inSN<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"419\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"420\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"3\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"421\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"SN not match\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"422\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"423\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"424\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"425\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"426\"></td><td><pre></pre></td></tr><tr><td data-num=\"427\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"428\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>index <span class=\"token operator\">!=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"429\"></td><td><pre>            <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collFingerPrint 3 del\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"430\"></td><td><pre>            Data <span class=\"token operator\">=</span> <span class=\"token function\">FP_DEL</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">,</span> index<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"431\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"432\"></td><td><pre>            index <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"433\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"434\"></td><td><pre></pre></td></tr><tr><td data-num=\"435\"></td><td><pre>        Data <span class=\"token operator\">=</span> <span class=\"token function\">FP_REG</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"436\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"437\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"438\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"collect fingerprint failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"439\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"440\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"441\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"442\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"443\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"444\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"445\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"446\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"collect fingerprint failure!\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"447\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"448\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"449\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"450\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"451\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"452\"></td><td><pre>                index <span class=\"token operator\">=</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">*</span> <span class=\"token number\">256</span> <span class=\"token operator\">+</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"453\"></td><td><pre>                <span class=\"token keyword\">char</span> idx<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"454\"></td><td><pre>                <span class=\"token function\">itoa</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">,</span> idx<span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"455\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"|\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"456\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span>idx<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"457\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> inSN<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"458\"></td><td><pre></pre></td></tr><tr><td data-num=\"459\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"460\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"461\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"462\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"463\"></td><td><pre></pre></td></tr><tr><td data-num=\"464\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"465\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"466\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"467\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"468\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"469\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"470\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"471\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"472\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"473\"></td><td><pre></pre></td></tr><tr><td data-num=\"474\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">deleteFingerprints</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"475\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"476\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"477\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"478\"></td><td><pre>    string sinData <span class=\"token operator\">=</span> inData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"479\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>sinData<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"480\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"481\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"482\"></td><td><pre></pre></td></tr><tr><td data-num=\"483\"></td><td><pre>    string inSN <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"s\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"484\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"485\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data <span class=\"token operator\">=</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"486\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"487\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"2\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"488\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"get SN failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"489\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"490\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"491\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"492\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"493\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"494\"></td><td><pre>            <span class=\"token keyword\">int</span> ret <span class=\"token operator\">=</span> <span class=\"token function\">strncmp</span><span class=\"token punctuation\">(</span>inSN<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"495\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"496\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"3\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"497\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"SN not match\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"498\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"499\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"500\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"501\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"502\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"503\"></td><td><pre></pre></td></tr><tr><td data-num=\"504\"></td><td><pre>        Data <span class=\"token operator\">=</span> <span class=\"token function\">FP_DEL</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">500</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"505\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"506\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"507\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"delete fingerprint failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"508\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"509\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"510\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"511\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"512\"></td><td><pre></pre></td></tr><tr><td data-num=\"513\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"514\"></td><td><pre>            <span class=\"token comment\">//root[\"content\"] = inSN;</span></pre></td></tr><tr><td data-num=\"515\"></td><td><pre></pre></td></tr><tr><td data-num=\"516\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"517\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"518\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"519\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"520\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"521\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"522\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"523\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"524\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"525\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"526\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"527\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"528\"></td><td><pre></pre></td></tr><tr><td data-num=\"529\"></td><td><pre></pre></td></tr><tr><td data-num=\"530\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">verify</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"531\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"532\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"533\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"534\"></td><td><pre>    string sinData <span class=\"token operator\">=</span> inData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"535\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>sinData<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"536\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"537\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"538\"></td><td><pre>    <span class=\"token comment\">//Json::Value root;</span></pre></td></tr><tr><td data-num=\"539\"></td><td><pre>    <span class=\"token keyword\">int</span> index<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"540\"></td><td><pre></pre></td></tr><tr><td data-num=\"541\"></td><td><pre>    string inSN <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"s\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"542\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"543\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data <span class=\"token operator\">=</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"544\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"545\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"2\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"546\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"get SN failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"547\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"548\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"549\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"550\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"551\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"552\"></td><td><pre>            <span class=\"token keyword\">int</span> ret <span class=\"token operator\">=</span> <span class=\"token function\">strncmp</span><span class=\"token punctuation\">(</span>inSN<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"553\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"554\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"3\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"555\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"SN not match\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"556\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"557\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"558\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"559\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"560\"></td><td><pre></pre></td></tr><tr><td data-num=\"561\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"562\"></td><td><pre></pre></td></tr><tr><td data-num=\"563\"></td><td><pre>        Data <span class=\"token operator\">=</span> <span class=\"token function\">FP_CHECH</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"564\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"565\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"566\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"verify failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"567\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"568\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"569\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"570\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"571\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"572\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x50</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x11</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x01</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// 指紋成功</span></pre></td></tr><tr><td data-num=\"573\"></td><td><pre>            <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"574\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"6\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"575\"></td><td><pre></pre></td></tr><tr><td data-num=\"576\"></td><td><pre>                <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>tmpdata <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">6</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"577\"></td><td><pre>                <span class=\"token keyword\">char</span> tmp_code_data<span class=\"token punctuation\">[</span><span class=\"token number\">19</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"578\"></td><td><pre>                <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>tmp_code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">19</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"579\"></td><td><pre>                <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>tmp_code_data<span class=\"token punctuation\">,</span> tmpdata<span class=\"token punctuation\">,</span> <span class=\"token number\">18</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"580\"></td><td><pre></pre></td></tr><tr><td data-num=\"581\"></td><td><pre>                index <span class=\"token operator\">=</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">*</span> <span class=\"token number\">256</span> <span class=\"token operator\">+</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"582\"></td><td><pre>                <span class=\"token keyword\">char</span> idx<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"583\"></td><td><pre>                <span class=\"token function\">itoa</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">,</span> idx<span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"584\"></td><td><pre></pre></td></tr><tr><td data-num=\"585\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"|\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"586\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span>idx<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"587\"></td><td><pre></pre></td></tr><tr><td data-num=\"588\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> inSN<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"589\"></td><td><pre></pre></td></tr><tr><td data-num=\"590\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"591\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"592\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"593\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x16</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x02</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x01</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token comment\">// 身分証成功</span></pre></td></tr><tr><td data-num=\"594\"></td><td><pre>            <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"595\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"5\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"596\"></td><td><pre>                <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>tmpdata <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">3</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"597\"></td><td><pre>                <span class=\"token keyword\">char</span> tmp_code_data<span class=\"token punctuation\">[</span><span class=\"token number\">19</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"598\"></td><td><pre>                <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>tmp_code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">19</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"599\"></td><td><pre>                <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>tmp_code_data<span class=\"token punctuation\">,</span> tmpdata<span class=\"token punctuation\">,</span> <span class=\"token number\">18</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"600\"></td><td><pre></pre></td></tr><tr><td data-num=\"601\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"|\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"602\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span>tmp_code_data<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"603\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> inSN<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"604\"></td><td><pre></pre></td></tr><tr><td data-num=\"605\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"606\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"607\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"608\"></td><td><pre></pre></td></tr><tr><td data-num=\"609\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span><span class=\"token comment\">// 失敗</span></pre></td></tr><tr><td data-num=\"610\"></td><td><pre>            <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"611\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"612\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"verify failure!\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"613\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"614\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"615\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"616\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"617\"></td><td><pre></pre></td></tr><tr><td data-num=\"618\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"619\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"620\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"621\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"622\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"623\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"624\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"625\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"626\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"627\"></td><td><pre></pre></td></tr><tr><td data-num=\"628\"></td><td><pre></pre></td></tr><tr><td data-num=\"629\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">ifdef</span> <span class=\"token expression\">_DEBUG</span></span></pre></td></tr><tr><td data-num=\"630\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">new</span> <span class=\"token expression\">DEBUG_NEW</span></span></pre></td></tr><tr><td data-num=\"631\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">undef</span> <span class=\"token expression\">THIS_FILE</span></span></pre></td></tr><tr><td data-num=\"632\"></td><td><pre><span class=\"token keyword\">static</span> <span class=\"token keyword\">char</span> THIS_FILE<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token constant\">__FILE__</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"633\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">endif</span></span></pre></td></tr><tr><td data-num=\"634\"></td><td><pre></pre></td></tr><tr><td data-num=\"635\"></td><td><pre><span class=\"token function\">BEGIN_MESSAGE_MAP</span><span class=\"token punctuation\">(</span>CDemo1App<span class=\"token punctuation\">,</span> CWinApp</pre></td></tr><tr><td data-num=\"636\"></td><td><pre><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"637\"></td><td><pre></pre></td></tr><tr><td data-num=\"638\"></td><td><pre><span class=\"token function\">END_MESSAGE_MAP</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"639\"></td><td><pre></pre></td></tr><tr><td data-num=\"640\"></td><td><pre></pre></td></tr><tr><td data-num=\"641\"></td><td><pre><span class=\"token class-name\">CDemo1App</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">CDemo1App</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"642\"></td><td><pre></pre></td></tr><tr><td data-num=\"643\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"644\"></td><td><pre></pre></td></tr><tr><td data-num=\"645\"></td><td><pre>CDemo1App theApp<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"646\"></td><td><pre></pre></td></tr><tr><td data-num=\"647\"></td><td><pre></pre></td></tr><tr><td data-num=\"648\"></td><td><pre>BOOL <span class=\"token class-name\">CDemo1App</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">InitInstance</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"649\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span><span class=\"token function\">AfxSocketInit</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"650\"></td><td><pre>        <span class=\"token function\">AfxMessageBox</span><span class=\"token punctuation\">(</span>IDP_SOCKETS_INIT_FAILED<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"651\"></td><td><pre>        <span class=\"token keyword\">return</span> FALSE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"652\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"653\"></td><td><pre></pre></td></tr><tr><td data-num=\"654\"></td><td><pre>    <span class=\"token keyword\">return</span> TRUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"655\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"代码结构\"><a class=\"anchor\" href=\"#代码结构\">#</a> 代码结构</h3>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// TestConnect: 测试连接到指定 IP 地址的特定端口。</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">TestConnect</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>ip<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token comment\">// CleanFile: 删除当前目录中特定类型的文件。</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">CleanFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre><span class=\"token comment\">// GetCheck: 生成一个随机检查值。</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">GetCheck</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token comment\">// WritePrivateProfileInt: 将整数值写入 INI 文件。</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token function\">WritePrivateProfileInt</span><span class=\"token punctuation\">(</span>LPCTSTR lpAppName<span class=\"token punctuation\">,</span> LPCTSTR lpKeyName<span class=\"token punctuation\">,</span> INT Value<span class=\"token punctuation\">,</span> LPCTSTR lpFileName<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre></pre></td></tr><tr><td data-num=\"21\"></td><td><pre><span class=\"token comment\">// EncodeImage: 将图像文件编码为 Base64 格式。</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>CString <span class=\"token function\">EncodeImage</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>jpgname<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre></pre></td></tr><tr><td data-num=\"26\"></td><td><pre><span class=\"token comment\">// ReadCard: 占位符函数，当前不执行任何操作。</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">ReadCard</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre></pre></td></tr><tr><td data-num=\"31\"></td><td><pre><span class=\"token comment\">//ffconnect: 占位符函数，当前不执行任何操作。</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">ffconnect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre></pre></td></tr><tr><td data-num=\"36\"></td><td><pre><span class=\"token comment\">//collTerminalSN: 收集终端设备的序列号。</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">collTerminalSN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre></pre></td></tr><tr><td data-num=\"41\"></td><td><pre><span class=\"token comment\">//collIdNumber: 收集与终端设备关联的身份证号码。</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">collIdNumber</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre></pre></td></tr><tr><td data-num=\"46\"></td><td><pre><span class=\"token comment\">//collFingerPrint: 收集与终端设备关联的指纹。</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">collFingerPrint</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre></pre></td></tr><tr><td data-num=\"51\"></td><td><pre><span class=\"token comment\">//deleteFingerprints: 从终端设备中删除存储的指纹。</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">deleteFingerprints</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre></pre></td></tr><tr><td data-num=\"56\"></td><td><pre><span class=\"token comment\">//verify: 使用终端设备验证指纹或身份证号码。</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">verify</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>    <span class=\"token comment\">//... 实现代码 ...</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre></pre></td></tr><tr><td data-num=\"61\"></td><td><pre><span class=\"token comment\">// 应用程序的初始化。</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>BOOL <span class=\"token class-name\">CDemo1App</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">InitInstance</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>    <span class=\"token comment\">// 初始化 Winsock。</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span><span class=\"token function\">AfxSocketInit</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>        <span class=\"token function\">AfxMessageBox</span><span class=\"token punctuation\">(</span>IDP_SOCKETS_INIT_FAILED<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>        <span class=\"token keyword\">return</span> FALSE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>    <span class=\"token keyword\">return</span> TRUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"testconnect\"><a class=\"anchor\" href=\"#testconnect\">#</a> TestConnect</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/*</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这个函数的作用是测试连接到指定 IP 地址的特定端口是否成功</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 如果连接成功则返回 1，否则返回 0</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">TestConnect</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>ip<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token comment\">// 初始化 Winsock</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    WSADATA wsd<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">WSAStartup</span><span class=\"token punctuation\">(</span><span class=\"token function\">MAKEWORD</span><span class=\"token punctuation\">(</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>wsd<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span> <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token comment\">// 创建套接字</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    SOCKET cClient<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    cClient <span class=\"token operator\">=</span> <span class=\"token function\">socket</span><span class=\"token punctuation\">(</span>AF_INET<span class=\"token punctuation\">,</span> SOCK_STREAM<span class=\"token punctuation\">,</span> IPPROTO_TCP<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>cClient <span class=\"token operator\">==</span> INVALID_SOCKET<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span> <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token comment\">// 设置发送和接收超时时间为 6 秒</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    DWORD TimeOut <span class=\"token operator\">=</span> <span class=\"token number\">6000</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">setsockopt</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">,</span> SOL_SOCKET<span class=\"token punctuation\">,</span> SO_SNDTIMEO<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>TimeOut<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>TimeOut<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> SOCKET_ERROR<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    TimeOut <span class=\"token operator\">=</span> <span class=\"token number\">6000</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">setsockopt</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">,</span> SOL_SOCKET<span class=\"token punctuation\">,</span> SO_RCVTIMEO<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>TimeOut<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>TimeOut<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> SOCKET_ERROR<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token comment\">// 设置非阻塞方式连接</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">long</span> ul <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token keyword\">int</span> ret <span class=\"token operator\">=</span> <span class=\"token function\">ioctlsocket</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">,</span> FIONBIO<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">long</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>ul<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">==</span> SOCKET_ERROR<span class=\"token punctuation\">)</span> <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    <span class=\"token comment\">// 连接到指定 IP 地址和端口</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token keyword\">struct</span> <span class=\"token class-name\">sockaddr_in</span> server<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    server<span class=\"token punctuation\">.</span>sin_family <span class=\"token operator\">=</span> AF_INET<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    server<span class=\"token punctuation\">.</span>sin_port <span class=\"token operator\">=</span> <span class=\"token function\">htons</span><span class=\"token punctuation\">(</span><span class=\"token number\">9007</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    server<span class=\"token punctuation\">.</span>sin_addr<span class=\"token punctuation\">.</span>s_addr <span class=\"token operator\">=</span> <span class=\"token function\">inet_addr</span><span class=\"token punctuation\">(</span>ip<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>server<span class=\"token punctuation\">.</span>sin_addr<span class=\"token punctuation\">.</span>s_addr <span class=\"token operator\">==</span> INADDR_NONE<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span> <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>    <span class=\"token function\">connect</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">struct</span> <span class=\"token class-name\">sockaddr</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>server<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>server<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 立即返回</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    <span class=\"token comment\">// 使用 select 函数检测连接是否建立</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>    <span class=\"token keyword\">struct</span> <span class=\"token class-name\">timeval</span> timeout<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>    fd_set r<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>    <span class=\"token function\">FD_ZERO</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>r<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>    <span class=\"token function\">FD_SET</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>r<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>    timeout<span class=\"token punctuation\">.</span>tv_sec <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 连接超时 1 秒</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>    timeout<span class=\"token punctuation\">.</span>tv_usec <span class=\"token operator\">=</span> <span class=\"token number\">200000</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>    ret <span class=\"token operator\">=</span> <span class=\"token function\">select</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>r<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>timeout<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">&lt;=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>        <span class=\"token double-colon punctuation\">::</span><span class=\"token function\">closesocket</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 关闭套接字</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 连接失败</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>        <span class=\"token double-colon punctuation\">::</span><span class=\"token function\">closesocket</span><span class=\"token punctuation\">(</span>cClient<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 关闭套接字</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 连接成功</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"cleanfile\"><a class=\"anchor\" href=\"#cleanfile\">#</a> CleanFile</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 函数的作用是清理指定目录下的特定文件</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 该函数用于删除指定目录下以 \"P*.bmp\"、\"P*.txt\" 和 \"wz.txt\" 格式命名的文件</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">CleanFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    CString strFileTitle<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 用于存储文件名的字符串</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    CFileFind finder<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 文件查找器对象</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token keyword\">char</span> curpath<span class=\"token punctuation\">[</span><span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 存储当前执行文件路径的字符数组</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token comment\">// 获取当前执行文件的路径</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token function\">GetModuleFileName</span><span class=\"token punctuation\">(</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span> curpath<span class=\"token punctuation\">,</span> MAX_PATH<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token punctuation\">(</span><span class=\"token function\">_tcsrchr</span><span class=\"token punctuation\">(</span>curpath<span class=\"token punctuation\">,</span> <span class=\"token function\">_T</span><span class=\"token punctuation\">(</span><span class=\"token char\">'\\\\'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将路径最后的文件名部分截断</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token comment\">// 查找并删除所有以 \"P*.bmp\" 格式命名的文件</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    BOOL bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindFile</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"P*.bmp\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>bWorking<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>        bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindNextFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 继续查找下一个匹配的文件</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>        strFileTitle <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">GetFileName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 获取文件名</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>        <span class=\"token class-name\">CFile</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">Remove</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>LPCSTR<span class=\"token punctuation\">)</span> strFileTitle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 删除文件</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token comment\">// 查找并删除所有以 \"P*.txt\" 格式命名的文件</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindFile</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"P*.txt\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>bWorking<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>        bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindNextFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 继续查找下一个匹配的文件</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>        strFileTitle <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">GetFileName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 获取文件名</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>        <span class=\"token class-name\">CFile</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">Remove</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>LPCSTR<span class=\"token punctuation\">)</span> strFileTitle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 删除文件</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token comment\">// 查找并删除所有名为 \"wz.txt\" 的文件</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindFile</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"wz.txt\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>bWorking<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>        bWorking <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">FindNextFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 继续查找下一个匹配的文件</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>        strFileTitle <span class=\"token operator\">=</span> finder<span class=\"token punctuation\">.</span><span class=\"token function\">GetFileName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 获取文件名</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>        <span class=\"token class-name\">CFile</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">Remove</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>LPCSTR<span class=\"token punctuation\">)</span> strFileTitle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 删除文件</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"getcheck\"><a class=\"anchor\" href=\"#getcheck\">#</a> GetCheck</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这个函数的作用是生成一个用于校验的随机数</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 该函数利用当前时间作为随机数的种子，通过调用 rand () 函数生成一个随机数，并将其乘以 0xFFFF 以增加其随机性，最后返回生成的随机数作为校验值</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> * @return</pre></td></tr><tr><td data-num=\"5\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">GetCheck</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token function\">srand</span><span class=\"token punctuation\">(</span><span class=\"token function\">time</span><span class=\"token punctuation\">(</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 使用当前时间作为随机数种子，以确保每次生成的随机数都不同</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token keyword\">int</span> check <span class=\"token operator\">=</span> <span class=\"token function\">rand</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">*</span> <span class=\"token number\">0xFFFF</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 生成一个随机数，并乘以 0xFFFF（十六进制中最大的两字节值），以增加随机性</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token keyword\">return</span> check<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回生成的随机数作为校验值</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"writeprivateprofileint\"><a class=\"anchor\" href=\"#writeprivateprofileint\">#</a> WritePrivateProfileInt</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"><span>WritePrivateProfileInt</span></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这段代码定义了一个名为 WritePrivateProfileInt 的函数，用于向 INI 文件中写入整数值</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 这个函数的参数包括要写入的 INI 文件的节名 (lpAppName)、键名 (lpKeyName)，以及要写入的整数值 (Value)。函数将整数值转换为字符串格式，</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> * 并通过 WritePrivateProfileString 函数写入指定的 INI 文件中的相应部分</pre></td></tr><tr><td data-num=\"5\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token function\">WritePrivateProfileInt</span><span class=\"token punctuation\">(</span>LPCTSTR lpAppName<span class=\"token punctuation\">,</span> LPCTSTR lpKeyName<span class=\"token punctuation\">,</span> INT Value<span class=\"token punctuation\">,</span> LPCTSTR lpFileName<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>TCHAR ValBuf<span class=\"token punctuation\">[</span><span class=\"token number\">16</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 用于存储整数值的字符缓冲区，大小为 16 字节</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre><span class=\"token function\">sprintf</span><span class=\"token punctuation\">(</span>ValBuf<span class=\"token punctuation\">,</span> <span class=\"token function\">TEXT</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"%i\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> Value<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将整数值转换为字符串格式，存储在 ValBuf 中</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token comment\">// 调用 WritePrivateProfileString 函数写入 INI 文件，并返回其结果</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token keyword\">return</span> <span class=\"token function\">WritePrivateProfileString</span><span class=\"token punctuation\">(</span>lpAppName<span class=\"token punctuation\">,</span> lpKeyName<span class=\"token punctuation\">,</span> ValBuf<span class=\"token punctuation\">,</span> lpFileName<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"encodeimage\"><a class=\"anchor\" href=\"#encodeimage\">#</a> EncodeImage</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这个函数是用来对图片进行 Base64 编码的</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 该函数的作用是接受一个图片文件的路径，然后对该图片进行 Base64 编码，并返回编码后的字符串。</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> * @param jpgname</pre></td></tr><tr><td data-num=\"5\"></td><td><pre> * @return</pre></td></tr><tr><td data-num=\"6\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>CString <span class=\"token function\">EncodeImage</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>jpgname<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span><span class=\"token comment\">// 对图片进行 Base64 编码的函数</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    ZBase64 zBase<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 创建一个 ZBase64 对象，用于 Base64 编码</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token comment\">// 打开图片文件</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    CFile cbfBmp<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    cbfBmp<span class=\"token punctuation\">.</span><span class=\"token function\">Open</span><span class=\"token punctuation\">(</span>jpgname<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token comment\">// 获取图片文件大小</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token keyword\">int</span> iBmpSize <span class=\"token operator\">=</span> cbfBmp<span class=\"token punctuation\">.</span><span class=\"token function\">GetLength</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token comment\">// 分配内存</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    HGLOBAL hMemBmp <span class=\"token operator\">=</span> <span class=\"token function\">GlobalAlloc</span><span class=\"token punctuation\">(</span>GMEM_FIXED<span class=\"token punctuation\">,</span> iBmpSize<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token comment\">// 如果内存分配失败，返回空字符串</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>hMemBmp <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">return</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token comment\">// 创建内存流对象</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    IStream <span class=\"token operator\">*</span>pStmBmp <span class=\"token operator\">=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token function\">CreateStreamOnHGlobal</span><span class=\"token punctuation\">(</span>hMemBmp<span class=\"token punctuation\">,</span> FALSE<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>pStmBmp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token comment\">// 锁定内存并读取图片数据</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    BYTE <span class=\"token operator\">*</span>pbyBmp <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>BYTE <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token function\">GlobalLock</span><span class=\"token punctuation\">(</span>hMemBmp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    cbfBmp<span class=\"token punctuation\">.</span><span class=\"token function\">SeekToBegin</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    cbfBmp<span class=\"token punctuation\">.</span><span class=\"token function\">Read</span><span class=\"token punctuation\">(</span>pbyBmp<span class=\"token punctuation\">,</span> iBmpSize<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token comment\">// 使用 ZBase64 对象对图片数据进行 Base64 编码</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    string strTmpResult <span class=\"token operator\">=</span> zBase<span class=\"token punctuation\">.</span><span class=\"token function\">Encode</span><span class=\"token punctuation\">(</span>pbyBmp<span class=\"token punctuation\">,</span> iBmpSize<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    <span class=\"token comment\">// 将 Base64 编码后的字符串转换为 CString 类型并返回</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    CString result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    result <span class=\"token operator\">=</span> strTmpResult<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"readcard\"><a class=\"anchor\" href=\"#readcard\">#</a> ReadCard</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这段代码似乎是用于读取身份证信息的，但是其中缺少了具体的读取身份证信息的逻辑</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 这段代码中，ReadCard 函数似乎是用于读取身份证信息的，但其中的具体逻辑在 ReadThreadFindHID 函数内部实现。在当前的代码中，</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> * 没有提供 ReadThreadFindHID 函数的实现，因此无法准确判断 ReadCard 函数的功能</pre></td></tr><tr><td data-num=\"5\"></td><td><pre> * @return</pre></td></tr><tr><td data-num=\"6\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">ReadCard</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// 管理 MFC 模块状态</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre></pre></td></tr><tr><td data-num=\"10\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">ifndef</span> <span class=\"token expression\">_AFXDLL</span></span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">_AFX_SOCK_THREAD_STATE</span> <span class=\"token expression\">AFX_MODULE_THREAD_STATE</span></span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">_afxSockThreadState</span> <span class=\"token expression\"><span class=\"token function\">AfxGetModuleThreadState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></span></span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    _AFX_SOCK_THREAD_STATE <span class=\"token operator\">*</span>pState <span class=\"token operator\">=</span> _afxSockThreadState<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token comment\">// 检查线程状态，如果为空，则初始化一些 Socket 相关的数据结构</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>pState<span class=\"token operator\">-></span>m_pmapSocketHandle <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>        pState<span class=\"token operator\">-></span>m_pmapSocketHandle <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> CMapPtrToPtr<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>pState<span class=\"token operator\">-></span>m_pmapDeadSockets <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>        pState<span class=\"token operator\">-></span>m_pmapDeadSockets <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> CMapPtrToPtr<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>pState<span class=\"token operator\">-></span>m_plistSocketNotifications <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>        pState<span class=\"token operator\">-></span>m_plistSocketNotifications <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> CPtrList<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">endif</span></span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>retString<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token comment\">// 检查是否找到了读取身份证信息的线程</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>        <span class=\"token comment\">// 如果找到了读取身份证信息的线程，则进行相关操作</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    <span class=\"token comment\">// 如果未找到读取身份证信息的线程，则返回 \"net failure\" 字符串</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    retString <span class=\"token operator\">=</span> <span class=\"token string\">\"net failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    <span class=\"token keyword\">return</span> retString<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"ffconnect\"><a class=\"anchor\" href=\"#ffconnect\">#</a> ffconnect</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这段代码似乎是一个用于连接设备的函数，同时返回一个包含连接状态信息的 JSON 字符串</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 在这个函数中，ReadThreadFindHID () 函数似乎用于检查是否成功找到了读取设备信息的线程。如果找到了，</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> * 函数会返回一个包含成功连接信息的 JSON 字符串；如果未找到，函数会返回一个包含连接失败信息的 JSON 字符串。</pre></td></tr><tr><td data-num=\"5\"></td><td><pre> * @return</pre></td></tr><tr><td data-num=\"6\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">ffconnect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// 管理 MFC 模块状态</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>retString<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回的字符串指针</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    CString strResult<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 存储连接状态信息的字符串</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        <span class=\"token comment\">// 如果找到了读取身份证信息的线程，则表示连接设备成功</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设定状态码为 1，表示成功</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"conect device success\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为连接设备成功</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>        <span class=\"token comment\">// 如果未找到读取身份证信息的线程，则表示连接设备失败</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设定状态码为 0，表示失败</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为连接设备失败</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token comment\">// 将 JSON 对象转换为格式化的字符串</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回连接状态信息的字符串指针</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"collterminalsn\"><a class=\"anchor\" href=\"#collterminalsn\">#</a> collTerminalSN</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这段代码是一个用于收集终端序列号的函数。它似乎会尝试从设备中读取序列号，并返回一个包含序列号信息的 JSON 字符串</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 在这个函数中，首先尝试找到读取设备信息的线程。如果成功找到，就尝试从设备中读取序列号数据，并根据读取结果返回相应的 JSON 字符串</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> * @return</pre></td></tr><tr><td data-num=\"5\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">collTerminalSN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 1\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 记录日志：开始收集终端序列号</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// 管理 MFC 模块状态</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 存储序列号数据的缓冲区</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将缓冲区清零</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 2\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 记录日志：准备读取序列号</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span> <span class=\"token comment\">// 如果成功找到读取设备信息的线程</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 3\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 记录日志：找到读取设备信息的线程</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data <span class=\"token operator\">=</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 获取序列号数据</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>            <span class=\"token comment\">// 如果未成功获取序列号数据</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设定状态码为 0，表示失败</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"get SN failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为获取序列号失败</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>            <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 4\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 记录日志：成功获取序列号数据</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>            <span class=\"token comment\">// 将获取的序列号数据拷贝到缓冲区中</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设定状态码为 1，表示成功</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>            <span class=\"token keyword\">char</span> sn<span class=\"token punctuation\">[</span><span class=\"token number\">9</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 存储序列号的数组</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>            <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>sn<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">9</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 清零序列号数组</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>sn<span class=\"token punctuation\">,</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 从序列号数据中提取序列号信息</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> sn<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将序列号信息设置为内容</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>            <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 5\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 记录日志：序列号处理完成</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>        <span class=\"token comment\">// 如果未找到读取设备信息的线程</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设定状态码为 0，表示失败</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为连接设备失败</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collTerminalSN 6\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 记录日志：序列号收集完成</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将 JSON 对象转换为格式化的字符串</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将格式化的字符串赋值给返回值</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回序列号信息的字符串指针</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"collidnumber\"><a class=\"anchor\" href=\"#collidnumber\">#</a> collIdNumber</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这是一个用于收集身份证号码的函数。它接收一个 JSON 字符串作为输入，解析其中的身份证号码和设备序列号，并尝试将身份证号码写入设备中</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 这个函数首先从输入的 JSON 字符串中解析身份证号码和设备序列号。然后它尝试从设备中获取序列号数据，并与输入的设备序列号进行匹配。</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> * 如果匹配成功，它会尝试将身份证号码写入设备中。最后，它会根据操作的结果返回相应的 JSON 字符串</pre></td></tr><tr><td data-num=\"5\"></td><td><pre> * @param inData</pre></td></tr><tr><td data-num=\"6\"></td><td><pre> * @return</pre></td></tr><tr><td data-num=\"7\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">collIdNumber</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// 管理 MFC 模块状态</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token comment\">// 解析输入的 JSON 数据</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    string sinData <span class=\"token operator\">=</span> inData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>sinData<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 存储设备数据的缓冲区</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将缓冲区清零</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token comment\">// 从 JSON 中获取身份证号码和设备序列号</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    string inID <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"i\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 身份证号码</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    string inSN <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"s\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设备序列号</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token comment\">// 如果成功找到读取设备信息的线程</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>        <span class=\"token comment\">// 尝试从设备中获取序列号数据</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data <span class=\"token operator\">=</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>            <span class=\"token comment\">// 如果未成功获取序列号数据，则返回错误信息</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"2\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 2，表示获取序列号失败</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"get SN failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为获取序列号失败</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>            <span class=\"token comment\">// 如果成功获取序列号数据，则检查序列号是否匹配</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>            <span class=\"token keyword\">int</span> ret <span class=\"token operator\">=</span> <span class=\"token function\">strncmp</span><span class=\"token punctuation\">(</span>inSN<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>                <span class=\"token comment\">// 如果序列号不匹配，则返回错误信息</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"3\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 3，表示序列号不匹配</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"SN not match\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为序列号不匹配</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>        <span class=\"token comment\">// 从设备中删除原有的身份证号码，并尝试写入新的身份证号码</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>        Data <span class=\"token operator\">=</span> <span class=\"token function\">DEL_ID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>        Data <span class=\"token operator\">=</span> <span class=\"token function\">ADD_ID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> inID<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>            <span class=\"token comment\">// 如果写入身份证号码失败，则返回错误信息</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 0，表示写入失败</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"collect id number failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为写入身份证号码失败</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>            <span class=\"token comment\">// 如果写入身份证号码成功，则返回成功信息及新的身份证号码</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"collect id number failure!\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 1，表示写入成功</span></pre></td></tr><tr><td data-num=\"71\"></td><td><pre>                <span class=\"token comment\">// 将新的身份证号码和设备序列号拼接成字符串</span></pre></td></tr><tr><td data-num=\"72\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"|\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span>inID<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> inSN<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为拼接后的字符串</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre></pre></td></tr><tr><td data-num=\"76\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回成功信息的字符串指针</span></pre></td></tr><tr><td data-num=\"79\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"82\"></td><td><pre>        <span class=\"token comment\">// 如果未找到读取设备信息的线程，则返回连接设备失败的错误信息</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"84\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"85\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"86\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"87\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"88\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"89\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"collfingerprint\"><a class=\"anchor\" href=\"#collfingerprint\">#</a> collFingerPrint</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这段代码是一个用于收集指纹数据的函数</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 这个函数的作用是收集指纹数据，并返回操作结果</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> * @param inData</pre></td></tr><tr><td data-num=\"5\"></td><td><pre> * @return</pre></td></tr><tr><td data-num=\"6\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">collFingerPrint</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collFingerPrint 0\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 写入日志，表示函数开始执行</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// 管理 MFC 模块状态</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token comment\">// 解析输入的 JSON 数据</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    string sinData <span class=\"token operator\">=</span> inData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>sinData<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 存储设备数据的缓冲区</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将缓冲区清零</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token keyword\">int</span> index <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 指纹索引，默认为 - 1</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collFingerPrint 1\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 写入日志，表示进入函数的第一步</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token comment\">// 从输入的 JSON 中获取指纹索引</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span><span class=\"token punctuation\">(</span>jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"f\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">isNull</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span> <span class=\"token comment\">// 如果 JSON 中包含 \"f\" 字段</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"f\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">isString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span> <span class=\"token comment\">// 如果 \"f\" 字段的值是字符串类型</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>            string strindex <span class=\"token operator\">=</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"f\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将 \"f\" 字段的值转换为字符串</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>strindex<span class=\"token punctuation\">.</span><span class=\"token function\">empty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>                index <span class=\"token operator\">=</span> <span class=\"token function\">atoi</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> strindex<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将字符串转换为整数作为指纹索引</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span> <span class=\"token comment\">// 如果 \"f\" 字段的值不是字符串类型</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>            index <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"f\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asInt</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 直接获取整数作为指纹索引</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collFingerPrint 2\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 写入日志，表示进入函数的第二步</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    string inSN <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"s\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 获取设备序列号</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>    <span class=\"token comment\">// 如果成功找到读取设备信息的线程</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>        <span class=\"token comment\">// 尝试从设备中获取序列号数据</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data <span class=\"token operator\">=</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>            <span class=\"token comment\">// 如果未成功获取序列号数据，则返回错误信息</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"2\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 2，表示获取序列号失败</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"get SN failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为获取序列号失败</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>            <span class=\"token comment\">// 如果成功获取序列号数据，则检查序列号是否匹配</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>            <span class=\"token keyword\">int</span> ret <span class=\"token operator\">=</span> <span class=\"token function\">strncmp</span><span class=\"token punctuation\">(</span>inSN<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>                <span class=\"token comment\">// 如果序列号不匹配，则返回错误信息</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"3\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 3，表示序列号不匹配</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"SN not match\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为序列号不匹配</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>        <span class=\"token comment\">// 如果指纹索引不为 - 1，则删除指定索引的指纹数据</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>index <span class=\"token operator\">!=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>            <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"collFingerPrint 3 del\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 写入日志，表示删除指纹数据</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>            Data <span class=\"token operator\">=</span> <span class=\"token function\">FP_DEL</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">,</span> index<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>            index <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"71\"></td><td><pre></pre></td></tr><tr><td data-num=\"72\"></td><td><pre>        <span class=\"token comment\">// 注册新的指纹数据</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre>        Data <span class=\"token operator\">=</span> <span class=\"token function\">FP_REG</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>            <span class=\"token comment\">// 如果注册指纹失败，则返回错误信息</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 0，表示注册失败</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"collect fingerprint failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为注册指纹失败</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"79\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"82\"></td><td><pre>            <span class=\"token comment\">// 如果注册指纹成功，则返回成功信息及指纹索引</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"84\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"85\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"86\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"collect fingerprint failure!\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"87\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"88\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"89\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"90\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"91\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 1，表示注册成功</span></pre></td></tr><tr><td data-num=\"92\"></td><td><pre>                index <span class=\"token operator\">=</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">*</span> <span class=\"token number\">256</span> <span class=\"token operator\">+</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 获取指纹索引</span></pre></td></tr><tr><td data-num=\"93\"></td><td><pre>                <span class=\"token keyword\">char</span> idx<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"94\"></td><td><pre>                <span class=\"token function\">itoa</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">,</span> idx<span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"95\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"|\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"96\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span>idx<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将指纹索引拼接到设备序列号后面</span></pre></td></tr><tr><td data-num=\"97\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> inSN<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"98\"></td><td><pre></pre></td></tr><tr><td data-num=\"99\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"100\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"101\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回成功信息的字符串指针</span></pre></td></tr><tr><td data-num=\"102\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"103\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"104\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"105\"></td><td><pre>        <span class=\"token comment\">// 如果未找到读取设备信息的线程，则返回连接设备失败的错误信息</span></pre></td></tr><tr><td data-num=\"106\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"107\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"108\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"109\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"110\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"111\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"112\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"deletefingerprints\"><a class=\"anchor\" href=\"#deletefingerprints\">#</a> deleteFingerprints</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这段代码是一个用于删除设备中指纹数据的函数</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 这个函数的作用是接收一个包含设备序列号的 JSON 数据，并尝试从设备中获取序列号数据。</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> * 如果成功获取序列号数据并且与输入的序列号匹配，则尝试删除设备中的指纹数据。</pre></td></tr><tr><td data-num=\"5\"></td><td><pre> * 如果删除成功，则返回成功信息；</pre></td></tr><tr><td data-num=\"6\"></td><td><pre> * 如果删除失败，则返回失败信息。</pre></td></tr><tr><td data-num=\"7\"></td><td><pre> * 如果无法找到读取设备信息的线程，则返回连接设备失败的错误信息。</pre></td></tr><tr><td data-num=\"8\"></td><td><pre></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>代码中使用了 MFC 模块来管理状态，并且依赖了 JSON 库来解析 JSON 数据。</pre></td></tr><tr><td data-num=\"10\"></td><td><pre> 在函数中，还使用了一些未定义的函数 ReadThreadFindHID ()、GET_SN () 和 FP_DEL ()，</pre></td></tr><tr><td data-num=\"11\"></td><td><pre> 这些函数可能是外部定义的，用于设备操作和数据处理。</pre></td></tr><tr><td data-num=\"12\"></td><td><pre></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>总的来说，这个函数的作用是在设备中删除指定范围内的指纹数据，并根据操作结果返回相应的状态信息</pre></td></tr><tr><td data-num=\"14\"></td><td><pre> * @param inData</pre></td></tr><tr><td data-num=\"15\"></td><td><pre> * @return</pre></td></tr><tr><td data-num=\"16\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre></pre></td></tr><tr><td data-num=\"18\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">deleteFingerprints</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// 管理 MFC 模块状态</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token comment\">// 解析输入的 JSON 数据</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    string sinData <span class=\"token operator\">=</span> inData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>sinData<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 存储设备数据的缓冲区</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将缓冲区清零</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    string inSN <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"s\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 获取设备序列号</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    <span class=\"token comment\">// 如果成功找到读取设备信息的线程</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>        <span class=\"token comment\">// 尝试从设备中获取序列号数据</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data <span class=\"token operator\">=</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>            <span class=\"token comment\">// 如果未成功获取序列号数据，则返回错误信息</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"2\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 2，表示获取序列号失败</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"get SN failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为获取序列号失败</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>            <span class=\"token comment\">// 如果成功获取序列号数据，则检查序列号是否匹配</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>            <span class=\"token keyword\">int</span> ret <span class=\"token operator\">=</span> <span class=\"token function\">strncmp</span><span class=\"token punctuation\">(</span>inSN<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>                <span class=\"token comment\">// 如果序列号不匹配，则返回错误信息</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"3\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 3，表示序列号不匹配</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"SN not match\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为序列号不匹配</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>        <span class=\"token comment\">// 删除设备中的指纹数据</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>        Data <span class=\"token operator\">=</span> <span class=\"token function\">FP_DEL</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">500</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 删除指定范围内的指纹数据</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>            <span class=\"token comment\">// 如果删除指纹数据失败，则返回错误信息</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 0，表示删除失败</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"delete fingerprint failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为删除指纹失败</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>            <span class=\"token comment\">// 如果成功删除指纹数据，则返回成功信息</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"1\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 1，表示删除成功</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"71\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回成功信息的字符串指针</span></pre></td></tr><tr><td data-num=\"72\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre>        <span class=\"token comment\">// 如果未找到读取设备信息的线程，则返回连接设备失败的错误信息</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"79\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"verify\"><a class=\"anchor\" href=\"#verify\">#</a> verify</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> * 这段代码是一个用于验证身份信息的函数</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> * 这个函数的作用是验证设备中的指纹或身份证信息，并返回验证结果。</pre></td></tr><tr><td data-num=\"4\"></td><td><pre> * 函数首先从输入的 JSON 数据中获取设备序列号，并与设备中的序列号进行比对。</pre></td></tr><tr><td data-num=\"5\"></td><td><pre> * 然后尝试验证指纹或身份证信息，并根据验证结果返回相应的状态码和内容。</pre></td></tr><tr><td data-num=\"6\"></td><td><pre></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>需要注意的是，函数中使用了一些未定义的函数 ReadThreadFindHID ()、GET_SN () 和 FP_CHECH ()，</pre></td></tr><tr><td data-num=\"8\"></td><td><pre> 这些函数可能是外部定义的，用于设备操作和数据处理。</pre></td></tr><tr><td data-num=\"9\"></td><td><pre> * @param inData</pre></td></tr><tr><td data-num=\"10\"></td><td><pre> * @return</pre></td></tr><tr><td data-num=\"11\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>__stdcall <span class=\"token function\">verify</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>inData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token function\">AFX_MANAGE_STATE</span><span class=\"token punctuation\">(</span><span class=\"token function\">AfxGetStaticModuleState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// 管理 MFC 模块状态</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Value jData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    Json<span class=\"token double-colon punctuation\">::</span>Reader reader<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    string sinData <span class=\"token operator\">=</span> inData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    reader<span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>sinData<span class=\"token punctuation\">,</span> jData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 存储设备数据的缓冲区</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将缓冲区清零</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token keyword\">int</span> index<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 用于存储索引值</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    string inSN <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> jData<span class=\"token punctuation\">[</span><span class=\"token string\">\"s\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">asString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 获取设备序列号</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token comment\">// 如果成功找到读取设备信息的线程</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>        <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data <span class=\"token operator\">=</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 尝试从设备中获取序列号数据</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>            <span class=\"token comment\">// 如果未成功获取序列号数据，则返回错误信息</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"2\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 2，表示获取序列号失败</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"get SN failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为获取序列号失败</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 复制设备数据到缓冲区中</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>            <span class=\"token keyword\">int</span> ret <span class=\"token operator\">=</span> <span class=\"token function\">strncmp</span><span class=\"token punctuation\">(</span>inSN<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 检查序列号是否匹配</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ret <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>                <span class=\"token comment\">// 如果序列号不匹配，则返回错误信息</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"3\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 3，表示序列号不匹配</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"SN not match\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为序列号不匹配</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>        <span class=\"token comment\">// 尝试验证指纹或身份证信息</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>        Data <span class=\"token operator\">=</span> <span class=\"token function\">FP_CHECH</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 获取设备验证结果数据</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Data <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>            <span class=\"token comment\">// 如果验证失败，则返回错误信息</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 0，表示验证失败</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>            root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"verify failure\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为验证失败</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>            root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>            rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>            <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">,</span> Data<span class=\"token punctuation\">,</span> <span class=\"token number\">60</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 复制设备数据到缓冲区中</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x50</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x11</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x01</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>                <span class=\"token comment\">// 如果指纹验证成功</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"6\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 6，表示指纹验证成功</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>                <span class=\"token comment\">// 获取指纹索引和数据</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>                <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>tmpdata <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">6</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>                <span class=\"token keyword\">char</span> tmp_code_data<span class=\"token punctuation\">[</span><span class=\"token number\">19</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>                <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>tmp_code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">19</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>                <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>tmp_code_data<span class=\"token punctuation\">,</span> tmpdata<span class=\"token punctuation\">,</span> <span class=\"token number\">18</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre></pre></td></tr><tr><td data-num=\"71\"></td><td><pre>                index <span class=\"token operator\">=</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">*</span> <span class=\"token number\">256</span> <span class=\"token operator\">+</span> code_data<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 计算索引值</span></pre></td></tr><tr><td data-num=\"72\"></td><td><pre>                <span class=\"token keyword\">char</span> idx<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre>                <span class=\"token function\">itoa</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">,</span> idx<span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将索引值转换为字符串</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"|\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span>idx<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将索引值添加到设备序列号后面</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre></pre></td></tr><tr><td data-num=\"78\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> inSN<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为设备序列号和指纹索引</span></pre></td></tr><tr><td data-num=\"79\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回成功信息的字符串指针</span></pre></td></tr><tr><td data-num=\"82\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x16</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x02</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>code_data<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">0x01</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre>                <span class=\"token comment\">// 如果身份证验证成功</span></pre></td></tr><tr><td data-num=\"84\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"5\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 5，表示身份证验证成功</span></pre></td></tr><tr><td data-num=\"85\"></td><td><pre></pre></td></tr><tr><td data-num=\"86\"></td><td><pre>                <span class=\"token comment\">// 获取身份证数据</span></pre></td></tr><tr><td data-num=\"87\"></td><td><pre>                <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>tmpdata <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> code_data <span class=\"token operator\">+</span> <span class=\"token number\">3</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"88\"></td><td><pre>                <span class=\"token keyword\">char</span> tmp_code_data<span class=\"token punctuation\">[</span><span class=\"token number\">19</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"89\"></td><td><pre>                <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>tmp_code_data<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">19</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"90\"></td><td><pre>                <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>tmp_code_data<span class=\"token punctuation\">,</span> tmpdata<span class=\"token punctuation\">,</span> <span class=\"token number\">18</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"91\"></td><td><pre></pre></td></tr><tr><td data-num=\"92\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"|\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"93\"></td><td><pre>                inSN<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span>tmp_code_data<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将身份证数据添加到设备序列号后面</span></pre></td></tr><tr><td data-num=\"94\"></td><td><pre></pre></td></tr><tr><td data-num=\"95\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> inSN<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为设备序列号和身份证数据</span></pre></td></tr><tr><td data-num=\"96\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"97\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"98\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回成功信息的字符串指针</span></pre></td></tr><tr><td data-num=\"99\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"100\"></td><td><pre>                <span class=\"token comment\">// 如果验证失败，则返回错误信息</span></pre></td></tr><tr><td data-num=\"101\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"0\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置状态码为 0，表示验证失败</span></pre></td></tr><tr><td data-num=\"102\"></td><td><pre>                root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"verify failure!\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 设置内容为验证失败</span></pre></td></tr><tr><td data-num=\"103\"></td><td><pre>                root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"104\"></td><td><pre>                rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"105\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"106\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"107\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"108\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"109\"></td><td><pre>        <span class=\"token comment\">// 如果未找到读取设备信息的线程，则返回连接设备失败的错误信息</span></pre></td></tr><tr><td data-num=\"110\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"code\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"111\"></td><td><pre>        root<span class=\"token punctuation\">[</span><span class=\"token string\">\"content\"</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token string\">\"connect device failure\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"112\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"113\"></td><td><pre>    root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"114\"></td><td><pre>    rtnOut <span class=\"token operator\">=</span> root<span class=\"token punctuation\">.</span><span class=\"token function\">toStyledString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"115\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> rtnOut<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回错误信息的字符串指针</span></pre></td></tr><tr><td data-num=\"116\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"initinstance\"><a class=\"anchor\" href=\"#initinstance\">#</a> InitInstance</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"2\"></td><td><pre> *  MFC 应用程序的初始化函数 InitInstance ()</pre></td></tr><tr><td data-num=\"3\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">ifdef</span> <span class=\"token expression\">_DEBUG</span></span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token comment\">/*  这是一个常见的技巧，用于在调试模式下跟踪内存泄漏。</pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    在 MFC 应用程序中，DEBUG_NEW 是一个宏，用于替换默认的 new 操作符，</pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    从而跟踪动态分配的内存，并在程序退出时报告未释放的内存。通过定义 new DEBUG_NEW，可以在调试模式下使用这个特性。</pre></td></tr><tr><td data-num=\"8\"></td><td><pre>*/</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">new</span> <span class=\"token expression\">DEBUG_NEW</span></span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre><span class=\"token comment\">/**</pre></td></tr><tr><td data-num=\"11\"></td><td><pre> * 这是 MFC 的一种用法，用于跟踪文件名。__FILE__ 是一个预定义的宏，它展开为当前源文件的文件名。</pre></td></tr><tr><td data-num=\"12\"></td><td><pre> * 通过定义 THIS_FILE 字符数组，并将其设置为 __FILE__ 的值，可以在调试时轻松地查看代码所在的文件。</pre></td></tr><tr><td data-num=\"13\"></td><td><pre> */</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">undef</span> <span class=\"token expression\">THIS_FILE</span></span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token keyword\">static</span> <span class=\"token keyword\">char</span> THIS_FILE<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token constant\">__FILE__</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">endif</span></span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre></pre></td></tr><tr><td data-num=\"18\"></td><td><pre><span class=\"token comment\">// CDemo1App 应用程序类的初始化函数</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>BOOL <span class=\"token class-name\">CDemo1App</span><span class=\"token double-colon punctuation\">::</span><span class=\"token function\">InitInstance</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token comment\">// 初始化 MFC 套接字支持</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span><span class=\"token function\">AfxSocketInit</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>        <span class=\"token comment\">// 如果套接字初始化失败，弹出错误消息框</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>        <span class=\"token function\">AfxMessageBox</span><span class=\"token punctuation\">(</span>IDP_SOCKETS_INIT_FAILED<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>        <span class=\"token keyword\">return</span> FALSE<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回初始化失败</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token keyword\">return</span> TRUE<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回初始化成功</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h2 id=\"usb_thread\"><a class=\"anchor\" href=\"#usb_thread\">#</a> usb_thread</h2>\n<h3 id=\"原始代码-3\"><a class=\"anchor\" href=\"#原始代码-3\">#</a> 原始代码</h3>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdafx.h></span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"usb_thread.h\"</span></span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"global.h\"</span></span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token comment\">//#include \"GSIDClientDlg.h\"</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"idcardbin.h\"</span></span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tActualBytesRead<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tBytesRead<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>HIDP_CAPS\t\t\t\t\t\t\tCapabilities<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tcbBytesRead<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>PSP_DEVICE_INTERFACE_DETAIL_DATA\tdetailData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>HANDLE\t\t\t\t\t\t\t\tDeviceHandle<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tdwError<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token keyword\">char</span>\t\t\t\t\t\t\t\tFeatureReport<span class=\"token punctuation\">[</span><span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>HANDLE\t\t\t\t\t\t\t\thEventObject<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>HANDLE\t\t\t\t\t\t\t\thDevInfo<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>GUID\t\t\t\t\t\t\t\tHidGuid<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>OVERLAPPED\t\t\t\t\t\t\tHIDOverlapped<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span>\t\t\t\t\t\tInputReport<span class=\"token punctuation\">[</span><span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>ULONG\t\t\t\t\t\t\t\tLength<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>LPOVERLAPPED\t\t\t\t\t\tlpOverLap<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre><span class=\"token keyword\">bool</span>\t\t\t\t\t\t\t\tMyDeviceDetected <span class=\"token operator\">=</span> FALSE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>CString\t\t\t\t\t\t\t\tMyDevicePathName<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tNumberOfBytesRead<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span>\t\t\t\t\t\tOutputReport<span class=\"token punctuation\">[</span><span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>HANDLE\t\t\t\t\t\t\t\tReadHandle<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tReportType<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>ULONG\t\t\t\t\t\t\t\tRequired<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>CString\t\t\t\t\t\t\t\tValueToDisplay<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>HANDLE\t\t\t\t\t\t\t\tWriteHandle<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre></pre></td></tr><tr><td data-num=\"32\"></td><td><pre></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>CString my_usb_detail<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre><span class=\"token keyword\">int</span> VendorID<span class=\"token operator\">=</span><span class=\"token number\">0x9573</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre><span class=\"token keyword\">int</span> ProductID<span class=\"token operator\">=</span> <span class=\"token number\">0x4850</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre></pre></td></tr><tr><td data-num=\"37\"></td><td><pre></pre></td></tr><tr><td data-num=\"38\"></td><td><pre><span class=\"token keyword\">static</span> DWORD start_time<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre><span class=\"token keyword\">static</span> DWORD end_time<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre><span class=\"token keyword\">static</span> temp_time<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre></pre></td></tr><tr><td data-num=\"42\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> sndbuf<span class=\"token punctuation\">[</span><span class=\"token number\">100</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre><span class=\"token keyword\">int</span> bufnumb<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre><span class=\"token keyword\">int</span> seq<span class=\"token operator\">=</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre><span class=\"token keyword\">int</span> circlenumb<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre></pre></td></tr><tr><td data-num=\"47\"></td><td><pre><span class=\"token keyword\">char</span> p390f88<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre><span class=\"token keyword\">char</span> p670b1<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre><span class=\"token keyword\">char</span> p670b2<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre><span class=\"token keyword\">char</span> p390f82<span class=\"token punctuation\">[</span><span class=\"token number\">60</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre><span class=\"token keyword\">char</span> namebuf<span class=\"token punctuation\">[</span><span class=\"token number\">30</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre></pre></td></tr><tr><td data-num=\"53\"></td><td><pre><span class=\"token keyword\">extern</span>\tUINT nEndCode<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre></pre></td></tr><tr><td data-num=\"55\"></td><td><pre></pre></td></tr><tr><td data-num=\"56\"></td><td><pre><span class=\"token keyword\">static</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> <span class=\"token function\">UpdateCrc</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> ch<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> <span class=\"token operator\">*</span>lpwCrc<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>    ch <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>ch<span class=\"token operator\">^</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>lpwCrc<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x00FF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>    ch <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>ch<span class=\"token operator\">^</span><span class=\"token punctuation\">(</span>ch<span class=\"token operator\">&lt;&lt;</span><span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>    <span class=\"token operator\">*</span>lpwCrc <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>lpwCrc <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token operator\">^</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span><span class=\"token punctuation\">)</span>ch <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token operator\">^</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>              <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span><span class=\"token punctuation\">)</span>ch<span class=\"token operator\">&lt;&lt;</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token operator\">^</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span><span class=\"token punctuation\">)</span>ch<span class=\"token operator\">>></span><span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>    <span class=\"token keyword\">return</span><span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>lpwCrc<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre><span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">ComputeCrc</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data<span class=\"token punctuation\">,</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> Length<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>                       <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>TransmitFirst<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>TransmitSecond<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> chBlock<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> wCrc <span class=\"token operator\">=</span> <span class=\"token number\">0x6363</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>    <span class=\"token keyword\">do</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre>        chBlock <span class=\"token operator\">=</span> <span class=\"token operator\">*</span>Data<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"71\"></td><td><pre>        <span class=\"token function\">UpdateCrc</span><span class=\"token punctuation\">(</span>chBlock<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>wCrc<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"72\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">--</span>Length<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre>    <span class=\"token operator\">*</span>TransmitFirst <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>wCrc <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre>    <span class=\"token operator\">*</span>TransmitSecond <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">(</span>wCrc <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>    <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">void</span> <span class=\"token operator\">*</span>data<span class=\"token punctuation\">,</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> len<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"79\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>p <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>data<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>    <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>len<span class=\"token operator\">&lt;</span><span class=\"token number\">2</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre>        <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"82\"></td><td><pre>    <span class=\"token function\">ComputeCrc</span><span class=\"token punctuation\">(</span>p<span class=\"token punctuation\">,</span>len<span class=\"token operator\">-</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span><span class=\"token operator\">&amp;</span>p<span class=\"token punctuation\">[</span>len<span class=\"token operator\">-</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span><span class=\"token operator\">&amp;</span>p<span class=\"token punctuation\">[</span>len<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"84\"></td><td><pre></pre></td></tr><tr><td data-num=\"85\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">GetDeviceCapabilities</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"86\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"87\"></td><td><pre>    <span class=\"token comment\">//Get the Capabilities structure for the device.</span></pre></td></tr><tr><td data-num=\"88\"></td><td><pre></pre></td></tr><tr><td data-num=\"89\"></td><td><pre>    PHIDP_PREPARSED_DATA\tPreparsedData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"90\"></td><td><pre></pre></td></tr><tr><td data-num=\"91\"></td><td><pre>    <span class=\"token comment\">/*</pre></td></tr><tr><td data-num=\"92\"></td><td><pre>    API function: HidD_GetPreparsedData</pre></td></tr><tr><td data-num=\"93\"></td><td><pre>    Returns: a pointer to a buffer containing the information about the device's capabilities.</pre></td></tr><tr><td data-num=\"94\"></td><td><pre>    Requires: A handle returned by CreateFile.</pre></td></tr><tr><td data-num=\"95\"></td><td><pre>    There's no need to access the buffer directly,</pre></td></tr><tr><td data-num=\"96\"></td><td><pre>    but HidP_GetCaps and other API functions require a pointer to the buffer.</pre></td></tr><tr><td data-num=\"97\"></td><td><pre>    */</span></pre></td></tr><tr><td data-num=\"98\"></td><td><pre></pre></td></tr><tr><td data-num=\"99\"></td><td><pre>    <span class=\"token function\">HidD_GetPreparsedData</span></pre></td></tr><tr><td data-num=\"100\"></td><td><pre>            <span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"101\"></td><td><pre>             <span class=\"token operator\">&amp;</span>PreparsedData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"102\"></td><td><pre></pre></td></tr><tr><td data-num=\"103\"></td><td><pre>    <span class=\"token comment\">/*</pre></td></tr><tr><td data-num=\"104\"></td><td><pre>    API function: HidP_GetCaps</pre></td></tr><tr><td data-num=\"105\"></td><td><pre>    Learn the device's capabilities.</pre></td></tr><tr><td data-num=\"106\"></td><td><pre>    For standard devices such as joysticks, you can find out the specific</pre></td></tr><tr><td data-num=\"107\"></td><td><pre>    capabilities of the device.</pre></td></tr><tr><td data-num=\"108\"></td><td><pre>    For a custom device, the software will probably know what the device is capable of,</pre></td></tr><tr><td data-num=\"109\"></td><td><pre>    and the call only verifies the information.</pre></td></tr><tr><td data-num=\"110\"></td><td><pre>    Requires: the pointer to the buffer returned by HidD_GetPreparsedData.</pre></td></tr><tr><td data-num=\"111\"></td><td><pre>    Returns: a Capabilities structure containing the information.</pre></td></tr><tr><td data-num=\"112\"></td><td><pre>    */</span></pre></td></tr><tr><td data-num=\"113\"></td><td><pre></pre></td></tr><tr><td data-num=\"114\"></td><td><pre>    <span class=\"token function\">HidP_GetCaps</span></pre></td></tr><tr><td data-num=\"115\"></td><td><pre>            <span class=\"token punctuation\">(</span>PreparsedData<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"116\"></td><td><pre>             <span class=\"token operator\">&amp;</span>Capabilities<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"117\"></td><td><pre></pre></td></tr><tr><td data-num=\"118\"></td><td><pre>    <span class=\"token comment\">//No need for PreparsedData any more, so free the memory it's using.</span></pre></td></tr><tr><td data-num=\"119\"></td><td><pre>    <span class=\"token function\">HidD_FreePreparsedData</span><span class=\"token punctuation\">(</span>PreparsedData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"120\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"121\"></td><td><pre></pre></td></tr><tr><td data-num=\"122\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">PrepareForOverlappedTransfer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"123\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"124\"></td><td><pre>    <span class=\"token comment\">//Get a handle to the device for the overlapped ReadFiles.</span></pre></td></tr><tr><td data-num=\"125\"></td><td><pre>    ReadHandle<span class=\"token operator\">=</span><span class=\"token function\">CreateFile</span></pre></td></tr><tr><td data-num=\"126\"></td><td><pre>            <span class=\"token punctuation\">(</span>detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"127\"></td><td><pre>             GENERIC_READ<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"128\"></td><td><pre>             FILE_SHARE_READ<span class=\"token operator\">|</span>FILE_SHARE_WRITE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"129\"></td><td><pre>             <span class=\"token punctuation\">(</span>LPSECURITY_ATTRIBUTES<span class=\"token punctuation\">)</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"130\"></td><td><pre>             OPEN_EXISTING<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"131\"></td><td><pre>             FILE_ATTRIBUTE_NORMAL<span class=\"token operator\">|</span>FILE_FLAG_OVERLAPPED<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"132\"></td><td><pre>             <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"133\"></td><td><pre></pre></td></tr><tr><td data-num=\"134\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>hEventObject <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"135\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"136\"></td><td><pre>        hEventObject <span class=\"token operator\">=</span> <span class=\"token function\">CreateEvent</span></pre></td></tr><tr><td data-num=\"137\"></td><td><pre>                <span class=\"token punctuation\">(</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"138\"></td><td><pre>                 TRUE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"139\"></td><td><pre>                 TRUE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"140\"></td><td><pre>                 <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"141\"></td><td><pre>        <span class=\"token comment\">//Set the members of the overlapped structure.</span></pre></td></tr><tr><td data-num=\"142\"></td><td><pre></pre></td></tr><tr><td data-num=\"143\"></td><td><pre>        HIDOverlapped<span class=\"token punctuation\">.</span>hEvent <span class=\"token operator\">=</span> hEventObject<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"144\"></td><td><pre>        HIDOverlapped<span class=\"token punctuation\">.</span>Offset <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"145\"></td><td><pre>        HIDOverlapped<span class=\"token punctuation\">.</span>OffsetHigh <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"146\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"147\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"148\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">CloseHandles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"149\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"150\"></td><td><pre>    <span class=\"token comment\">//Close open handles.</span></pre></td></tr><tr><td data-num=\"151\"></td><td><pre></pre></td></tr><tr><td data-num=\"152\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>DeviceHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"153\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"154\"></td><td><pre>        <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"155\"></td><td><pre>        DeviceHandle <span class=\"token operator\">=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"156\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"157\"></td><td><pre></pre></td></tr><tr><td data-num=\"158\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"159\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"160\"></td><td><pre>        <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"161\"></td><td><pre>        ReadHandle <span class=\"token operator\">=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"162\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"163\"></td><td><pre></pre></td></tr><tr><td data-num=\"164\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WriteHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"165\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"166\"></td><td><pre>        <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>WriteHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"167\"></td><td><pre>        WriteHandle <span class=\"token operator\">=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"168\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"169\"></td><td><pre>    <span class=\"token function\">SetupDiDestroyDeviceInfoList</span><span class=\"token punctuation\">(</span>hDevInfo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"170\"></td><td><pre></pre></td></tr><tr><td data-num=\"171\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"172\"></td><td><pre></pre></td></tr><tr><td data-num=\"173\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"174\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"175\"></td><td><pre>    <span class=\"token comment\">//Send a report to the device.</span></pre></td></tr><tr><td data-num=\"176\"></td><td><pre></pre></td></tr><tr><td data-num=\"177\"></td><td><pre>    DWORD\tBytesWritten <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"178\"></td><td><pre>    INT\t\tIndex <span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"179\"></td><td><pre>    ULONG\tResult<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"180\"></td><td><pre><span class=\"token comment\">//\tOVERLAPPED overlapped;</span></pre></td></tr><tr><td data-num=\"181\"></td><td><pre></pre></td></tr><tr><td data-num=\"182\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WriteHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"183\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"184\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">WriteFile</span></pre></td></tr><tr><td data-num=\"185\"></td><td><pre>                <span class=\"token punctuation\">(</span>WriteHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"186\"></td><td><pre>                 InputReport<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"187\"></td><td><pre>                 Capabilities<span class=\"token punctuation\">.</span>OutputReportByteLength<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"188\"></td><td><pre>                 <span class=\"token operator\">&amp;</span>BytesWritten<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"189\"></td><td><pre>                 <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"190\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"191\"></td><td><pre></pre></td></tr><tr><td data-num=\"192\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"193\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"194\"></td><td><pre>        <span class=\"token comment\">//The WriteFile failed, so close the handles, display a message,</span></pre></td></tr><tr><td data-num=\"195\"></td><td><pre>        <span class=\"token comment\">//and set MyDeviceDetected to FALSE so the next attempt will look for the device.</span></pre></td></tr><tr><td data-num=\"196\"></td><td><pre>        BytesWritten <span class=\"token operator\">=</span> <span class=\"token function\">GetLastError</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"197\"></td><td><pre>        <span class=\"token comment\">//CloseHandles();</span></pre></td></tr><tr><td data-num=\"198\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"199\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span><span class=\"token keyword\">else</span> <span class=\"token comment\">//writefile success</span></pre></td></tr><tr><td data-num=\"200\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"201\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"202\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"203\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"204\"></td><td><pre></pre></td></tr><tr><td data-num=\"205\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span> buf<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"206\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"207\"></td><td><pre>    <span class=\"token comment\">//Send a report to the device.</span></pre></td></tr><tr><td data-num=\"208\"></td><td><pre></pre></td></tr><tr><td data-num=\"209\"></td><td><pre>    DWORD\tBytesWritten <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"210\"></td><td><pre>    INT\t\tIndex <span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"211\"></td><td><pre>    ULONG\tResult<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"212\"></td><td><pre><span class=\"token comment\">//\tOVERLAPPED overlapped;</span></pre></td></tr><tr><td data-num=\"213\"></td><td><pre>    <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>InputReport<span class=\"token punctuation\">,</span>buf<span class=\"token punctuation\">,</span><span class=\"token number\">256</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"214\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>WriteHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span><span class=\"token operator\">&amp;&amp;</span><span class=\"token punctuation\">(</span>WriteHandle<span class=\"token operator\">!=</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"215\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"216\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">WriteFile</span></pre></td></tr><tr><td data-num=\"217\"></td><td><pre>                <span class=\"token punctuation\">(</span>WriteHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"218\"></td><td><pre>                 InputReport<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"219\"></td><td><pre>                 Capabilities<span class=\"token punctuation\">.</span>OutputReportByteLength<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"220\"></td><td><pre>                 <span class=\"token operator\">&amp;</span>BytesWritten<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"221\"></td><td><pre>                 <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"222\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"223\"></td><td><pre>    <span class=\"token function\">WritebinErrLogFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>InputReport<span class=\"token punctuation\">,</span><span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"224\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"225\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"226\"></td><td><pre>        <span class=\"token comment\">//The WriteFile failed, so close the handles, display a message,</span></pre></td></tr><tr><td data-num=\"227\"></td><td><pre>        <span class=\"token comment\">//and set MyDeviceDetected to FALSE so the next attempt will look for the device.</span></pre></td></tr><tr><td data-num=\"228\"></td><td><pre>        BytesWritten <span class=\"token operator\">=</span> <span class=\"token function\">GetLastError</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"229\"></td><td><pre>        <span class=\"token comment\">//CloseHandles();</span></pre></td></tr><tr><td data-num=\"230\"></td><td><pre>        <span class=\"token function\">WriteLogFile</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"WriteOutputReport FAIL\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"231\"></td><td><pre><span class=\"token comment\">//TRACE( \"WriteOutputReport fail\\n\");</span></pre></td></tr><tr><td data-num=\"232\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"233\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span><span class=\"token keyword\">else</span> <span class=\"token comment\">//writefile success</span></pre></td></tr><tr><td data-num=\"234\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"235\"></td><td><pre>        <span class=\"token function\">WriteLogFile</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"WriteOutputReport success\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"236\"></td><td><pre><span class=\"token comment\">//TRACE( \"WriteOutputReport success\\n\");</span></pre></td></tr><tr><td data-num=\"237\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"238\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"239\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"240\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">WriteOutputReport2</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"241\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"242\"></td><td><pre>    <span class=\"token comment\">//Send a report to the device.</span></pre></td></tr><tr><td data-num=\"243\"></td><td><pre></pre></td></tr><tr><td data-num=\"244\"></td><td><pre>    DWORD\tBytesWritten <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"245\"></td><td><pre>    INT\t\tIndex <span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"246\"></td><td><pre>    ULONG\tResult<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"247\"></td><td><pre><span class=\"token comment\">//\tOVERLAPPED overlapped;</span></pre></td></tr><tr><td data-num=\"248\"></td><td><pre></pre></td></tr><tr><td data-num=\"249\"></td><td><pre></pre></td></tr><tr><td data-num=\"250\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WriteHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"251\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"252\"></td><td><pre>        <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>InputReport<span class=\"token punctuation\">,</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span><span class=\"token number\">256</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"253\"></td><td><pre>        InputReport<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span> <span class=\"token number\">0x39</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"254\"></td><td><pre>        InputReport<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span> <span class=\"token number\">0x03</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"255\"></td><td><pre></pre></td></tr><tr><td data-num=\"256\"></td><td><pre>        InputReport<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span> <span class=\"token number\">0x03</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"257\"></td><td><pre>        InputReport<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"258\"></td><td><pre></pre></td></tr><tr><td data-num=\"259\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">WriteFile</span></pre></td></tr><tr><td data-num=\"260\"></td><td><pre>                <span class=\"token punctuation\">(</span>WriteHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"261\"></td><td><pre>                 InputReport<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"262\"></td><td><pre>                 Capabilities<span class=\"token punctuation\">.</span>OutputReportByteLength<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"263\"></td><td><pre>                 <span class=\"token operator\">&amp;</span>BytesWritten<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"264\"></td><td><pre>                 <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"265\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"266\"></td><td><pre></pre></td></tr><tr><td data-num=\"267\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"268\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"269\"></td><td><pre>        <span class=\"token comment\">//The WriteFile failed, so close the handles, display a message,</span></pre></td></tr><tr><td data-num=\"270\"></td><td><pre>        <span class=\"token comment\">//and set MyDeviceDetected to FALSE so the next attempt will look for the device.</span></pre></td></tr><tr><td data-num=\"271\"></td><td><pre>        BytesWritten <span class=\"token operator\">=</span> <span class=\"token function\">GetLastError</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"272\"></td><td><pre>        <span class=\"token comment\">//CloseHandles();</span></pre></td></tr><tr><td data-num=\"273\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"274\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span><span class=\"token keyword\">else</span> <span class=\"token comment\">//writefile success</span></pre></td></tr><tr><td data-num=\"275\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"276\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"277\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"278\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"279\"></td><td><pre></pre></td></tr><tr><td data-num=\"280\"></td><td><pre></pre></td></tr><tr><td data-num=\"281\"></td><td><pre><span class=\"token keyword\">bool</span> <span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"282\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"283\"></td><td><pre>    <span class=\"token comment\">//Use a series of API calls to find a HID with a specified Vendor IF and Product ID.</span></pre></td></tr><tr><td data-num=\"284\"></td><td><pre></pre></td></tr><tr><td data-num=\"285\"></td><td><pre>    HIDD_ATTRIBUTES\t\t\t\t\t\tAttributes<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"286\"></td><td><pre>    DWORD\t\t\t\t\t\t\t\tDeviceUsage<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"287\"></td><td><pre>    SP_DEVICE_INTERFACE_DATA\t\t\tdevInfoData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"288\"></td><td><pre>    <span class=\"token keyword\">bool</span>\t\t\t\t\t\t\t\tLastDevice <span class=\"token operator\">=</span> FALSE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"289\"></td><td><pre>    <span class=\"token keyword\">int</span>\t\t\t\t\t\t\t\t\tMemberIndex <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"290\"></td><td><pre>    LONG\t\t\t\t\t\t\t\tResult<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"291\"></td><td><pre>    CString\t\t\t\t\t\t\t\tUsageDescription<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"292\"></td><td><pre></pre></td></tr><tr><td data-num=\"293\"></td><td><pre>    Length <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"294\"></td><td><pre>    detailData <span class=\"token operator\">=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"295\"></td><td><pre>    DeviceHandle<span class=\"token operator\">=</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"296\"></td><td><pre></pre></td></tr><tr><td data-num=\"297\"></td><td><pre>    <span class=\"token comment\">/*</pre></td></tr><tr><td data-num=\"298\"></td><td><pre>    API function: HidD_GetHidGuid</pre></td></tr><tr><td data-num=\"299\"></td><td><pre>    Get the GUID for all system HIDs.</pre></td></tr><tr><td data-num=\"300\"></td><td><pre>    Returns: the GUID in HidGuid.</pre></td></tr><tr><td data-num=\"301\"></td><td><pre>    */</span></pre></td></tr><tr><td data-num=\"302\"></td><td><pre></pre></td></tr><tr><td data-num=\"303\"></td><td><pre>    <span class=\"token function\">HidD_GetHidGuid</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>HidGuid<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"304\"></td><td><pre></pre></td></tr><tr><td data-num=\"305\"></td><td><pre>    <span class=\"token comment\">/*</pre></td></tr><tr><td data-num=\"306\"></td><td><pre>    API function: SetupDiGetClassDevs</pre></td></tr><tr><td data-num=\"307\"></td><td><pre>    Returns: a handle to a device information set for all installed devices.</pre></td></tr><tr><td data-num=\"308\"></td><td><pre>    Requires: the GUID returned by GetHidGuid.</pre></td></tr><tr><td data-num=\"309\"></td><td><pre>    */</span></pre></td></tr><tr><td data-num=\"310\"></td><td><pre></pre></td></tr><tr><td data-num=\"311\"></td><td><pre>    hDevInfo<span class=\"token operator\">=</span><span class=\"token function\">SetupDiGetClassDevs</span></pre></td></tr><tr><td data-num=\"312\"></td><td><pre>            <span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>HidGuid<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"313\"></td><td><pre>             <span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"314\"></td><td><pre>             <span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"315\"></td><td><pre>             DIGCF_PRESENT<span class=\"token operator\">|</span>DIGCF_INTERFACEDEVICE<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"316\"></td><td><pre></pre></td></tr><tr><td data-num=\"317\"></td><td><pre>    devInfoData<span class=\"token punctuation\">.</span>cbSize <span class=\"token operator\">=</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>devInfoData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"318\"></td><td><pre></pre></td></tr><tr><td data-num=\"319\"></td><td><pre>    <span class=\"token comment\">//Step through the available devices looking for the one we want.</span></pre></td></tr><tr><td data-num=\"320\"></td><td><pre>    <span class=\"token comment\">//Quit on detecting the desired device or checking all available devices without success.</span></pre></td></tr><tr><td data-num=\"321\"></td><td><pre></pre></td></tr><tr><td data-num=\"322\"></td><td><pre>    MemberIndex <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"323\"></td><td><pre>    LastDevice <span class=\"token operator\">=</span> FALSE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"324\"></td><td><pre></pre></td></tr><tr><td data-num=\"325\"></td><td><pre>    <span class=\"token keyword\">do</span></pre></td></tr><tr><td data-num=\"326\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"327\"></td><td><pre></pre></td></tr><tr><td data-num=\"328\"></td><td><pre></pre></td></tr><tr><td data-num=\"329\"></td><td><pre>        Result<span class=\"token operator\">=</span><span class=\"token function\">SetupDiEnumDeviceInterfaces</span></pre></td></tr><tr><td data-num=\"330\"></td><td><pre>                <span class=\"token punctuation\">(</span>hDevInfo<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"331\"></td><td><pre>                 <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"332\"></td><td><pre>                 <span class=\"token operator\">&amp;</span>HidGuid<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"333\"></td><td><pre>                 MemberIndex<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"334\"></td><td><pre>                 <span class=\"token operator\">&amp;</span>devInfoData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"335\"></td><td><pre></pre></td></tr><tr><td data-num=\"336\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Result <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"337\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"338\"></td><td><pre></pre></td></tr><tr><td data-num=\"339\"></td><td><pre></pre></td></tr><tr><td data-num=\"340\"></td><td><pre>            Result <span class=\"token operator\">=</span> <span class=\"token function\">SetupDiGetDeviceInterfaceDetail</span></pre></td></tr><tr><td data-num=\"341\"></td><td><pre>                    <span class=\"token punctuation\">(</span>hDevInfo<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"342\"></td><td><pre>                     <span class=\"token operator\">&amp;</span>devInfoData<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"343\"></td><td><pre>                     <span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"344\"></td><td><pre>                     <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"345\"></td><td><pre>                     <span class=\"token operator\">&amp;</span>Length<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"346\"></td><td><pre>                     <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"347\"></td><td><pre></pre></td></tr><tr><td data-num=\"348\"></td><td><pre>            <span class=\"token comment\">//Allocate memory for the hDevInfo structure, using the returned Length.</span></pre></td></tr><tr><td data-num=\"349\"></td><td><pre></pre></td></tr><tr><td data-num=\"350\"></td><td><pre>            detailData <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>PSP_DEVICE_INTERFACE_DETAIL_DATA<span class=\"token punctuation\">)</span><span class=\"token function\">malloc</span><span class=\"token punctuation\">(</span>Length<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"351\"></td><td><pre></pre></td></tr><tr><td data-num=\"352\"></td><td><pre>            <span class=\"token comment\">//Set cbSize in the detailData structure.</span></pre></td></tr><tr><td data-num=\"353\"></td><td><pre></pre></td></tr><tr><td data-num=\"354\"></td><td><pre>            detailData <span class=\"token operator\">-></span> cbSize <span class=\"token operator\">=</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>SP_DEVICE_INTERFACE_DETAIL_DATA<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"355\"></td><td><pre></pre></td></tr><tr><td data-num=\"356\"></td><td><pre>            <span class=\"token comment\">//Call the function again, this time passing it the returned buffer size.</span></pre></td></tr><tr><td data-num=\"357\"></td><td><pre></pre></td></tr><tr><td data-num=\"358\"></td><td><pre>            Result <span class=\"token operator\">=</span> <span class=\"token function\">SetupDiGetDeviceInterfaceDetail</span></pre></td></tr><tr><td data-num=\"359\"></td><td><pre>                    <span class=\"token punctuation\">(</span>hDevInfo<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"360\"></td><td><pre>                     <span class=\"token operator\">&amp;</span>devInfoData<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"361\"></td><td><pre>                     detailData<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"362\"></td><td><pre>                     Length<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"363\"></td><td><pre>                     <span class=\"token operator\">&amp;</span>Required<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"364\"></td><td><pre>                     <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"365\"></td><td><pre></pre></td></tr><tr><td data-num=\"366\"></td><td><pre></pre></td></tr><tr><td data-num=\"367\"></td><td><pre></pre></td></tr><tr><td data-num=\"368\"></td><td><pre>            DeviceHandle<span class=\"token operator\">=</span><span class=\"token function\">CreateFile</span></pre></td></tr><tr><td data-num=\"369\"></td><td><pre>                    <span class=\"token punctuation\">(</span>detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"370\"></td><td><pre>                     <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"371\"></td><td><pre>                     FILE_SHARE_READ<span class=\"token operator\">|</span>FILE_SHARE_WRITE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"372\"></td><td><pre>                     <span class=\"token punctuation\">(</span>LPSECURITY_ATTRIBUTES<span class=\"token punctuation\">)</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"373\"></td><td><pre>                     OPEN_EXISTING<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"374\"></td><td><pre>                     <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"375\"></td><td><pre>                     <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"376\"></td><td><pre></pre></td></tr><tr><td data-num=\"377\"></td><td><pre>            <span class=\"token comment\">//Set the Size to the number of bytes in the structure.</span></pre></td></tr><tr><td data-num=\"378\"></td><td><pre></pre></td></tr><tr><td data-num=\"379\"></td><td><pre>            Attributes<span class=\"token punctuation\">.</span>Size <span class=\"token operator\">=</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>Attributes<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"380\"></td><td><pre></pre></td></tr><tr><td data-num=\"381\"></td><td><pre>            Result <span class=\"token operator\">=</span> <span class=\"token function\">HidD_GetAttributes</span></pre></td></tr><tr><td data-num=\"382\"></td><td><pre>                    <span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"383\"></td><td><pre>                     <span class=\"token operator\">&amp;</span>Attributes<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"384\"></td><td><pre></pre></td></tr><tr><td data-num=\"385\"></td><td><pre>            <span class=\"token comment\">//Is it the desired device?</span></pre></td></tr><tr><td data-num=\"386\"></td><td><pre></pre></td></tr><tr><td data-num=\"387\"></td><td><pre>            MyDeviceDetected <span class=\"token operator\">=</span> FALSE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"388\"></td><td><pre></pre></td></tr><tr><td data-num=\"389\"></td><td><pre></pre></td></tr><tr><td data-num=\"390\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Attributes<span class=\"token punctuation\">.</span>VendorID <span class=\"token operator\">==</span> VendorID<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"391\"></td><td><pre>            <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"392\"></td><td><pre>                <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Attributes<span class=\"token punctuation\">.</span>ProductID <span class=\"token operator\">==</span> ProductID<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"393\"></td><td><pre>                <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"394\"></td><td><pre>                    <span class=\"token comment\">//Both the Vendor ID and Product ID match.</span></pre></td></tr><tr><td data-num=\"395\"></td><td><pre></pre></td></tr><tr><td data-num=\"396\"></td><td><pre>                    MyDeviceDetected <span class=\"token operator\">=</span> TRUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"397\"></td><td><pre>                    MyDevicePathName <span class=\"token operator\">=</span> detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"398\"></td><td><pre></pre></td></tr><tr><td data-num=\"399\"></td><td><pre>                    <span class=\"token comment\">//Register to receive device notifications.</span></pre></td></tr><tr><td data-num=\"400\"></td><td><pre></pre></td></tr><tr><td data-num=\"401\"></td><td><pre>                    <span class=\"token comment\">//RegisterForDeviceNotifications();</span></pre></td></tr><tr><td data-num=\"402\"></td><td><pre></pre></td></tr><tr><td data-num=\"403\"></td><td><pre>                    <span class=\"token comment\">//Get the device's capablities.</span></pre></td></tr><tr><td data-num=\"404\"></td><td><pre></pre></td></tr><tr><td data-num=\"405\"></td><td><pre>                    <span class=\"token function\">GetDeviceCapabilities</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"406\"></td><td><pre></pre></td></tr><tr><td data-num=\"407\"></td><td><pre>                    <span class=\"token comment\">// Find out if the device is a system mouse or keyboard.</span></pre></td></tr><tr><td data-num=\"408\"></td><td><pre></pre></td></tr><tr><td data-num=\"409\"></td><td><pre>                    DeviceUsage <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>Capabilities<span class=\"token punctuation\">.</span>UsagePage <span class=\"token operator\">*</span> <span class=\"token number\">256</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> Capabilities<span class=\"token punctuation\">.</span>Usage<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"410\"></td><td><pre></pre></td></tr><tr><td data-num=\"411\"></td><td><pre>                    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>DeviceUsage <span class=\"token operator\">==</span> <span class=\"token number\">0x102</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"412\"></td><td><pre>                    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"413\"></td><td><pre>                        UsageDescription <span class=\"token operator\">=</span> <span class=\"token string\">\"mouse\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"414\"></td><td><pre>                    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"415\"></td><td><pre></pre></td></tr><tr><td data-num=\"416\"></td><td><pre>                    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>DeviceUsage <span class=\"token operator\">==</span> <span class=\"token number\">0x106</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"417\"></td><td><pre>                    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"418\"></td><td><pre>                        UsageDescription <span class=\"token operator\">=</span> <span class=\"token string\">\"keyboard\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"419\"></td><td><pre>                    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"420\"></td><td><pre></pre></td></tr><tr><td data-num=\"421\"></td><td><pre>                    ReadHandle<span class=\"token operator\">=</span><span class=\"token function\">CreateFile</span></pre></td></tr><tr><td data-num=\"422\"></td><td><pre>                            <span class=\"token punctuation\">(</span>detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"423\"></td><td><pre>                             GENERIC_READ<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"424\"></td><td><pre>                             FILE_SHARE_READ<span class=\"token operator\">|</span>FILE_SHARE_WRITE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"425\"></td><td><pre>                             <span class=\"token punctuation\">(</span>LPSECURITY_ATTRIBUTES<span class=\"token punctuation\">)</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"426\"></td><td><pre>                             OPEN_EXISTING<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"427\"></td><td><pre>                             FILE_ATTRIBUTE_NORMAL<span class=\"token operator\">|</span>FILE_FLAG_OVERLAPPED<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"428\"></td><td><pre>                             <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"429\"></td><td><pre></pre></td></tr><tr><td data-num=\"430\"></td><td><pre>                    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>hEventObject <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"431\"></td><td><pre>                    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"432\"></td><td><pre>                        hEventObject <span class=\"token operator\">=</span> <span class=\"token function\">CreateEvent</span></pre></td></tr><tr><td data-num=\"433\"></td><td><pre>                                <span class=\"token punctuation\">(</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"434\"></td><td><pre>                                 TRUE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"435\"></td><td><pre>                                 TRUE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"436\"></td><td><pre>                                 <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"437\"></td><td><pre>                        <span class=\"token comment\">//Set the members of the overlapped structure.</span></pre></td></tr><tr><td data-num=\"438\"></td><td><pre></pre></td></tr><tr><td data-num=\"439\"></td><td><pre>                        HIDOverlapped<span class=\"token punctuation\">.</span>hEvent <span class=\"token operator\">=</span> hEventObject<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"440\"></td><td><pre>                        HIDOverlapped<span class=\"token punctuation\">.</span>Offset <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"441\"></td><td><pre>                        HIDOverlapped<span class=\"token punctuation\">.</span>OffsetHigh <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"442\"></td><td><pre>                    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"443\"></td><td><pre>                    <span class=\"token comment\">// Get a handle for writing Output reports.</span></pre></td></tr><tr><td data-num=\"444\"></td><td><pre></pre></td></tr><tr><td data-num=\"445\"></td><td><pre>                    WriteHandle<span class=\"token operator\">=</span><span class=\"token function\">CreateFile</span></pre></td></tr><tr><td data-num=\"446\"></td><td><pre>                            <span class=\"token punctuation\">(</span>detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"447\"></td><td><pre>                             GENERIC_WRITE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"448\"></td><td><pre>                             FILE_SHARE_READ<span class=\"token operator\">|</span>FILE_SHARE_WRITE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"449\"></td><td><pre>                             <span class=\"token punctuation\">(</span>LPSECURITY_ATTRIBUTES<span class=\"token punctuation\">)</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"450\"></td><td><pre>                             OPEN_EXISTING<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"451\"></td><td><pre>                             FILE_ATTRIBUTE_NORMAL<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"452\"></td><td><pre>                             <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"453\"></td><td><pre>                    <span class=\"token comment\">// Prepare to read reports using Overlapped I/O.</span></pre></td></tr><tr><td data-num=\"454\"></td><td><pre></pre></td></tr><tr><td data-num=\"455\"></td><td><pre>                    <span class=\"token comment\">//PrepareForOverlappedTransfer();</span></pre></td></tr><tr><td data-num=\"456\"></td><td><pre></pre></td></tr><tr><td data-num=\"457\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span> <span class=\"token comment\">//if (Attributes.ProductID == ProductID)</span></pre></td></tr><tr><td data-num=\"458\"></td><td><pre>                <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"459\"></td><td><pre>                    <span class=\"token comment\">//The Product ID doesn't match.</span></pre></td></tr><tr><td data-num=\"460\"></td><td><pre></pre></td></tr><tr><td data-num=\"461\"></td><td><pre>                    <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"462\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token comment\">//if (Attributes.VendorID == VendorID)</span></pre></td></tr><tr><td data-num=\"463\"></td><td><pre></pre></td></tr><tr><td data-num=\"464\"></td><td><pre>            <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"465\"></td><td><pre>                <span class=\"token comment\">//The Vendor ID doesn't match.</span></pre></td></tr><tr><td data-num=\"466\"></td><td><pre>                <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"467\"></td><td><pre></pre></td></tr><tr><td data-num=\"468\"></td><td><pre>            <span class=\"token comment\">//Free the memory used by the detailData structure (no longer needed).</span></pre></td></tr><tr><td data-num=\"469\"></td><td><pre></pre></td></tr><tr><td data-num=\"470\"></td><td><pre>            <span class=\"token function\">free</span><span class=\"token punctuation\">(</span>detailData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"471\"></td><td><pre></pre></td></tr><tr><td data-num=\"472\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span>  <span class=\"token comment\">//if (Result != 0)</span></pre></td></tr><tr><td data-num=\"473\"></td><td><pre></pre></td></tr><tr><td data-num=\"474\"></td><td><pre>        <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"475\"></td><td><pre>            <span class=\"token comment\">//SetupDiEnumDeviceInterfaces returned 0, so there are no more devices to check.</span></pre></td></tr><tr><td data-num=\"476\"></td><td><pre></pre></td></tr><tr><td data-num=\"477\"></td><td><pre>            LastDevice<span class=\"token operator\">=</span>TRUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"478\"></td><td><pre></pre></td></tr><tr><td data-num=\"479\"></td><td><pre>        <span class=\"token comment\">//If we haven't found the device yet, and haven't tried every available device,</span></pre></td></tr><tr><td data-num=\"480\"></td><td><pre>        <span class=\"token comment\">//try the next one.</span></pre></td></tr><tr><td data-num=\"481\"></td><td><pre></pre></td></tr><tr><td data-num=\"482\"></td><td><pre>        MemberIndex <span class=\"token operator\">=</span> MemberIndex <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"483\"></td><td><pre></pre></td></tr><tr><td data-num=\"484\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token comment\">//do</span></pre></td></tr><tr><td data-num=\"485\"></td><td><pre></pre></td></tr><tr><td data-num=\"486\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>LastDevice <span class=\"token operator\">==</span> FALSE<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>MyDeviceDetected <span class=\"token operator\">==</span> FALSE<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"487\"></td><td><pre></pre></td></tr><tr><td data-num=\"488\"></td><td><pre></pre></td></tr><tr><td data-num=\"489\"></td><td><pre>    <span class=\"token comment\">//Free the memory reserved for hDevInfo by SetupDiClassDevs.</span></pre></td></tr><tr><td data-num=\"490\"></td><td><pre></pre></td></tr><tr><td data-num=\"491\"></td><td><pre>    <span class=\"token function\">SetupDiDestroyDeviceInfoList</span><span class=\"token punctuation\">(</span>hDevInfo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"492\"></td><td><pre></pre></td></tr><tr><td data-num=\"493\"></td><td><pre>    <span class=\"token keyword\">return</span> MyDeviceDetected<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"494\"></td><td><pre></pre></td></tr><tr><td data-num=\"495\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"496\"></td><td><pre></pre></td></tr><tr><td data-num=\"497\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">TeaEncrypt</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>v<span class=\"token punctuation\">,</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> n<span class=\"token punctuation\">,</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>k<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"498\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"499\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> z<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> sum<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> e<span class=\"token punctuation\">,</span> DELTA<span class=\"token operator\">=</span><span class=\"token number\">0x9e3779b9</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"500\"></td><td><pre>    <span class=\"token keyword\">long</span> p<span class=\"token punctuation\">,</span>q<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"501\"></td><td><pre></pre></td></tr><tr><td data-num=\"502\"></td><td><pre>    z<span class=\"token operator\">=</span>v<span class=\"token punctuation\">[</span>n<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"503\"></td><td><pre>    y<span class=\"token operator\">=</span>v<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"504\"></td><td><pre>    q <span class=\"token operator\">=</span> <span class=\"token number\">6</span> <span class=\"token operator\">+</span> <span class=\"token number\">52</span><span class=\"token operator\">/</span>n<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"505\"></td><td><pre>    <span class=\"token keyword\">while</span><span class=\"token punctuation\">(</span>q<span class=\"token operator\">--</span> <span class=\"token operator\">></span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"506\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"507\"></td><td><pre>        sum <span class=\"token operator\">+=</span> DELTA<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"508\"></td><td><pre>        e <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">>></span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token operator\">&amp;</span><span class=\"token number\">3</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"509\"></td><td><pre>        <span class=\"token keyword\">for</span><span class=\"token punctuation\">(</span>p<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span>p<span class=\"token operator\">&lt;</span> n<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span> p<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"510\"></td><td><pre>            y <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>p<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> z <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>p<span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> MX<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"511\"></td><td><pre>        y <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"512\"></td><td><pre>        z <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>n<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> MX<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"513\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"514\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"515\"></td><td><pre></pre></td></tr><tr><td data-num=\"516\"></td><td><pre></pre></td></tr><tr><td data-num=\"517\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">TeaDecrypt</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>v<span class=\"token punctuation\">,</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> n<span class=\"token punctuation\">,</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>k<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"518\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"519\"></td><td><pre>    <span class=\"token comment\">//n>1</span></pre></td></tr><tr><td data-num=\"520\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> z<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> sum<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> e<span class=\"token punctuation\">,</span> DELTA<span class=\"token operator\">=</span><span class=\"token number\">0x9e3779b9</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"521\"></td><td><pre>    <span class=\"token keyword\">long</span> p<span class=\"token punctuation\">,</span>q<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"522\"></td><td><pre></pre></td></tr><tr><td data-num=\"523\"></td><td><pre>    y<span class=\"token operator\">=</span>v<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"524\"></td><td><pre>    q <span class=\"token operator\">=</span> <span class=\"token number\">6</span> <span class=\"token operator\">+</span> <span class=\"token number\">52</span><span class=\"token operator\">/</span>n<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"525\"></td><td><pre>    sum <span class=\"token operator\">=</span> q<span class=\"token operator\">*</span>DELTA<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"526\"></td><td><pre>    <span class=\"token keyword\">while</span><span class=\"token punctuation\">(</span>sum <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"527\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"528\"></td><td><pre>        e <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">>></span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token operator\">&amp;</span><span class=\"token number\">3</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"529\"></td><td><pre>        <span class=\"token keyword\">for</span><span class=\"token punctuation\">(</span>p<span class=\"token operator\">=</span>n<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span>p<span class=\"token operator\">></span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span> p<span class=\"token operator\">--</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"530\"></td><td><pre>            z <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>p<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>y <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>p<span class=\"token punctuation\">]</span> <span class=\"token operator\">-=</span> MX<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"531\"></td><td><pre>        z <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>n<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"532\"></td><td><pre>        y <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">-=</span> MX<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"533\"></td><td><pre>        sum <span class=\"token operator\">-=</span> DELTA<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"534\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"535\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"536\"></td><td><pre></pre></td></tr><tr><td data-num=\"537\"></td><td><pre></pre></td></tr><tr><td data-num=\"538\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span> <span class=\"token function\">FP_CHECH</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"539\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"540\"></td><td><pre>    DWORD\tResult<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"541\"></td><td><pre></pre></td></tr><tr><td data-num=\"542\"></td><td><pre>    <span class=\"token comment\">//device</span></pre></td></tr><tr><td data-num=\"543\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"544\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span><span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"545\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"546\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"547\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"548\"></td><td><pre>    <span class=\"token comment\">//buf[4]=0x10;</span></pre></td></tr><tr><td data-num=\"549\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x04</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"550\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x50</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"551\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x11</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"552\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf<span class=\"token operator\">+</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">6</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"553\"></td><td><pre></pre></td></tr><tr><td data-num=\"554\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"555\"></td><td><pre></pre></td></tr><tr><td data-num=\"556\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"557\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"558\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span></pre></td></tr><tr><td data-num=\"559\"></td><td><pre>                <span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"560\"></td><td><pre>                 InputReport<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"561\"></td><td><pre>                 Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"562\"></td><td><pre>                 <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"563\"></td><td><pre>                 <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"564\"></td><td><pre><span class=\"token comment\">//\t\t\tif (Result) break;</span></pre></td></tr><tr><td data-num=\"565\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span><span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"566\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"567\"></td><td><pre>        <span class=\"token comment\">//STATE_USB_BROKEN;</span></pre></td></tr><tr><td data-num=\"568\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"569\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"570\"></td><td><pre><span class=\"token comment\">//\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"571\"></td><td><pre><span class=\"token comment\">//\t\t&#125;</span></pre></td></tr><tr><td data-num=\"572\"></td><td><pre>    Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span> <span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span>\t<span class=\"token number\">5000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"573\"></td><td><pre></pre></td></tr><tr><td data-num=\"574\"></td><td><pre>    <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"575\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"576\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">//ok, received inputreport</span></pre></td></tr><tr><td data-num=\"577\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"578\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"579\"></td><td><pre>            <span class=\"token function\">CloseHandles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"580\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport<span class=\"token operator\">+</span><span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"581\"></td><td><pre>            <span class=\"token comment\">//WriteOutputReport();</span></pre></td></tr><tr><td data-num=\"582\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"583\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"584\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span></pre></td></tr><tr><td data-num=\"585\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"586\"></td><td><pre><span class=\"token comment\">//\t\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"587\"></td><td><pre><span class=\"token comment\">//\t\t\tTRACE(\"noting readed\");</span></pre></td></tr><tr><td data-num=\"588\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"589\"></td><td><pre>        <span class=\"token keyword\">default</span><span class=\"token operator\">:</span>  <span class=\"token comment\">//Undefined error</span></pre></td></tr><tr><td data-num=\"590\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"591\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"592\"></td><td><pre></pre></td></tr><tr><td data-num=\"593\"></td><td><pre><span class=\"token comment\">//\tCloseHandles();</span></pre></td></tr><tr><td data-num=\"594\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"595\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"596\"></td><td><pre></pre></td></tr><tr><td data-num=\"597\"></td><td><pre></pre></td></tr><tr><td data-num=\"598\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span> <span class=\"token function\">FP_REG</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> index <span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"599\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"600\"></td><td><pre>    DWORD\tResult<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"601\"></td><td><pre>    <span class=\"token keyword\">char</span> off1<span class=\"token operator\">=</span>index<span class=\"token operator\">/</span><span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"602\"></td><td><pre>    <span class=\"token keyword\">char</span> off2<span class=\"token operator\">=</span>index<span class=\"token operator\">%</span><span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"603\"></td><td><pre>    <span class=\"token comment\">//device</span></pre></td></tr><tr><td data-num=\"604\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"605\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span><span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"606\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"607\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"608\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"609\"></td><td><pre>    <span class=\"token comment\">//buf[4]=0x10;</span></pre></td></tr><tr><td data-num=\"610\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x06</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"611\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x50</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"612\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x12</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"613\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">7</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span>off1<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"614\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">8</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span>off2<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"615\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf<span class=\"token operator\">+</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//len2，crc2</span></pre></td></tr><tr><td data-num=\"616\"></td><td><pre><span class=\"token comment\">//\tmemcpy</span></pre></td></tr><tr><td data-num=\"617\"></td><td><pre><span class=\"token comment\">//\tmemcpy(buf+9,data,60);</span></pre></td></tr><tr><td data-num=\"618\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"619\"></td><td><pre></pre></td></tr><tr><td data-num=\"620\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"621\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"622\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span></pre></td></tr><tr><td data-num=\"623\"></td><td><pre>                <span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"624\"></td><td><pre>                 InputReport<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"625\"></td><td><pre>                 Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"626\"></td><td><pre>                 <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"627\"></td><td><pre>                 <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"628\"></td><td><pre><span class=\"token comment\">//\t\t\tif (Result) break;</span></pre></td></tr><tr><td data-num=\"629\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span><span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"630\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"631\"></td><td><pre>        <span class=\"token comment\">//STATE_USB_BROKEN;</span></pre></td></tr><tr><td data-num=\"632\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"633\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"634\"></td><td><pre><span class=\"token comment\">//\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"635\"></td><td><pre><span class=\"token comment\">//\t\t&#125;</span></pre></td></tr><tr><td data-num=\"636\"></td><td><pre>    Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span> <span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span>\t<span class=\"token number\">5000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"637\"></td><td><pre></pre></td></tr><tr><td data-num=\"638\"></td><td><pre>    <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"639\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"640\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">//ok, received inputreport</span></pre></td></tr><tr><td data-num=\"641\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"642\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"643\"></td><td><pre>            <span class=\"token function\">CloseHandles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"644\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport<span class=\"token operator\">+</span><span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"645\"></td><td><pre>            <span class=\"token comment\">//WriteOutputReport();</span></pre></td></tr><tr><td data-num=\"646\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"647\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"648\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span></pre></td></tr><tr><td data-num=\"649\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"650\"></td><td><pre><span class=\"token comment\">//\t\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"651\"></td><td><pre><span class=\"token comment\">//\t\t\tTRACE(\"noting readed\");</span></pre></td></tr><tr><td data-num=\"652\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"653\"></td><td><pre>        <span class=\"token keyword\">default</span><span class=\"token operator\">:</span>  <span class=\"token comment\">//Undefined error</span></pre></td></tr><tr><td data-num=\"654\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"655\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"656\"></td><td><pre></pre></td></tr><tr><td data-num=\"657\"></td><td><pre><span class=\"token comment\">//\tCloseHandles();</span></pre></td></tr><tr><td data-num=\"658\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"659\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"660\"></td><td><pre></pre></td></tr><tr><td data-num=\"661\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span> <span class=\"token function\">FP_DEL</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> index1<span class=\"token punctuation\">,</span><span class=\"token keyword\">int</span> index2<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"662\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"663\"></td><td><pre>    DWORD\tResult<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"664\"></td><td><pre></pre></td></tr><tr><td data-num=\"665\"></td><td><pre>    <span class=\"token comment\">//device</span></pre></td></tr><tr><td data-num=\"666\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"667\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span><span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"668\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"669\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"670\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"671\"></td><td><pre>    <span class=\"token comment\">//buf[4]=0x10;</span></pre></td></tr><tr><td data-num=\"672\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x08</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"673\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x50</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"674\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x13</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"675\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">7</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span>index1<span class=\"token operator\">/</span><span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"676\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">8</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span>index1<span class=\"token operator\">%</span><span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"677\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">9</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span>index2<span class=\"token operator\">/</span><span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"678\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">10</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span>index2<span class=\"token operator\">%</span><span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"679\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf<span class=\"token operator\">+</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//len2，crc2</span></pre></td></tr><tr><td data-num=\"680\"></td><td><pre></pre></td></tr><tr><td data-num=\"681\"></td><td><pre><span class=\"token comment\">//\tmemcpy</span></pre></td></tr><tr><td data-num=\"682\"></td><td><pre><span class=\"token comment\">//\tmemcpy(buf+9,data,60);</span></pre></td></tr><tr><td data-num=\"683\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"684\"></td><td><pre></pre></td></tr><tr><td data-num=\"685\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"686\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"687\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span></pre></td></tr><tr><td data-num=\"688\"></td><td><pre>                <span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"689\"></td><td><pre>                 InputReport<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"690\"></td><td><pre>                 Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"691\"></td><td><pre>                 <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"692\"></td><td><pre>                 <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"693\"></td><td><pre><span class=\"token comment\">//\t\t\tif (Result) break;</span></pre></td></tr><tr><td data-num=\"694\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span><span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"695\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"696\"></td><td><pre>        <span class=\"token comment\">//STATE_USB_BROKEN;</span></pre></td></tr><tr><td data-num=\"697\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"698\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"699\"></td><td><pre><span class=\"token comment\">//\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"700\"></td><td><pre><span class=\"token comment\">//\t\t&#125;</span></pre></td></tr><tr><td data-num=\"701\"></td><td><pre>    Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span> <span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span>\t<span class=\"token number\">500</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"702\"></td><td><pre></pre></td></tr><tr><td data-num=\"703\"></td><td><pre>    <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"704\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"705\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">//ok, received inputreport</span></pre></td></tr><tr><td data-num=\"706\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"707\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"708\"></td><td><pre>            <span class=\"token comment\">//CloseHandles();</span></pre></td></tr><tr><td data-num=\"709\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport<span class=\"token operator\">+</span><span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"710\"></td><td><pre>            <span class=\"token comment\">//WriteOutputReport();</span></pre></td></tr><tr><td data-num=\"711\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"712\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"713\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span></pre></td></tr><tr><td data-num=\"714\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"715\"></td><td><pre><span class=\"token comment\">//\t\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"716\"></td><td><pre><span class=\"token comment\">//\t\t\tTRACE(\"noting readed\");</span></pre></td></tr><tr><td data-num=\"717\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"718\"></td><td><pre>        <span class=\"token keyword\">default</span><span class=\"token operator\">:</span>  <span class=\"token comment\">//Undefined error</span></pre></td></tr><tr><td data-num=\"719\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"720\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"721\"></td><td><pre></pre></td></tr><tr><td data-num=\"722\"></td><td><pre><span class=\"token comment\">//\tCloseHandles();</span></pre></td></tr><tr><td data-num=\"723\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"724\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"725\"></td><td><pre></pre></td></tr><tr><td data-num=\"726\"></td><td><pre></pre></td></tr><tr><td data-num=\"727\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span> <span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"728\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"729\"></td><td><pre>    DWORD\tResult<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"730\"></td><td><pre></pre></td></tr><tr><td data-num=\"731\"></td><td><pre>    <span class=\"token comment\">//device</span></pre></td></tr><tr><td data-num=\"732\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"733\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span><span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"734\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"735\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"736\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"737\"></td><td><pre>    <span class=\"token comment\">//buf[4]=0x10;</span></pre></td></tr><tr><td data-num=\"738\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x05</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"739\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x7c</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"740\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"741\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">7</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x08</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"742\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf<span class=\"token operator\">+</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">7</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//len2，crc2</span></pre></td></tr><tr><td data-num=\"743\"></td><td><pre><span class=\"token comment\">//\tmemcpy</span></pre></td></tr><tr><td data-num=\"744\"></td><td><pre><span class=\"token comment\">//\tmemcpy(buf+9,data,60);</span></pre></td></tr><tr><td data-num=\"745\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"746\"></td><td><pre></pre></td></tr><tr><td data-num=\"747\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"748\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"749\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span></pre></td></tr><tr><td data-num=\"750\"></td><td><pre>                <span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"751\"></td><td><pre>                 InputReport<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"752\"></td><td><pre>                 Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"753\"></td><td><pre>                 <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"754\"></td><td><pre>                 <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"755\"></td><td><pre><span class=\"token comment\">//\t\t\tif (Result) break;</span></pre></td></tr><tr><td data-num=\"756\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span><span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"757\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"758\"></td><td><pre>        <span class=\"token comment\">//STATE_USB_BROKEN;</span></pre></td></tr><tr><td data-num=\"759\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"760\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"761\"></td><td><pre><span class=\"token comment\">//\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"762\"></td><td><pre><span class=\"token comment\">//\t\t&#125;</span></pre></td></tr><tr><td data-num=\"763\"></td><td><pre>    Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span> <span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span>\t<span class=\"token number\">500</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"764\"></td><td><pre></pre></td></tr><tr><td data-num=\"765\"></td><td><pre>    <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"766\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"767\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">//ok, received inputreport</span></pre></td></tr><tr><td data-num=\"768\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"769\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"770\"></td><td><pre>            <span class=\"token comment\">//\tCloseHandles();</span></pre></td></tr><tr><td data-num=\"771\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport<span class=\"token operator\">+</span><span class=\"token number\">6</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"772\"></td><td><pre>            <span class=\"token comment\">//WriteOutputReport();</span></pre></td></tr><tr><td data-num=\"773\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"774\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"775\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span></pre></td></tr><tr><td data-num=\"776\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"777\"></td><td><pre><span class=\"token comment\">//\t\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"778\"></td><td><pre><span class=\"token comment\">//\t\t\tTRACE(\"noting readed\");</span></pre></td></tr><tr><td data-num=\"779\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"780\"></td><td><pre>        <span class=\"token keyword\">default</span><span class=\"token operator\">:</span>  <span class=\"token comment\">//Undefined error</span></pre></td></tr><tr><td data-num=\"781\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"782\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"783\"></td><td><pre></pre></td></tr><tr><td data-num=\"784\"></td><td><pre><span class=\"token comment\">//\tCloseHandles();</span></pre></td></tr><tr><td data-num=\"785\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"786\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"787\"></td><td><pre></pre></td></tr><tr><td data-num=\"788\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span> <span class=\"token function\">DEL_ID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"789\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"790\"></td><td><pre>    DWORD\tResult<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"791\"></td><td><pre></pre></td></tr><tr><td data-num=\"792\"></td><td><pre>    <span class=\"token comment\">//device</span></pre></td></tr><tr><td data-num=\"793\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"794\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span><span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"795\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"796\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"797\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"798\"></td><td><pre>    <span class=\"token comment\">//buf[4]=0x10;</span></pre></td></tr><tr><td data-num=\"799\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x04</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"800\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x7d</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"801\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"802\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf<span class=\"token operator\">+</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">6</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//len2，crc2</span></pre></td></tr><tr><td data-num=\"803\"></td><td><pre><span class=\"token comment\">//\tmemcpy</span></pre></td></tr><tr><td data-num=\"804\"></td><td><pre><span class=\"token comment\">//\tmemcpy(buf+9,data,60);</span></pre></td></tr><tr><td data-num=\"805\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"806\"></td><td><pre></pre></td></tr><tr><td data-num=\"807\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"808\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"809\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span></pre></td></tr><tr><td data-num=\"810\"></td><td><pre>                <span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"811\"></td><td><pre>                 InputReport<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"812\"></td><td><pre>                 Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"813\"></td><td><pre>                 <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"814\"></td><td><pre>                 <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"815\"></td><td><pre><span class=\"token comment\">//\t\t\tif (Result) break;</span></pre></td></tr><tr><td data-num=\"816\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span><span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"817\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"818\"></td><td><pre>        <span class=\"token comment\">//STATE_USB_BROKEN;</span></pre></td></tr><tr><td data-num=\"819\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"820\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"821\"></td><td><pre><span class=\"token comment\">//\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"822\"></td><td><pre><span class=\"token comment\">//\t\t&#125;</span></pre></td></tr><tr><td data-num=\"823\"></td><td><pre>    Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span> <span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span>\t<span class=\"token number\">500</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"824\"></td><td><pre></pre></td></tr><tr><td data-num=\"825\"></td><td><pre>    <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"826\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"827\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">//ok, received inputreport</span></pre></td></tr><tr><td data-num=\"828\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"829\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"830\"></td><td><pre>            <span class=\"token comment\">//CloseHandles();</span></pre></td></tr><tr><td data-num=\"831\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport<span class=\"token operator\">+</span><span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"832\"></td><td><pre>            <span class=\"token comment\">//WriteOutputReport();</span></pre></td></tr><tr><td data-num=\"833\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"834\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"835\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span></pre></td></tr><tr><td data-num=\"836\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"837\"></td><td><pre><span class=\"token comment\">//\t\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"838\"></td><td><pre><span class=\"token comment\">//\t\t\tTRACE(\"noting readed\");</span></pre></td></tr><tr><td data-num=\"839\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"840\"></td><td><pre>        <span class=\"token keyword\">default</span><span class=\"token operator\">:</span>  <span class=\"token comment\">//Undefined error</span></pre></td></tr><tr><td data-num=\"841\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"842\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"843\"></td><td><pre></pre></td></tr><tr><td data-num=\"844\"></td><td><pre><span class=\"token comment\">//\tCloseHandles();</span></pre></td></tr><tr><td data-num=\"845\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"846\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"847\"></td><td><pre></pre></td></tr><tr><td data-num=\"848\"></td><td><pre></pre></td></tr><tr><td data-num=\"849\"></td><td><pre></pre></td></tr><tr><td data-num=\"850\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span> <span class=\"token function\">ADD_ID</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span> data<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"851\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"852\"></td><td><pre>    DWORD\tResult<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"853\"></td><td><pre></pre></td></tr><tr><td data-num=\"854\"></td><td><pre>    <span class=\"token comment\">//device</span></pre></td></tr><tr><td data-num=\"855\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"856\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span><span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"857\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"858\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"859\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"860\"></td><td><pre>    <span class=\"token comment\">//buf[4]=0x10;</span></pre></td></tr><tr><td data-num=\"861\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x15</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"862\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token operator\">=</span><span class=\"token number\">0x7e</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"863\"></td><td><pre><span class=\"token comment\">//\tbuf[6]=0x00;</span></pre></td></tr><tr><td data-num=\"864\"></td><td><pre><span class=\"token comment\">//\tmemcpy</span></pre></td></tr><tr><td data-num=\"865\"></td><td><pre>    <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>buf<span class=\"token operator\">+</span><span class=\"token number\">6</span><span class=\"token punctuation\">,</span>data<span class=\"token punctuation\">,</span><span class=\"token number\">18</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"866\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf<span class=\"token operator\">+</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x17</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//len2，crc2</span></pre></td></tr><tr><td data-num=\"867\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"868\"></td><td><pre></pre></td></tr><tr><td data-num=\"869\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"870\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"871\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"872\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"873\"></td><td><pre>            Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span></pre></td></tr><tr><td data-num=\"874\"></td><td><pre>                    <span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"875\"></td><td><pre>                     InputReport<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"876\"></td><td><pre>                     Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"877\"></td><td><pre>                     <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"878\"></td><td><pre>                     <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"879\"></td><td><pre><span class=\"token comment\">//\t\t\tif (Result) break;</span></pre></td></tr><tr><td data-num=\"880\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span><span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"881\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"882\"></td><td><pre>            <span class=\"token comment\">//STATE_USB_BROKEN;</span></pre></td></tr><tr><td data-num=\"883\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"884\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"885\"></td><td><pre><span class=\"token comment\">//\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"886\"></td><td><pre><span class=\"token comment\">//\t\t&#125;</span></pre></td></tr><tr><td data-num=\"887\"></td><td><pre></pre></td></tr><tr><td data-num=\"888\"></td><td><pre></pre></td></tr><tr><td data-num=\"889\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span> <span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span>\t<span class=\"token number\">5000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"890\"></td><td><pre>        <span class=\"token comment\">//write_log_file(\"add id  6\");</span></pre></td></tr><tr><td data-num=\"891\"></td><td><pre>        <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"892\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"893\"></td><td><pre>            <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">//ok, received inputreport</span></pre></td></tr><tr><td data-num=\"894\"></td><td><pre>            <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"895\"></td><td><pre>                <span class=\"token comment\">//write_log_file(\"add id  7\");</span></pre></td></tr><tr><td data-num=\"896\"></td><td><pre>                <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>InputReport<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token operator\">!=</span><span class=\"token number\">0x7E</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"897\"></td><td><pre>                <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"898\"></td><td><pre>                    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"899\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"900\"></td><td><pre>                <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"901\"></td><td><pre>                <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"902\"></td><td><pre>                    <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"903\"></td><td><pre>                    <span class=\"token function\">CloseHandles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"904\"></td><td><pre>                    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport<span class=\"token operator\">+</span><span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"905\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"906\"></td><td><pre>                <span class=\"token comment\">//WriteOutputReport();</span></pre></td></tr><tr><td data-num=\"907\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"908\"></td><td><pre>                <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"909\"></td><td><pre>            <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span></pre></td></tr><tr><td data-num=\"910\"></td><td><pre>                <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"add id  8\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"911\"></td><td><pre>                <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"912\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"913\"></td><td><pre><span class=\"token comment\">//\t\t\tbreak;</span></pre></td></tr><tr><td data-num=\"914\"></td><td><pre><span class=\"token comment\">//\t\t\tSleep(5);</span></pre></td></tr><tr><td data-num=\"915\"></td><td><pre><span class=\"token comment\">//\t\t\tTRACE(\"noting readed\");</span></pre></td></tr><tr><td data-num=\"916\"></td><td><pre>                <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"917\"></td><td><pre>            <span class=\"token keyword\">default</span><span class=\"token operator\">:</span>  <span class=\"token comment\">//Undefined error</span></pre></td></tr><tr><td data-num=\"918\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"919\"></td><td><pre>                <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"920\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"921\"></td><td><pre>        <span class=\"token keyword\">continue</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"922\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"923\"></td><td><pre><span class=\"token comment\">//\tCloseHandles();</span></pre></td></tr><tr><td data-num=\"924\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"925\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"926\"></td><td><pre></pre></td></tr><tr><td data-num=\"927\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span> str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"928\"></td><td><pre>    FILE <span class=\"token operator\">*</span>file <span class=\"token operator\">=</span> <span class=\"token function\">fopen</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"data.txt\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"a+\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"929\"></td><td><pre>    <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>file <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"930\"></td><td><pre>        <span class=\"token comment\">// exit(1);</span></pre></td></tr><tr><td data-num=\"931\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"932\"></td><td><pre>    <span class=\"token comment\">//if(file.isope</span></pre></td></tr><tr><td data-num=\"933\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"934\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> wlen <span class=\"token operator\">=</span> <span class=\"token function\">fwrite</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> len<span class=\"token punctuation\">,</span> file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"935\"></td><td><pre>    <span class=\"token function\">fputc</span><span class=\"token punctuation\">(</span><span class=\"token char\">'\\n'</span><span class=\"token punctuation\">,</span> file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"936\"></td><td><pre>    <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">!=</span> wlen<span class=\"token punctuation\">)</span><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"937\"></td><td><pre>        <span class=\"token comment\">//exit(1);</span></pre></td></tr><tr><td data-num=\"938\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"939\"></td><td><pre></pre></td></tr><tr><td data-num=\"940\"></td><td><pre>    <span class=\"token function\">fclose</span><span class=\"token punctuation\">(</span>file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"941\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"942\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h3 id=\"精简后代码结构\"><a class=\"anchor\" href=\"#精简后代码结构\">#</a> 精简后代码结构</h3>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 包含标准头文件和自定义头文件</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdafx.h></span></span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"usb_thread.h\"</span></span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"global.h\"</span></span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">\"idcardbin.h\"</span></span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token comment\">// 定义全局变量</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tActualBytesRead<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tBytesRead<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>HIDP_CAPS\t\t\t\t\t\t\tCapabilities<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tcbBytesRead<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>PSP_DEVICE_INTERFACE_DETAIL_DATA\tdetailData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>HANDLE\t\t\t\t\t\t\t\tDeviceHandle<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tdwError<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token keyword\">char</span>\t\t\t\t\t\t\t\tFeatureReport<span class=\"token punctuation\">[</span><span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>HANDLE\t\t\t\t\t\t\t\thEventObject<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>HANDLE\t\t\t\t\t\t\t\thDevInfo<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>GUID\t\t\t\t\t\t\t\tHidGuid<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>OVERLAPPED\t\t\t\t\t\t\tHIDOverlapped<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span>\t\t\t\t\t\tInputReport<span class=\"token punctuation\">[</span><span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>ULONG\t\t\t\t\t\t\t\tLength<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>LPOVERLAPPED\t\t\t\t\t\tlpOverLap<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token keyword\">bool</span>\t\t\t\t\t\t\t\tMyDeviceDetected <span class=\"token operator\">=</span> FALSE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>CString\t\t\t\t\t\t\t\tMyDevicePathName<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tNumberOfBytesRead<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span>\t\t\t\t\t\tOutputReport<span class=\"token punctuation\">[</span><span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>HANDLE\t\t\t\t\t\t\t\tReadHandle<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>DWORD\t\t\t\t\t\t\t\tReportType<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>ULONG\t\t\t\t\t\t\t\tRequired<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>CString\t\t\t\t\t\t\t\tValueToDisplay<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>HANDLE\t\t\t\t\t\t\t\tWriteHandle<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre></pre></td></tr><tr><td data-num=\"33\"></td><td><pre><span class=\"token comment\">// 定义其他变量</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>CString my_usb_detail<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre><span class=\"token keyword\">int</span> VendorID<span class=\"token operator\">=</span><span class=\"token number\">0x9573</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre><span class=\"token keyword\">int</span> ProductID<span class=\"token operator\">=</span> <span class=\"token number\">0x4850</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre></pre></td></tr><tr><td data-num=\"38\"></td><td><pre><span class=\"token comment\">// 函数：更新 CRC 校验值</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre><span class=\"token keyword\">static</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> <span class=\"token function\">UpdateCrc</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> ch<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> <span class=\"token operator\">*</span>lpwCrc<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>    ch <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>ch<span class=\"token operator\">^</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>lpwCrc<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x00FF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>    ch <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>ch<span class=\"token operator\">^</span><span class=\"token punctuation\">(</span>ch<span class=\"token operator\">&lt;&lt;</span><span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>    <span class=\"token operator\">*</span>lpwCrc <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>lpwCrc <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token operator\">^</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span><span class=\"token punctuation\">)</span>ch <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token operator\">^</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>              <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span><span class=\"token punctuation\">)</span>ch<span class=\"token operator\">&lt;&lt;</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token operator\">^</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span><span class=\"token punctuation\">)</span>ch<span class=\"token operator\">>></span><span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>    <span class=\"token keyword\">return</span><span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>lpwCrc<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre></pre></td></tr><tr><td data-num=\"48\"></td><td><pre><span class=\"token comment\">// 函数：计算 CRC 校验值</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre><span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">ComputeCrc</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> Length<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>                       <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>TransmitFirst<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>TransmitSecond<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> chBlock<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> wCrc <span class=\"token operator\">=</span> <span class=\"token number\">0x6363</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>    <span class=\"token keyword\">do</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>        chBlock <span class=\"token operator\">=</span> <span class=\"token operator\">*</span>Data<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>        <span class=\"token function\">UpdateCrc</span><span class=\"token punctuation\">(</span>chBlock<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>wCrc<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">--</span>Length<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>    <span class=\"token operator\">*</span>TransmitFirst <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>wCrc <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>    <span class=\"token operator\">*</span>TransmitSecond <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">(</span>wCrc <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>    <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre></pre></td></tr><tr><td data-num=\"63\"></td><td><pre><span class=\"token comment\">// 函数：计算 CRC 校验值（简化版）</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">void</span> <span class=\"token operator\">*</span>data<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> len<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>p <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>data<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>    <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>len <span class=\"token operator\">&lt;</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>        <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>    <span class=\"token function\">ComputeCrc</span><span class=\"token punctuation\">(</span>p<span class=\"token punctuation\">,</span> len <span class=\"token operator\">-</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>p<span class=\"token punctuation\">[</span>len <span class=\"token operator\">-</span> <span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>p<span class=\"token punctuation\">[</span>len <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"71\"></td><td><pre></pre></td></tr><tr><td data-num=\"72\"></td><td><pre><span class=\"token comment\">// 函数：获取设备能力</span></pre></td></tr><tr><td data-num=\"73\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">GetDeviceCapabilities</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>    <span class=\"token comment\">// 获取预处理数据</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre>    PHIDP_PREPARSED_DATA PreparsedData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre>    <span class=\"token function\">HidD_GetPreparsedData</span><span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>PreparsedData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"79\"></td><td><pre>    <span class=\"token comment\">// 获取设备能力信息</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>    <span class=\"token function\">HidP_GetCaps</span><span class=\"token punctuation\">(</span>PreparsedData<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>Capabilities<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre></pre></td></tr><tr><td data-num=\"82\"></td><td><pre>    <span class=\"token comment\">// 释放预处理数据</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre>    <span class=\"token function\">HidD_FreePreparsedData</span><span class=\"token punctuation\">(</span>PreparsedData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"84\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"85\"></td><td><pre></pre></td></tr><tr><td data-num=\"86\"></td><td><pre><span class=\"token comment\">// 函数：准备进行重叠传输</span></pre></td></tr><tr><td data-num=\"87\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">PrepareForOverlappedTransfer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"88\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"89\"></td><td><pre>    <span class=\"token comment\">// 为重叠读取操作获取设备句柄</span></pre></td></tr><tr><td data-num=\"90\"></td><td><pre>    ReadHandle <span class=\"token operator\">=</span> <span class=\"token function\">CreateFile</span><span class=\"token punctuation\">(</span>detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">,</span> GENERIC_READ<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"91\"></td><td><pre>                            FILE_SHARE_READ <span class=\"token operator\">|</span> FILE_SHARE_WRITE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"92\"></td><td><pre>                            <span class=\"token punctuation\">(</span>LPSECURITY_ATTRIBUTES<span class=\"token punctuation\">)</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span> OPEN_EXISTING<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"93\"></td><td><pre>                            FILE_ATTRIBUTE_NORMAL <span class=\"token operator\">|</span> FILE_FLAG_OVERLAPPED<span class=\"token punctuation\">,</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"94\"></td><td><pre></pre></td></tr><tr><td data-num=\"95\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>hEventObject <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"96\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"97\"></td><td><pre>        <span class=\"token comment\">// 创建事件对象</span></pre></td></tr><tr><td data-num=\"98\"></td><td><pre>        hEventObject <span class=\"token operator\">=</span> <span class=\"token function\">CreateEvent</span><span class=\"token punctuation\">(</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span> TRUE<span class=\"token punctuation\">,</span> TRUE<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"99\"></td><td><pre></pre></td></tr><tr><td data-num=\"100\"></td><td><pre>        <span class=\"token comment\">// 设置重叠结构的成员</span></pre></td></tr><tr><td data-num=\"101\"></td><td><pre>        HIDOverlapped<span class=\"token punctuation\">.</span>hEvent <span class=\"token operator\">=</span> hEventObject<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"102\"></td><td><pre>        HIDOverlapped<span class=\"token punctuation\">.</span>Offset <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"103\"></td><td><pre>        HIDOverlapped<span class=\"token punctuation\">.</span>OffsetHigh <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"104\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"105\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"106\"></td><td><pre></pre></td></tr><tr><td data-num=\"107\"></td><td><pre><span class=\"token comment\">// 函数：关闭句柄</span></pre></td></tr><tr><td data-num=\"108\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">CloseHandles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"109\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"110\"></td><td><pre>    <span class=\"token comment\">// 关闭打开的句柄</span></pre></td></tr><tr><td data-num=\"111\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>DeviceHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"112\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"113\"></td><td><pre>        <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"114\"></td><td><pre>        DeviceHandle <span class=\"token operator\">=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"115\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"116\"></td><td><pre></pre></td></tr><tr><td data-num=\"117\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"118\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"119\"></td><td><pre>        <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"120\"></td><td><pre>        ReadHandle <span class=\"token operator\">=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"121\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"122\"></td><td><pre></pre></td></tr><tr><td data-num=\"123\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WriteHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"124\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"125\"></td><td><pre>        <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>WriteHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"126\"></td><td><pre>        WriteHandle <span class=\"token operator\">=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"127\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"128\"></td><td><pre></pre></td></tr><tr><td data-num=\"129\"></td><td><pre>    <span class=\"token comment\">// 销毁设备信息列表</span></pre></td></tr><tr><td data-num=\"130\"></td><td><pre>    <span class=\"token function\">SetupDiDestroyDeviceInfoList</span><span class=\"token punctuation\">(</span>hDevInfo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"131\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"updatecrc\"><a class=\"anchor\" href=\"#updatecrc\">#</a> UpdateCrc</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：更新 CRC 校验值</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 参数：</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">//   ch: 待处理的字节</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token comment\">//   lpwCrc: CRC 校验值指针</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token comment\">// 返回值：更新后的 CRC 校验值</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token keyword\">static</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> <span class=\"token function\">UpdateCrc</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> ch<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> <span class=\"token operator\">*</span>lpwCrc<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token comment\">// 将待处理的字节与低位 CRC 校验值进行异或运算</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    ch <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>ch <span class=\"token operator\">^</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>lpwCrc<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x00FF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token comment\">// 左移 4 位，并再次与原字节进行异或运算</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    ch <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>ch <span class=\"token operator\">^</span> <span class=\"token punctuation\">(</span>ch <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token comment\">// 更新 CRC 校验值</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token operator\">*</span>lpwCrc <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>lpwCrc <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span><span class=\"token punctuation\">)</span>ch <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>              <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span><span class=\"token punctuation\">)</span>ch <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span><span class=\"token punctuation\">)</span>ch <span class=\"token operator\">>></span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token comment\">// 返回更新后的 CRC 校验值</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>lpwCrc<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"computecrc\"><a class=\"anchor\" href=\"#computecrc\">#</a> ComputeCrc</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：计算 CRC 校验值</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 参数：</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">//   Data: 待计算 CRC 的数据数组指针</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token comment\">//   Length: 数据长度</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token comment\">//   TransmitFirst: 存储 CRC 高位字节的指针</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token comment\">//   TransmitSecond: 存储 CRC 低位字节的指针</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token comment\">// 返回值：无</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">ComputeCrc</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>Data<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> Length<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>                       <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>TransmitFirst<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>TransmitSecond<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> chBlock<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 用于存储每次处理的字节</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> wCrc <span class=\"token operator\">=</span> <span class=\"token number\">0x6363</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 初始 CRC 校验值</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token comment\">// 遍历数据数组，更新 CRC 校验值</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token keyword\">do</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>        chBlock <span class=\"token operator\">=</span> <span class=\"token operator\">*</span>Data<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 获取当前字节</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>        <span class=\"token function\">UpdateCrc</span><span class=\"token punctuation\">(</span>chBlock<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>wCrc<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 更新 CRC 校验值</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">--</span>Length<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 继续直到处理完所有数据</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token comment\">// 将 CRC 校验值的高位字节和低位字节存储到对应的指针中</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token operator\">*</span>TransmitFirst <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>wCrc <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 存储高位字节</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token operator\">*</span>TransmitSecond <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>wCrc <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 存储低位字节</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 结束函数</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"crc_calc\"><a class=\"anchor\" href=\"#crc_calc\">#</a> crc_calc</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：计算 CRC 校验值</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 参数：</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">//   data: 待计算 CRC 的数据指针</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token comment\">//   len: 数据长度</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token comment\">// 返回值：无</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">void</span> <span class=\"token operator\">*</span>data<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">short</span> len<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>p <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>data<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将数据指针转换为无符号字符指针</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token comment\">// 如果数据长度小于 2，则直接返回，因为 CRC 校验需要至少两个字节的数据</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>len <span class=\"token operator\">&lt;</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token comment\">// 调用 ComputeCrc 函数计算 CRC 校验值，并将结果存储在数据的倒数第二个字节和最后一个字节中</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token function\">ComputeCrc</span><span class=\"token punctuation\">(</span>p<span class=\"token punctuation\">,</span> len <span class=\"token operator\">-</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>p<span class=\"token punctuation\">[</span>len <span class=\"token operator\">-</span> <span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>p<span class=\"token punctuation\">[</span>len <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"getdevicecapabilities\"><a class=\"anchor\" href=\"#getdevicecapabilities\">#</a> GetDeviceCapabilities</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：获取设备的功能信息</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 参数：无</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 返回值：无</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">GetDeviceCapabilities</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    PHIDP_PREPARSED_DATA PreparsedData<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 预解析数据结构指针</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token comment\">// 获取设备的预解析数据</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token function\">HidD_GetPreparsedData</span><span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>PreparsedData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token comment\">/*</pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    函数：HidP_GetCaps</pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    说明：获取设备的功能信息。对于标准设备（如游戏手柄），可以了解设备的具体功能。</pre></td></tr><tr><td data-num=\"14\"></td><td><pre>         对于自定义设备，软件可能已经知道设备的功能，此调用仅用于验证信息。</pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    参数：PreparsedData - 由 HidD_GetPreparsedData 返回的缓冲区指针</pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    返回值：包含设备信息的 Capabilities 结构体</pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    */</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token function\">HidP_GetCaps</span><span class=\"token punctuation\">(</span>PreparsedData<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>Capabilities<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token comment\">// 不再需要 PreparsedData，释放内存</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token function\">HidD_FreePreparsedData</span><span class=\"token punctuation\">(</span>PreparsedData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"prepareforoverlappedtransfer\"><a class=\"anchor\" href=\"#prepareforoverlappedtransfer\">#</a> PrepareForOverlappedTransfer</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：准备进行重叠传输</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 参数：无</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 返回值：无</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">PrepareForOverlappedTransfer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token comment\">// 获取用于重叠读取文件的设备句柄</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    ReadHandle <span class=\"token operator\">=</span> <span class=\"token function\">CreateFile</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>        detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">,</span>                           <span class=\"token comment\">// 设备路径</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>        GENERIC_READ<span class=\"token punctuation\">,</span>                                     <span class=\"token comment\">// 读取权限</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>        FILE_SHARE_READ <span class=\"token operator\">|</span> FILE_SHARE_WRITE<span class=\"token punctuation\">,</span>               <span class=\"token comment\">// 共享权限</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token punctuation\">(</span>LPSECURITY_ATTRIBUTES<span class=\"token punctuation\">)</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span>                      <span class=\"token comment\">// 安全属性</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        OPEN_EXISTING<span class=\"token punctuation\">,</span>                                    <span class=\"token comment\">// 打开已存在的文件</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>        FILE_ATTRIBUTE_NORMAL <span class=\"token operator\">|</span> FILE_FLAG_OVERLAPPED<span class=\"token punctuation\">,</span>     <span class=\"token comment\">// 属性标志：正常文件 + 重叠标志</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>        <span class=\"token constant\">NULL</span>                                              <span class=\"token comment\">// 模板句柄</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token comment\">// 如果事件对象未创建，创建一个事件对象</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>hEventObject <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>        hEventObject <span class=\"token operator\">=</span> <span class=\"token function\">CreateEvent</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>            <span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span>     <span class=\"token comment\">// 默认安全属性</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>            TRUE<span class=\"token punctuation\">,</span>     <span class=\"token comment\">// 手动重置</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>            TRUE<span class=\"token punctuation\">,</span>     <span class=\"token comment\">// 初始状态为有信号</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>            <span class=\"token string\">\"\"</span>        <span class=\"token comment\">// 无名称</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>        <span class=\"token comment\">// 设置重叠结构的成员</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>        HIDOverlapped<span class=\"token punctuation\">.</span>hEvent <span class=\"token operator\">=</span> hEventObject<span class=\"token punctuation\">;</span>   <span class=\"token comment\">// 事件句柄</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>        HIDOverlapped<span class=\"token punctuation\">.</span>Offset <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>               <span class=\"token comment\">// 偏移量</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        HIDOverlapped<span class=\"token punctuation\">.</span>OffsetHigh <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>           <span class=\"token comment\">// 高位偏移量</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"closehandles\"><a class=\"anchor\" href=\"#closehandles\">#</a> CloseHandles</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：关闭句柄</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 参数：无</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 返回值：无</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">CloseHandles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token comment\">// 关闭打开的句柄</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token comment\">// 如果设备句柄有效，关闭设备句柄并将其置为无效</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>DeviceHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        DeviceHandle <span class=\"token operator\">=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token comment\">// 如果读取句柄有效，关闭读取句柄并将其置为无效</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>        <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>        ReadHandle <span class=\"token operator\">=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token comment\">// 如果写入句柄有效，关闭写入句柄并将其置为无效</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WriteHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>WriteHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>        WriteHandle <span class=\"token operator\">=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token comment\">// 销毁设备信息列表</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    <span class=\"token function\">SetupDiDestroyDeviceInfoList</span><span class=\"token punctuation\">(</span>hDevInfo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"writeoutputreport\"><a class=\"anchor\" href=\"#writeoutputreport\">#</a> WriteOutputReport</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：写入输出报告</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 参数：无</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 返回值：写入结果，成功返回 0，失败返回 - 1</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token comment\">// 向设备发送报告</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    DWORD\tBytesWritten <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    ULONG\tResult <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token comment\">// 如果写入句柄有效，则进行写入操作</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WriteHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>        <span class=\"token comment\">// 调用 WriteFile 函数向设备写入数据</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">WriteFile</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>            WriteHandle<span class=\"token punctuation\">,</span>                <span class=\"token comment\">// 写入句柄</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>            InputReport<span class=\"token punctuation\">,</span>                <span class=\"token comment\">// 待写入的数据</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>            Capabilities<span class=\"token punctuation\">.</span>OutputReportByteLength<span class=\"token punctuation\">,</span> <span class=\"token comment\">// 写入数据的字节长度</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>            <span class=\"token operator\">&amp;</span>BytesWritten<span class=\"token punctuation\">,</span>              <span class=\"token comment\">// 实际写入的字节数</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>            <span class=\"token constant\">NULL</span>                        <span class=\"token comment\">// 不使用重叠操作</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token comment\">// 如果写入失败，则处理失败情况</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>        <span class=\"token comment\">// 获取错误信息</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>        BytesWritten <span class=\"token operator\">=</span> <span class=\"token function\">GetLastError</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>        <span class=\"token comment\">// 返回 - 1 表示写入失败</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>        <span class=\"token comment\">// 写入成功，返回 0 表示成功</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"writeoutputreport-2\"><a class=\"anchor\" href=\"#writeoutputreport-2\">#</a> WriteOutputReport</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：写入输出报告</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 参数：buf - 待发送的报告数据</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 返回值：写入结果，成功返回 0，失败返回 - 1</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>buf<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token comment\">// 将待发送的报告数据复制到 InputReport 缓冲区中</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>InputReport<span class=\"token punctuation\">,</span> buf<span class=\"token punctuation\">,</span> <span class=\"token number\">256</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token comment\">// 定义变量用于记录写入操作结果和实际写入的字节数</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    DWORD\tBytesWritten <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    ULONG\tResult <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token comment\">// 如果写入句柄有效，则进行写入操作</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WriteHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE <span class=\"token operator\">&amp;&amp;</span> WriteHandle <span class=\"token operator\">!=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>        <span class=\"token comment\">// 调用 WriteFile 函数向设备写入数据</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">WriteFile</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>            WriteHandle<span class=\"token punctuation\">,</span>                        <span class=\"token comment\">// 写入句柄</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>            InputReport<span class=\"token punctuation\">,</span>                        <span class=\"token comment\">// 待写入的数据</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>            Capabilities<span class=\"token punctuation\">.</span>OutputReportByteLength<span class=\"token punctuation\">,</span><span class=\"token comment\">// 写入数据的字节长度</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>            <span class=\"token operator\">&amp;</span>BytesWritten<span class=\"token punctuation\">,</span>                      <span class=\"token comment\">// 实际写入的字节数</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>            <span class=\"token constant\">NULL</span>                                <span class=\"token comment\">// 不使用重叠操作</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token comment\">// 记录写入操作结果到日志文件</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token function\">WritebinErrLogFile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span>InputReport<span class=\"token punctuation\">,</span> <span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token comment\">// 如果写入失败，则处理失败情况</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>        <span class=\"token comment\">// 获取错误信息</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>        BytesWritten <span class=\"token operator\">=</span> <span class=\"token function\">GetLastError</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>        <span class=\"token comment\">// 记录失败信息到日志文件</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>        <span class=\"token function\">WriteLogFile</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"WriteOutputReport FAIL\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>        <span class=\"token comment\">// 返回 - 1 表示写入失败</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>    <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>        <span class=\"token comment\">// 记录成功信息到日志文件</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>        <span class=\"token function\">WriteLogFile</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"WriteOutputReport success\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>        <span class=\"token comment\">// 写入成功，返回 0 表示成功</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"writeoutputreport2\"><a class=\"anchor\" href=\"#writeoutputreport2\">#</a> WriteOutputReport2</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：写入输出报告 2</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：向设备发送报告数据</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 返回值：写入结果，成功返回 0，失败返回 - 1</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">WriteOutputReport2</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token comment\">// 定义变量用于记录写入操作结果和实际写入的字节数</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    DWORD\tBytesWritten <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    ULONG\tResult <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token comment\">// 如果写入句柄有效，则进行写入操作</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>WriteHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>        <span class=\"token comment\">// 清空 InputReport 缓冲区，并设置报告数据</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>        <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>InputReport<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">256</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        InputReport<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x39</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>        InputReport<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x03</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>        InputReport<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x03</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>        InputReport<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>        <span class=\"token comment\">// 调用 WriteFile 函数向设备写入数据</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">WriteFile</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>            WriteHandle<span class=\"token punctuation\">,</span>                        <span class=\"token comment\">// 写入句柄</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>            InputReport<span class=\"token punctuation\">,</span>                        <span class=\"token comment\">// 待写入的数据</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>            Capabilities<span class=\"token punctuation\">.</span>OutputReportByteLength<span class=\"token punctuation\">,</span><span class=\"token comment\">// 写入数据的字节长度</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>            <span class=\"token operator\">&amp;</span>BytesWritten<span class=\"token punctuation\">,</span>                      <span class=\"token comment\">// 实际写入的字节数</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>            <span class=\"token constant\">NULL</span>                                <span class=\"token comment\">// 不使用重叠操作</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    <span class=\"token comment\">// 如果写入失败，则处理失败情况</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>        <span class=\"token comment\">// 获取错误信息</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>        BytesWritten <span class=\"token operator\">=</span> <span class=\"token function\">GetLastError</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>        <span class=\"token comment\">// 返回 - 1 表示写入失败</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>        <span class=\"token comment\">// 写入成功，返回 0 表示成功</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"readthreadfindhid\"><a class=\"anchor\" href=\"#readthreadfindhid\">#</a> ReadThreadFindHID</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：读取线程查找 HID 设备</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：使用一系列的 API 调用查找具有指定供应商 ID 和产品 ID 的 HID 设备</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 返回值：如果找到目标设备返回 true，否则返回 false</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">bool</span> <span class=\"token function\">ReadThreadFindHID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token comment\">// 定义变量</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    HIDD_ATTRIBUTES Attributes<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    DWORD DeviceUsage<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    SP_DEVICE_INTERFACE_DATA devInfoData<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">bool</span> LastDevice <span class=\"token operator\">=</span> FALSE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token keyword\">int</span> MemberIndex <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    LONG Result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    CString UsageDescription<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token comment\">// 重置长度和设备信息数据</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    Length <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    detailData <span class=\"token operator\">=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    DeviceHandle <span class=\"token operator\">=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token comment\">// 获取系统中所有 HID 设备的 GUID</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token function\">HidD_GetHidGuid</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>HidGuid<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token comment\">// 获取设备信息集句柄</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    hDevInfo <span class=\"token operator\">=</span> <span class=\"token function\">SetupDiGetClassDevs</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        <span class=\"token operator\">&amp;</span>HidGuid<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>        <span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>        <span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>        DIGCF_PRESENT <span class=\"token operator\">|</span> DIGCF_INTERFACEDEVICE</pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    devInfoData<span class=\"token punctuation\">.</span>cbSize <span class=\"token operator\">=</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>devInfoData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token comment\">// 逐个检查可用设备，直到找到目标设备或检查完所有设备</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    MemberIndex <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    LastDevice <span class=\"token operator\">=</span> FALSE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    <span class=\"token keyword\">do</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>        <span class=\"token comment\">// 枚举设备接口</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">SetupDiEnumDeviceInterfaces</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>            hDevInfo<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>            <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>            <span class=\"token operator\">&amp;</span>HidGuid<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>            MemberIndex<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>            <span class=\"token operator\">&amp;</span>devInfoData</pre></td></tr><tr><td data-num=\"46\"></td><td><pre>        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Result <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>            Result <span class=\"token operator\">=</span> <span class=\"token function\">SetupDiGetDeviceInterfaceDetail</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>                hDevInfo<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>                <span class=\"token operator\">&amp;</span>devInfoData<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>                <span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>                <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>                <span class=\"token operator\">&amp;</span>Length<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>                <span class=\"token constant\">NULL</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>            <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>            <span class=\"token comment\">// 分配内存给设备信息数据结构</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>            detailData <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>PSP_DEVICE_INTERFACE_DETAIL_DATA<span class=\"token punctuation\">)</span><span class=\"token function\">malloc</span><span class=\"token punctuation\">(</span>Length<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>            detailData<span class=\"token operator\">-></span>cbSize <span class=\"token operator\">=</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>SP_DEVICE_INTERFACE_DETAIL_DATA<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>            <span class=\"token comment\">// 获取设备接口详细信息</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>            Result <span class=\"token operator\">=</span> <span class=\"token function\">SetupDiGetDeviceInterfaceDetail</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>                hDevInfo<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>                <span class=\"token operator\">&amp;</span>devInfoData<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>                detailData<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>                Length<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>                <span class=\"token operator\">&amp;</span>Required<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"70\"></td><td><pre>                <span class=\"token constant\">NULL</span></pre></td></tr><tr><td data-num=\"71\"></td><td><pre>            <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"72\"></td><td><pre></pre></td></tr><tr><td data-num=\"73\"></td><td><pre>            <span class=\"token comment\">// 打开设备文件句柄</span></pre></td></tr><tr><td data-num=\"74\"></td><td><pre>            DeviceHandle <span class=\"token operator\">=</span> <span class=\"token function\">CreateFile</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"75\"></td><td><pre>                detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"76\"></td><td><pre>                <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"77\"></td><td><pre>                FILE_SHARE_READ <span class=\"token operator\">|</span> FILE_SHARE_WRITE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"78\"></td><td><pre>                <span class=\"token punctuation\">(</span>LPSECURITY_ATTRIBUTES<span class=\"token punctuation\">)</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"79\"></td><td><pre>                OPEN_EXISTING<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"80\"></td><td><pre>                <span class=\"token number\">0</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"81\"></td><td><pre>                <span class=\"token constant\">NULL</span></pre></td></tr><tr><td data-num=\"82\"></td><td><pre>            <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"83\"></td><td><pre></pre></td></tr><tr><td data-num=\"84\"></td><td><pre>            <span class=\"token comment\">// 获取设备属性</span></pre></td></tr><tr><td data-num=\"85\"></td><td><pre>            Attributes<span class=\"token punctuation\">.</span>Size <span class=\"token operator\">=</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>Attributes<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"86\"></td><td><pre>            Result <span class=\"token operator\">=</span> <span class=\"token function\">HidD_GetAttributes</span><span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>Attributes<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"87\"></td><td><pre></pre></td></tr><tr><td data-num=\"88\"></td><td><pre>            <span class=\"token comment\">// 检查是否为目标设备</span></pre></td></tr><tr><td data-num=\"89\"></td><td><pre>            MyDeviceDetected <span class=\"token operator\">=</span> FALSE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"90\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Attributes<span class=\"token punctuation\">.</span>VendorID <span class=\"token operator\">==</span> VendorID<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"91\"></td><td><pre>            <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"92\"></td><td><pre>                <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>Attributes<span class=\"token punctuation\">.</span>ProductID <span class=\"token operator\">==</span> ProductID<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"93\"></td><td><pre>                <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"94\"></td><td><pre>                    <span class=\"token comment\">// 供应商 ID 和产品 ID 都匹配</span></pre></td></tr><tr><td data-num=\"95\"></td><td><pre>                    MyDeviceDetected <span class=\"token operator\">=</span> TRUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"96\"></td><td><pre>                    MyDevicePathName <span class=\"token operator\">=</span> detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"97\"></td><td><pre></pre></td></tr><tr><td data-num=\"98\"></td><td><pre>                    <span class=\"token comment\">// 获取设备能力</span></pre></td></tr><tr><td data-num=\"99\"></td><td><pre>                    <span class=\"token function\">GetDeviceCapabilities</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"100\"></td><td><pre></pre></td></tr><tr><td data-num=\"101\"></td><td><pre>                    <span class=\"token comment\">// 检查设备是否为系统鼠标或键盘</span></pre></td></tr><tr><td data-num=\"102\"></td><td><pre>                    DeviceUsage <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>Capabilities<span class=\"token punctuation\">.</span>UsagePage <span class=\"token operator\">*</span> <span class=\"token number\">256</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> Capabilities<span class=\"token punctuation\">.</span>Usage<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"103\"></td><td><pre>                    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>DeviceUsage <span class=\"token operator\">==</span> <span class=\"token number\">0x102</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"104\"></td><td><pre>                    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"105\"></td><td><pre>                        UsageDescription <span class=\"token operator\">=</span> <span class=\"token string\">\"mouse\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"106\"></td><td><pre>                    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"107\"></td><td><pre>                    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>DeviceUsage <span class=\"token operator\">==</span> <span class=\"token number\">0x106</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"108\"></td><td><pre>                    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"109\"></td><td><pre>                        UsageDescription <span class=\"token operator\">=</span> <span class=\"token string\">\"keyboard\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"110\"></td><td><pre>                    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"111\"></td><td><pre></pre></td></tr><tr><td data-num=\"112\"></td><td><pre>                    <span class=\"token comment\">// 创建读取句柄</span></pre></td></tr><tr><td data-num=\"113\"></td><td><pre>                    ReadHandle <span class=\"token operator\">=</span> <span class=\"token function\">CreateFile</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"114\"></td><td><pre>                        detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"115\"></td><td><pre>                        GENERIC_READ<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"116\"></td><td><pre>                        FILE_SHARE_READ <span class=\"token operator\">|</span> FILE_SHARE_WRITE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"117\"></td><td><pre>                        <span class=\"token punctuation\">(</span>LPSECURITY_ATTRIBUTES<span class=\"token punctuation\">)</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"118\"></td><td><pre>                        OPEN_EXISTING<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"119\"></td><td><pre>                        FILE_ATTRIBUTE_NORMAL <span class=\"token operator\">|</span> FILE_FLAG_OVERLAPPED<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"120\"></td><td><pre>                        <span class=\"token constant\">NULL</span></pre></td></tr><tr><td data-num=\"121\"></td><td><pre>                    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"122\"></td><td><pre></pre></td></tr><tr><td data-num=\"123\"></td><td><pre>                    <span class=\"token comment\">// 创建事件对象</span></pre></td></tr><tr><td data-num=\"124\"></td><td><pre>                    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>hEventObject <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"125\"></td><td><pre>                    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"126\"></td><td><pre>                        hEventObject <span class=\"token operator\">=</span> <span class=\"token function\">CreateEvent</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"127\"></td><td><pre>                            <span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"128\"></td><td><pre>                            TRUE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"129\"></td><td><pre>                            TRUE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"130\"></td><td><pre>                            <span class=\"token string\">\"\"</span></pre></td></tr><tr><td data-num=\"131\"></td><td><pre>                        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"132\"></td><td><pre>                        <span class=\"token comment\">// 设置 Overlapped 结构的成员</span></pre></td></tr><tr><td data-num=\"133\"></td><td><pre>                        HIDOverlapped<span class=\"token punctuation\">.</span>hEvent <span class=\"token operator\">=</span> hEventObject<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"134\"></td><td><pre>                        HIDOverlapped<span class=\"token punctuation\">.</span>Offset <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"135\"></td><td><pre>                        HIDOverlapped<span class=\"token punctuation\">.</span>OffsetHigh <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"136\"></td><td><pre>                    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"137\"></td><td><pre></pre></td></tr><tr><td data-num=\"138\"></td><td><pre>                    <span class=\"token comment\">// 创建写入句柄</span></pre></td></tr><tr><td data-num=\"139\"></td><td><pre>                    WriteHandle <span class=\"token operator\">=</span> <span class=\"token function\">CreateFile</span><span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"140\"></td><td><pre>                        detailData<span class=\"token operator\">-></span>DevicePath<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"141\"></td><td><pre>                        GENERIC_WRITE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"142\"></td><td><pre>                        FILE_SHARE_READ <span class=\"token operator\">|</span> FILE_SHARE_WRITE<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"143\"></td><td><pre>                        <span class=\"token punctuation\">(</span>LPSECURITY_ATTRIBUTES<span class=\"token punctuation\">)</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"144\"></td><td><pre>                        OPEN_EXISTING<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"145\"></td><td><pre>                        FILE_ATTRIBUTE_NORMAL<span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"146\"></td><td><pre>                        <span class=\"token constant\">NULL</span></pre></td></tr><tr><td data-num=\"147\"></td><td><pre>                    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"148\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"149\"></td><td><pre>                <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"150\"></td><td><pre>                <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"151\"></td><td><pre>                    <span class=\"token comment\">// 产品 ID 不匹配，关闭设备句柄</span></pre></td></tr><tr><td data-num=\"152\"></td><td><pre>                    <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"153\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"154\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"155\"></td><td><pre>            <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"156\"></td><td><pre>            <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"157\"></td><td><pre>                <span class=\"token comment\">// 供应商 ID 不匹配，关闭设备句柄</span></pre></td></tr><tr><td data-num=\"158\"></td><td><pre>                <span class=\"token function\">CloseHandle</span><span class=\"token punctuation\">(</span>DeviceHandle<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"159\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"160\"></td><td><pre></pre></td></tr><tr><td data-num=\"161\"></td><td><pre>            <span class=\"token comment\">// 释放 detailData 结构占用的内存</span></pre></td></tr><tr><td data-num=\"162\"></td><td><pre>            <span class=\"token function\">free</span><span class=\"token punctuation\">(</span>detailData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"163\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"164\"></td><td><pre>        <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"165\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"166\"></td><td><pre>            <span class=\"token comment\">// 枚举设备接口失败，没有更多设备可用</span></pre></td></tr><tr><td data-num=\"167\"></td><td><pre>            LastDevice <span class=\"token operator\">=</span> TRUE<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"168\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"169\"></td><td><pre></pre></td></tr><tr><td data-num=\"170\"></td><td><pre>        <span class=\"token comment\">// 如果还未找到目标设备，并且还有可用设备，尝试下一个</span></pre></td></tr><tr><td data-num=\"171\"></td><td><pre>        MemberIndex <span class=\"token operator\">=</span> MemberIndex <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"172\"></td><td><pre></pre></td></tr><tr><td data-num=\"173\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>LastDevice <span class=\"token operator\">==</span> FALSE<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>MyDeviceDetected <span class=\"token operator\">==</span> FALSE<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"174\"></td><td><pre></pre></td></tr><tr><td data-num=\"175\"></td><td><pre>    <span class=\"token comment\">// 释放 SetupDiClassDevs 保留的内存</span></pre></td></tr><tr><td data-num=\"176\"></td><td><pre>    <span class=\"token function\">SetupDiDestroyDeviceInfoList</span><span class=\"token punctuation\">(</span>hDevInfo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"177\"></td><td><pre></pre></td></tr><tr><td data-num=\"178\"></td><td><pre>    <span class=\"token keyword\">return</span> MyDeviceDetected<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"179\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"teaencrypt\"><a class=\"anchor\" href=\"#teaencrypt\">#</a> TeaEncrypt</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：TEA 加密</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：使用 Tiny Encryption Algorithm（TEA）对数据进行加密</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 参数：</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token comment\">//- v: 待加密的数据数组</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token comment\">//- n: 数据数组的长度</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token comment\">//- k: 加密密钥数组（4 个无符号整数）</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">TeaEncrypt</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>v<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> n<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>k<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> z<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> sum <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> e<span class=\"token punctuation\">,</span> DELTA <span class=\"token operator\">=</span> <span class=\"token number\">0x9e3779b9</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">long</span> p<span class=\"token punctuation\">,</span> q<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    z <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>n <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    y <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    q <span class=\"token operator\">=</span> <span class=\"token number\">6</span> <span class=\"token operator\">+</span> <span class=\"token number\">52</span> <span class=\"token operator\">/</span> n<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>q<span class=\"token operator\">--</span> <span class=\"token operator\">></span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>        sum <span class=\"token operator\">+=</span> DELTA<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>        e <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">>></span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">3</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>p <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> p <span class=\"token operator\">&lt;</span> n <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> p<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>            y <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>p <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>            z <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>p<span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> <span class=\"token punctuation\">(</span>z <span class=\"token operator\">>></span> <span class=\"token number\">5</span> <span class=\"token operator\">^</span> y <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span>y <span class=\"token operator\">>></span> <span class=\"token number\">3</span> <span class=\"token operator\">^</span> z <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">^</span> y<span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span>k<span class=\"token punctuation\">[</span>p <span class=\"token operator\">&amp;</span> <span class=\"token number\">3</span> <span class=\"token operator\">^</span> e<span class=\"token punctuation\">]</span> <span class=\"token operator\">^</span> z<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>        y <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        z <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>n <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> <span class=\"token punctuation\">(</span>z <span class=\"token operator\">>></span> <span class=\"token number\">5</span> <span class=\"token operator\">^</span> y <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span>y <span class=\"token operator\">>></span> <span class=\"token number\">3</span> <span class=\"token operator\">^</span> z <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">^</span> y<span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span>k<span class=\"token punctuation\">[</span>p <span class=\"token operator\">&amp;</span> <span class=\"token number\">3</span> <span class=\"token operator\">^</span> e<span class=\"token punctuation\">]</span> <span class=\"token operator\">^</span> z<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"teadecrypt\"><a class=\"anchor\" href=\"#teadecrypt\">#</a> TeaDecrypt</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：TEA 解密</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：使用 Tiny Encryption Algorithm（TEA）对数据进行解密</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 参数：</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token comment\">//- v: 待解密的数据数组</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token comment\">//- n: 数据数组的长度</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token comment\">//- k: 解密密钥数组（4 个无符号整数）</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">TeaDecrypt</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>v<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> n<span class=\"token punctuation\">,</span> <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>k<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token comment\">// n > 1</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> z<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> sum <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> e<span class=\"token punctuation\">,</span> DELTA <span class=\"token operator\">=</span> <span class=\"token number\">0x9e3779b9</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token keyword\">long</span> p<span class=\"token punctuation\">,</span> q<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    y <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    q <span class=\"token operator\">=</span> <span class=\"token number\">6</span> <span class=\"token operator\">+</span> <span class=\"token number\">52</span> <span class=\"token operator\">/</span> n<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    sum <span class=\"token operator\">=</span> q <span class=\"token operator\">*</span> DELTA<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>        e <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">>></span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">3</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>p <span class=\"token operator\">=</span> n <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> p <span class=\"token operator\">></span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> p<span class=\"token operator\">--</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>            z <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>p <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>            y <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>p<span class=\"token punctuation\">]</span> <span class=\"token operator\">-=</span> <span class=\"token punctuation\">(</span>z <span class=\"token operator\">>></span> <span class=\"token number\">5</span> <span class=\"token operator\">^</span> y <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span>y <span class=\"token operator\">>></span> <span class=\"token number\">3</span> <span class=\"token operator\">^</span> z <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">^</span> y<span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span>k<span class=\"token punctuation\">[</span>p <span class=\"token operator\">&amp;</span> <span class=\"token number\">3</span> <span class=\"token operator\">^</span> e<span class=\"token punctuation\">]</span> <span class=\"token operator\">^</span> z<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>        z <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span>n <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        y <span class=\"token operator\">=</span> v<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">-=</span> <span class=\"token punctuation\">(</span>z <span class=\"token operator\">>></span> <span class=\"token number\">5</span> <span class=\"token operator\">^</span> y <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span>y <span class=\"token operator\">>></span> <span class=\"token number\">3</span> <span class=\"token operator\">^</span> z <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">^</span> y<span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span>k<span class=\"token punctuation\">[</span>p <span class=\"token operator\">&amp;</span> <span class=\"token number\">3</span> <span class=\"token operator\">^</span> e<span class=\"token punctuation\">]</span> <span class=\"token operator\">^</span> z<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>        sum <span class=\"token operator\">-=</span> DELTA<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"fp_chech\"><a class=\"anchor\" href=\"#fp_chech\">#</a> FP_CHECH</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：FP_CHECH</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：进行指纹检查，向设备发送指纹检查命令并读取响应</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 返回值：指向响应数据的指针，如果发生错误则返回空指针</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token function\">FP_CHECH</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    DWORD Result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token comment\">// 准备发送给设备的数据</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x04</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 命令长度</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x50</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x11</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf <span class=\"token operator\">+</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">6</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 计算 CRC 校验码</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token comment\">// 向设备发送数据</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token comment\">// 读取设备响应</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span><span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span> InputReport<span class=\"token punctuation\">,</span> Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>        <span class=\"token comment\">// 设备句柄无效，返回空指针</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token comment\">// 等待读取完成或超时</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span> <span class=\"token number\">5000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>    <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">// 读取完成</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>            <span class=\"token function\">CloseHandles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>            <span class=\"token comment\">// 返回响应数据指针</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport <span class=\"token operator\">+</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span> <span class=\"token comment\">// 超时</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>        <span class=\"token keyword\">default</span><span class=\"token operator\">:</span> <span class=\"token comment\">// 其他错误</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>    <span class=\"token comment\">// 关闭句柄并返回空指针</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"fp_reg\"><a class=\"anchor\" href=\"#fp_reg\">#</a> FP_REG</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：FP_REG</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：进行指纹注册，向设备发送指纹注册命令并读取响应</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 参数：index - 指纹索引</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token comment\">// 返回值：指向响应数据的指针，如果发生错误则返回空指针</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token function\">FP_REG</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> index<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    DWORD Result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token comment\">// 计算索引偏移量</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">char</span> off1 <span class=\"token operator\">=</span> index <span class=\"token operator\">/</span> <span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token keyword\">char</span> off2 <span class=\"token operator\">=</span> index <span class=\"token operator\">%</span> <span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token comment\">// 准备发送给设备的数据</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 命令长度</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x50</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x12</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">7</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> off1<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">8</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> off2<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf <span class=\"token operator\">+</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 计算 CRC 校验码</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token comment\">// 向设备发送数据</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token comment\">// 读取设备响应</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span><span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span> InputReport<span class=\"token punctuation\">,</span> Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>        <span class=\"token comment\">// 设备句柄无效，返回空指针</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>    <span class=\"token comment\">// 等待读取完成或超时</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>    Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span> <span class=\"token number\">5000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>    <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">// 读取完成</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>            <span class=\"token function\">CloseHandles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>            <span class=\"token comment\">// 返回响应数据指针</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport <span class=\"token operator\">+</span> <span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span> <span class=\"token comment\">// 超时</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>        <span class=\"token keyword\">default</span><span class=\"token operator\">:</span> <span class=\"token comment\">// 其他错误</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>    <span class=\"token comment\">// 关闭句柄并返回空指针</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"fp_del\"><a class=\"anchor\" href=\"#fp_del\">#</a> FP_DEL</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：FP_DEL</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：删除指定索引范围内的指纹数据，向设备发送删除命令并读取响应</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 参数：index1 - 起始索引，index2 - 结束索引</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token comment\">// 返回值：指向响应数据的指针，如果发生错误则返回空指针</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token function\">FP_DEL</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> index1<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> index2<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    DWORD Result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token comment\">// 准备发送给设备的数据</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x08</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 命令长度</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x50</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x13</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">7</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> index1 <span class=\"token operator\">/</span> <span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">8</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> index1 <span class=\"token operator\">%</span> <span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">9</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> index2 <span class=\"token operator\">/</span> <span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">10</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> index2 <span class=\"token operator\">%</span> <span class=\"token number\">256</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf <span class=\"token operator\">+</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 计算 CRC 校验码</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token comment\">// 向设备发送数据</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token comment\">// 读取设备响应</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span><span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span> InputReport<span class=\"token punctuation\">,</span> Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>        <span class=\"token comment\">// 设备句柄无效，返回空指针</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    <span class=\"token comment\">// 等待读取完成或超时</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>    Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span> <span class=\"token number\">500</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>    <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">// 读取完成</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>            <span class=\"token comment\">// 返回响应数据指针</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport <span class=\"token operator\">+</span> <span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span> <span class=\"token comment\">// 超时</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>        <span class=\"token keyword\">default</span><span class=\"token operator\">:</span> <span class=\"token comment\">// 其他错误</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>    <span class=\"token comment\">// 返回空指针</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"get_sn\"><a class=\"anchor\" href=\"#get_sn\">#</a> GET_SN</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：GET_SN</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：获取设备的序列号，向设备发送获取序列号命令并读取响应</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 返回值：指向设备序列号的指针，如果发生错误则返回空指针</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token function\">GET_SN</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    DWORD Result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token comment\">// 准备发送给设备的数据</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 命令长度</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x7c</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">7</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x08</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf <span class=\"token operator\">+</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">7</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 计算 CRC 校验码</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token comment\">// 向设备发送数据</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token comment\">// 读取设备响应</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span><span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span> InputReport<span class=\"token punctuation\">,</span> Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        <span class=\"token comment\">// 设备句柄无效，返回空指针</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    <span class=\"token comment\">// 等待读取完成或超时</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span> <span class=\"token number\">500</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">// 读取完成</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>            <span class=\"token comment\">// 返回序列号数据指针</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport <span class=\"token operator\">+</span> <span class=\"token number\">6</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span> <span class=\"token comment\">// 超时</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>        <span class=\"token keyword\">default</span><span class=\"token operator\">:</span> <span class=\"token comment\">// 其他错误</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>    <span class=\"token comment\">// 返回空指针</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"del_id\"><a class=\"anchor\" href=\"#del_id\">#</a> DEL_ID</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：DEL_ID</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：从设备中删除指纹 ID</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 返回值：指向删除操作结果的指针，如果发生错误则返回空指针</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token function\">DEL_ID</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    DWORD Result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token comment\">// 准备发送给设备的数据</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x04</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 命令长度</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x7d</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf <span class=\"token operator\">+</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">6</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 计算 CRC 校验码</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token comment\">// 向设备发送数据</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token comment\">// 读取设备响应</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span><span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span> InputReport<span class=\"token punctuation\">,</span> Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>        <span class=\"token comment\">// 设备句柄无效，返回空指针</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token comment\">// 等待读取完成或超时</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span> <span class=\"token number\">500</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>    <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">// 读取完成</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>            <span class=\"token comment\">// 返回删除操作结果指针</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport <span class=\"token operator\">+</span> <span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>        <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span> <span class=\"token comment\">// 超时</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>            <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>        <span class=\"token keyword\">default</span><span class=\"token operator\">:</span> <span class=\"token comment\">// 其他错误</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>    <span class=\"token comment\">// 返回空指针</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"add_id\"><a class=\"anchor\" href=\"#add_id\">#</a> ADD_ID</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：ADD_ID</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：向设备中添加指纹 ID</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 参数：</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token comment\">//   - data: 指向包含要添加的指纹 ID 数据的指针</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token comment\">// 返回值：指向添加操作结果的指针，如果发生错误则返回空指针</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token function\">ADD_ID</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>data<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    DWORD Result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token comment\">// 准备发送给设备的数据</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token keyword\">char</span> buf<span class=\"token punctuation\">[</span><span class=\"token number\">65</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token function\">memset</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">65</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x55</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x7A</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x15</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 命令长度</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    buf<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x7e</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token function\">memcpy</span><span class=\"token punctuation\">(</span>buf <span class=\"token operator\">+</span> <span class=\"token number\">6</span><span class=\"token punctuation\">,</span> data<span class=\"token punctuation\">,</span> <span class=\"token number\">18</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将指纹 ID 数据复制到缓冲区中</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token function\">crc_calc</span><span class=\"token punctuation\">(</span>buf <span class=\"token operator\">+</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x17</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 计算 CRC 校验码</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token function\">WriteOutputReport</span><span class=\"token punctuation\">(</span>buf<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token comment\">// 循环读取设备响应</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        <span class=\"token comment\">// 读取设备响应</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ReadHandle <span class=\"token operator\">!=</span> INVALID_HANDLE_VALUE<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>            Result <span class=\"token operator\">=</span> <span class=\"token function\">ReadFile</span><span class=\"token punctuation\">(</span>ReadHandle<span class=\"token punctuation\">,</span> InputReport<span class=\"token punctuation\">,</span> Capabilities<span class=\"token punctuation\">.</span>InputReportByteLength<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>NumberOfBytesRead<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span>LPOVERLAPPED<span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span>HIDOverlapped<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>            <span class=\"token comment\">// 设备句柄无效，返回空指针</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>            <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>        Result <span class=\"token operator\">=</span> <span class=\"token function\">WaitForSingleObject</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">,</span> <span class=\"token number\">5000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 等待读取完成或超时</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>        <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>Result<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>            <span class=\"token keyword\">case</span> WAIT_OBJECT_0<span class=\"token operator\">:</span> <span class=\"token comment\">// 读取完成</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>            <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>                <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>InputReport<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">!=</span> <span class=\"token number\">0x7E</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// 检查响应是否为添加成功的标志</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>                <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>                    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>                <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>                <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>                    <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>                    <span class=\"token function\">CloseHandles</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>                    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>InputReport <span class=\"token operator\">+</span> <span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回添加操作结果指针</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>            <span class=\"token keyword\">case</span> WAIT_TIMEOUT<span class=\"token operator\">:</span> <span class=\"token comment\">// 超时</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre>            <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>                <span class=\"token function\">ResetEvent</span><span class=\"token punctuation\">(</span>hEventObject<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>            <span class=\"token keyword\">default</span><span class=\"token operator\">:</span> <span class=\"token comment\">// 其他错误</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>            <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>            <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>        <span class=\"token keyword\">continue</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token keyword\">nullptr</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><h4 id=\"write_log_file\"><a class=\"anchor\" href=\"#write_log_file\">#</a> write_log_file</h4>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 函数：write_log_file</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 描述：向日志文件中写入字符串</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 参数：</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token comment\">//   - str: 要写入的字符串</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token comment\">// 返回值：写入操作的状态，0 表示成功，-1 表示失败</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">write_log_file</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">char</span> <span class=\"token operator\">*</span>str<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    FILE <span class=\"token operator\">*</span>file <span class=\"token operator\">=</span> <span class=\"token function\">fopen</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"data.txt\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"a+\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 打开日志文件，以追加方式写入</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>file <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token comment\">// 文件打开失败，可以选择退出或者其他处理方式</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> len <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token keyword\">unsigned</span> <span class=\"token keyword\">int</span> wlen <span class=\"token operator\">=</span> <span class=\"token function\">fwrite</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> len<span class=\"token punctuation\">,</span> file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 将字符串写入文件</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token function\">fputc</span><span class=\"token punctuation\">(</span><span class=\"token char\">'\\n'</span><span class=\"token punctuation\">,</span> file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 写入换行符</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>len <span class=\"token operator\">!=</span> wlen<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>        <span class=\"token comment\">// 写入长度不匹配，可能发生了写入错误，可以选择退出或者其他处理方式</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>        <span class=\"token function\">fclose</span><span class=\"token punctuation\">(</span>file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token function\">fclose</span><span class=\"token punctuation\">(</span>file<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 关闭文件</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回写入成功状态</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure>",
            "tags": [
                "熟悉项目"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/04/10/course/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BC%80%E5%8F%91/",
            "url": "https://hk2012.github.io/2024/04/10/course/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%BC%80%E5%8F%91/",
            "title": "嵌入式学习和开发",
            "date_published": "2024-04-10T03:10:00.000Z",
            "content_html": "<h2 id=\"基础知识\"><a class=\"anchor\" href=\"#基础知识\">#</a> 基础知识</h2>\n<h3 id=\"常见问题\"><a class=\"anchor\" href=\"#常见问题\">#</a> 常见问题</h3>\n<h4 id=\"数字含义\"><a class=\"anchor\" href=\"#数字含义\">#</a> 数字含义</h4>\n<ul>\n<li>条件判断、逻辑运算等方面的约定俗成的惯例\n<ol>\n<li>1 表示真或者真值。</li>\n<li>0 表示假或者假值。</li>\n</ol>\n</li>\n<li>函数的返回值\n<ol>\n<li>0 表示成功，</li>\n<li>非 0 表示失败</li>\n</ol>\n</li>\n</ul>\n<p>main 函数 return 0, 代表成功还是失败</p>\n<h4 id=\"内存管理\"><a class=\"anchor\" href=\"#内存管理\">#</a> 内存管理</h4>\n<ol start=\"3\">\n<li>\n<p>malloc ()： 用于动态分配内存空间。其原型为 void* malloc (size_t size)，其中 size 参数表示需要分配的字节数。malloc () 返回一个指向分配内存起始地址的指针，如果分配失败，则返回 NULL。</p>\n</li>\n<li>\n<p>calloc ()： 用于动态分配并初始化内存空间。其原型为 void* calloc (size_t num, size_t size)，其中 num 为元素个数，size 为每个元素的大小。calloc () 返回一个指向分配内存起始地址的指针，如果分配失败，则返回 NULL。与 malloc () 不同的是，calloc () 分配的内存会被初始化为零。</p>\n</li>\n<li>\n<p>realloc ()： 用于重新分配已分配内存的大小。其原型为 void* realloc (void* ptr, size_t size)，其中 ptr 是之前分配内存的指针，size 是重新分配的字节数。如果分配成功，则返回一个指向新分配内存起始地址的指针，如果分配失败，则返回 NULL。注意，如果重新分配失败，原始内存块仍然保持不变，不会被释放。</p>\n</li>\n<li>\n<p>free ()： 用于释放动态分配的内存空间。其原型为 void free (void* ptr)，其中 ptr 是需要释放的内存块的指针。一旦释放，该内存块就可以被重新分配或使用。</p>\n<ul>\n<li>代码示例</li>\n</ul>\n<figure class=\"highlight c\"><figcaption data-lang=\"c\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdio.h></span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdlib.h></span></span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>ptr1<span class=\"token punctuation\">,</span> <span class=\"token operator\">*</span>ptr2<span class=\"token punctuation\">,</span> <span class=\"token operator\">*</span>ptr3<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token comment\">// 使用 malloc () 分配 5 个整型空间</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    ptr1 <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token function\">malloc</span><span class=\"token punctuation\">(</span><span class=\"token number\">5</span> <span class=\"token operator\">*</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ptr1 <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>        <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"内存分配失败\\n\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token comment\">// 使用 calloc () 分配 3 个整型空间，并初始化为 0</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    ptr2 <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token function\">calloc</span><span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ptr2 <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>        <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"内存分配失败\\n\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>        <span class=\"token function\">free</span><span class=\"token punctuation\">(</span>ptr1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 释放之前分配的内存</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token comment\">// 使用 realloc () 扩展 ptr1 指向的内存空间为 8 个整型</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    ptr3 <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token function\">realloc</span><span class=\"token punctuation\">(</span>ptr1<span class=\"token punctuation\">,</span> <span class=\"token number\">8</span> <span class=\"token operator\">*</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ptr3 <span class=\"token operator\">==</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"内存分配失败\\n\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>        <span class=\"token function\">free</span><span class=\"token punctuation\">(</span>ptr1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 释放之前分配的内存</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>        <span class=\"token function\">free</span><span class=\"token punctuation\">(</span>ptr2<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 释放之前分配的内存</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        ptr1 <span class=\"token operator\">=</span> ptr3<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 使 ptr1 指向扩展后的内存空间</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token comment\">// 释放内存</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    <span class=\"token function\">free</span><span class=\"token punctuation\">(</span>ptr1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    <span class=\"token function\">free</span><span class=\"token punctuation\">(</span>ptr2<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ul>\n<li>\n<p>在这个示例中，我们：</p>\n<ol>\n<li>使用 malloc () 分配了一块大小为 5 个整型的内存空间，并将其指针赋给 ptr1。</li>\n<li>使用 calloc () 分配了一块大小为 3 个整型的内存空间，并将其指针赋给 ptr2。</li>\n<li>使用 realloc () 对 ptr1 指向的内存空间进行了扩展，使其大小为 8 个整型，并将扩展后的指针赋给 ptr3。</li>\n<li>最后，我们释放了分配的内存空间，以避免内存泄漏。</li>\n</ol>\n</li>\n</ul>\n</li>\n</ol>\n<h3 id=\"指针基础知识\"><a class=\"anchor\" href=\"#指针基础知识\">#</a> 指针基础知识</h3>\n<ul>\n<li>\n<p>基础知识：</p>\n<ol>\n<li>指针变量： 指针变量是用来存储内存地址的变量。声明一个指针变量时，需要指定指针变量的类型，表示它所指向的数据的类型。</li>\n<li>取址运算符 (&amp;)： 取址运算符用于获取变量的内存地址。例如，&amp;a 表示变量 a 的地址。</li>\n<li>间接访问运算符 (*)： 间接访问运算符用于获取指针所指向的数据。例如，*ptr 表示获取指针 ptr 所指向的数据。</li>\n<li>空指针 (NULL)： 空指针是一个特殊的指针值，表示不指向任何有效的内存地址。在 C 语言中，可以使用 NULL 宏来表示空指针。</li>\n<li>指针算术： 指针可以进行算术运算，例如加法、减法等，用来移动指针的位置。</li>\n</ol>\n<ul>\n<li>示例：下面是一个关于一级指针和二级指针的示例：<figure class=\"highlight c\"><figcaption data-lang=\"c\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdio.h></span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>    <span class=\"token keyword\">int</span> num <span class=\"token operator\">=</span> <span class=\"token number\">10</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>    <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>ptr1<span class=\"token punctuation\">;</span>  <span class=\"token comment\">// 一级指针</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span><span class=\"token operator\">*</span>ptr2<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 二级指针</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token comment\">// 将 num 的地址赋给 ptr1</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    ptr1 <span class=\"token operator\">=</span> <span class=\"token operator\">&amp;</span>num<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token comment\">// 将 ptr1 的地址赋给 ptr2</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    ptr2 <span class=\"token operator\">=</span> <span class=\"token operator\">&amp;</span>ptr1<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token comment\">// 输出 num 的值</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"num 的值为：%d\\n\"</span><span class=\"token punctuation\">,</span> num<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token comment\">// 使用一级指针访问 num 的值</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"通过一级指针访问 num 的值：%d\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">*</span>ptr1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token comment\">// 使用二级指针访问 num 的值</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"通过二级指针访问 num 的值：%d\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">*</span><span class=\"token operator\">*</span>ptr2<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ul>\n<li>解释说明\n<ol>\n<li>我们首先声明了一个整型变量 num，并赋值为 10。</li>\n<li>然后声明了一个一级指针 ptr1，将 num 的地址赋给 ptr1。</li>\n<li>接着声明了一个二级指针 ptr2，将 ptr1 的地址赋给 ptr2。</li>\n<li>最后通过一级指针和二级指针分别访问了 num 的值，输出结果相同，都为 10。</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>示例：下面是一个示例，演示了数组指针、函数指针以及容易混淆的指针写法：<figure class=\"highlight c\"><figcaption data-lang=\"c\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdio.h></span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 函数声明</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> a<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> b<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">subtract</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> a<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> b<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token comment\">// 数组指针示例</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token keyword\">int</span> arr<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>ptr_arr <span class=\"token operator\">=</span> arr<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 数组名即为数组首元素的地址，ptr_arr 指向数组 arr 的第一个元素</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"数组第一个元素的值：%d\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">*</span>ptr_arr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 输出数组第一个元素的值</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token comment\">// 函数指针示例</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token keyword\">int</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">*</span>func_ptr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 声明一个指向接受两个整型参数、返回整型的函数指针</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    func_ptr <span class=\"token operator\">=</span> <span class=\"token operator\">&amp;</span>add<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 函数名即为函数的地址，func_ptr 指向函数 add</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"add(3, 4) 的结果：%d\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token function\">func_ptr</span><span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 调用函数指针执行 add (3, 4)</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    func_ptr <span class=\"token operator\">=</span> <span class=\"token operator\">&amp;</span>subtract<span class=\"token punctuation\">;</span> <span class=\"token comment\">//func_ptr 指向函数 subtract</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"subtract(5, 2) 的结果：%d\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token function\">func_ptr</span><span class=\"token punctuation\">(</span><span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 调用函数指针执行 subtract (5, 2)</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token comment\">// 容易混淆的指针写法示例</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token keyword\">int</span> x <span class=\"token operator\">=</span> <span class=\"token number\">10</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token keyword\">int</span> <span class=\"token operator\">*</span>ptr1<span class=\"token punctuation\">,</span> ptr2<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 这里 ptr1 是指针变量，ptr2 是整型变量，而不是两个指针变量</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    ptr1 <span class=\"token operator\">=</span> <span class=\"token operator\">&amp;</span>x<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    ptr2 <span class=\"token operator\">=</span> x<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"ptr1 指向的值：%d\\n\"</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">*</span>ptr1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 输出指针变量 ptr1 指向的值</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"ptr2 的值：%d\\n\"</span><span class=\"token punctuation\">,</span> ptr2<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 输出整型变量 ptr2 的值</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre></pre></td></tr><tr><td data-num=\"31\"></td><td><pre><span class=\"token comment\">// 函数定义</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> a<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> b<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>    <span class=\"token keyword\">return</span> a <span class=\"token operator\">+</span> b<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre></pre></td></tr><tr><td data-num=\"36\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">subtract</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> a<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> b<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    <span class=\"token keyword\">return</span> a <span class=\"token operator\">-</span> b<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ul>\n<li>解释说明\n<ol>\n<li>首先定义了一个整型数组 arr，然后声明了一个指向整型数组的指针 ptr_arr，并将数组 arr 的首地址赋值给了 ptr_arr。通过 ptr_arr 指针可以访问数组中的元素。</li>\n<li>然后定义了两个函数 add 和 subtract，用来执行加法和减法操作。接着声明了一个函数指针 func_ptr，并通过赋值将其指向了 add 和 subtract 函数。通过 func_ptr 指针可以动态调用这两个函数。</li>\n<li>最后演示了容易混淆的指针写法，声明了一个指针变量 ptr1 和一个整型变量 ptr2。在这种写法中，需要注意变量的声明方式，以避免产生混淆。</li>\n</ol>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"嵌入式开发的编程语言\"><a class=\"anchor\" href=\"#嵌入式开发的编程语言\">#</a> 嵌入式开发的编程语言</h2>\n<ul>\n<li>\n<p>C 语言：</p>\n<ul>\n<li>优点：<br />\n足够底层，直接操作硬件，对于资源受限的嵌入式系统更加适用。<br />\n通常编译后的代码较小，执行速度较快。<br />\n更接近硬件的抽象层，对于对内存、CPU 等底层资源的控制更为直接。</li>\n<li>缺点：<br />\n缺乏面向对象的特性，不够抽象，有时可能会导致代码复杂度较高。<br />\n不够灵活，需要手动管理内存，容易出现内存泄漏和指针错误。</li>\n</ul>\n</li>\n<li>\n<p>C++：</p>\n<ul>\n<li>优点：<br />\n支持面向对象编程，具有封装、继承和多态等特性，使代码更加模块化和可维护。<br />\n有丰富的标准库和第三方库，提供了更多高级的数据结构和算法。<br />\n拥有更多的编程范式，如模板元编程等，能够提供更好的代码重用和泛化能力。</li>\n<li>缺点：<br />\n生成的代码通常较大，可能会增加系统的资源消耗。<br />\n需要更多的运行时支持，对于资源受限的嵌入式系统可能不够适用。<br />\nC++ 的复杂性可能会导致开发过程更为繁琐，需要更多的学习和理解。</li>\n</ul>\n</li>\n<li>\n<p>综合考虑，对于资源受限的嵌入式系统，或者对性能和资源消耗要求较高的应用场景，C 语言可能更为合适。而对于需要更高层次抽象和更灵活的编程模型的应用，以及对代码的可维护性和可重用性有更高要求的项目，C++ 可能更适合。</p>\n</li>\n<li>\n<p>使用方式</p>\n</li>\n<li>\n<p>浏览模式</p>\n</li>\n<li>\n<p>如何编译</p>\n</li>\n</ul>\n",
            "tags": [
                "项目开发"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/04/01/java/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91%E8%90%A5%E9%94%80%E8%AE%BE%E8%AE%A1%E6%96%B9%E6%A1%88%E5%8F%8A%E5%BB%BA%E8%AE%BE/",
            "url": "https://hk2012.github.io/2024/04/01/java/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91%E8%90%A5%E9%94%80%E8%AE%BE%E8%AE%A1%E6%96%B9%E6%A1%88%E5%8F%8A%E5%BB%BA%E8%AE%BE/",
            "title": "能源互联网营销设计方案及建设",
            "date_published": "2024-04-01T01:10:00.000Z",
            "content_html": "<h1 id=\"研发人员能源互联网关注点\"><a class=\"anchor\" href=\"#研发人员能源互联网关注点\">#</a> 研发人员能源互联网关注点</h1>\n<h2 id=\"技术架构和系统设计\"><a class=\"anchor\" href=\"#技术架构和系统设计\">#</a> 技术架构和系统设计：</h2>\n<ol>\n<li>开发人员需要理解和评估能源互联网营销系统的技术架构，包括后端服务器、数据库、前端界面等方面的设计。他们需要确保系统具有良好的可扩展性、性能和安全性。</li>\n<li>总体架构图\n<ul>\n<li><img data-src=\"/img/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91/%E8%90%A5%E9%94%802.0%E6%80%BB%E4%BD%93%E6%9E%B6%E6%9E%84%E5%9B%BE.png\" alt=\"总体架构图\" /></li>\n</ul>\n</li>\n<li>技术架构图第一版\n<ul>\n<li><img data-src=\"/img/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91/%E8%90%A5%E9%94%802.0%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84%E5%9B%BE.png\" alt=\"技术架构图\" /></li>\n</ul>\n</li>\n<li>技术架构图第二版\n<ul>\n<li><img data-src=\"/img/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91/%E8%90%A5%E9%94%802.0%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84%E5%9B%BE_2.png\" alt=\"技术架构图\" /></li>\n</ul>\n</li>\n<li>延展设计图\n<ul>\n<li><img data-src=\"/img/%E8%83%BD%E6%BA%90%E4%BA%92%E8%81%94%E7%BD%91/%E8%90%A5%E9%94%802.0%E5%86%85%E9%83%A8%E9%9B%86%E6%88%90%E5%B1%82%E9%9D%A2%E7%9A%84%E5%BB%B6%E5%B1%95%E8%AE%BE%E8%AE%A1%E5%9B%BE.png\" alt=\"技术架构图\" /></li>\n</ul>\n</li>\n</ol>\n<h2 id=\"数据管理和分析\"><a class=\"anchor\" href=\"#数据管理和分析\">#</a> 数据管理和分析：</h2>\n<ol>\n<li>能源互联网营销系统涉及大量数据的收集、存储和分析，开发人员需要关注数据管理的方案，包括数据的采集、清洗、存储和处理，以及数据分析和挖掘技术的应用。</li>\n</ol>\n<h2 id=\"用户体验和界面设计\"><a class=\"anchor\" href=\"#用户体验和界面设计\">#</a> 用户体验和界面设计：</h2>\n<ol>\n<li>用户体验对于能源互联网营销系统至关重要。开发人员需要与设计团队合作，确保系统界面友好、易用，并能够满足用户的需求和期望。</li>\n</ol>\n<h2 id=\"安全性和隐私保护\"><a class=\"anchor\" href=\"#安全性和隐私保护\">#</a> 安全性和隐私保护：</h2>\n<ol>\n<li>能源互联网营销涉及用户的个人和敏感信息，因此安全性和隐私保护是至关重要的。开发人员需要关注系统的安全设计，包括身份验证、数据加密、访问控制等方面的实施。</li>\n</ol>\n<h2 id=\"云计算和物联网技术\"><a class=\"anchor\" href=\"#云计算和物联网技术\">#</a> 云计算和物联网技术：</h2>\n<ol>\n<li>能源互联网营销系统通常需要借助云计算和物联网技术实现设备之间的连接和数据交换。开发人员需要了解并熟练应用这些技术，确保系统的稳定性和可靠性。</li>\n</ol>\n<h2 id=\"集成和扩展性\"><a class=\"anchor\" href=\"#集成和扩展性\">#</a> 集成和扩展性：</h2>\n<ol>\n<li>能源互联网营销系统通常需要与其他系统集成，例如能源管理系统、智能电表系统等。开发人员需要考虑系统的集成方案，并确保系统具有良好的扩展性，能够满足未来业务发展的需求。</li>\n</ol>\n<h2 id=\"持续优化和迭代\"><a class=\"anchor\" href=\"#持续优化和迭代\">#</a> 持续优化和迭代：</h2>\n<ol>\n<li>能源互联网营销系统是一个持续发展的过程，开发人员需要通过持续优化和迭代来不断改进系统，以满足用户和业务的不断变化的需求。</li>\n</ol>\n<h1 id=\"数据库信息汇总\"><a class=\"anchor\" href=\"#数据库信息汇总\">#</a> 数据库信息汇总</h1>\n<ol>\n<li>Oracle DB1\n<ul>\n<li>\n<p>emss_pserv</p>\n<ol>\n<li>ocs_business_scenario: 全渠道场景表</li>\n<li>ocs_channel_archive: 渠道档案表</li>\n<li>ocs_channel_inter_rela: 渠道业务授权表</li>\n<li>ocs_interface_def: 接口定义表</li>\n<li>ocs_relat_map: 全渠道关系映射表</li>\n<li>ocs_system_config: 系统参数配置</li>\n</ol>\n</li>\n<li>\n<p>emss_cmc</p>\n<ol>\n<li>mgt_org: 管理单位表</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>Oracle DB3\n<ul>\n<li>emss_pfc\n<ol>\n<li>pay_chan: 收费渠道表</li>\n<li>coll_trans_rec: 代收记录表</li>\n<li>coll_trans_reco: 对账汇总表 (代收 + 托收)</li>\n<li>pd_order: 批扣订单表</li>\n<li>pd_acct: 批扣明细表</li>\n<li>charg_acct: 收费记录表</li>\n<li>pay_order: 支付订单表</li>\n<li>cash_chk_rec: 解款到账表</li>\n<li>chan_auto_task_cfg: 代扣上限表</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>Oracle DB4\n<ul>\n<li>emss_woc\n<ol>\n<li>hldy_info: 假日信息表</li>\n</ol>\n<figure class=\"highlight sql\"><figcaption data-lang=\"SQL\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">-- EMSS_WOC.HLDY_INFO definition</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token keyword\">CREATE</span> <span class=\"token keyword\">TABLE</span> <span class=\"token string\">\"EMSS_WOC\"</span><span class=\"token punctuation\">.</span><span class=\"token string\">\"HLDY_INFO\"</span> </pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token punctuation\">(</span>\t<span class=\"token string\">\"HLDY_INFO_ID\"</span> NUMBER<span class=\"token punctuation\">(</span><span class=\"token number\">16</span><span class=\"token punctuation\">,</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">NOT</span> <span class=\"token boolean\">NULL</span> <span class=\"token keyword\">ENABLE</span><span class=\"token punctuation\">,</span> </pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token string\">\"HLDY_NAME\"</span> VARCHAR2<span class=\"token punctuation\">(</span><span class=\"token number\">256</span> <span class=\"token keyword\">CHAR</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">COLLATE</span> <span class=\"token string\">\"USING_NLS_COMP\"</span><span class=\"token punctuation\">,</span> </pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token string\">\"HLDY_TYPE\"</span> VARCHAR2<span class=\"token punctuation\">(</span><span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">COLLATE</span> <span class=\"token string\">\"USING_NLS_COMP\"</span><span class=\"token punctuation\">,</span> </pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token string\">\"BEG_DATE\"</span> <span class=\"token keyword\">DATE</span><span class=\"token punctuation\">,</span> </pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token string\">\"END_DATE\"</span> <span class=\"token keyword\">DATE</span><span class=\"token punctuation\">,</span> </pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token string\">\"INTERVAL_DATE_NUM\"</span> NUMBER<span class=\"token punctuation\">(</span><span class=\"token number\">5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> </pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token string\">\"CREATOR\"</span> VARCHAR2<span class=\"token punctuation\">(</span><span class=\"token number\">32</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">COLLATE</span> <span class=\"token string\">\"USING_NLS_COMP\"</span><span class=\"token punctuation\">,</span> </pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token string\">\"CREAT_DATE\"</span> <span class=\"token keyword\">DATE</span><span class=\"token punctuation\">,</span> </pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token keyword\">CONSTRAINT</span> <span class=\"token string\">\"PK_HLDYINFO\"</span> <span class=\"token keyword\">PRIMARY</span> <span class=\"token keyword\">KEY</span> <span class=\"token punctuation\">(</span><span class=\"token string\">\"HLDY_INFO_ID\"</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token keyword\">USING</span> <span class=\"token keyword\">INDEX</span> PCTFREE <span class=\"token number\">10</span> INITRANS <span class=\"token number\">2</span> MAXTRANS <span class=\"token number\">255</span> <span class=\"token keyword\">COMPUTE</span> <span class=\"token keyword\">STATISTICS</span> NOLOGGING </pre></td></tr><tr><td data-num=\"14\"></td><td><pre>STORAGE<span class=\"token punctuation\">(</span>INITIAL <span class=\"token number\">65536</span> <span class=\"token keyword\">NEXT</span> <span class=\"token number\">1048576</span> MINEXTENTS <span class=\"token number\">1</span> MAXEXTENTS <span class=\"token number\">2147483645</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>PCTINCREASE <span class=\"token number\">0</span> FREELISTS <span class=\"token number\">1</span> FREELIST GROUPS <span class=\"token number\">1</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>BUFFER_POOL <span class=\"token keyword\">DEFAULT</span> FLASH_CACHE <span class=\"token keyword\">DEFAULT</span> CELL_FLASH_CACHE <span class=\"token keyword\">DEFAULT</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token keyword\">TABLESPACE</span> <span class=\"token string\">\"TBS_EMSS_WOC\"</span>  <span class=\"token keyword\">ENABLE</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre><span class=\"token punctuation\">)</span>  <span class=\"token keyword\">DEFAULT</span> COLLATION <span class=\"token string\">\"USING_NLS_COMP\"</span> SEGMENT CREATION IMMEDIATE </pre></td></tr><tr><td data-num=\"19\"></td><td><pre>PCTFREE <span class=\"token number\">10</span> PCTUSED <span class=\"token number\">40</span> INITRANS <span class=\"token number\">1</span> MAXTRANS <span class=\"token number\">255</span> </pre></td></tr><tr><td data-num=\"20\"></td><td><pre>NOCOMPRESS NOLOGGING</pre></td></tr><tr><td data-num=\"21\"></td><td><pre>STORAGE<span class=\"token punctuation\">(</span>INITIAL <span class=\"token number\">65536</span> <span class=\"token keyword\">NEXT</span> <span class=\"token number\">1048576</span> MINEXTENTS <span class=\"token number\">1</span> MAXEXTENTS <span class=\"token number\">2147483645</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>PCTINCREASE <span class=\"token number\">0</span> FREELISTS <span class=\"token number\">1</span> FREELIST GROUPS <span class=\"token number\">1</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>BUFFER_POOL <span class=\"token keyword\">DEFAULT</span> FLASH_CACHE <span class=\"token keyword\">DEFAULT</span> CELL_FLASH_CACHE <span class=\"token keyword\">DEFAULT</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre><span class=\"token keyword\">TABLESPACE</span> <span class=\"token string\">\"TBS_EMSS_WOC\"</span> <span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre></pre></td></tr><tr><td data-num=\"26\"></td><td><pre><span class=\"token keyword\">CREATE</span> <span class=\"token keyword\">UNIQUE</span> <span class=\"token keyword\">INDEX</span> <span class=\"token string\">\"EMSS_WOC\"</span><span class=\"token punctuation\">.</span><span class=\"token string\">\"PK_HLDYINFO\"</span> <span class=\"token keyword\">ON</span> <span class=\"token string\">\"EMSS_WOC\"</span><span class=\"token punctuation\">.</span><span class=\"token string\">\"HLDY_INFO\"</span> <span class=\"token punctuation\">(</span><span class=\"token string\">\"HLDY_INFO_ID\"</span><span class=\"token punctuation\">)</span> </pre></td></tr><tr><td data-num=\"27\"></td><td><pre>PCTFREE <span class=\"token number\">10</span> INITRANS <span class=\"token number\">2</span> MAXTRANS <span class=\"token number\">255</span> <span class=\"token keyword\">COMPUTE</span> <span class=\"token keyword\">STATISTICS</span> NOLOGGING </pre></td></tr><tr><td data-num=\"28\"></td><td><pre>STORAGE<span class=\"token punctuation\">(</span>INITIAL <span class=\"token number\">65536</span> <span class=\"token keyword\">NEXT</span> <span class=\"token number\">1048576</span> MINEXTENTS <span class=\"token number\">1</span> MAXEXTENTS <span class=\"token number\">2147483645</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>PCTINCREASE <span class=\"token number\">0</span> FREELISTS <span class=\"token number\">1</span> FREELIST GROUPS <span class=\"token number\">1</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>BUFFER_POOL <span class=\"token keyword\">DEFAULT</span> FLASH_CACHE <span class=\"token keyword\">DEFAULT</span> CELL_FLASH_CACHE <span class=\"token keyword\">DEFAULT</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre><span class=\"token keyword\">TABLESPACE</span> <span class=\"token string\">\"TBS_EMSS_WOC\"</span> <span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre></pre></td></tr><tr><td data-num=\"33\"></td><td><pre><span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">DELETE</span> <span class=\"token keyword\">ON</span> <span class=\"token string\">\"EMSS_WOC\"</span><span class=\"token punctuation\">.</span><span class=\"token string\">\"HLDY_INFO\"</span> <span class=\"token keyword\">TO</span> <span class=\"token string\">\"DEV_EMSS_WOC\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre><span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">INSERT</span> <span class=\"token keyword\">ON</span> <span class=\"token string\">\"EMSS_WOC\"</span><span class=\"token punctuation\">.</span><span class=\"token string\">\"HLDY_INFO\"</span> <span class=\"token keyword\">TO</span> <span class=\"token string\">\"DEV_EMSS_WOC\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre><span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">SELECT</span> <span class=\"token keyword\">ON</span> <span class=\"token string\">\"EMSS_WOC\"</span><span class=\"token punctuation\">.</span><span class=\"token string\">\"HLDY_INFO\"</span> <span class=\"token keyword\">TO</span> <span class=\"token string\">\"DEV_EMSS_WOC\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre><span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">UPDATE</span> <span class=\"token keyword\">ON</span> <span class=\"token string\">\"EMSS_WOC\"</span><span class=\"token punctuation\">.</span><span class=\"token string\">\"HLDY_INFO\"</span> <span class=\"token keyword\">TO</span> <span class=\"token string\">\"DEV_EMSS_WOC\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre><span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">SELECT</span> <span class=\"token keyword\">ON</span> <span class=\"token string\">\"EMSS_WOC\"</span><span class=\"token punctuation\">.</span><span class=\"token string\">\"HLDY_INFO\"</span> <span class=\"token keyword\">TO</span> <span class=\"token string\">\"DEV_EMSS_BAC\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre><span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">SELECT</span> <span class=\"token keyword\">ON</span> <span class=\"token string\">\"EMSS_WOC\"</span><span class=\"token punctuation\">.</span><span class=\"token string\">\"HLDY_INFO\"</span> <span class=\"token keyword\">TO</span> <span class=\"token string\">\"EMSS_BAC\"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre></pre></td></tr><tr><td data-num=\"40\"></td><td><pre><span class=\"token keyword\">COMMENT</span> <span class=\"token keyword\">ON</span> <span class=\"token keyword\">TABLE</span> EMSS_WOC<span class=\"token punctuation\">.</span>HLDY_INFO <span class=\"token operator\">IS</span> <span class=\"token string\">'假日信息表'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre><span class=\"token keyword\">COMMENT</span> <span class=\"token keyword\">ON</span> <span class=\"token keyword\">COLUMN</span> EMSS_WOC<span class=\"token punctuation\">.</span>HLDY_INFO<span class=\"token punctuation\">.</span>HLDY_INFO_ID <span class=\"token operator\">IS</span> <span class=\"token string\">'属性描述：本实体记录的唯一标识'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre><span class=\"token keyword\">COMMENT</span> <span class=\"token keyword\">ON</span> <span class=\"token keyword\">COLUMN</span> EMSS_WOC<span class=\"token punctuation\">.</span>HLDY_INFO<span class=\"token punctuation\">.</span>HLDY_NAME <span class=\"token operator\">IS</span> <span class=\"token string\">'属性描述：假日名称'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre><span class=\"token keyword\">COMMENT</span> <span class=\"token keyword\">ON</span> <span class=\"token keyword\">COLUMN</span> EMSS_WOC<span class=\"token punctuation\">.</span>HLDY_INFO<span class=\"token punctuation\">.</span>HLDY_TYPE <span class=\"token operator\">IS</span> <span class=\"token string\">'属性描述：假日类型：01法定节假日 02补班日 03调休日01和03都是休息日，01代表法定3倍工资 02代表法定2部工资'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre><span class=\"token keyword\">COMMENT</span> <span class=\"token keyword\">ON</span> <span class=\"token keyword\">COLUMN</span> EMSS_WOC<span class=\"token punctuation\">.</span>HLDY_INFO<span class=\"token punctuation\">.</span>BEG_DATE <span class=\"token operator\">IS</span> <span class=\"token string\">'属性描述：开始日期'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre><span class=\"token keyword\">COMMENT</span> <span class=\"token keyword\">ON</span> <span class=\"token keyword\">COLUMN</span> EMSS_WOC<span class=\"token punctuation\">.</span>HLDY_INFO<span class=\"token punctuation\">.</span>END_DATE <span class=\"token operator\">IS</span> <span class=\"token string\">'属性描述：结束日期'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre><span class=\"token keyword\">COMMENT</span> <span class=\"token keyword\">ON</span> <span class=\"token keyword\">COLUMN</span> EMSS_WOC<span class=\"token punctuation\">.</span>HLDY_INFO<span class=\"token punctuation\">.</span>INTERVAL_DATE_NUM <span class=\"token operator\">IS</span> <span class=\"token string\">'属性描述：间隔天数'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre><span class=\"token keyword\">COMMENT</span> <span class=\"token keyword\">ON</span> <span class=\"token keyword\">COLUMN</span> EMSS_WOC<span class=\"token punctuation\">.</span>HLDY_INFO<span class=\"token punctuation\">.</span>CREATOR <span class=\"token operator\">IS</span> <span class=\"token string\">'属性描述：创建人'</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre><span class=\"token keyword\">COMMENT</span> <span class=\"token keyword\">ON</span> <span class=\"token keyword\">COLUMN</span> EMSS_WOC<span class=\"token punctuation\">.</span>HLDY_INFO<span class=\"token punctuation\">.</span>CREAT_DATE <span class=\"token operator\">IS</span> <span class=\"token string\">'属性描述：创建日期'</span><span class=\"token punctuation\">;</span></pre></td></tr></table></figure></li>\n</ul>\n</li>\n<li>MySQL\n<ul>\n<li>\n<p>quanqudao_data</p>\n<ul>\n<li>fact: 事实表\n<ol>\n<li>fact_debit: 代扣汇总表</li>\n<li>fact_debit_error: 代扣失败汇总表</li>\n<li>fact_deplicate_charge: 疑似重复缴费表</li>\n<li>fact_debit_wk: 代扣工单关联表</li>\n</ol>\n</li>\n</ul>\n<figure class=\"highlight sql\"><figcaption data-lang=\"SQL\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">CREATE</span> <span class=\"token keyword\">TABLE</span> <span class=\"token identifier\"><span class=\"token punctuation\">`</span>fact_debit_wk<span class=\"token punctuation\">`</span></span> <span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token identifier\"><span class=\"token punctuation\">`</span>id<span class=\"token punctuation\">`</span></span> <span class=\"token keyword\">bigint</span><span class=\"token punctuation\">(</span><span class=\"token number\">20</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">NOT</span> <span class=\"token boolean\">NULL</span> <span class=\"token keyword\">AUTO_INCREMENT</span> <span class=\"token keyword\">COMMENT</span> <span class=\"token string\">'主键'</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token identifier\"><span class=\"token punctuation\">`</span>sta_date<span class=\"token punctuation\">`</span></span> <span class=\"token keyword\">date</span> <span class=\"token operator\">NOT</span> <span class=\"token boolean\">NULL</span> <span class=\"token keyword\">COMMENT</span> <span class=\"token string\">'年月日'</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token identifier\"><span class=\"token punctuation\">`</span>mgt_org_code<span class=\"token punctuation\">`</span></span> <span class=\"token keyword\">varchar</span><span class=\"token punctuation\">(</span><span class=\"token number\">20</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">DEFAULT</span> <span class=\"token boolean\">NULL</span> <span class=\"token keyword\">COMMENT</span> <span class=\"token string\">'管理单位编码'</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token identifier\"><span class=\"token punctuation\">`</span>channel_code<span class=\"token punctuation\">`</span></span> <span class=\"token keyword\">varchar</span><span class=\"token punctuation\">(</span><span class=\"token number\">20</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">DEFAULT</span> <span class=\"token boolean\">NULL</span> <span class=\"token keyword\">COMMENT</span> <span class=\"token string\">'渠道编码'</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token identifier\"><span class=\"token punctuation\">`</span>busi_type<span class=\"token punctuation\">`</span></span> <span class=\"token keyword\">varchar</span><span class=\"token punctuation\">(</span><span class=\"token number\">20</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">DEFAULT</span> <span class=\"token boolean\">NULL</span> <span class=\"token keyword\">COMMENT</span> <span class=\"token string\">'业务类型'</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token identifier\"><span class=\"token punctuation\">`</span>mq_msg<span class=\"token punctuation\">`</span></span> <span class=\"token keyword\">text</span> <span class=\"token keyword\">COMMENT</span> <span class=\"token string\">'工单消息'</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token identifier\"><span class=\"token punctuation\">`</span>handle_time<span class=\"token punctuation\">`</span></span> <span class=\"token keyword\">datetime</span> <span class=\"token keyword\">DEFAULT</span> <span class=\"token boolean\">NULL</span> <span class=\"token keyword\">COMMENT</span> <span class=\"token string\">'工单时间'</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre><span class=\"token identifier\"><span class=\"token punctuation\">`</span>accept_content<span class=\"token punctuation\">`</span></span> <span class=\"token keyword\">text</span> <span class=\"token keyword\">COMMENT</span> <span class=\"token string\">'工单内容'</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre><span class=\"token identifier\"><span class=\"token punctuation\">`</span>create_time<span class=\"token punctuation\">`</span></span> <span class=\"token keyword\">datetime</span> <span class=\"token keyword\">DEFAULT</span> <span class=\"token boolean\">NULL</span> <span class=\"token keyword\">COMMENT</span> <span class=\"token string\">'创建时间'</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre><span class=\"token keyword\">PRIMARY</span> <span class=\"token keyword\">KEY</span> <span class=\"token punctuation\">(</span><span class=\"token identifier\"><span class=\"token punctuation\">`</span>id<span class=\"token punctuation\">`</span></span><span class=\"token punctuation\">,</span><span class=\"token identifier\"><span class=\"token punctuation\">`</span>sta_date<span class=\"token punctuation\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre><span class=\"token keyword\">KEY</span> <span class=\"token identifier\"><span class=\"token punctuation\">`</span>indx_mgt<span class=\"token punctuation\">`</span></span> <span class=\"token punctuation\">(</span><span class=\"token identifier\"><span class=\"token punctuation\">`</span>mgt_org_code<span class=\"token punctuation\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token keyword\">KEY</span> <span class=\"token identifier\"><span class=\"token punctuation\">`</span>indx_sta_date<span class=\"token punctuation\">`</span></span> <span class=\"token punctuation\">(</span><span class=\"token identifier\"><span class=\"token punctuation\">`</span>sta_date<span class=\"token punctuation\">`</span></span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">USING</span> <span class=\"token keyword\">BTREE</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre><span class=\"token keyword\">KEY</span> <span class=\"token identifier\"><span class=\"token punctuation\">`</span>indx_channel<span class=\"token punctuation\">`</span></span> <span class=\"token punctuation\">(</span><span class=\"token identifier\"><span class=\"token punctuation\">`</span>channel_code<span class=\"token punctuation\">`</span></span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token punctuation\">)</span> <span class=\"token keyword\">ENGINE</span><span class=\"token operator\">=</span><span class=\"token keyword\">InnoDB</span> <span class=\"token keyword\">AUTO_INCREMENT</span><span class=\"token operator\">=</span><span class=\"token number\">69</span> <span class=\"token keyword\">DEFAULT</span> <span class=\"token keyword\">CHARSET</span><span class=\"token operator\">=</span>utf8mb4</pre></td></tr><tr><td data-num=\"16\"></td><td><pre><span class=\"token keyword\">PARTITION</span> <span class=\"token keyword\">BY</span> RANGE <span class=\"token keyword\">COLUMNS</span><span class=\"token punctuation\">(</span>sta_date<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">(</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202401 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-02-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202402 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-03-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202403 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-04-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202404 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-05-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202405 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-06-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202406 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-07-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202407 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-08-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202408 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-09-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202409 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-10-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202410 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-11-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202411 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2024-12-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202412 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-01-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202501 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-02-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202502 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-03-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202503 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-04-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202504 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-05-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202505 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-06-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202506 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-07-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202507 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-08-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202508 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-09-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202509 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-10-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202510 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-11-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202511 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2025-12-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre><span class=\"token keyword\">PARTITION</span> p202512 <span class=\"token keyword\">VALUES</span> LESS THAN <span class=\"token punctuation\">(</span><span class=\"token string\">'2026-01-01'</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr></table></figure><ul>\n<li>PS : 以上四个表皆采用分区方式:\n<ol>\n<li>PARTITION BY RANGE COLUMNS (sta_date):  这表示使用基于日期范围的分区方式，并且以 sta_date 列作为分区列。</li>\n<li>PARTITION: 这是每个分区的开始定义。每个分区都有一个唯一的名称。</li>\n<li>VALUES LESS THAN ('date_value'): 这是定义分区的范围条件。每个分区根据指定的列的值进行划分，当列的值小于指定的日期值时，数据就会被放入该分区</li>\n</ol>\n</li>\n<li>分区方式一共有:\n<ul>\n<li>\n<p>范围分区（Range Partitioning）：根据列的范围值将数据分区。例如，根据日期范围将数据分为不同的分区。</p>\n</li>\n<li>\n<p>列表分区（List Partitioning）：根据列的离散值列表将数据分区。例如，根据地区列表将数据分为不同的分区。</p>\n</li>\n<li>\n<p>哈希分区（Hash Partitioning）：根据列值的哈希值将数据分区。哈希分区通常用于平均分配数据，避免某些分区数据量过大的情况。</p>\n</li>\n<li>\n<p>分区键分区（Partition Key Partitioning）：根据列值的某种特性进行分区，比如根据年份、月份等。</p>\n</li>\n<li>\n<p>范围 - 列表混合分区（Range-List Hybrid Partitioning）：结合了范围分区和列表分区的特性，先按范围进行分区，再在每个范围内根据列表进行二次分区。</p>\n</li>\n<li>\n<p>复合分区（Composite Partitioning）：使用多种分区方法的组合，例如先进行哈希分区，然后在每个哈希分区内再进行范围或列表分区。</p>\n</li>\n<li>\n<p>子分区（Subpartitioning）：在每个分区内再进行进一步的分区。可以与上述任何一种分区方式结合使用。</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ol>\n",
            "tags": [
                "项目熟悉"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/17/doc/%E5%8F%8C%E4%BA%B2%E5%A7%94%E6%B4%BE%E6%9C%BA%E5%88%B6%E6%98%AF%E4%BB%80%E4%B9%88/",
            "url": "https://hk2012.github.io/2024/02/17/doc/%E5%8F%8C%E4%BA%B2%E5%A7%94%E6%B4%BE%E6%9C%BA%E5%88%B6%E6%98%AF%E4%BB%80%E4%B9%88/",
            "title": "双亲委派机制是什么",
            "date_published": "2024-02-17T08:30:00.000Z",
            "content_html": "<h1 id=\"双亲委派机制是什么\"><a class=\"anchor\" href=\"#双亲委派机制是什么\">#</a> 双亲委派机制是什么</h1>\n<h2 id=\"概念\"><a class=\"anchor\" href=\"#概念\">#</a> 概念</h2>\n<p>双亲委派模式是在 Java 1.2 后引入的，其工作原理的是，如果一个类加载器收到了类加载请求，它并不会自己先去加载，而是把这个<strong>请求委托给父类的加载器去执行</strong>，如果父类加载器还存在其父类加载器，则<strong>进一步向上委托，依次递归</strong>，<strong>请求最终将到达顶层的启动类加载器</strong>，如果父类加载器可以完成类加载任务，就成功返回，倘若父类加载器无法完成此加载任务，子加载器才会尝试自己去加载，这就是双亲委派模式</p>\n<h2 id=\"双亲委派的好处\"><a class=\"anchor\" href=\"#双亲委派的好处\">#</a> 双亲委派的好处</h2>\n<ul>\n<li>每一个类都只会被加载一次，避免了重复加载</li>\n<li>每一个类都会被尽可能的加载（从引导类加载器往下，每个加载器都可能会根据优先次序尝试加载它）</li>\n<li>有效避免了某些恶意类的加载（比如自定义了 Java.lang.Object 类，一般而言在双亲委派模型下会加载系统的 Object 类而不是自定义的 Object 类）</li>\n</ul>\n<h2 id=\"如何破坏双亲委派模型\"><a class=\"anchor\" href=\"#如何破坏双亲委派模型\">#</a> 如何破坏双亲委派模型</h2>\n<ol>\n<li>在 jdk 1.2 之前，那时候还没有双亲委派模型，不过已经有了 ClassLoader 这个抽象类，所以已经有人继承这个抽象类，重写 loadClass 方法来实现用户自定义类加载器。而在 1.2 的时候要引入双亲委派模型，为了向前兼容， loadClass 这个方法还得保留着使之得以重写，新搞了个 findClass 方法让用户去重写，并呼吁大家不要重写 loadClass 只要重写 findClass。<strong>这就是第一次对双亲委派模型的破坏，因为双亲委派的逻辑在 loadClass 上，但是又允许重写 loadClass，重写了之后就可以破坏委派逻辑了。</strong></li>\n<li>双亲委派模型的第二次 “被破坏” 是 ServiceLoader 和 Thread.setContextClassLoader ()。即<strong>线程上下文类加载器（contextClassLoader）</strong>。双亲委派模型很好地解决了各个类加载器的基础类统一问题 (越基础的类由越上层的加载器进行加载)，基础类之所以被称为 “基础”，是因为它们总是作为被调用代码调用的 API。但是，如果基础类又要调用用户的代码，那该怎么办呢？线程上下文类加载器就出现了。\n<ol>\n<li>SPI。这个类加载器可以通过 java.lang.Thread 类的 setContextClassLoader () 方法进行设置，如果创建线程时还未设置，它将会从父线程中继承一个；如果在应用程序的全局范围内都没有设置过，那么这个类加载器默认就是应用程序类加载器。了有线程上下文类加载器，JNDI 服务使用这个线程上下文类加载器去加载所需要的 SPI 代码，也就是父类加载器请求子类加载器去完成类加载动作，这种行为实际上就是打通了双亲委派模型的层次结构来逆向使用类加载器，已经违背了双亲委派模型，但这也是无可奈何的事情。Java 中所有涉及 SPI 的加载动作基本上都采用这种方式，例如 JNDI,JDBC,JCE,JAXB 和 JBI 等。</li>\n<li>线程上下文类加载器默认情况下就是 AppClassLoader，那为什么不直接通过 getSystemClassLoader () 获取类加载器来加载 classpath 路径下的类的呢？其实是可行的，但这种直接使用 getSystemClassLoader () 方法获取 AppClassLoader 加载类有一个缺点，那就是代码部署到不同服务时会出现问题，如把代码部署到 Java Web 应用服务或者 EJB 之类的服务将会出问题，因为这些服务使用的线程上下文类加载器并非 AppClassLoader，而是 Java Web 应用服自家的类加载器，类加载器不同。，所以我们应用该少用 getSystemClassLoader ()。总之不同的服务使用的可能默认 ClassLoader 是不同的，但使用线程上下文类加载器总能获取到与当前程序执行相同的 ClassLoader，从而避免不必要的问题</li>\n</ol>\n</li>\n<li>双亲委派模型的第三次 “被破坏” 是由于用户对程序动态性的追求导致的，这里所说的 “动态性” 指的是当前一些非常 “热门” 的名词：代码热替换、模块热部署等，简单的说就是机器不用重启，只要部署上就能用</li>\n<li>在 JDK9 引入模块系统之后，类加载器的实现其实做了一波更新。当收到类加载请求，会先判断该类在具体模块中是否有定义，如果有定义就自己加载了，没的话再委派给父类。关于 JDK9 相关的知识点就不展开了，有兴趣的自行查阅。所以这就是第四次破坏。</li>\n</ol>\n<h2 id=\"破坏双亲委派模型的案例\"><a class=\"anchor\" href=\"#破坏双亲委派模型的案例\">#</a> 破坏双亲委派模型的案例</h2>\n<ul>\n<li>JDBC</li>\n<li>Tomcat</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/17/doc/%E4%BB%80%E4%B9%88%E6%98%AF%E5%AD%97%E8%8A%82%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%AE%83%E7%9A%84%E7%BB%84%E6%88%90/",
            "url": "https://hk2012.github.io/2024/02/17/doc/%E4%BB%80%E4%B9%88%E6%98%AF%E5%AD%97%E8%8A%82%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%AE%83%E7%9A%84%E7%BB%84%E6%88%90/",
            "title": "什么是字节码以及它的组成",
            "date_published": "2024-02-17T05:30:00.000Z",
            "content_html": "<h1 id=\"什么是字节码以及它的组成\"><a class=\"anchor\" href=\"#什么是字节码以及它的组成\">#</a> 什么是字节码以及它的组成</h1>\n<h2 id=\"字节码概念\"><a class=\"anchor\" href=\"#字节码概念\">#</a> 字节码概念</h2>\n<p><strong>Java 字节码（英语：Java bytecode）是 Java 虚拟机执行的一种指令格式</strong>。</p>\n<p>大多数操作码都是一个字节长，而有些操作需要参数，导致了有一些多字节的操作码。</p>\n<p>因为 JVM 针对各种操作系统和平台都进行了定制，无论在什么平台，都可以通过 javac 命令将一个.java 文件编译成固定格式的字节码（.class 文件）供 JVM 使用。之所以被称为字节码，是因为 **.class 文件是由十六进制值组成的，JVM 以两个十六进制值为一组，就是以字节为单位进行读取 **</p>\n<p>格式如下</p>\n<p><img data-src=\"/img/images/bytecode.png\" alt=\"bytecode\" /></p>\n<h2 id=\"字节码的组成\"><a class=\"anchor\" href=\"#字节码的组成\">#</a> 字节码的组成</h2>\n<p>JVM 对字节码的规范是有要求的，要求每一个字节码文件都要有 10 部分固定的顺序组成：</p>\n<p>魔术、版本号、常量池、访问标志、当前类索引、父类索引、接口索引、字段表、方法表、附件属性</p>\n<p><img data-src=\"/img/images/bytecode2.png\" alt=\"bytecode2\" /></p>\n<p>详细如下：</p>\n<ol>\n<li>魔数</li>\n</ol>\n<p>所有的.class 文件的前 4 个字节都是魔数，魔数以一个固定值：0xCAFEBABE，放在文件的开头，JVM 就可以根据这个文件的开头来判断这个文件是否可能是一个.class 文件，如果是以这个开头，才会往后执行下面的操作，这个魔数的固定值是 Java 之父 James Gosling 指定的，意为 CafeBabe（咖啡宝贝）</p>\n<ol start=\"2\">\n<li>版本号</li>\n</ol>\n<p>版本号是魔术之后的 4 个字节，前两个字节表示次版本号（Minor Version），后两个字节表示主版本号（Major Version），上面的 0000 0032，次版本号 0000 转为十进制是 0，主版本号 0032 转为十进制 50，对应下图的版本映射关系，可以看到对应的 java 版本号是 1.6</p>\n<p><img data-src=\"/img/images/bytecodeversion.png\" alt=\"image.png\" /></p>\n<ol start=\"3\">\n<li>常量池</li>\n</ol>\n<p>紧接着主版本号之后的字节为常量池入口，常量池中有两类常量：字面量和符号引用，字面量是代码中申明为 Final 的常量值，符号引用是如类和接口的全局限定名、字段的名称和描述符、方法的名称和描述符。常量池整体分为两个部分：常量池计数器以及常量池数据区<br />\n<img data-src=\"/img/images/changlangchi.png\" alt=\"\" /></p>\n<ol start=\"4\">\n<li>访问标志</li>\n</ol>\n<p>常量池结束后的两个字节，描述的是类还是接口，以及是否被 Public、Abstract、Final 等修饰符修饰，JVM 规范规定了 9 种访问标示（Access_Flag）JVM 是通过按位或操作来描述所有的访问标示的，比如类的修饰符是 Public Final，则对应的访问修饰符的值为 ACC_PUBLIC | ACC_FINAL，即 0x0001 | 0x0010=0x0011<br />\n<img data-src=\"/img/images/access_flag.png\" alt=\"\" /></p>\n<ol start=\"5\">\n<li>当前类索引</li>\n</ol>\n<p>访问标志后的两个字节，描述的是当前类的全限定名，这两个字节保存的值是常量池中的索引值，根据索引值就能在常量池中找到这个类的全限定名<br />\n​</p>\n<ol start=\"6\">\n<li>父类索引</li>\n</ol>\n<p>当前类名后的两个字节，描述的父类的全限定名，也是保存的常量池中的索引值</p>\n<ol start=\"7\">\n<li>接口索引</li>\n</ol>\n<p>父类名称后的两个字节，是接口计数器，描述了该类或者父类实现的接口数量，紧接着的 n 个字节是所有接口名称的字符串常量的索引值</p>\n<ol start=\"8\">\n<li>字段表</li>\n</ol>\n<p>用于描述类和接口中声明的变量，包含类级别的变量和实例变量，但是不包含方法内部声明的局部变量，字段表也分为两个部分，第一部分是两个字节，描述字段个数，第二部分是每个字段的详细信息 fields_info<br />\n<img data-src=\"/img/images/field.png\" alt=\"\" /></p>\n<ol start=\"9\">\n<li>方法表</li>\n</ol>\n<p>字段表结束后为方法表，方法表也分为两个部分，第一个部分是两个字节表述方法的个数，第二部分是每个方法的详细信息<br />\n方法的访问信息比较复杂，包括方法的访问标志、方法名、方法的描述符和方法的属性：<br />\n<img data-src=\"/img/images/method.png\" alt=\"\" /></p>\n<ol start=\"10\">\n<li>附加属性</li>\n</ol>\n<p>字节码的最后一部分，该项存放了在该文件中类或接口所定义属性的基本信息。</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/16/doc/plan/",
            "url": "https://hk2012.github.io/2024/02/16/doc/plan/",
            "title": "课程计划",
            "date_published": "2024-02-16T10:40:33.000Z",
            "content_html": "<h1 id=\"学习计划\"><a class=\"anchor\" href=\"#学习计划\">#</a> 学习计划</h1>\n<ul>\n<li>Java</li>\n</ul>\n<h2 id=\"消息队列\"><a class=\"anchor\" href=\"#消息队列\">#</a> 消息队列</h2>\n<pre><code>- \n</code></pre>\n<h2 id=\"数据库\"><a class=\"anchor\" href=\"#数据库\">#</a> 数据库</h2>\n<pre><code>- \n</code></pre>\n<h2 id=\"linux-操作系统\"><a class=\"anchor\" href=\"#linux-操作系统\">#</a> Linux 操作系统</h2>\n<pre><code>- \n</code></pre>\n<h2 id=\"软件工程概论\"><a class=\"anchor\" href=\"#软件工程概论\">#</a> 软件工程概论</h2>\n<pre><code>- \n</code></pre>\n<h2 id=\"微服务架构\"><a class=\"anchor\" href=\"#微服务架构\">#</a> 微服务架构</h2>\n<ul>\n<li>emss\n<ul>\n<li>front\n<ul>\n<li>cacheRefresh</li>\n<li>channelAssessment</li>\n<li>channelPortrait</li>\n<li>common</li>\n<li>consumer</li>\n<li>debitMonitor</li>\n<li>dict</li>\n<li>express</li>\n<li>model</li>\n<li>monitor</li>\n<li>rule</li>\n<li>server</li>\n<li>third</li>\n<li>view</li>\n</ul>\n</li>\n<li>infrastructure\n<ul>\n<li>chain</li>\n<li>common</li>\n<li>config</li>\n<li>job</li>\n<li>method</li>\n<li>scheduler</li>\n<li>strategy</li>\n<li>util</li>\n</ul>\n</li>\n<li>rocketmq.console\n<ul>\n<li>aspect</li>\n<li>config</li>\n<li>controller</li>\n<li>exception</li>\n<li>model</li>\n<li>service</li>\n<li>support</li>\n<li>task</li>\n<li>test</li>\n<li>util</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"计算机网络\"><a class=\"anchor\" href=\"#计算机网络\">#</a> 计算机网络</h2>\n<ul>\n<li>WebSocket\n<ul>\n<li>定义\n<ul>\n<li>WebSocket 是一种通信协议，它提供了通过单个 TCP 连接进行全双工通信的渠道。它允许客户端和服务器之间进行双向通信，使数据能够在不像传统 HTTP 连接那样产生过多开销和延迟的情况下来回传输。WebSocket 特别适用于实时 Web 应用程序，比如聊天应用、在线游戏、金融交易平台和协同编辑工具。</li>\n</ul>\n</li>\n<li>特点\n<ol>\n<li>[全双工通信].{rainbow}：客户端和服务器都可以独立且同时地向对方发送消息。</li>\n<li>[低延迟].{rainbow}：WebSocket 通过消除每个请求和响应中的 HTTP 标头的开销，减少延迟，从而实现更快的客户端和服务器之间的通信。</li>\n<li>[高效通信].{rainbow}：WebSocket 保持客户端和服务器之间的持久连接，消除了为每次通信建立和拆除连接的需要。</li>\n<li>[双向通信].{rainbow}：与 HTTP 主要是单向的（从客户端到服务器）不同，WebSocket 支持双向通信，这使得它非常适合需要从服务器向客户端推送数据以及反向传输数据的实时应用程序。</li>\n<li>[跨域通信].{rainbow}：WebSocket 支持跨域通信，允许客户端连接到托管在不同域上的服务器。</li>\n<li>[安全性].{rainbow}：WebSocket 连接可以使用传输层安全性（TLS）进行保护，以加密客户端和服务器之间传输的数据，确保机密性和完整性。</li>\n<li>[协议协商].{rainbow}：WebSocket 使用基于 HTTP 的握手机制来最初建立连接。此握手允许客户端和服务器协商 WebSocket 协议版本和其他参数。</li>\n</ol>\n</li>\n<li>总结\n<ul>\n<li>总的来说，与传统的基于 HTTP 的通信方法相比，WebSocket 提供了一种更高效、更响应的方式来构建实时 Web 应用程序。它在各种领域中都备受青睐，特别是在需要实时数据交换的场景中。</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"项目介绍\"><a class=\"anchor\" href=\"#项目介绍\">#</a> 项目介绍</h2>\n<pre><code>- 工业互联网标识解析系统\n- ERP管理系统\n- 安全管家\n- EAP数据采集平台\n- 中电智恒BPO运营管理系统\n- O-wind数字能源服务平台</code></pre>\n",
            "tags": []
        },
        {
            "id": "https://hk2012.github.io/2024/02/16/doc/%E4%BB%80%E4%B9%88%E6%98%AF%E5%AE%88%E6%8A%A4%E7%BA%BF%E7%A8%8B/",
            "url": "https://hk2012.github.io/2024/02/16/doc/%E4%BB%80%E4%B9%88%E6%98%AF%E5%AE%88%E6%8A%A4%E7%BA%BF%E7%A8%8B/",
            "title": "什么是守护线程",
            "date_published": "2024-02-16T05:30:00.000Z",
            "content_html": "<h2 id=\"什么是守护线程\"><a class=\"anchor\" href=\"#什么是守护线程\">#</a> 什么是守护线程</h2>\n<p>在 Java 中有两类线程：User Thread (用户线程)、Daemon Thread (守护线程)</p>\n<p>任何一个守护线程都是整个 JVM 中所有非守护线程的保姆：</p>\n<p>只要当前 JVM 实例中尚存在任何一个非守护线程没有结束，守护线程就全部工作；只有当最后一个非守护线程结束时，守护线程随着 JVM 一同结束工作。Daemon 的作用是为其他线程的运行提供便利服务，守护线程最典型的应用就是 GC (垃圾回收器)，它就是一个很称职的守护者。</p>\n<p>User 和 Daemon 两者几乎没有区别，唯一的不同之处就在于虚拟机的离开：如果 User Thread 已经全部退出运行了，只剩下 Daemon Thread 存在了，虚拟机也就退出了。 因为没有了被守护者，Daemon 也就没有工作可做了，也就没有继续运行程序的必要了。</p>\n<p>注意事项:</p>\n<p>(1) thread.setDaemon (true) 必须在 thread.start () 之前设置，否则会出现一个 IllegalThreadStateException 异常。只能在线程未开始运行之前设置为守护线程。</p>\n<p>(2) 在 Daemon 线程中产生的新线程也是 Daemon 的。</p>\n<p>(3) 不要认为所有的应用都可以分配给 Daemon 来进行读写操作或者计算逻辑，因为这会可能回到数据不一致的状态。</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/16/doc/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E4%BD%BF%E7%94%A8%E7%BA%BF%E7%A8%8B%E6%B1%A0/",
            "url": "https://hk2012.github.io/2024/02/16/doc/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E4%BD%BF%E7%94%A8%E7%BA%BF%E7%A8%8B%E6%B1%A0/",
            "title": "为什么要使用线程池",
            "date_published": "2024-02-15T23:30:00.000Z",
            "content_html": "<h2 id=\"为什么要使用线程池\"><a class=\"anchor\" href=\"#为什么要使用线程池\">#</a> 为什么要使用线程池</h2>\n<p>Java 线程的创建非常昂贵，需要 JVM 和 OS（操作系统）配合完成大量的工作：</p>\n<p>（1）必须为线程堆栈分配和初始化大量内存块，其中包含至少 1MB 的栈内存。</p>\n<p>（2）需要进行系统调用，以便在 OS（操作系统）中创建和注册本地线程。</p>\n<p>Java 高并发应用频繁创建和销毁线程的操作是非常低效的，而且是不被编程规范所允许的。如何降低 Java 线程的创建成本？必须使用到线程池。线程池主要解决了以下两个问题：</p>\n<p>（1）提升性能：线程池能独立负责线程的创建、维护和分配。在执行大量异步任务时，可以不需要自己创建线程，而是将任务交给线程池去调度。线程池能尽可能使用空闲的线程去执行异步任务，最大限度地对已经创建的线程进行复用，使得性能提升明显。</p>\n<p>（2）线程管理：每个 Java 线程池会保持一些基本的线程统计信息，例如完成的任务数量、空闲时间等，以便对线程进行有效管理，使得能对所接收到的异步任务进行高效调度。</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/15/doc/%E7%BA%BF%E7%A8%8B%E6%B1%A0%E7%BA%BF%E7%A8%8B%E5%A4%8D%E7%94%A8%E7%9A%84%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88/",
            "url": "https://hk2012.github.io/2024/02/15/doc/%E7%BA%BF%E7%A8%8B%E6%B1%A0%E7%BA%BF%E7%A8%8B%E5%A4%8D%E7%94%A8%E7%9A%84%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88/",
            "title": "线程池线程复用的原理是什么",
            "date_published": "2024-02-15T10:30:00.000Z",
            "content_html": "<h2 id=\"线程池线程复用的原理是什么\"><a class=\"anchor\" href=\"#线程池线程复用的原理是什么\">#</a> 线程池线程复用的原理是什么</h2>\n<p>思考这么一个问题：任务结束后会不会回收线程？</p>\n<p>答案是：allowCoreThreadTimeOut 控制</p>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token operator\">/</span>java<span class=\"token operator\">/</span>util<span class=\"token operator\">/</span>concurrent<span class=\"token operator\">/</span><span class=\"token class-name\">ThreadPoolExecutor</span><span class=\"token punctuation\">.</span>java<span class=\"token operator\">:</span><span class=\"token number\">1127</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token keyword\">final</span> <span class=\"token keyword\">void</span> <span class=\"token function\">runWorker</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Worker</span> w<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>        <span class=\"token class-name\">Thread</span> wt <span class=\"token operator\">=</span> <span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>        <span class=\"token class-name\">Runnable</span> task <span class=\"token operator\">=</span> w<span class=\"token punctuation\">.</span>firstTask<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>        w<span class=\"token punctuation\">.</span>firstTask <span class=\"token operator\">=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        w<span class=\"token punctuation\">.</span><span class=\"token function\">unlock</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// allow interrupts</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>        <span class=\"token keyword\">boolean</span> completedAbruptly <span class=\"token operator\">=</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>        <span class=\"token keyword\">try</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>            <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>task <span class=\"token operator\">!=</span> <span class=\"token keyword\">null</span> <span class=\"token operator\">||</span> <span class=\"token punctuation\">(</span>task <span class=\"token operator\">=</span> <span class=\"token function\">getTask</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">!=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span>执行任务<span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>            completedAbruptly <span class=\"token operator\">=</span> <span class=\"token boolean\">false</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">finally</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>            <span class=\"token function\">processWorkerExit</span><span class=\"token punctuation\">(</span>w<span class=\"token punctuation\">,</span> completedAbruptly<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>首先线程池内的线程都被包装成了一个个的<span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>util<span class=\"token punctuation\">.</span>concurrent<span class=\"token punctuation\">.</span></span>ThreadPoolExecutor<span class=\"token punctuation\">.</span>Worker</span><span class=\"token punctuation\">,</span>然后这个worker会马不停蹄的执行任务<span class=\"token punctuation\">,</span>执行完任务之后就会在<span class=\"token keyword\">while</span>循环中去取任务<span class=\"token punctuation\">,</span>取到任务就继续执行<span class=\"token punctuation\">,</span>取不到任务就跳出<span class=\"token keyword\">while</span>循环<span class=\"token punctuation\">(</span>这个时候worker就不能再执行任务了<span class=\"token punctuation\">)</span>执行 processWorkerExit方法<span class=\"token punctuation\">,</span>这个方法呢就是做清场处理<span class=\"token punctuation\">,</span>将当前woker线程从线程池中移除<span class=\"token punctuation\">,</span>并且判断是否是异常的进入processWorkerExit方法<span class=\"token punctuation\">,</span>如果是非异常情况<span class=\"token punctuation\">,</span>就对当前线程池状态<span class=\"token punctuation\">(</span><span class=\"token constant\">RUNNING</span><span class=\"token punctuation\">,</span>shutdown<span class=\"token punctuation\">)</span>和当前工作线程数和当前任务数做判断<span class=\"token punctuation\">,</span>是否要加入一个新的线程去完成最后的任务<span class=\"token punctuation\">(</span>防止没有线程去做剩下的任务<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>那么什么时候会退出<span class=\"token keyword\">while</span>循环呢<span class=\"token operator\">?</span>取不到任务的时候<span class=\"token punctuation\">(</span><span class=\"token function\">getTask</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>下面看一下getTask方法</pre></td></tr><tr><td data-num=\"17\"></td><td><pre></pre></td></tr><tr><td data-num=\"18\"></td><td><pre><span class=\"token keyword\">private</span> <span class=\"token class-name\">Runnable</span> <span class=\"token function\">getTask</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>        <span class=\"token keyword\">boolean</span> timedOut <span class=\"token operator\">=</span> <span class=\"token boolean\">false</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// Did the last poll() time out?</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">;</span><span class=\"token punctuation\">;</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>            <span class=\"token keyword\">int</span> c <span class=\"token operator\">=</span> ctl<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>            <span class=\"token keyword\">int</span> rs <span class=\"token operator\">=</span> <span class=\"token function\">runStateOf</span><span class=\"token punctuation\">(</span>c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>            <span class=\"token comment\">//(rs == SHUTDOWN &amp;&amp; workQueue.isEmpty()) || rs >=STOP</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>            <span class=\"token comment\">// 若线程池状态是 SHUTDOWN 并且 任务队列为空，意味着已经不需要工作线程执行任务了，线程池即将关闭</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>            <span class=\"token comment\">// 若线程池的状态是 STOP TIDYING TERMINATED, 则意味着线程池已经停止处理任何任务了，不在需要线程</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>rs <span class=\"token operator\">>=</span> <span class=\"token constant\">SHUTDOWN</span> <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>rs <span class=\"token operator\">>=</span> <span class=\"token constant\">STOP</span> <span class=\"token operator\">||</span> workQueue<span class=\"token punctuation\">.</span><span class=\"token function\">isEmpty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>                <span class=\"token comment\">// 把此工作线程从线程池中删除</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>                <span class=\"token function\">decrementWorkerCount</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>            <span class=\"token keyword\">int</span> wc <span class=\"token operator\">=</span> <span class=\"token function\">workerCountOf</span><span class=\"token punctuation\">(</span>c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>            <span class=\"token comment\">//allowCoreThreadTimeOut: 当没有任务的时候，核心线程数也会被剔除，默认参数是 false, 官方推荐在创建线程池并且还未使用的时候，设置此值</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>            <span class=\"token comment\">// 如果当前工作线程数 大于 核心线程数，timed 为 true</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>            <span class=\"token keyword\">boolean</span> timed <span class=\"token operator\">=</span> allowCoreThreadTimeOut <span class=\"token operator\">||</span> wc <span class=\"token operator\">></span> corePoolSize<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>            </pre></td></tr><tr><td data-num=\"40\"></td><td><pre>            <span class=\"token comment\">//(wc> maximumPoolSize || (timed &amp;&amp; timedOut)): 当工作线程超过最大线程数，或者 允许超时并且超时过一次了</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre>            <span class=\"token comment\">//(wc> 1 || workQueue.isEmpty ()): 工作线程数至少为 1 个 或者 没有任务了</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>            <span class=\"token comment\">// 总的来说判断当前工作线程还有没有必要等着拿任务去执行</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>            <span class=\"token comment\">//wc > maximumPoolSize &amp;&amp; wc>1 : 就是判断当前工作线程是否超过最大值</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>            <span class=\"token comment\">// 或者 wc > maximumPoolSize &amp;&amp; workQueue.isEmpty (): 工作线程超过最大，基本上不会走到这，</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>            <span class=\"token comment\">//      如果走到这，则意味着 wc=1 , 只有 1 个工作线程了，如果此时任务队列是空的，则把最后的线程删除</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>            <span class=\"token comment\">// 或者 (timed &amp;&amp; timedOut) &amp;&amp; wc>1: 如果允许超时并且超时过一次，并且至少有 1 个线程，则删除线程</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>            <span class=\"token comment\">// 或者 (timed &amp;&amp; timedOut) &amp;&amp; workQueue.isEmpty (): 如果允许超时并且超时过一次，并且此时工作                    队列为空，那么妥妥可以把最后一个线程（因为上面的 wc>1 不满足，则可以得出来 wc=1）删除</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>wc <span class=\"token operator\">></span> maximumPoolSize  <span class=\"token operator\">||</span> <span class=\"token punctuation\">(</span>timed <span class=\"token operator\">&amp;&amp;</span> timedOut<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre>                <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>wc <span class=\"token operator\">></span> <span class=\"token number\">1</span> <span class=\"token operator\">||</span> workQueue<span class=\"token punctuation\">.</span><span class=\"token function\">isEmpty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>                <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">compareAndDecrementWorkerCount</span><span class=\"token punctuation\">(</span>c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>                    <span class=\"token comment\">// 如果减去工作线程数成功，则返回 null 出去，也就是说 让工作线程停止 while 轮训，进行收尾</span></pre></td></tr><tr><td data-num=\"52\"></td><td><pre>                    <span class=\"token keyword\">return</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"53\"></td><td><pre>                <span class=\"token keyword\">continue</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"54\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"55\"></td><td><pre></pre></td></tr><tr><td data-num=\"56\"></td><td><pre>            <span class=\"token keyword\">try</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"57\"></td><td><pre>                <span class=\"token comment\">// 判断是否要阻塞获取任务</span></pre></td></tr><tr><td data-num=\"58\"></td><td><pre>                <span class=\"token class-name\">Runnable</span> r <span class=\"token operator\">=</span> timed <span class=\"token operator\">?</span></pre></td></tr><tr><td data-num=\"59\"></td><td><pre>                    workQueue<span class=\"token punctuation\">.</span><span class=\"token function\">poll</span><span class=\"token punctuation\">(</span>keepAliveTime<span class=\"token punctuation\">,</span> <span class=\"token class-name\">TimeUnit</span><span class=\"token punctuation\">.</span><span class=\"token constant\">NANOSECONDS</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">:</span></pre></td></tr><tr><td data-num=\"60\"></td><td><pre>                    workQueue<span class=\"token punctuation\">.</span><span class=\"token function\">take</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"61\"></td><td><pre>                <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>r <span class=\"token operator\">!=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"62\"></td><td><pre>                    <span class=\"token keyword\">return</span> r<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"63\"></td><td><pre>                timedOut <span class=\"token operator\">=</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"64\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span><span class=\"token class-name\">InterruptedException</span> retry<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"65\"></td><td><pre>                timedOut <span class=\"token operator\">=</span> <span class=\"token boolean\">false</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"66\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"67\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"68\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"69\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"70\"></td><td><pre><span class=\"token comment\">// 综上所述，如果 allowCoreThreadTimeOut 为 true, 并且在第 1 次阻塞获取任务失败了，那么当前 getTask 会返回 null, 不管是不是核心线程；那么 runWorker 中将推出 while 循环，也就意味着当前工作线程被销毁</span></pre></td></tr></table></figure><p>通过上面这个问题可以得出一个结论：当你的线程池参数配置合理的时候，执行完任务的线程是不会被销毁的，而是会从任务队列中取出任务继续执行！</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/15/doc/%E7%BA%BF%E7%A8%8B%E7%9A%84sleep%E3%80%81wait%E3%80%81join%E3%80%81yield%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8/",
            "url": "https://hk2012.github.io/2024/02/15/doc/%E7%BA%BF%E7%A8%8B%E7%9A%84sleep%E3%80%81wait%E3%80%81join%E3%80%81yield%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8/",
            "title": "线程的sleep、wait、join、yield如何使用",
            "date_published": "2024-02-15T01:00:00.000Z",
            "content_html": "<h2 id=\"线程的sleep-wait-join-yield如何使用\"><a class=\"anchor\" href=\"#线程的sleep-wait-join-yield如何使用\">#</a> 线程的 sleep、wait、join、yield 如何使用</h2>\n<p><strong>sleep</strong>:</p>\n<p>sleep 的作用是让目前正在执行的线程休眠，让 CPU 去执行其他的任务。从线程状态来说，就是从执行状态变成限时阻塞状态。Sleep () 方法定义在 Thread 类中，是一组静态方法，有两个重载版本：</p>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\">// 使目前正在执行的线程休眠 millis 毫秒</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>     <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">sleep</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">long</span> millis<span class=\"token punctuation\">)</span> <span class=\"token keyword\">throws</span> <span class=\"token class-name\">InterruptException</span>；</pre></td></tr><tr><td data-num=\"3\"></td><td><pre>     </pre></td></tr><tr><td data-num=\"4\"></td><td><pre>     <span class=\"token comment\">// 使目前正在执行的线程休眠 millis 毫秒，nanos 纳秒</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>     <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">sleep</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">long</span> millis，<span class=\"token keyword\">int</span> nanos<span class=\"token punctuation\">)</span> <span class=\"token keyword\">throws</span> <span class=\"token class-name\">InterruptException</span>；</pre></td></tr></table></figure><p>sleep () 方法会有 InterruptException 受检异常抛出，如果调用了 sleep () 方法，就必须进行异常审查，捕获 InterruptedException 异常，或者再次通过方法声明存在 InterruptedException 异常。</p>\n<p><strong>wait</strong> (必须先获得对应的锁才能调用): 让线程进入等待状态，释放当前线程持有的锁资源线程只有在 notify 或者 notifyAll 方法调用后才会被唤醒，然后去争夺锁.</p>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">class</span> <span class=\"token class-name\">ThreadA</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Thread</span><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>\t<span class=\"token keyword\">public</span> <span class=\"token class-name\">ThreadA</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span> name<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>\t\t<span class=\"token keyword\">super</span><span class=\"token punctuation\">(</span>name<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>\t<span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">run</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>\t\t<span class=\"token keyword\">synchronized</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>\t\t\t<span class=\"token keyword\">try</span> <span class=\"token punctuation\">&#123;</span>\t\t\t\t\t\t</pre></td></tr><tr><td data-num=\"8\"></td><td><pre>\t\t\t\t<span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">sleep</span><span class=\"token punctuation\">(</span><span class=\"token number\">1000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\t<span class=\"token comment\">//\t使当前线阻塞 1s，确保主程序的 t1.wait (); 执行之后再执行 notify ()</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>\t\t\t<span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span><span class=\"token class-name\">Exception</span> e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>\t\t\t\te<span class=\"token punctuation\">.</span><span class=\"token function\">printStackTrace</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>\t\t\t<span class=\"token punctuation\">&#125;</span>\t\t\t</pre></td></tr><tr><td data-num=\"12\"></td><td><pre>\t\t\t<span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">getName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token operator\">+</span><span class=\"token string\">\" call notify()\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>\t\t\t<span class=\"token comment\">// 唤醒当前的 wait 线程</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>\t\t\t<span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">notify</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>\t\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">WaitTest</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>\t<span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>\t\t<span class=\"token class-name\">ThreadA</span> t1 <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">ThreadA</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"t1\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>\t\t<span class=\"token keyword\">synchronized</span><span class=\"token punctuation\">(</span>t1<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>\t\t\t<span class=\"token keyword\">try</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>\t\t\t\t<span class=\"token comment\">// 启动 “线程 t1”</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>\t\t\t\t<span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">getName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token operator\">+</span><span class=\"token string\">\" start t1\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>\t\t\t\tt1<span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>\t\t\t\t<span class=\"token comment\">// 主线程等待 t1 通过 notify () 唤醒。</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>\t\t\t\t<span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">getName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token operator\">+</span><span class=\"token string\">\" wait()\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>\t\t\t\tt1<span class=\"token punctuation\">.</span><span class=\"token function\">wait</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>  <span class=\"token comment\">//  不是使 t1 线程等待，而是当前执行 wait 的线程等待</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>\t\t\t\t<span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">getName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token operator\">+</span><span class=\"token string\">\" continue\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>\t\t\t<span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span><span class=\"token class-name\">InterruptedException</span> e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>\t\t\t\te<span class=\"token punctuation\">.</span><span class=\"token function\">printStackTrace</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>\t\t\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre>\t\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><p>输出：</p>\n<blockquote>\n<p>main start t1<br />\nmain wait()<br />\nt1 call notify()<br />\nmain continue</p>\n</blockquote>\n<p><strong>join</strong>: 线程之间协同方式，使用场景：线程 C 必须等待线程 B 运行完毕后才可以执行，那么就可以在线程 B 的代码中加入 thread_c.join ();;</p>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">TestThread</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>        </pre></td></tr><tr><td data-num=\"3\"></td><td><pre>        <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>            <span class=\"token class-name\">ThreadB</span> t1 <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">ThreadB</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"thread-b\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>            t1<span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>\t</pre></td></tr><tr><td data-num=\"10\"></td><td><pre>\t<span class=\"token keyword\">class</span> <span class=\"token class-name\">ThreadB</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Thread</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        <span class=\"token keyword\">public</span> <span class=\"token class-name\">ThreadB</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span> name<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>            <span class=\"token keyword\">super</span><span class=\"token punctuation\">(</span>name<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>        <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">run</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>            <span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">getName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>            <span class=\"token class-name\">Thread</span> thread_c <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">ThreadC</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"thread-c\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>            <span class=\"token keyword\">try</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>                thread_c<span class=\"token punctuation\">.</span><span class=\"token function\">join</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>                thread_c<span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span><span class=\"token class-name\">InterruptedException</span> e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>                e<span class=\"token punctuation\">.</span><span class=\"token function\">printStackTrace</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>\t<span class=\"token keyword\">class</span> <span class=\"token class-name\">ThreadC</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Thread</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>        <span class=\"token keyword\">public</span> <span class=\"token class-name\">ThreadC</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span> name<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>            <span class=\"token keyword\">super</span><span class=\"token punctuation\">(</span>name<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>        <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">run</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>            <span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">getName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre></pre></td></tr><tr><td data-num=\"39\"></td><td><pre><span class=\"token comment\">// 输出</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre><span class=\"token comment\">//thread-b</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre><span class=\"token comment\">//thread-c</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>         </pre></td></tr><tr><td data-num=\"44\"></td><td><pre>     <span class=\"token comment\">// 重载版本 1：此方法会把当前线程变为 TIMED_WAITING，直到被合并线程执行结束</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>     <span class=\"token keyword\">public</span> <span class=\"token keyword\">final</span> <span class=\"token keyword\">void</span> <span class=\"token function\">join</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">throws</span> <span class=\"token class-name\">InterruptedException</span>：</pre></td></tr><tr><td data-num=\"46\"></td><td><pre>     </pre></td></tr><tr><td data-num=\"47\"></td><td><pre>     <span class=\"token comment\">// 重载版本 2：此方法会把当前线程变为 TIMED_WAITING，直到被合并线程执行结束，或者等待被合并线程执行 millis 的时间</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>     <span class=\"token keyword\">public</span> <span class=\"token keyword\">final</span> <span class=\"token keyword\">synchronized</span> <span class=\"token keyword\">void</span> <span class=\"token function\">join</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">long</span> millis<span class=\"token punctuation\">)</span> <span class=\"token keyword\">throws</span> <span class=\"token class-name\">InterruptedException</span>：</pre></td></tr><tr><td data-num=\"49\"></td><td><pre>     </pre></td></tr><tr><td data-num=\"50\"></td><td><pre>     <span class=\"token comment\">// 重载版本 3：此方法会把当前线程变为 TIMED_WAITING，直到被合并线程执行结束，或者等待被合并线程执行 millis+nanos 的时间</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre>     <span class=\"token keyword\">public</span> <span class=\"token keyword\">final</span> synchroinzed <span class=\"token keyword\">void</span> <span class=\"token function\">join</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">long</span> millis<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> nanos<span class=\"token punctuation\">)</span> <span class=\"token keyword\">throws</span> <span class=\"token class-name\">InterruptedException</span>：</pre></td></tr></table></figure><p><strong>yield</strong>: 让当前正在运行的线程回到可运行状态，以允许具有相同优先级的其他线程获得运行的机会。因此，使用 yield () 的目的是让具有相同优先级的线程之间能够适当的轮换执行。但是，实际中无法保证 yield () 达到让步的目的，因为，让步的线程可能被线程调度程序再次选中。</p>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">Test03</span> <span class=\"token keyword\">implements</span> <span class=\"token class-name\">Runnable</span><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre> </pre></td></tr><tr><td data-num=\"3\"></td><td><pre> </pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">private</span> <span class=\"token class-name\">String</span> name<span class=\"token punctuation\">;</span>     </pre></td></tr><tr><td data-num=\"5\"></td><td><pre>   </pre></td></tr><tr><td data-num=\"6\"></td><td><pre>   <span class=\"token keyword\">private</span> <span class=\"token class-name\">Test03</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span> name<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span>     </pre></td></tr><tr><td data-num=\"7\"></td><td><pre>       <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>name <span class=\"token operator\">=</span> name<span class=\"token punctuation\">;</span>     </pre></td></tr><tr><td data-num=\"8\"></td><td><pre>   <span class=\"token punctuation\">&#125;</span>  </pre></td></tr><tr><td data-num=\"9\"></td><td><pre> </pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">synchronized</span> <span class=\"token keyword\">void</span> <span class=\"token function\">run</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>            <span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span>name <span class=\"token operator\">+</span> <span class=\"token string\">\" -> Start.\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>            <span class=\"token keyword\">for</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">100</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>                <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>i <span class=\"token operator\">==</span> <span class=\"token number\">50</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>                \t<span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token keyword\">yield</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>    \t\t\t<span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    \t\t\t<span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">getName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token string\">\"'s i=\"</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span>i<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>   \t\t\t <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>    \t\t<span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span>name <span class=\"token operator\">+</span> <span class=\"token string\">\"X -> End.\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>            <span class=\"token class-name\">Test03</span> t1 <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Test03</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"A\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>            <span class=\"token class-name\">Thread</span> thread1 <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Thread</span><span class=\"token punctuation\">(</span>t1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>            <span class=\"token class-name\">Thread</span> thread2 <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Thread</span><span class=\"token punctuation\">(</span>t1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>            thread1<span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>            thread2<span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>结果<span class=\"token operator\">:</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre></pre></td></tr><tr><td data-num=\"30\"></td><td><pre><span class=\"token class-name\">A</span> <span class=\"token operator\">-></span> <span class=\"token class-name\">Start<span class=\"token punctuation\">.</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>Thread</span><span class=\"token operator\">-</span><span class=\"token number\">0</span>'s i<span class=\"token operator\">=</span><span class=\"token number\">1</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre><span class=\"token class-name\">Thread</span><span class=\"token operator\">-</span><span class=\"token number\">0</span>'s i<span class=\"token operator\">=</span><span class=\"token number\">2</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span>省略</pre></td></tr><tr><td data-num=\"34\"></td><td><pre><span class=\"token class-name\">Thread</span><span class=\"token operator\">-</span><span class=\"token number\">0</span>'s i<span class=\"token operator\">=</span><span class=\"token number\">99</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre><span class=\"token class-name\">Thread</span><span class=\"token operator\">-</span><span class=\"token number\">0</span>'s i<span class=\"token operator\">=</span><span class=\"token number\">100</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre><span class=\"token constant\">AX</span> <span class=\"token operator\">-></span> <span class=\"token class-name\">End<span class=\"token punctuation\">.</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>A</span> <span class=\"token operator\">-></span> <span class=\"token class-name\">Start<span class=\"token punctuation\">.</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>Thread</span><span class=\"token operator\">-</span><span class=\"token number\">1</span>'s i<span class=\"token operator\">=</span><span class=\"token number\">1</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre><span class=\"token class-name\">Thread</span><span class=\"token operator\">-</span><span class=\"token number\">1</span>'s i<span class=\"token operator\">=</span><span class=\"token number\">2</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span>省略</pre></td></tr><tr><td data-num=\"41\"></td><td><pre><span class=\"token class-name\">Thread</span><span class=\"token operator\">-</span><span class=\"token number\">1</span>'s i<span class=\"token operator\">=</span><span class=\"token number\">99</span></pre></td></tr><tr><td data-num=\"42\"></td><td><pre><span class=\"token class-name\">Thread</span><span class=\"token operator\">-</span><span class=\"token number\">1</span>'s i<span class=\"token operator\">=</span><span class=\"token number\">100</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre><span class=\"token constant\">AX</span> <span class=\"token operator\">-></span> <span class=\"token class-name\">End</span><span class=\"token punctuation\">.</span></pre></td></tr></table></figure><p>总结起来，Thread.yeid () 方法有以下特点：</p>\n<p>（1）yield 仅能使一个线程从运行状态转到就绪状态，而不是阻塞状态。</p>\n<p>（2）yield 不能保证使得当前正在运行的线程迅速转换到就绪状态。</p>\n<p>（3）即使完成了迅速切换，系统通过线程调度机制从所有就绪线程中挑选下一个执行线程时，就绪的线程有可能被选中，也有可能不被选中，其调度的过程受到其他因素（如优先级）的影响。</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/14/doc/%E5%A6%82%E4%BD%95%E9%A2%84%E9%98%B2%E6%AD%BB%E9%94%81/",
            "url": "https://hk2012.github.io/2024/02/14/doc/%E5%A6%82%E4%BD%95%E9%A2%84%E9%98%B2%E6%AD%BB%E9%94%81/",
            "title": "如何预防死锁",
            "date_published": "2024-02-14T09:00:00.000Z",
            "content_html": "<h2 id=\"如何预防死锁\"><a class=\"anchor\" href=\"#如何预防死锁\">#</a> 如何预防死锁</h2>\n<p>首先举个例子说明什么是死锁，比如，一个十字路口，东西南北四个方向分别有四列车 ABCD，A 在东向被 D 堵着，D 北被 B 堵着，B 在西被 C 堵着，C 在南被 A 堵着，这就造成了十字路口的堵死，也就是所谓的死锁。</p>\n<p>具体图示如下：</p>\n<p><img data-src=\"/img/images/deadlock.png\" alt=\"deadlock\" /></p>\n<p>那么如何预防死锁？</p>\n<ol>\n<li>死锁发生的四个必要条件:\n<ol>\n<li>互斥条件 同一时间只能有一个线程获取资源。</li>\n<li>不可剥夺条件 一个线程已经占有的资源，在释放之前不会被其它线程抢占</li>\n<li>请求和保持条件 线程等待过程中不会释放已占有的资源</li>\n<li>循环等待条件 多个线程互相等待对方释放资源</li>\n</ol>\n</li>\n<li>死锁预防，那么就是需要破坏这四个必要条件\n<ol>\n<li>由于资源互斥是资源使用的固有特性，无法改变，我们不讨论</li>\n<li>破坏不可剥夺条件\n<ol>\n<li>一个进程不能获得所需要的全部资源时便处于等待状态，等待期间他占有的资源将被隐式的释放重新加入到系统的资源列表中，可以被其他的进程使用，而等待的进程只有重新获得自己原有的资源以及新申请的资源才可以重新启动，执行</li>\n</ol>\n</li>\n<li>破坏请求与保持条件\n<ol>\n<li>第一种方法静态分配即每个进程在开始执行时就申请他所需要的全部资源</li>\n<li>第二种是动态分配即每个进程在申请所需要的资源时他本身不占用系统资源</li>\n</ol>\n</li>\n<li>破坏循环等待条件\n<ol>\n<li>采用资源有序分配其基本思想是将系统中的所有资源顺序编号，将紧缺的，稀少的采用较大的编号，在申请资源时必须按照编号的顺序进行，一个进程只有获得较小编号的进程才能申请较大编号的进程。</li>\n</ol>\n</li>\n</ol>\n</li>\n</ol>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/14/doc/Class%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B%E6%98%AF%E4%BB%80%E4%B9%88/",
            "url": "https://hk2012.github.io/2024/02/14/doc/Class%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B%E6%98%AF%E4%BB%80%E4%B9%88/",
            "title": "Class初始化过程是什么",
            "date_published": "2024-02-14T07:00:00.000Z",
            "content_html": "<h1 id=\"class初始化过程是什么\"><a class=\"anchor\" href=\"#class初始化过程是什么\">#</a> Class 初始化过程是什么</h1>\n<h2 id=\"类加载的过程\"><a class=\"anchor\" href=\"#类加载的过程\">#</a> 类加载的过程</h2>\n<p>我们可以先简单说下类加载的过程，大致分为：</p>\n<p>** 加载、验证、准备、解析、初始化 ** 几个阶段，使用和卸载都是已经加载完成之后，属于类的生命周期的两个阶段</p>\n<p><img data-src=\"/img/images/class-int.png\" alt=\"\" /></p>\n<h2 id=\"类的初始化过程\"><a class=\"anchor\" href=\"#类的初始化过程\">#</a> 类的初始化过程</h2>\n<p>下面我们就重点分析类的初始化的过程：</p>\n<ol>\n<li>\n<p><strong>类的初始化阶段，是真正开始执行类中定义的 java 程序代码 (字节码) 并按程序员的意图去初始化类变量的过程。更直接地说，初始化阶段就是执行类构造器 &lt; clinit&gt;() 方法的过程。</strong> &lt;clinit&gt;() 方法是由编译器自动收集类中的所有类变量的赋值动作和静态代码块 static {} 中的语句合并产生的，其中<strong>编译器收集的顺序是由语句在源文件中出现的顺序所决定</strong> ，重点就是类变量和静态代码块按源文件中定义的顺序决定执行顺序</p>\n</li>\n<li>\n<p>关于类初始化的顺序 **（静态变量、静态初始化块：决于它们在类中出现的先后顺序）&gt;（普通成员变量、初始化代码块：决于它们在类中出现的先后顺序）&gt; 构造器 **</p>\n</li>\n<li>\n<p>关于类初始化的详细过程，参见 Java 虚拟机规范一书中（有兴趣的同学可以看下英文原版的 Java 虚拟机规范：Java® Virtual Machine Specification 8），详细过程如下：</p>\n<ol>\n<li>每个类都有一个初始化锁<strong> LC</strong>，线程获取<strong> LC</strong>，这个操作会导致当前线程一直等待，直到获取到<strong> LC 锁</strong></li>\n<li>如果<strong> C</strong> 正在被其他线程初始化，当前线程会释放<strong> LC 锁</strong>进入阻塞状态，并等待 C 初始化完成。此时当前线程需要重试这一过程。执行初始化过程时，线程的中断状态不受影响</li>\n<li>如果 C 正在被本线程初始化，即递归初始化，释放 LC 并且正常返回</li>\n<li>如果 C 已经被初始化完成，释放 LC 并且正常返回</li>\n<li>如果 C 处于错误状态，表明不可能再完成初始化，释放 LC 并抛出异常 NoClassDefFoundError 异常</li>\n<li>否则，将 C 标记为正在被本线程初始化，释放 LC；然后，初始化那些 final 且为基础类型的类成员变量</li>\n<li>如果 C 是类而不是接口，且 C 的父类 Super Class（SC）和各个接口 SI_n（按照 implements 子句中的顺序来）还没有初始化，那么就在 SC 上面递归地进行完整的初始化过程，如果有必要，需要先验证和准备 SC ；如果 SC 或 SIn 初始化过程中抛出异常，则获取 LC，将 C 标记为错误状态，并通知所有正在等待的线程，然后释放 LC，然后再抛出同样的异常。</li>\n<li>从 C 的 classloader 处获取 assertion 断言机制是否被打开</li>\n<li>接下来，按照文本顺序执行类变量初始化和静态代码块，或接口的字段初始化，把它们当作是一个个单独的代码块。</li>\n<li>如果执行正常，那就获取 LC，标记 C 对象为已初始化，并通知所有正在等待的线程，然后释放 LC，正常退出整个过程</li>\n<li>否则，如果抛出了异常 E 那么会中断退出。若 E 不是 Error，则以 E 为参数创建新的异常 ExceptionInInitializerError 作为 E。如果因为 OutOfMemoryError 导致无法创建 ExceptionInInitializerError，则将 OutOfMemoryError 作为 E。</li>\n<li>获取 LC，将 C 标记为错误状态，通知所有等待的线程，释放 LC，并抛出异常 E</li>\n</ol>\n<p>可以看到 JLS 确实规定了父类先初始化、static 块和类变量赋值按照文本顺序来解析</p>\n</li>\n</ol>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/14/doc/ConcurrentHashMap%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88/",
            "url": "https://hk2012.github.io/2024/02/14/doc/ConcurrentHashMap%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88/",
            "title": "ConcurrentHashMap底层原理是什么",
            "date_published": "2024-02-14T03:00:00.000Z",
            "content_html": "<h2 id=\"concurrenthashmap底层原理是什么\"><a class=\"anchor\" href=\"#concurrenthashmap底层原理是什么\">#</a> ConcurrentHashMap 底层原理是什么</h2>\n<ul>\n<li>1.7 数据结构：<br />\n内部主要是一个 Segment 数组，而数组的每一项又是一个 HashEntry 数组，元素都存在 HashEntry 数组里。因为每次锁定的是 Segment 对象，也就是整个 HashEntry 数组，所以又叫分段锁。<br />\n<img data-src=\"/img/images/1.7ConcurrentHashMap.png\" alt=\"1.7ConcurrentHashMap.png\" /></li>\n<li>1.8 数据结构：<br />\n与 HashMap 一样采用：数组 + 链表 + 红黑树<br />\n<img data-src=\"/img/images/ConCurrentHashMap.png\" alt=\"ConCurrentHashMap.png\" /><br />\n 底层原理则是采用锁链表或者红黑树头结点，相比于 HashTable 的方法锁，力度更细，是对数组（table）中的桶（链表或者红黑树）的头结点进行锁定，这样锁定，只会影响数组（table）当前下标的数据，不会影响其他下标节点的操作，可以提高读写效率。<br />\nputVal 执行流程：</li>\n</ul>\n<ol>\n<li>判断存储的 key、value 是否为空，若为空，则抛出异常</li>\n<li>计算 key 的 hash 值，随后死循环（该循环可以确保成功插入，当满足适当条件时，会主动终止），判断 table 表为空或者长度为 0，则初始化 table 表</li>\n<li>根据 hash 值获取 table 中该下标对应的节点，如果该节点为空，则根据参数生成新的节点，并以 CAS 的方式进行更新，并终止死循环。</li>\n<li>如果该节点的 hash 值是 MOVED (-1)，表示正在扩容，则辅助对该节点进行转移。</li>\n<li>对数组（table）中的节点，即桶的头结点进行<strong>锁定</strong>，如果该节点的 hash 大于等于 0，表示此桶是链表，然后对该桶进行遍历（死循环），寻找链表中与 put 的 key 的 hash 值相等，并且 key 相等的元素，然后进行值的替换，如果到链表尾部都没有符合条件的，就新建一个 node，然后插入到该桶的尾部，并终止该循环遍历。</li>\n<li>如果该节点的 hash 小于 0，并且节点类型是 TreeBin，则走红黑树的插入方式。</li>\n<li>判断是否达到转化红黑树的阈值，如果达到阈值，则链表转化为红黑树。</li>\n</ol>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/14/doc/GC%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E5%AF%B9%E8%B1%A1%E5%8F%AF%E4%BB%A5%E8%A2%AB%E5%9B%9E%E6%94%B6/",
            "url": "https://hk2012.github.io/2024/02/14/doc/GC%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E5%AF%B9%E8%B1%A1%E5%8F%AF%E4%BB%A5%E8%A2%AB%E5%9B%9E%E6%94%B6/",
            "title": "GC如何判断对象可以被回收",
            "date_published": "2024-02-13T23:00:00.000Z",
            "content_html": "<h1 id=\"gc如何判断对象可以被回收\"><a class=\"anchor\" href=\"#gc如何判断对象可以被回收\">#</a> GC 如何判断对象可以被回收</h1>\n<h2 id=\"引用计数法已被淘汰的算法\"><a class=\"anchor\" href=\"#引用计数法已被淘汰的算法\">#</a> 引用计数法（已被淘汰的算法）</h2>\n<ol>\n<li>每一个对象有一个引用属性，新增一个引用时加一，引用释放时减一，计数为 0 的时候可以回收。但是这种计算方法，有一个致命的问题，无法解决循环引用的问题</li>\n</ol>\n<h2 id=\"可达性分析算法根引用\"><a class=\"anchor\" href=\"#可达性分析算法根引用\">#</a> 可达性分析算法（根引用）</h2>\n<ol>\n<li>从 GcRoot 开始向下搜索，搜索所走过的路径被称为引用链，当一个对象到 GcRoot 没有任何引用链相连时，则证明此对象是不可用的，那么虚拟机就可以判定回收。</li>\n<li>那么 GcRoot 有哪些？\n<ol>\n<li>虚拟机栈中引用的对象</li>\n<li>方法区中静态属性引用的对象</li>\n<li>方法区中常量引用的对象</li>\n<li>本地方法栈中（即一般说的 native 方法）引用的对象</li>\n</ol>\n</li>\n</ol>\n<h2 id=\"不同的引用类型\"><a class=\"anchor\" href=\"#不同的引用类型\">#</a> 不同的引用类型</h2>\n<ol>\n<li>不同的引用类型的回收机制是不一样的\n<ol>\n<li>强引用：通过关键字 new 的对象就是强引用对象，强引用指向的对象任何时候都不会被回收，宁愿 OOM 也不会回收</li>\n<li>软引用：如果一个对象持有软引用，那么当 JVM 堆空间不足时，会被回收。一个类的软引用可以通过 java.lang.ref.SoftReference 持有</li>\n<li>弱引用：如果一个对象持有弱引用，那么在 GC 时，只要发现弱引用对象，就会被回收。一个类的弱引用可以通过 java.lang.ref.WeakReference 持有</li>\n<li>虚引用：几乎和没有一样，随时可以被回收。通过 ava.lang.ref.PhantomReference 持有</li>\n</ol>\n</li>\n</ol>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/13/doc/JVM8%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E5%A2%9E%E5%8A%A0%E5%85%83%E7%A9%BA%E9%97%B4%20/",
            "url": "https://hk2012.github.io/2024/02/13/doc/JVM8%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E5%A2%9E%E5%8A%A0%E5%85%83%E7%A9%BA%E9%97%B4%20/",
            "title": "JVM 8为什么要增加元空间",
            "date_published": "2024-02-13T10:00:00.000Z",
            "content_html": "<h2 id=\"jvm-8为什么要增加元空间\"><a class=\"anchor\" href=\"#jvm-8为什么要增加元空间\">#</a> JVM 8 为什么要增加元空间？</h2>\n<h3 id=\"持久代\"><a class=\"anchor\" href=\"#持久代\">#</a> 持久代</h3>\n<p>持久代中包含了虚拟机中所有可通过反射获取到的数据，比如 Class 和 Method 对象。不同的 Java 虚拟机之间可能会进行类共享，因此持久代又分为只读区和读写区。</p>\n<p>JVM 用于描述应用程序中用到的类和方法的元数据也存储在持久代中。JVM 运行时会用到多少持久代的空间取决于应用程序用到了多少类。除此之外，Java SE 库中的类和方法也都存储在这里。</p>\n<p>如果 JVM 发现有的类已经不再需要了，它会去回收（卸载）这些类，将它们的空间释放出来给其它类使用。Full GC 会进行持久代的回收。</p>\n<p>JVM 中类的元数据在 Java 堆中的存储区域。<br />\nJava 类对应的 HotSpot 虚拟机中的内部表示也存储在这里。<br />\n类的层级信息，字段，名字。<br />\n方法的编译信息及字节码。<br />\n变量<br />\n常量池和符号解析<br />\n<strong>持久代的大小</strong><br />\n它的上限是 MaxPermSize，默认是 64M<br />\nJava 堆中的连续区域：如果存储在非连续的堆空间中的话，要定位出持久代到新对象的引用非常复杂并且耗时。卡表（card table），是一种记忆集（Remembered Set），它用来记录某个内存代中普通对象指针（oops）的修改。<br />\n持久代用完后，会抛出 OutOfMemoryError &quot;PermGen space&quot; 异常。解决方案：应用程序清理引用来触发类卸载；增加 MaxPermSize 的大小。<br />\n需要多大的持久代空间取决于类的数量，方法的大小，以及常量池的大小。<br />\n<strong>为什么移除持久代 ？</strong></p>\n<p>1、它的大小是在启动时固定好的 —— 很难进行调优。-XX:MaxPermSize，设置成多少好呢？ 2、HotSpot 的内部类型也是 Java 对象：它可能会在 Full GC 中被移动，同时它对应用不透明，且是非强类型的，难以跟踪调试，还需要存储元数据的元数据信息（meta-metadata）。<br />\n3、简化 Full GC：每一个回收器有专门的元数据迭代器。<br />\n4、可以在 GC 不进行暂停的情况下并发地释放类数据。<br />\n5、使得原来受限于持久代的一些改进未来有可能实现</p>\n<h3 id=\"元空间\"><a class=\"anchor\" href=\"#元空间\">#</a> 元空间</h3>\n<p>持久代的空间被彻底地删除了，它被一个叫元空间的区域所替代了。持久代删除了之后，很明显，JVM 会忽略 PermSize 和 MaxPermSize 这两个参数，还有就是你再也看不到 java.lang.OutOfMemoryError: PermGen error 的异常了。原来类的静态变量和 Interned Strings 都被转移到了 java 堆区，</p>\n<p>只有 class 元数据才在元空间。</p>\n<p>JDK 8 的 HotSpot JVM 现在使用的是本地内存来表示类的元数据，这个区域就叫做元空间。</p>\n<p><strong>元空间的特点：</strong></p>\n<ul>\n<li>\n<p>充分利用了 Java 语言规范中的好处：类及相关的元数据的生命周期与类加载器的一致。</p>\n</li>\n<li>\n<p>每个加载器有专门的存储空间</p>\n</li>\n<li>\n<p>只进行线性分配</p>\n</li>\n<li>\n<p>不会单独回收某个类</p>\n</li>\n<li>\n<p>省掉了 GC 扫描及压缩的时间</p>\n</li>\n<li>\n<p>元空间里的对象的位置是固定的</p>\n</li>\n<li>\n<p>如果 GC 发现某个类加载器不再存活了，会把相关的空间整个回收掉</p>\n</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/13/doc/JVM%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B%E5%A6%82%E4%BD%95%E5%88%86%E9%85%8D%E7%9A%84/",
            "url": "https://hk2012.github.io/2024/02/13/doc/JVM%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B%E5%A6%82%E4%BD%95%E5%88%86%E9%85%8D%E7%9A%84/",
            "title": "JVM内存模型如何分配的",
            "date_published": "2024-02-13T03:00:00.000Z",
            "content_html": "<h1 id=\"jvm内存模型如何分配的\"><a class=\"anchor\" href=\"#jvm内存模型如何分配的\">#</a> JVM 内存模型如何分配的</h1>\n<h2 id=\"jvm内存模型的划分\"><a class=\"anchor\" href=\"#jvm内存模型的划分\">#</a> JVM 内存模型的划分</h2>\n<blockquote>\n<p>由于我们生产环境使用的虚拟机 HotSpot 居多，所以下面的描述都是基于 HotSpot 虚拟机而言的，对于其他类型的虚拟机，如 JRockit（Oracle）、J9（IBM） 可能并不太一样</p>\n</blockquote>\n<p>根据虚拟机规范，JVM 的内存分为 堆、虚拟机栈、本地方法栈、程序计数器、本地方法栈 5 部分</p>\n<p>JDK 1.8 同 JDK 1.7 比，最大的差别就是：元数据区取代了永久代。元空间的本质和永久代类似，都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于：元数据空间并不在虚拟机中，而是使用本地内存</p>\n<p><img data-src=\"/img/images/20190706155611749.PNG\" alt=\"在这里插入图片描述\" /></p>\n<ol>\n<li>虚拟机栈\n<ol>\n<li>每个线程有一个私有的栈，随着线程的创建而创建。栈里面存着的是一种叫 “栈帧” 的东西，每个方法会创建一个栈帧，栈帧中存放了局部变量表（基本数据类型和对象引用）、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于 JVM 所允许的范围，会抛出 StackOverflowError 的错误</li>\n<li>虚拟机栈的特点\n<ol>\n<li>局部变量表随着栈帧的创建而创建，它的大小在编译时确定，创建时只需分配事先规定的大小即可。在方法运行过程中，局部变量表的大小不会发生改变</li>\n<li>Java 虚拟机栈也是线程私有，随着线程创建而创建，随着线程的结束而销毁</li>\n<li>Java 虚拟机栈会出现两种异常：StackOverFlowError （若 Java 虚拟机栈的大小不允许动态扩展，那么当线程请求栈的深度超过当前 Java 虚拟机栈的最大深度时，抛出 StackOverFlowError 异常）和 OutOfMemoryError（若允许动态扩展，那么当线程请求栈时内存用完了，无法再动态扩展时，抛出 OutOfMemoryError 异常）</li>\n</ol>\n</li>\n</ol>\n</li>\n</ol>\n<p><img data-src=\"/img/images/1460000015398968\" alt=\"jvm-stack\" /></p>\n<ol>\n<li>本地方法栈\n<ol>\n<li>本地方法栈是为 JVM 运行 Native 方法准备的空间，由于很多 Native 方法都是用 C 语言实现的，所以它通常又叫 C 栈。它与 Java 虚拟机栈实现的功能类似，只不过本地方法栈是描述本地方法运行过程的内存模型。本地方法被执行时，在本地方法栈也会创建一块栈帧，用于存放该方法的局部变量表、操作数栈、动态链接、方法出口信息等。方法执行结束后，相应的栈帧也会出栈，并释放内存空间。也会抛出 StackOverFlowError 和 OutOfMemoryError 异常。</li>\n</ol>\n</li>\n<li>PC 寄存器计数器\n<ol>\n<li>PC 寄存器，也叫程序计数器。JVM 支持多个线程同时运行，每个线程都有自己的程序计数器。倘若当前执行的是 JVM 的方法，则该寄存器中保存当前执行指令的地址；倘若执行的是 native 方法，则 PC 寄存器中为空</li>\n</ol>\n</li>\n<li>堆\n<ol>\n<li>堆内存是 JVM 所有线程共享的部分，在虚拟机启动的时候就已经创建。所有的对象和数组都在堆上进行分配。这部分空间可通过 GC 进行回收。当申请不到空间时会抛出 OutOfMemoryError</li>\n<li>堆的特点：\n<ol>\n<li>线程共享，整个 Java 虚拟机只有一个堆，所有的线程都访问同一个堆。而程序计数器、Java 虚拟机栈、本地方法栈都是一个线程对应一个</li>\n<li>在虚拟机启动时创建</li>\n<li>垃圾回收的主要场所</li>\n<li>可分为：新生代 (Eden 区 From Survior To Survivor)、老年代</li>\n</ol>\n</li>\n</ol>\n</li>\n<li>方法区\n<ol>\n<li>Java 虚拟机规范中定义方法区是堆的一个逻辑部分。</li>\n<li>方法区也是所有线程共享。主要用于存储已经被虚拟机加载的类的信息、常量池、方法数据、方法代码等。方法区逻辑上属于堆的一部分，但是为了与堆进行区分，通常又叫 非堆 。需要注意的是，方法区只是规范上面的一个逻辑概念，并不是真实的物理存储的命名</li>\n</ol>\n</li>\n<li>直接内存（堆外内存）\n<ol>\n<li>直接内存是除 Java 虚拟机之外的内存，但也可能被 Java 使用，直接内存的大小不受 Java 虚拟机控制，但既然是内存，当内存不足时就会抛出 OutOfMemoryError 异常</li>\n<li>直接内存与堆内存比较：\n<ol>\n<li>直接内存申请空间耗费更高的性能</li>\n<li>直接内存读取 IO 的性能要优于普通的堆内存</li>\n</ol>\n</li>\n</ol>\n</li>\n</ol>\n<h2 id=\"jvm内存模型各部分的存储信息\"><a class=\"anchor\" href=\"#jvm内存模型各部分的存储信息\">#</a> JVM 内存模型各部分的存储信息</h2>\n<p><img data-src=\"/img/images/javammode.png\" alt=\"\" /></p>\n<h2 id=\"针对jdk6-jdk7-jdk8三个版本的jvm内存模型调整说明\"><a class=\"anchor\" href=\"#针对jdk6-jdk7-jdk8三个版本的jvm内存模型调整说明\">#</a> 针对 JDK6、JDK7、JDK8 三个版本的 JVM 内存模型调整说明</h2>\n<h3 id=\"对永久代permgen的说明\"><a class=\"anchor\" href=\"#对永久代permgen的说明\">#</a> 对永久代 PermGen 的说明</h3>\n<ul>\n<li>永久代是方法区在 hotspot 的一个具体实现。通过在<strong>运行时数据区域开辟空间</strong>实现方法区。</li>\n<li>hotspot jdk7 之前的永久代，比较完整</li>\n<li>从 jdk7 以后方法区就 “四分五裂了”，不再是在单一的一个去区域内进行存储</li>\n<li>在 jdk8，移除了永久代，被 Metsspace 取代了，且 Metsspace 不在 JVM 堆内，放入了本地内存，元空间也就成了方法区的主要存放位置</li>\n</ul>\n<p>绝大部分 Java 程序员应该都见过 **java.lang.OutOfMemoryError: PermGen space ** 这个异常</p>\n<p>这里的 “PermGen space” 其实指的就是方法区。不过方法区和 “PermGen space” 又有着本质的区别。前者是 JVM 的规范，而后者则是 JVM 规范的一种实现，并且<strong>只有 HotSpot 才有 “PermGen space”，而对于其他类型的虚拟机，如 JRockit（Oracle）、J9（IBM） 并没有 “PermGen space”</strong>。由于方法区主要存储类的相关信息，所以对于动态生成类的情况比较容易出现永久代的内存溢出。最典型的场景就是，在 jsp 页面比较多的情况，容易出现永久代内存溢出</p>\n<h3 id=\"对metaspace元空间的说明\"><a class=\"anchor\" href=\"#对metaspace元空间的说明\">#</a> 对 Metaspace 元空间的说明</h3>\n<ol>\n<li>元空间的本质和永久代类似，都是对 JVM 规范中方法区的实现。元空间通过<strong>在本地内存区域开辟空间实现方法区</strong>。<strong>元空间并不在虚拟机中，而是使用本地内存，所以默认情况下，元空间的大小仅受本地内存限制</strong>，但可以通过以下参数来指定元空间的大小：</li>\n</ol>\n<pre><code>-XX:MetaspaceSize，初始空间大小，达到该值就会触发垃圾收集进行类型卸载，同时GC会对该值进行调整：如果释放了大量的空间，就适当降低该值；如果释放了很少的空间，那么在不超过MaxMetaspaceSize时，适当提高该值。\n-XX:MaxMetaspaceSize，最大空间，默认是没有限制的。\n除了上面两个指定大小的选项以外，还有两个与 GC 相关的属性：\n-XX:MinMetaspaceFreeRatio，在GC之后，最小的Metaspace剩余空间容量的百分比，减少为分配空间所导致的垃圾收集\n-XX:MaxMetaspaceFreeRatio，在GC之后，最大的Metaspace剩余空间容量的百分比，减少为释放空间所导致的垃圾收集\n</code></pre>\n<p>其实，移除永久代的工作从 JDK1.7 就开始了，JDK1.7 中，存储在永久代的部分数据就已经转移到了 Java Heap 或者是 Native Heap。但永久代仍存在于 JDK1.7 中，并没完全移除。</p>\n<p>譬如：</p>\n<p>符号引用 (Symbols) 转移到了 native heap；</p>\n<p>字面量 (interned strings) 转移到了 java heap；</p>\n<p>类的静态变量 (class statics) 转移到了 java heap</p>\n<h3 id=\"元空间特点\"><a class=\"anchor\" href=\"#元空间特点\">#</a> 元空间特点</h3>\n<ol>\n<li><strong>类及相关的元数据的生命周期与类加载器的一致</strong>，如果 GC 发现某个类加载器不再存活了，才会把相关的空间整个回收掉</li>\n<li>每个类加载器有专门的存储空间</li>\n<li>只进行线性分配，省掉了 GC 扫描及压缩的时间</li>\n<li>元空间里的对象的位置是固定的</li>\n</ol>\n<h2 id=\"jvm内存划分调整的几个原因点分析\"><a class=\"anchor\" href=\"#jvm内存划分调整的几个原因点分析\">#</a> JVM 内存划分调整的几个原因点分析</h2>\n<ol>\n<li>字符串存在永久代中，容易出现性能问题和内存溢出</li>\n<li>类及方法的信息等比较难确定其大小，因此对于永久代的大小指定比较困难，太小容易出现永久代溢出，太大则容易导致老年代溢出</li>\n<li>永久代会为 GC 带来不必要的复杂度，并且回收效率偏低</li>\n</ol>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/12/doc/JVM%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98%E5%AE%9E%E6%88%98/",
            "url": "https://hk2012.github.io/2024/02/12/doc/JVM%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98%E5%AE%9E%E6%88%98/",
            "title": "JVM性能调优实战",
            "date_published": "2024-02-12T08:00:00.000Z",
            "content_html": "<h1 id=\"jvm性能调优实战\"><a class=\"anchor\" href=\"#jvm性能调优实战\">#</a> JVM 性能调优实战</h1>\n<h3 id=\"调优的一些原则\"><a class=\"anchor\" href=\"#调优的一些原则\">#</a> 调优的一些原则</h3>\n<ol>\n<li>多数的 Java 应用不需要在服务器上进行 GC 优化，虚拟机内部已有很多优化来保证应用的稳定运行，所以不要为了调优而调优，不当的调优可能适得其反</li>\n<li>在应用上线之前，先考虑将机器的 JVM 参数设置到最优（适合）</li>\n<li>在进行 GC 优化之前，需要确认项目的架构和代码等已经没有优化空间。我们不能指望一个系统架构有缺陷或者代码层次优化没有穷尽的应用，通过 GC 优化令其性能达到一个质的飞跃</li>\n<li>GC 优化是一个系统而复杂的工作，没有万能的调优策略可以满足所有的性能指标。GC 优化必须建立在我们深入理解各种垃圾回收器的基础上，才能有事半功倍的效果</li>\n<li>处理吞吐量和延迟问题时，垃圾处理器能使用的内存越大，即 java 堆空间越大垃圾收集效果越好，应用运行也越流畅。这称之为 GC 内存最大化原则</li>\n<li>在这三个属性（吞吐量、延迟、内存）中选择其中两个进行 jvm 调优，称之为 GC 调优 3 选 2</li>\n</ol>\n<h3 id=\"什么情况下需要调优\"><a class=\"anchor\" href=\"#什么情况下需要调优\">#</a> 什么情况下需要调优</h3>\n<ul>\n<li>Heap 内存（老年代）持续上涨达到设置的最大内存值</li>\n<li>Full GC 次数频繁</li>\n<li>GC 停顿（Stop World）时间过长（超过 1 秒，具体值按应用场景而定）</li>\n<li>应用出现 OutOfMemory 等内存异常</li>\n<li>应用出现 OutOfDirectMemoryError 等内存异常（ failed to allocate 16777216 byte (s) of direct memory (used: 1056964615, max: 1073741824)）</li>\n<li>应用中有使用本地缓存且占用大量内存空间</li>\n<li>系统吞吐量与响应性能不高或下降</li>\n<li>应用的 CPU 占用过高不下或内存占用过高不下</li>\n</ul>\n<h3 id=\"调优前需知的一些概念\"><a class=\"anchor\" href=\"#调优前需知的一些概念\">#</a> 调优前需知的一些概念</h3>\n<ol>\n<li>** 吞吐量：** 用户代码时间 / （用户代码执行时间 + 垃圾回收时间）。是评价垃圾收集器能力的重要指标之一，是不考虑垃圾收集引起的停顿时间或内存消耗，垃圾收集器能支撑应用程序达到的最高性能指标。吞吐量越高算法越好。</li>\n<li>** 低延迟：**STW 越短，响应时间越好。评价垃圾收集器能力的重要指标，度量标准是缩短由于垃圾收集引起的停顿时间或完全消除因垃圾收集所引起的停顿，避免应用程序运行时发生抖动。暂停时间越短算法越好</li>\n<li>在设计（或使用）GC 算法时，我们必须确定我们的目标：一个 GC 算法只可能针对两个目标之一（即只专注于最大吞吐量或最小暂停时间），或尝试找到一个二者的折中</li>\n<li>MinorGC 尽可能多的收集垃圾对象。我们把这个称作 MinorGC 原则，遵守这一原则可以降低应用程序 FullGC 的发生频率。FullGC 较耗时，是应用程序无法达到延迟要求或吞吐量的罪魁祸首</li>\n<li>堆大小调整的着手点、分析点：\n<ol>\n<li>统计 Minor GC 持续时间</li>\n<li>统计 Minor GC 的次数</li>\n<li>统计 Full GC 的最长持续时间</li>\n<li>统计最差情况下 Full GC 频率</li>\n<li>统计 GC 持续时间和频率对优化堆的大小是主要着手点</li>\n<li>我们按照业务系统对延迟和吞吐量的需求，在按照这些分析我们可以进行各个区大小的调整</li>\n</ol>\n</li>\n<li>一般来说吞吐量优先的垃圾回收器：-XX:+UseParallelGC  -XX:+UseParallelOldGC，即常规的（PS/PO）</li>\n<li>响应时间优先的垃圾回收器：CMS、G1</li>\n</ol>\n<h3 id=\"jvm常用参数解读\"><a class=\"anchor\" href=\"#jvm常用参数解读\">#</a> JVM 常用参数解读</h3>\n<ol>\n<li><strong>Xms</strong> 是指设定程序启动时占用内存大小。一般来讲，大点，程序会启动的快一点，但是也可能会导致机器暂时变慢</li>\n<li><strong>Xmx</strong> 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存，超出了这个设置值，就会抛出 OutOfMemory 异常</li>\n<li><strong>Xss</strong> 是指设定每个线程的堆栈大小。这个就要依据你的程序，看一个线程大约需要占用多少内存，可能会有多少线程同时运行等</li>\n<li>**-Xmn、-XX:NewSize/-XX:MaxNewSize、-XX:NewRatio **\n<ol>\n<li>高优先级：-XX:NewSize/-XX:MaxNewSize</li>\n<li>中优先级：-Xmn（默认等效 -Xmn=-XX:NewSize=-XX:MaxNewSize=?）</li>\n<li>低优先级：-XX:NewRatio</li>\n</ol>\n</li>\n<li>如果想在日志中追踪类加载与类卸载的情况，可以使用启动参数  **-XX:TraceClassLoading -XX:TraceClassUnloading **</li>\n</ol>\n<h3 id=\"常用性能调优工具\"><a class=\"anchor\" href=\"#常用性能调优工具\">#</a> 常用性能调优工具</h3>\n<ol>\n<li>MAT\n<ul>\n<li>提示可能的内存泄露的点</li>\n</ul>\n</li>\n<li>jvisualvm</li>\n<li>jconsole</li>\n<li>Arthas</li>\n<li>show-busy-java-threads\n<ol>\n<li><span class=\"exturl\" data-url=\"aHR0cHM6Ly9naXRodWIuY29tL29sZHJhdGxlZS91c2VmdWwtc2NyaXB0cy9ibG9iL21hc3Rlci9kb2NzL2phdmEubWQjLXNob3ctYnVzeS1qYXZhLXRocmVhZHM=\">https://github.com/oldratlee/useful-scripts/blob/master/docs/java.md#-show-busy-java-threads</span>​\n<h4 id=\"\"><a class=\"anchor\" href=\"#\">#</a> </h4>\n</li>\n</ol>\n</li>\n</ol>\n<h3 id=\"线上排查问题的一般流程\"><a class=\"anchor\" href=\"#线上排查问题的一般流程\">#</a> 线上排查问题的一般流程</h3>\n<ol>\n<li>CPU 占用过高排查流程\n<ol>\n<li>利用 top 命令可以查出占 CPU 最高的的进程 pid ，如果 pid 为 9876</li>\n<li>然后查看该进程下占用最高的线程 id【top -Hp 9876】</li>\n<li>假设占用率最高的线程 ID 为 6900，将其转换为 16 进制形式 (因为 java native 线程以 16 进制形式输出) 【printf '% x\\n' 6900】</li>\n<li>利用 jstack 打印出 java 线程调用栈信息【jstack 9876 | grep '0x1af4' -A 50 --color】，这样就可以更好定位问题</li>\n</ol>\n</li>\n<li>内存占用过高排查流程\n<ol>\n<li>查找进程 id: 【top -d 2 -c】</li>\n<li>查看 JVM 堆内存分配情况：jmap -heap pid</li>\n<li>查看占用内存比较多的对象 jmap -histo pid | head -n 100</li>\n<li>查看占用内存比较多的存活对象 jmap -histo:live pid | head -n 100</li>\n</ol>\n</li>\n</ol>\n<h3 id=\"oom内存泄露分析\"><a class=\"anchor\" href=\"#oom内存泄露分析\">#</a> OOM 内存泄露分析</h3>\n<h3 id=\"什么情况下会抛出oom呢\"><a class=\"anchor\" href=\"#什么情况下会抛出oom呢\">#</a> <strong>什么情况下，会抛出 OOM 呢？</strong></h3>\n<ul>\n<li>JVM98% 的时间都花费在内存回收</li>\n<li>每次回收的内存小于 2%</li>\n</ul>\n<p>满足这两个条件将触发 OutOfMemoryException，这将会留给系统一个微小的间隙以做一些 Down 之前的操作，比如手动打印 Heap Dump。并不是内存被耗空的时候才抛出<br />\n<strong>​</strong></p>\n<h3 id=\"系统oom之前的一些现象\"><a class=\"anchor\" href=\"#系统oom之前的一些现象\">#</a> <strong>系统 OOM 之前的一些现象</strong></h3>\n<ul>\n<li>每次垃圾回收的时间越来越长，由之前的 10ms 延长到 50ms 左右，FullGC 的时间也有之前的 0.5s 延长到 4、5s</li>\n<li>FullGC 的次数越来越多，最频繁时隔不到 1 分钟就进行一次 FullGC</li>\n<li>老年代的内存越来越大并且每次 FullGC 后，老年代只有少量的内存被释放掉</li>\n</ul>\n<h3 id=\"堆dump文件分析\"><a class=\"anchor\" href=\"#堆dump文件分析\">#</a> <strong>堆 Dump 文件分析</strong></h3>\n<p>可以通过指定启动参数 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/app/data/dump/heapdump.hpro 在发生 OOM 的时候自动导出 Dump 文件<br />\n​</p>\n<h3 id=\"gc日志分析\"><a class=\"anchor\" href=\"#gc日志分析\">#</a> <strong>GC 日志分析</strong></h3>\n<p>为了方便分析 GC 日志信息，可以指定启动参数 【-Xloggc: app-gc.log  -XX:+PrintGCDetails -XX:+PrintGCDateStamps】, 方便详细地查看 GC 日志信息</p>\n<ol>\n<li>使用 【jinfo pid】查看当前 JVM 堆的相关参数</li>\n<li>继续使用 【jstat -gcutil 2315 1s 10】查看 10s 内当前堆的占用情况</li>\n<li>也可以使用【jmap -heap pid】查看当前 JVM 堆的情况</li>\n<li>我们可以继续使用 【jmap -F -histo pid | head -n 20】，查看前 20 行打印，即查看当前 top20 的大对象，一般从这里可以发现一些异常的大对象，如果没有，那么可以继续排名前 50 的大对象，分析</li>\n<li>最后使用【jmap -F -dump:file=a.bin pid】，如果 dump 文件很大，可以压缩一下【tar -czvf a.tar.gz a.bin】</li>\n<li>再之后，就是对 dump 文件进行分析了，使用 MAT 分析内存泄露</li>\n<li>参考案例： <span class=\"exturl\" data-url=\"aHR0cHM6Ly93d3cubGFnb3UuY29tL2xnZWR1YXJ0aWNsZS8xNDIzNzIuaHRtbA==\">https://www.lagou.com/lgeduarticle/142372.html</span></li>\n</ol>\n<h3 id=\"线上死锁排查\"><a class=\"anchor\" href=\"#线上死锁排查\">#</a> 线上死锁排查</h3>\n<ol>\n<li>jps 查找一个可能有问题的<strong>进程 id</strong></li>\n<li>然后执行 【jstack -F <strong>进程 id</strong>】</li>\n<li>如果环境允许远程连接 JVM，可以使用 jconsole 或者 jvisualvm，图形化界面检测是否存在死锁</li>\n</ol>\n<h3 id=\"线上ygc耗时过长优化\"><a class=\"anchor\" href=\"#线上ygc耗时过长优化\">#</a> 线上 YGC 耗时过长优化</h3>\n<ol>\n<li>如果生命周期过长的对象越来越多（比如全局变量或者静态变量等），会导致标注和复制过程的耗时增加</li>\n<li>对存活对象标注时间过长：比如重载了 Object 类的 Finalize 方法，导致标注 Final Reference 耗时过长；或者 String.intern 方法使用不当，导致 YGC 扫描 StringTable 时间过长。可以通过以下参数显示 GC 处理 Reference 的耗时 - XX:+PrintReferenceGC</li>\n<li>长周期对象积累过多：比如本地缓存使用不当，积累了太多存活对象；或者锁竞争严重导致线程阻塞，局部变量的生命周期变长</li>\n<li>案例参考： <span class=\"exturl\" data-url=\"aHR0cHM6Ly9teS5vc2NoaW5hLm5ldC9saXNoYW5nemhpL2Jsb2cvNDcwMzk0Mg==\">https://my.oschina.net/lishangzhi/blog/4703942</span></li>\n</ol>\n<h3 id=\"线上频繁fullgc优化\"><a class=\"anchor\" href=\"#线上频繁fullgc优化\">#</a> 线上频繁 FullGC 优化</h3>\n<ol>\n<li>线上频繁 FullGC 一般会有这么几个特征：\n<ol>\n<li>线上多个线程的 CPU 都超过了 100%，通过 jstack 命令可以看到这些线程主要是垃圾回收线程</li>\n<li>通过 jstat 命令监控 GC 情况，可以看到 Full GC 次数非常多，并且次数在不断增加</li>\n</ol>\n</li>\n<li>排查流程：\n<ol>\n<li>top 找到 cpu 占用最高的一个 <strong>进程 id</strong></li>\n<li>然后 【top -Hp 进程 id】，找到 cpu 占用最高的 <strong>线程 id</strong></li>\n<li>【printf &quot;%x\\n&quot; <strong>线程 id 】</strong>，假设 16 进制结果为 a</li>\n<li>jstack 线程 id | grep '0xa' -A 50 --color</li>\n<li>如果是正常的用户线程， 则通过该线程的堆栈信息查看其具体是在哪处用户代码处运行比较消耗 CPU</li>\n<li>如果该线程是 VMThread，则通过 jstat-gcutil 命令监控当前系统的 GC 状况，然后通过 jmapdump:format=b,file = 导出系统当前的内存数据。导出之后将内存情况放到 eclipse 的 mat 工具中进行分析即可得出内存中主要是什么对象比较消耗内存，进而可以处理相关代码；正常情况下会发现 VM Thread 指的就是垃圾回收的线程</li>\n<li>再执行【jstat -gcutil  ** 进程 id】, ** 看到结果，如果 FGC 的数量很高，且在不断增长，那么可以定位是由于内存溢出导致 FullGC 频繁，系统缓慢</li>\n<li>然后就可以 Dump 出内存日志，然后使用 MAT 的工具分析哪些对象占用内存较大，然后找到对象的创建位置，处理即可</li>\n</ol>\n</li>\n<li>参考案例：<span class=\"exturl\" data-url=\"aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3MvZzhLSmhPdGlCSFdiNndORnJDY0xWZw==\">https://mp.weixin.qq.com/s/g8KJhOtiBHWb6wNFrCcLVg</span>\n<h4 id=\"-2\"><a class=\"anchor\" href=\"#-2\">#</a> </h4>\n</li>\n</ol>\n<h3 id=\"线上堆外内存泄漏分析netty尤其居多\"><a class=\"anchor\" href=\"#线上堆外内存泄漏分析netty尤其居多\">#</a> 线上堆外内存泄漏分析（Netty 尤其居多）</h3>\n<ol>\n<li>JVM 的堆外内存泄露的定位一直是个比较棘手的问题</li>\n<li>对外内存的泄漏分析一般都是先从堆内内存分析的过程中衍生出来的。有可能我们分析堆内内存泄露过程中发现，我们计算出来的 JVM 堆内存竟然大于了整个 JVM 的<strong> Xmx</strong> 的大小，那说明多出来的是堆外内存</li>\n<li>如果使用了 Netty 堆外内存，那么可以自行监控堆外内存的使用情况，不需要借助第三方工具，我们是使用的 “反射” 拿到的堆外内存的情况</li>\n<li>逐渐缩小范围，直到 Bug 被找到。当我们确认某个线程的执行带来 Bug 时，可单步执行，可二分执行，定位到某行代码之后，跟到这段代码，然后继续单步执行或者二分的方式来定位最终出 Bug 的代码。这个方法屡试不爽，最后总能找到想要的 Bug</li>\n<li>熟练掌握 idea 的调试，让我们的 “捉虫” 速度快如闪电（“闪电侠” 就是这么来的）。这里，最常见的调试方式是<strong>预执行表达式</strong>，以及通过<strong>线程调用栈</strong>，死盯某个对象，就能够掌握这个对象的定义、赋值之类</li>\n<li>在使用直接内存的项目中，最好建议配置 -XX:MaxDirectMemorySize，设定一个系统实际可达的最大的直接内存的值，默认的最大直接内存大小等于 -Xmx 的值</li>\n<li>排查堆外泄露，建议指定启动参数： -XX:NativeMemoryTracking=summary - Dio.netty.leakDetection.targetRecords=100-Dio.netty.leakDetection.level=PARANOID，后面两个参数是 Netty 的相关内存泄露检测的级别与采样级别</li>\n<li>参考案例： <span class=\"exturl\" data-url=\"aHR0cHM6Ly90ZWNoLm1laXR1YW4uY29tLzIwMTgvMTAvMTgvbmV0dHktZGlyZWN0LW1lbW9yeS1zY3JlZW5pbmcuaHRtbA==\">https://tech.meituan.com/2018/10/18/netty-direct-memory-screening.html</span></li>\n</ol>\n<h3 id=\"线上元空间内存泄露优化\"><a class=\"anchor\" href=\"#线上元空间内存泄露优化\">#</a> 线上元空间内存泄露优化</h3>\n<ol>\n<li>需要注意的一点是 Java8 以及 Java8 + 的 JVM 已经将永久代废弃了，取而代之的是元空间，且元空间是不是在 JVM 堆中的，而属于堆外内存，受最大物理内存限制。最佳实践就是我们在启动参数中最好设置上 -XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=1024m。具体的值根据情况设置。为避免动态申请，可以直接都设置为最大值</li>\n<li>元空间主要存放的是类元数据，而且 metaspace 判断类元数据是否可以回收，是根据加载这些类元数据的 Classloader 是否可以回收来判断的，只要 Classloader 不能回收，通过其加载的类元数据就不会被回收。所以线上有时候会出现一种问题，由于框架中，往往大量采用类似 ASM、javassist 等工具进行字节码增强，生成代理类。如果项目中由主线程频繁生成动态代理类，那么就会导致元空间迅速占满，无法回收</li>\n<li>具体案例可以参见： [<span class=\"exturl\" data-url=\"aHR0cHM6Ly96aHVhbmxhbi56aGlodS5jb20vcC8yMDA4MDI5MTA=\">https://zhuanlan.zhihu.com/p/200802910</span>](</li>\n</ol>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/12/doc/%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E7%BA%BF%E4%B8%8Agc%E9%A2%91%E7%B9%81%E7%9A%84%E9%97%AE%E9%A2%98/",
            "url": "https://hk2012.github.io/2024/02/12/doc/%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E7%BA%BF%E4%B8%8Agc%E9%A2%91%E7%B9%81%E7%9A%84%E9%97%AE%E9%A2%98/",
            "title": "如何解决线上gc频繁的问题",
            "date_published": "2024-02-12T05:00:00.000Z",
            "content_html": "<h2 id=\"如何解决线上gc频繁的问题\"><a class=\"anchor\" href=\"#如何解决线上gc频繁的问题\">#</a> 如何解决线上 gc 频繁的问题</h2>\n<p>对于线上系统突然产生的运行缓慢问题，如果该问题导致线上系统不可用，那么首先需要做的就是，导出 jstack 和内存信息，然后重启系统，尽快保证系统的可用性。这种情况可能的原因主要有两种：</p>\n<ul>\n<li>代码中某个位置读取数据量较大，导致系统内存耗尽，从而导致 Full GC 次数过多，系统缓慢；</li>\n<li>代码中有比较耗 CPU 的操作，导致 CPU 过高，系统运行缓慢；</li>\n</ul>\n<p>相对来说，这是出现频率最高的两种线上问题，而且它们会直接导致系统不可用。另外有几种情况也会导致某个功能运行缓慢，但是不至于导致系统不可用：</p>\n<ul>\n<li>代码某个位置有阻塞性的操作，导致该功能调用整体比较耗时，但出现是比较随机的；</li>\n<li>某个线程由于某种原因而进入 WAITING 状态，此时该功能整体不可用，但是无法复现；</li>\n<li>由于锁使用不当，导致多个线程进入死锁状态，从而导致系统整体比较缓慢。</li>\n</ul>\n<p>对于这三种情况，通过查看 CPU 和系统内存情况是无法查看出具体问题的，因为相对来说都是具有一定阻塞性操作，CPU 和系统内存使用情况都不高，但是功能却很慢。就需要通过查看系统日志来一步一步甄别上述几种问题。</p>\n<p>1、Full GC 次数过多</p>\n<p>相对来说，这种情况是最容易出现的，尤其是新功能上线时。对于 Full GC 较多的情况，其主要有如下两个特征：</p>\n<ul>\n<li>线上多个线程的 CPU 都超过了 100%，通过 jstack 命令可以看到这些线程主要是垃圾回收线程</li>\n<li>通过 jstat 命令监控 GC 情况，可以看到 Full GC 次数非常多，并且次数在不断增加。</li>\n</ul>\n<p>对应的排查操作</p>\n<ul>\n<li>使用 top 命令查看系统 CPU 的占用情况</li>\n<li>找到 cpu 占用量最高的 java 程序，并用 top 命令查看该进程的各个线程运行情况</li>\n<li>之后 通过 jstack 命令查看具体某个线程为什么耗费 CPU 最高</li>\n<li>然后根据具体的信息，来继续一步步排查问题所在</li>\n</ul>\n<p>2、cpu 过高<br />\n首先我们通过 top 命令查看当前 CPU 消耗过高的进程是哪个，从而得到进程 id；然后通过 top -Hp 来查看该进程中有哪些线程 CPU 过高，一般超过 80% 就是比较高的，80% 左右是合理情况。这样我们就能得到 CPU 消耗比较高的线程 id。接着通过该线程 id 的十六进制表示在 jstack 日志中查看当前线程具体的堆栈信息。</p>\n<p>在这里我们就可以区分导致 CPU 过高的原因具体是 Full GC 次数过多还是代码中有比较耗时的计算了。如果是 Full GC 次数过多，那么通过 jstack 得到的线程信息会是类似于 VM Thread 之类的线程，而如果是代码中有比较耗时的计算，那么我们得到的就是一个线程的具体堆栈信息。</p>\n<p>最后，根据堆栈信息，定位问题，查看代码中具体是什么原因导致计算量如此高。</p>\n<p>3、不定期出现的接口耗时现象<br />\n对于这种情况，比较典型的例子就是，我们某个接口访问经常需要 2~3s 才能返回。这是比较麻烦的一种情况，因为一般来说，其消耗的 CPU 不多，而且占用的内存也不高，也就是说，我们通过上述两种方式进行排查是无法解决这种问题的。</p>\n<p>而且由于这样的接口耗时比较大的问题是不定时出现的，这就导致了我们在通过 jstack 命令即使得到了线程访问的堆栈信息，我们也没法判断具体哪个线程是正在执行比较耗时操作的线程。</p>\n<p>对于不定时出现的接口耗时比较严重的问题，我们的定位思路基本如下：首先找到该接口，通过压测工具不断加大访问力度，如果说该接口中有某个位置是比较耗时的，由于我们的访问的频率非常高，那么大多数的线程最终都将阻塞于该阻塞点，这样通过多个线程具有相同的堆栈日志，我们基本上就可以定位到该接口中比较耗时的代码的位置。</p>\n<p><strong>总结</strong></p>\n<ul>\n<li>\n<p>通过 top 命令查看 CPU 情况，如果 CPU 比较高，则通过</p>\n<figure class=\"highlight shell\"><figcaption data-lang=\"Bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token function\">top</span> <span class=\"token parameter variable\">-Hp</span> <span class=\"token operator\">&lt;</span>pid<span class=\"token operator\">></span></pre></td></tr></table></figure><p>命令查看当前进程的各个线程运行情况，找出 CPU 过高的线程之后，将其线程 id 转换为十六进制的表现形式，然后在 jstack 日志中查看该线程主要在进行的工作。这里又分为两种情况</p>\n</li>\n<li>\n<p>如果是正常的用户线程，则通过该线程的堆栈信息查看其具体是在哪处用户代码处运行比较消耗 CPU；</p>\n</li>\n<li>\n<p>如果该线程是 VMThread，则通过</p>\n<figure class=\"highlight shell\"><figcaption data-lang=\"Bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>jstat <span class=\"token parameter variable\">-gcutil</span> <span class=\"token operator\">&lt;</span>pid<span class=\"token operator\">></span> <span class=\"token operator\">&lt;</span>period<span class=\"token operator\">></span> <span class=\"token operator\">&lt;</span>times<span class=\"token operator\">></span></pre></td></tr></table></figure><p>命令监控当前系统的 GC 状况，然后通过</p>\n<figure class=\"highlight shell\"><figcaption data-lang=\"Bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>jmap dump:format<span class=\"token operator\">=</span>b,file<span class=\"token operator\">=</span><span class=\"token operator\">&lt;</span>filepath<span class=\"token operator\">></span> <span class=\"token operator\">&lt;</span>pid<span class=\"token operator\">></span></pre></td></tr></table></figure><p>导出系统当前的内存数据。导出之后将内存情况放到 eclipse 的 mat 工具中进行分析即可得出内存中主要是什么对象比较消耗内存，进而可以处理相关代码；</p>\n</li>\n<li>\n<p>如果通过 top 命令看到 CPU 并不高，并且系统内存占用率也比较低。此时就可以考虑是否是由于另外三种情况导致的问题。具体的可以根据具体情况分析：</p>\n</li>\n<li>\n<p>如果是接口调用比较耗时，并且是不定时出现，则可以通过压测的方式加大阻塞点出现的频率，从而通过 jstack 查看堆栈信息，找到阻塞点；</p>\n</li>\n<li>\n<p>如果是某个功能突然出现停滞的状况，这种情况也无法复现，此时可以通过多次导出 jstack 日志的方式对比哪些用户线程是一直都处于等待状态，这些线程就是可能存在问题的线程；</p>\n</li>\n<li>\n<p>如果通过 jstack 可以查看到死锁状态，则可以检查产生死锁的两个线程的具体阻塞点，从而处理相应的问题。</p>\n</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/12/doc/%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA%E7%9A%84%E5%8E%9F%E5%9B%A0%E6%9C%89%E5%93%AA%E4%BA%9B,%E5%A6%82%E4%BD%95%E6%8E%92%E6%9F%A5%E7%BA%BF%E4%B8%8A%E9%97%AE%E9%A2%98/",
            "url": "https://hk2012.github.io/2024/02/12/doc/%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA%E7%9A%84%E5%8E%9F%E5%9B%A0%E6%9C%89%E5%93%AA%E4%BA%9B,%E5%A6%82%E4%BD%95%E6%8E%92%E6%9F%A5%E7%BA%BF%E4%B8%8A%E9%97%AE%E9%A2%98/",
            "title": "内存溢出的原因有哪些, 如何排查线上问题",
            "date_published": "2024-02-12T00:00:00.000Z",
            "content_html": "<h2 id=\"内存溢出的原因有哪些-如何排查线上问题\"><a class=\"anchor\" href=\"#内存溢出的原因有哪些-如何排查线上问题\">#</a> 内存溢出的原因有哪些，如何排查线上问题？</h2>\n<p>java 内存溢出的几种原因和解决办法是：</p>\n<p>第一类内存溢出，也是大家认为最多，第一反应认为是的内存溢出，就是堆栈溢出：</p>\n<p>那什么样的情况就是堆栈溢出呢？当你看到下面的关键字的时候它就是堆栈溢出了：</p>\n<blockquote>\n<p>java.lang.OutOfMemoryError: ......java heap space.....</p>\n</blockquote>\n<p>也就是当你看到 heap 相关的时候就肯定是堆栈溢出了，此时如果代码没有问题的情况下，适当调整 - Xmx 和 - Xms 是可以避免的，不过一定是代码没有问题的前提，为什么会溢出呢，要么代码有问题，要么访问量太多并且每个访问的时间太长或者数据太多，导致数据释放不掉，因为垃圾回收器是要找到那些是垃圾才能回收，这里它不会认为这些东西是垃圾，自然不会去回收了；主意这个溢出之前，可能系统会提前先报错关键字为：</p>\n<blockquote>\n<p>java.lang.OutOfMemoryError:GC over head limit exceeded</p>\n</blockquote>\n<p>这种情况是当系统处于高频的 GC 状态，而且回收的效果依然不佳的情况，就会开始报这个错误，这种情况一般是产生了很多不可以被释放的对象，有可能是引用使用不当导致，或申请大对象导致，但是 java heap space 的内存溢出有可能提前不会报这个错误，也就是可能内存就直接不够导致，而不是高频 GC.</p>\n<p>第二类内存溢出，PermGen 的溢出，或者 PermGen 满了的提示，你会看到这样的关键字：</p>\n<p>关键信息为:</p>\n<blockquote>\n<p>java.lang.OutOfMemoryError: PermGen space</p>\n</blockquote>\n<p>原因：系统的代码非常多或引用的第三方包非常多、或代码中使用了大量的常量、或通过 intern 注入常量、或者通过动态代码加载等方法，导致常量池的膨胀，虽然 JDK 1.5 以后可以通过设置对永久带进行回收，但是我们希望的是这个地方是不做 GC 的，它够用就行，所以一般情况下今年少做类似的操作，所以在面对这种情况常用的手段是：PermGen 的溢出和 - XX:MaxPermSize 的大小。</p>\n<p>第三类内存溢出：在使用 ByteBuffer 中的 allocateDirect () 的时候会用到，很多 javaNIO 的框架中被封装为其他的方法</p>\n<p>溢出关键字：</p>\n<blockquote>\n<p>java.lang.OutOfMemoryError: Direct buffer memory<br />\n 如果你在直接或间接使用了 ByteBuffer 中的 allocateDirect 方法的时候，而不做 clear 的时候就会出现类似的问题，常规的引用程序 IO 输出存在一个内核态与用户态的转换过程，也就是对应直接内存与非直接内存，如果常规的应用程序你要将一个文件的内容输出到客户端需要通过 OS 的直接内存转换拷贝到程序的非直接内存（也就是 heap 中），然后再输出到直接内存由操作系统发送出去，而直接内存就是由 OS 和应用程序共同管理的，而非直接内存可以直接由应用程序自己控制的内存，jvm 垃圾回收不会回收掉直接内存这部分的内存，所以要注意了哦。</p>\n</blockquote>\n<p>如果经常有类似的操作，可以考虑设置参数：-XX:MaxDirectMemorySize</p>\n<p>第四类内存溢出错误：</p>\n<p>溢出关键字：</p>\n<blockquote>\n<p>java.lang.StackOverflowError</p>\n</blockquote>\n<p>这个参数直接说明一个内容，就是 - Xss 太小了，我们申请很多局部调用的栈针等内容是存放在用户当前所持有的线程中的，线程在 jdk 1.4 以前默认是 256K，1.5 以后是 1M，如果报这个错，只能说明 - Xss 设置得太小，当然有些厂商的 JVM 不是这个参数，本文仅仅针对 Hotspot VM 而已；不过在有必要的情况下可以对系统做一些优化，使得 - Xss 的值是可用的。</p>\n<p>第五类内存溢出错误：</p>\n<p>溢出关键字：</p>\n<blockquote>\n<p>java.lang.OutOfMemoryError: unable to create new native thread</p>\n</blockquote>\n<p>上面第四种溢出错误，已经说明了线程的内存空间，其实线程基本只占用 heap 以外的内存区域，也就是这个错误说明除了 heap 以外的区域，无法为线程分配一块内存区域了，这个要么是内存本身就不够，要么 heap 的空间设置得太大了，导致了剩余的内存已经不多了，而由于线程本身要占用内存，所以就不够用了，说明了原因，如何去修改，不用我多说，你懂的。</p>\n<p>第六类内存溢出：</p>\n<p>溢出关键字</p>\n<blockquote>\n<p>java.lang.OutOfMemoryError: request {} byte for {}out of swap</p>\n</blockquote>\n<p>这类错误一般是由于地址空间不够而导致。</p>\n<p>六大类常见溢出已经说明 JVM 中 99% 的溢出情况，要逃出这些溢出情况非常困难，除非一些很怪异的故障问题会发生，比如由于物理内存的硬件问题，导致了 code cache 的错误（在由 byte code 转换为 native code 的过程中出现，但是概率极低），这种情况内存 会被直接 crash 掉，类似还有 swap 的频繁交互在部分系统中会导致系统直接被 crash 掉，OS 地址空间不够的话，系统根本无法启动，呵呵；JNI 的滥用也会导致一些本地内存无法释放的问题，所以尽量避开 JNI；socket 连接数据打开过多的 socket 也会报类似：IOException: Too many open files 等错误信息。</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/11/doc/%E6%9C%89%E5%93%AA%E4%BA%9B%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E7%AE%97%E6%B3%95/",
            "url": "https://hk2012.github.io/2024/02/11/doc/%E6%9C%89%E5%93%AA%E4%BA%9B%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E7%AE%97%E6%B3%95/",
            "title": "有哪些垃圾回收算法",
            "date_published": "2024-02-11T07:00:00.000Z",
            "content_html": "<h2 id=\"有哪些垃圾回收算法\"><a class=\"anchor\" href=\"#有哪些垃圾回收算法\">#</a> 有哪些垃圾回收算法？</h2>\n<h3 id=\"1标记-清除mark-sweep算法\"><a class=\"anchor\" href=\"#1标记-清除mark-sweep算法\">#</a> <strong>1. 标记 - 清除（Mark-Sweep）算法</strong></h3>\n<p>分为标记和清除两个阶段：首先标记出所有需要回收的对象，在标记完成后统一回收所有被标记的对象。<img data-src=\"/img/images/before.png\" alt=\"\" /></p>\n<p>它的主要不足有两个：</p>\n<ul>\n<li>效率问题，标记和清除两个过程的效率都不高。</li>\n<li>空间问题，标记清除之后会产生大量不连续的内存碎片，空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时，无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。</li>\n</ul>\n<h3 id=\"2复制算法\"><a class=\"anchor\" href=\"#2复制算法\">#</a> <strong>2. 复制算法</strong></h3>\n<p>为了解决效率问题，一种称为复制（Copying）的收集算法出现了，它将可用内存按容量划分为大小相等的两块，每次只使用其中的一块。当这一块的内存用完了，就将还存活着的对象复制到另外一块上面，然后再把已使用过的内存空间一次清理掉。这样使得每次都是对整个半区进行内存回收，内存分配时也就不用考虑内存碎片等复杂情况，只要移动堆顶指针，按顺序分配内存即可，实现简单，运行高效。<br />\n<img data-src=\"/img/images/copy.png\" alt=\"\" /><br />\n<strong>复制算法的代价</strong>是将内存缩小为了原来的一半，减少了实际可用的内存。现在的商业虚拟机都采用这种收集算法来回收新生代，IBM 公司的专门研究表明，新生代中的对象 98% 是 “朝生夕死” 的，所以并不需要按照 1:1 的比例来划分内存空间，而是将内存分为一块较大的 Eden 空间和两块较小的 Survivor 空间，每次使用 Eden 和其中一块 Survivor。当回收时，将 Eden 和 Survivor 中还存活着的对象一次性地复制到另外一块 Survivor 空间上，最后清理掉 Eden 和刚才用过的 Survivor 空间。HotSpot 虚拟机默认 Eden 和 Survivor 的大小比例是 8:1，也就是每次新生代中可用内存空间为整个新生代容量的 90%（80%+10%），只有 10% 的内存会被 “浪费”。当然，98% 的对象可回收只是一般场景下的数据，我们没有办法保证每次回收都只有不多于 10% 的对象存活，当 Survivor 空间不够用时，需要依赖其他内存（这里指老年代）进行分配担保（Handle Promotion）。</p>\n<h3 id=\"3标记-整理算法\"><a class=\"anchor\" href=\"#3标记-整理算法\">#</a> 3.<strong> 标记 - 整理算法</strong></h3>\n<p>复制收集算法在对象存活率较高时就要进行较多的复制操作，效率将会变低。更关键的是，如果不想浪费 50% 的空间，就需要有额外的空间进行分配担保，以应对被使用的内存中所有对象都 100% 存活的极端情况，所以在老年代一般不能直接选用这种算法。根据老年代的特点，有人提出了另外一种标记 - 整理（Mark-Compact）算法，标记过程仍然与标记 - 清除算法一样，但后续步骤不是直接对可回收对象进行清理，而是让所有存活的对象都向一端移动，然后直接清理掉端边界以外的内存。<br />\n<img data-src=\"/img/images/3.png\" alt=\"\" /></p>\n<h3 id=\"4分代收集算法\"><a class=\"anchor\" href=\"#4分代收集算法\">#</a> 4.<strong> 分代收集算法</strong></h3>\n<p>当前商业虚拟机的垃圾收集都采用分代收集（Generational Collection）算法，这种算法并没有什么新的思想，只是根据对象存活周期的不同将内存划分为几块。一般是把 Java 堆分为新生代和老年代，这样就可以根据各个年代的特点采用最适当的收集算法。在新生代中，每次垃圾收集时都发现有大批对象死去，只有少量存活，那就选用复制算法，只需要付出少量存活对象的复制成本就可以完成收集。而老年代中因为对象存活率高、没有额外空间对它进行分配担保，就必须使用标记 — 清理或者标记 — 整理算法来进行回收。</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/11/doc/ABA%E9%97%AE%E9%A2%98%E9%81%87%E5%88%B0%E8%BF%87%E5%90%97%EF%BC%8C%E8%AF%A6%E7%BB%86%E8%AF%B4%E4%B8%80%E4%B8%8B/",
            "url": "https://hk2012.github.io/2024/02/11/doc/ABA%E9%97%AE%E9%A2%98%E9%81%87%E5%88%B0%E8%BF%87%E5%90%97%EF%BC%8C%E8%AF%A6%E7%BB%86%E8%AF%B4%E4%B8%80%E4%B8%8B/",
            "title": "ABA问题遇到过吗，详细说一下",
            "date_published": "2024-02-11T01:00:00.000Z",
            "content_html": "<h2 id=\"aba问题遇到过吗详细说一下\"><a class=\"anchor\" href=\"#aba问题遇到过吗详细说一下\">#</a> ABA 问题遇到过吗，详细说一下</h2>\n<ol>\n<li>有两个线程同时去修改一个变量的值，比如线程 1、线程 2，都更新变量值，将变量值从 A 更新成 B。</li>\n<li>首先线程 1 获取到 CPU 的时间片，线程 2 由于某些原因发生阻塞进行等待，此时线程 1 进行比较更新（CompareAndSwap），成功将变量的值从 A 更新成 B。</li>\n<li>更新完毕之后，恰好又有线程 3 进来想要把变量的值从 B 更新成 A，线程 3 进行比较更新，成功将变量的值从 B 更新成 A。</li>\n<li>线程 2 获取到 CPU 的时间片，然后进行比较更新，发现值是预期的 A，然后有更新成了 B。但是线程 1 并不知道，该值已经有了 A-&gt;B-&gt;A 这个过程，这也就是我们常说的 ABA 问题。</li>\n</ol>\n<p>举个具体的例子：</p>\n<p>小明在提款机，提取了 50 元，因为提款机问题，<br />\n有两个线程，同时把余额从 100 变为 50</p>\n<p>线程 1（提款机）：获取当前值 100，期望更新为 50，</p>\n<p>线程 2（提款机）：获取当前值 100，期望更新为 50，</p>\n<p>线程 1 成功执行，线程 2 某种原因 block 了，这时，某人给小明汇款 50</p>\n<p>线程 3（默认）：获取当前值 50，期望更新为 100，</p>\n<p>这时候线程 3 成功执行，余额变为 100，</p>\n<p>线程 2 从 Block 中恢复，获取到的也是 100，compare 之后，继续更新余额为 50！！！</p>\n<p>此时可以看到，实际余额应该为 100（100-50+50），但是实际上变为了 50（100-50+50-50）</p>\n<h4 id=\"如何避免aba问题\"><a class=\"anchor\" href=\"#如何避免aba问题\">#</a> 如何避免 ABA 问题：</h4>\n<p>可以通过加版本号或者加时间戳解决，或者保证单向递增或者递减就不会存在此类问题。</p>\n<p>atomic 包下的<strong> AtomicStampedReference 类</strong>：其 compareAndSet 方法首先检查当前引用<strong>是否等于预期引用</strong>，并且当前标志<strong>是否等于预期标志</strong>，如果全部相等，则以原子方式将该引用的该标志的值设置为给定的更新值。</p>\n<h4 id=\"cas导致的其他问题\"><a class=\"anchor\" href=\"#cas导致的其他问题\">#</a> CAS 导致的其他问题</h4>\n<p>1、只能保证一个共享变量的原子操作</p>\n<p>当对一个共享变量执行操作时，我们可以使用循环 CAS 的方式来保证原子操作，但是对多个共享变量操作时，循环 CAS 就无法保证操作的原子性，这个时候就可以用锁，或者有一个取巧的办法，就是把多个共享变量合并成一个共享变量来操作。比如有两个共享变量 i＝2,j=a，合并一下 ij=2a，然后用 CAS 来操作 ij。从 Java1.5 开始 JDK 提供了 AtomicReference 类来保证引用对象之间的原子性，可以把多个变量放在一个对象里来进行 CAS 操作。</p>\n<p>2、循环时间长开销大</p>\n<p>自旋 CAS 如果长时间不成功，会给 CPU 带来非常大的执行开销。</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/10/doc/%E6%8F%8F%E8%BF%B0%E4%B8%80%E4%B8%8B%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%B4%BB%E8%B7%83%E6%80%81%E9%97%AE%E9%A2%98%EF%BC%8C%E4%BB%A5%E5%8F%8A%E7%AB%9E%E6%80%81%E6%9D%A1%E4%BB%B6%20/",
            "url": "https://hk2012.github.io/2024/02/10/doc/%E6%8F%8F%E8%BF%B0%E4%B8%80%E4%B8%8B%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%B4%BB%E8%B7%83%E6%80%81%E9%97%AE%E9%A2%98%EF%BC%8C%E4%BB%A5%E5%8F%8A%E7%AB%9E%E6%80%81%E6%9D%A1%E4%BB%B6%20/",
            "title": "描述一下线程安全活跃态问题，以及竞态条件",
            "date_published": "2024-02-10T09:20:00.000Z",
            "content_html": "<h2 id=\"描述一下线程安全活跃态问题以及竞态条件\"><a class=\"anchor\" href=\"#描述一下线程安全活跃态问题以及竞态条件\">#</a> 描述一下线程安全活跃态问题，以及竞态条件</h2>\n<ol>\n<li>线程安全的活跃性问题可以分为 死锁、活锁、饥饿\n<ol>\n<li>活锁 就是有时线程虽然没有发生阻塞，但是仍然会存在执行不下去的情况，活锁不会阻塞线程，线程会一直重复执行某个相同的操作，并且一直失败重试\n<ol>\n<li>我们开发中使用的异步消息队列就有可能造成活锁的问题，在消息队列的消费端如果没有正确的 ack 消息，并且执行过程中报错了，就会再次放回消息头，然后再拿出来执行，一直循环往复的失败。这个问题除了正确的 ack 之外，往往是通过将失败的消息放入到延时队列中，等到一定的延时再进行重试来解决。</li>\n<li>解决活锁的方案很简单，尝试等待一个随机的时间就可以，会按时间轮去重试</li>\n</ol>\n</li>\n<li>饥饿  就是 线程因无法访问所需资源而无法执行下去的情况\n<ol>\n<li>饥饿 分为两种情况：\n<ol>\n<li>一种是其他的线程在临界区做了无限循环或无限制等待资源的操作，让其他的线程一直不能拿到锁进入临界区，对其他线程来说，就进入了饥饿状态</li>\n<li>另一种是因为线程优先级不合理的分配，导致部分线程始终无法获取到 CPU 资源而一直无法执行</li>\n</ol>\n</li>\n<li>解决饥饿的问题有几种方案:\n<ol>\n<li>保证资源充足，很多场景下，资源的稀缺性无法解决</li>\n<li>公平分配资源，在并发编程里使用公平锁，例如 FIFO 策略，线程等待是有顺序的，排在等待队列前面的线程会优先获得资源</li>\n<li>避免持有锁的线程长时间执行，很多场景下，持有锁的线程的执行时间也很难缩短</li>\n</ol>\n</li>\n</ol>\n</li>\n<li>死锁  线程在对同一把锁进行竞争的时候，未抢占到锁的线程会等待持有锁的线程释放锁后继续抢占，如果两个或两个以上的线程互相持有对方将要抢占的锁，互相等待对方先行释放锁就会进入到一个循环等待的过程，这个过程就叫做死锁</li>\n</ol>\n</li>\n<li>线程安全的竞态条件问题\n<ol>\n<li>同一个程序多线程访问同一个资源，如果对资源的访问顺序敏感，就称存在竞态条件，代码区成为临界区。 大多数并发错误一样，竞态条件不总是会产生问题，还需要不恰当的执行时序</li>\n<li>最常见的竞态条件为\n<ol>\n<li>先检测后执行执行依赖于检测的结果，而检测结果依赖于多个线程的执行时序，而多个线程的执行时序通常情况下是不固定不可判断的，从而导致执行结果出现各种问题，见一种可能 的解决办法就是：在一个线程修改访问一个状态时，要防止其他线程访问修改，也就是加锁机制，保证原子性</li>\n<li>延迟初始化（典型为单例）</li>\n</ol>\n</li>\n</ol>\n</li>\n</ol>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/02/10/doc/%E5%AF%92%E5%81%87%E4%BD%9C%E4%B8%9A/",
            "url": "https://hk2012.github.io/2024/02/10/doc/%E5%AF%92%E5%81%87%E4%BD%9C%E4%B8%9A/",
            "title": "冷风中的热闹：洪庆林寒假作业大丑闻",
            "date_published": "2024-02-10T01:19:53.000Z",
            "content_html": "<h1 id=\"英语作业\"><a class=\"anchor\" href=\"#英语作业\">#</a> 英语作业</h1>\n<ol>\n<li>\n<p>常州市完型填空 13 题</p>\n<ul>\n<li>since + 时间点。如：I have been a student since last year.</li>\n<li>for + 时间段。如：I have been in the house for 7 days.</li>\n</ul>\n</li>\n<li>\n<p>常州市完型填空 20 题</p>\n<ul>\n<li>steal  偷</li>\n</ul>\n</li>\n<li>\n<p>常州市作文</p>\n<ul>\n<li>\n<p>题目：你喜欢在空闲时间听音乐吗？请根据下列要求，用英语写一篇 90 词左右的短文介绍你最喜欢的音乐和音乐人。</p>\n</li>\n<li>\n<p>内容包括：</p>\n<ol>\n<li>what music do you like best？why?</li>\n<li>Who is your favourite singer or musican? Why?</li>\n</ol>\n</li>\n<li>\n<p>要求：</p>\n<ol>\n<li>表达清楚，语法正确，上下文连贯</li>\n<li>必须包括所有的相关信息，并适当发挥</li>\n</ol>\n</li>\n<li>\n<p>In my free time, I enjoy listening to Chinese pop music. Its fusion of traditional Chinese elements with contemporary sounds creates a unique and captivating listening experience. The melodies often evoke a sense of nostalgia while also reflecting modern themes and emotions, making it both comforting and relevant.</p>\n</li>\n<li>\n<p>My favorite Chinese pop musician is Jay Chou. His innovative approach to music blends pop, R&amp;B, and traditional Chinese instruments seamlessly, resulting in a distinctive sound that resonates with listeners across generations. Chou's ability to effortlessly switch between singing, rapping, and composing showcases his versatility and talent.</p>\n</li>\n<li>\n<p>在空闲时间，我喜欢听中国流行音乐。 它将中国传统元素与当代声音融合在一起，创造出独特而迷人的聆听体验。 这些旋律常常唤起怀旧之情，同时也反映现代主题和情感，使其既令人安慰又具有相关性。</p>\n</li>\n<li>\n<p>我最喜欢的中国流行音乐家是周杰伦。 他的创新音乐方法将流行、R&amp;B 和中国传统乐器无缝地融合在一起，产生了能引起各代听众共鸣的独特声音。 周在歌唱、说唱和作曲之间轻松切换的能力展示了他的多才多艺和才华。</p>\n</li>\n</ul>\n</li>\n</ol>\n<h1 id=\"数学作业\"><a class=\"anchor\" href=\"#数学作业\">#</a> 数学作业</h1>\n<ul>\n<li>\n<p>顶点公式不记得</p>\n<ul class=\"task-list primary\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"cbx_0\" disabled=\"true\" /><label for=\"cbx_0\"> 错误 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mo>−</mo><mi>b</mi></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mstyle><mo separator=\"true\">,</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><msup><mi>b</mi><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>a</mi><mi>c</mi></mrow><mrow><mn>4</mn><mi>a</mi></mrow></mfrac></mstyle><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(\\dfrac{-b}{2a},\\dfrac{b^2 - 4ac}{4a})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.37144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord mathnormal\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">b</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">4</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">c</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span></label></li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"cbx_1\" checked=\"true\" disabled=\"true\" /><label for=\"cbx_1\"> 正确 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mo>−</mo><mi>b</mi></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mstyle><mo separator=\"true\">,</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mn>4</mn><mi>a</mi><mi>c</mi><mo>−</mo><msup><mi>b</mi><mn>2</mn></msup></mrow><mrow><mn>4</mn><mi>a</mi></mrow></mfrac></mstyle><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(\\dfrac{-b}{2a},\\dfrac{4ac - b^2}{4a})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.37144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord mathnormal\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">c</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">b</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span></label></li>\n</ul>\n</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/01/04/doc/Happens-Before%E8%A7%84%E5%88%99%E6%98%AF%E4%BB%80%E4%B9%88/",
            "url": "https://hk2012.github.io/2024/01/04/doc/Happens-Before%E8%A7%84%E5%88%99%E6%98%AF%E4%BB%80%E4%B9%88/",
            "title": "Happens-Before规则是什么",
            "date_published": "2024-01-04T09:20:00.000Z",
            "content_html": "<h2 id=\"happens-before规则是什么\"><a class=\"anchor\" href=\"#happens-before规则是什么\">#</a> Happens-Before 规则是什么？</h2>\n<ol>\n<li>\n<p>程序顺序规则：一个线程中的每一个操作，happens-before 于该线程中的任意后续操作。</p>\n<pre><code>double pi = 3.14; // A\ndouble r = 1.0; // B\ndouble area = pi * r * r; // C\n</code></pre>\n<p><strong>一个线程中，按照程序顺序，前面的操作 Happens-Before 于后续的任意操作</strong>。这个还是非常好理解的，比如上面那三行代码，第一行的 &quot;double pi = 3.14;&quot; happens-before 于 “double r = 1.0;”，这就是规则 1 的内容，比较符合单线程里面的逻辑思维，很好理解。</p>\n</li>\n<li>\n<p>监视器规则：对一个锁的解锁，happens-before 于随后对这个锁的加锁。</p>\n<p>这个规则中说的锁其实就是 Java 里的 synchronized。例如下面的代码，在进入同步块之前，会自动加锁，而在代码块执行完会自动释放锁，加锁以及释放锁都是编译器帮我们实现的。</p>\n<pre><code>synchronized (this) &#123; //此处自动加锁\n  // x是共享变量,初始值=10\n  if (this.x &lt; 12) &#123;\n    this.x = 12; \n  &#125;  \n&#125; //此处自动解锁\n</code></pre>\n<p>所以结合锁规则，可以理解为：假设 x 的初始值是 10，线程 A 执行完代码块后 x 的值会变成 12（执行完自动释放锁），线程 B 进入代码块时，能够看到线程 A 对 x 的写操作，也就是线程 B 能够看到 x==12。这个也是符合我们直觉的，非常好理解。</p>\n</li>\n<li>\n<p>volatile 规则：对一个 volatile 变量的写，happens-before 于任意后续对一个 volatile 变量的读。</p>\n</li>\n<li>\n<p>传递性：若果 A happens-before B，B happens-before C，那么 A happens-before C。</p>\n<pre><code>class VolatileExample &#123;\n  int x = 0;\n  volatile boolean v = false;\n  public void writer() &#123;\n    x = 42;\n    v = true;\n  &#125;\n  public void reader() &#123;\n    if (v == true) &#123;\n      // 这里x会是多少呢？\n    &#125;\n  &#125;\n&#125;\n</code></pre>\n<ol>\n<li>“x=42” Happens-Before 写变量 “v=true” ，这是规则 1 的内容；</li>\n<li>写变量 “v=true” Happens-Before 读变量 “v=true”，这是规则 3 的内容 。</li>\n<li>再根据这个传递性规则，我们得到结果：“x=42” Happens-Before 读变量 “v=true”。这意味着什么呢？</li>\n</ol>\n<p>如果线程 B 读到了 “v=true”，那么线程 A 设置的 “x=42” 对线程 B 是可见的。也就是说，线程 B 能看到 “x == 42” ，有没有一种恍然大悟的感觉？这就是 1.5 版本对 volatile 语义的增强，这个增强意义重大，1.5 版本的并发工具包（java.util.concurrent）就是靠 volatile 语义来搞定可见性的。</p>\n</li>\n<li>\n<p>线程启动规则：Thread 对象的 start () 方法，happens-before 于这个线程的任意后续操作。</p>\n</li>\n<li>\n<p>线程终止规则：线程中的任意操作，happens-before 于该线程的终止监测。我们可以通过 Thread.join () 方法结束、Thread.isAlive () 的返回值等手段检测到线程已经终止执行。</p>\n</li>\n<li>\n<p>线程中断操作：对线程 interrupt () 方法的调用，happens-before 于被中断线程的代码检测到中断事件的发生，可以通过 Thread.interrupted () 方法检测到线程是否有中断发生。</p>\n</li>\n<li>\n<p>对象终结规则：一个对象的初始化完成，happens-before 于这个对象的 finalize () 方法的开始。</p>\n</li>\n</ol>\n<p><strong>总结</strong><br />\n在 Java 语言里面，Happens-Before 的语义本质上是一种可见性，A Happens-Before B 意味着 A 事件对 B 事件来说是可见的，无论 A 事件和 B 事件是否发生在同一个线程里。例如 A 事件发生在线程 1 上，B 事件发生在线程 2 上，Happens-Before 规则保证线程 2 上也能看到 A 事件的发生。</p>\n<p>JMM 的设计分为两部分，一部分是面向我们程序员提供的，也就是 happens-before 规则，它通俗易懂的向我们程序员阐述了一个强内存模型，我们只要理解 happens-before 规则，就可以编写并发安全的程序了。 另一部分是针对 JVM 实现的，为了尽可能少的对编译器和处理器做约束，从而提高性能，JMM 在不影响程序执行结果的前提下对其不做要求，即允许优化重排序。 我们只需要关注前者就好了，也就是理解 happens-before 规则。毕竟我们是做程序员的，术业有专攻，能写出安全的并发程序就好了。</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/01/04/doc/jvm%E6%9C%89%E5%93%AA%E4%BA%9B%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E5%99%A8%EF%BC%8C%E5%AE%9E%E9%99%85%E4%B8%AD%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%20/",
            "url": "https://hk2012.github.io/2024/01/04/doc/jvm%E6%9C%89%E5%93%AA%E4%BA%9B%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E5%99%A8%EF%BC%8C%E5%AE%9E%E9%99%85%E4%B8%AD%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%20/",
            "title": "jvm有哪些垃圾回收器，实际中如何选择",
            "date_published": "2024-01-04T06:20:00.000Z",
            "content_html": "<h2 id=\"jvm有哪些垃圾回收器实际中如何选择\"><a class=\"anchor\" href=\"#jvm有哪些垃圾回收器实际中如何选择\">#</a> jvm 有哪些垃圾回收器，实际中如何选择</h2>\n<p><img data-src=\"/img/images/gcollector.png\" alt=\"\" /><br />\n图中展示了 7 种作用于不同分代的收集器，如果两个收集器之间存在连线，则说明它们可以搭配使用。虚拟机所处的区域则表示它是属于新生代还是老年代收集器。<br />\n新生代收集器（全部的都是复制算法）：Serial、ParNew、Parallel Scavenge<br />\n 老年代收集器：CMS（标记 - 清理）、Serial Old（标记 - 整理）、Parallel Old（标记整理）<br />\n整堆收集器： G1（一个 Region 中是标记 - 清除算法，2 个 Region 之间是复制算法）<br />\n同时，先解释几个名词：<br />\n1，<strong>并行（Parallel）</strong>：多个垃圾收集线程并行工作，此时用户线程处于等待状态<br />\n 2，<strong>并发（Concurrent）</strong>：用户线程和垃圾收集线程同时执行<br />\n 3，<strong>吞吐量</strong>：运行用户代码时间／（运行用户代码时间＋垃圾回收时间）<br />\n<strong>1.Serial 收集器是最基本的、发展历史最悠久的收集器。</strong><br />\n** 特点：** 单线程、简单高效（与其他收集器的单线程相比），对于限定单个 CPU 的环境来说，Serial 收集器由于没有线程交互的开销，专心做垃圾收集自然可以获得最高的单线程手机效率。收集器进行垃圾回收时，必须暂停其他所有的工作线程，直到它结束（Stop The World）。<br />\n<strong>应用场景</strong>：适用于 Client 模式下的虚拟机。<br />\n<strong>Serial / Serial Old 收集器运行示意图</strong><br />\n<img data-src=\"/img/images/serial.png\" alt=\"\" /><br />\n<strong> 2.ParNew 收集器其实就是 Serial 收集器的多线程版本。</strong><br />\n除了使用多线程外其余行为均和 Serial 收集器一模一样（参数控制、收集算法、Stop The World、对象分配规则、回收策略等）。<br />\n<strong>特点</strong>：多线程、ParNew 收集器默认开启的收集线程数与 CPU 的数量相同，在 CPU 非常多的环境中，可以使用 - XX:ParallelGCThreads 参数来限制垃圾收集的线程数。<br />\n　　　和 Serial 收集器一样存在 Stop The World 问题<br />\n<strong>应用场景</strong>：ParNew 收集器是许多运行在 Server 模式下的虚拟机中首选的新生代收集器，因为它是除了 Serial 收集器外，唯一一个能与 CMS 收集器配合工作的。<br />\nParNew/Serial Old 组合收集器运行示意图如下：<br />\n<img data-src=\"/img/images/parnew.png\" alt=\"\" /><br />\n<strong>3.Parallel Scavenge 收集器与吞吐量关系密切，故也称为吞吐量优先收集器。</strong><br />\n<strong>特点</strong>：属于新生代收集器也是采用复制算法的收集器，又是并行的多线程收集器（与 ParNew 收集器类似）。<br />\n该收集器的目标是达到一个可控制的吞吐量。还有一个值得关注的点是：GC 自适应调节策略（与 ParNew 收集器最重要的一个区别）<br />\n<strong>GC 自适应调节策略</strong>：Parallel Scavenge 收集器可设置 - XX:+UseAdptiveSizePolicy 参数。当开关打开时不需要手动指定新生代的大小（-Xmn）、Eden 与 Survivor 区的比例（-XX:SurvivorRation）、晋升老年代的对象年龄（-XX:PretenureSizeThreshold）等，虚拟机会根据系统的运行状况收集性能监控信息，动态设置这些参数以提供最优的停顿时间和最高的吞吐量，这种调节方式称为 GC 的自适应调节策略。<br />\nParallel Scavenge 收集器使用两个参数控制吞吐量：</p>\n<ul>\n<li>XX:MaxGCPauseMillis 控制最大的垃圾收集停顿时间</li>\n<li>XX:GCRatio 直接设置吞吐量的大小。</li>\n</ul>\n<p><strong>4.Serial Old 是 Serial 收集器的老年代版本。</strong><br />\n<strong>特点</strong>：同样是单线程收集器，采用标记 - 整理算法。<br />\n<strong>应用场景</strong>：主要也是使用在 Client 模式下的虚拟机中。也可在 Server 模式下使用。<br />\nServer 模式下主要的两大用途（在后续中详细讲解・・・）：</p>\n<ol>\n<li>在 JDK1.5 以及以前的版本中与 Parallel Scavenge 收集器搭配使用。</li>\n<li>作为 CMS 收集器的后备方案，在并发收集 Concurent Mode Failure 时使用。</li>\n</ol>\n<p>Serial / Serial Old 收集器工作过程图（Serial 收集器图示相同）：<br />\n<img data-src=\"/img/images/serial-old.png\" alt=\"\" /><br />\n<strong>5.Parallel Old 是 Parallel Scavenge 收集器的老年代版本。</strong><br />\n<strong>特点</strong>：多线程，采用标记 - 整理算法。<br />\n<strong>应用场景</strong>：注重高吞吐量以及 CPU 资源敏感的场合，都可以优先考虑 Parallel Scavenge+Parallel Old 收集器。<br />\n<em>Parallel Scavenge/Parallel Old 收集器工作过程图：</em><br />\n<strong>6.CMS 收集器是一种以获取最短回收停顿时间为目标的收集器。</strong><br />\n<strong>特点</strong>：基于标记 - 清除算法实现。并发收集、低停顿。<br />\n<strong>应用场景</strong>：适用于注重服务的响应速度，希望系统停顿时间最短，给用户带来更好的体验等场景下。如 web 程序、b/s 服务。<br />\n<strong>CMS 收集器的运行过程分为下列 4 步：</strong><br />\n<strong>初始标记</strong>：标记 GC Roots 能直接到的对象。速度很快但是仍存在 Stop The World 问题。<br />\n<strong>并发标记</strong>：进行 GC Roots Tracing 的过程，找出存活对象且用户线程可并发执行。<br />\n<strong>重新标记</strong>：为了修正并发标记期间因用户程序继续运行而导致标记产生变动的那一部分对象的标记记录。仍然存在 Stop The World 问题。<br />\n<strong>并发清除</strong>：对标记的对象进行清除回收。<br />\nCMS 收集器的内存回收过程是与用户线程一起并发执行的。<br />\nCMS 收集器的工作过程图：<br />\n<img data-src=\"/img/images/cms.png\" alt=\"\" /><br />\nCMS 收集器的缺点：</p>\n<ul>\n<li>对 CPU 资源非常敏感。</li>\n<li>无法处理浮动垃圾，可能出现 Concurrent Model Failure 失败而导致另一次 Full GC 的产生。</li>\n<li>因为采用标记 - 清除算法所以会存在空间碎片的问题，导致大对象无法分配空间，不得不提前触发一次 Full GC。<img data-src=\"/img/images/cms2.png\" alt=\"\" /></li>\n</ul>\n<p><strong>​</strong></p>\n<p><strong>7.G1 收集器一款面向服务端应用的垃圾收集器。</strong><br />\n<strong>特点如下：</strong><br />\n并行与并发：G1 能充分利用多 CPU、多核环境下的硬件优势，使用多个 CPU 来缩短 Stop-The-World 停顿时间。部分收集器原本需要停顿 Java 线程来执行 GC 动作，G1 收集器仍然可以通过并发的方式让 Java 程序继续运行。<br />\n分代收集：G1 能够独自管理整个 Java 堆，并且采用不同的方式去处理新创建的对象和已经存活了一段时间、熬过多次 GC 的旧对象以获取更好的收集效果。<br />\n空间整合：G1 运作期间不会产生空间碎片，收集后能提供规整的可用内存。<br />\n可预测的停顿：G1 除了追求低停顿外，还能建立可预测的停顿时间模型。能让使用者明确指定在一个长度为 M 毫秒的时间段内，消耗在垃圾收集上的时间不得超过 N 毫秒。<br />\n<strong>G1 收集器运行示意图：</strong><br />\n<img data-src=\"/img/images/g1.png\" alt=\"\" /><br />\n<strong>​</strong></p>\n<p>关于 gc 的选择<br />\n除非应用程序有非常严格的暂停时间要求，否则请先运行应用程序并允许 VM 选择收集器（如果没有特别要求。使用 VM 提供给的默认 GC 就好）。<br />\n如有必要，调整堆大小以提高性能。 如果性能仍然不能满足目标，请使用以下准则作为选择收集器的起点：</p>\n<ul>\n<li>如果应用程序的数据集较小（最大约 100 MB），则选择带有选项 - XX：+ UseSerialGC 的串行收集器。</li>\n<li>如果应用程序将在单个处理器上运行，并且没有暂停时间要求，则选择带有选项 - XX：+ UseSerialGC 的串行收集器。</li>\n<li>如果（a）峰值应用程序性能是第一要务，并且（b）没有暂停时间要求或可接受一秒或更长时间的暂停，则让 VM 选择收集器或使用 - XX：+ UseParallelGC 选择并行收集器 。</li>\n<li>如果响应时间比整体吞吐量更重要，并且垃圾收集暂停时间必须保持在大约一秒钟以内，则选择具有 - XX：+ UseG1GC。（值得注意的是 JDK9 中 CMS 已经被 Deprecated，不可使用！移除该选项）</li>\n<li>如果使用的是 jdk8，并且堆内存达到了 16G，那么推荐使用 G1 收集器，来控制每次垃圾收集的时间。</li>\n<li>如果响应时间是高优先级，或使用的堆非常大，请使用 - XX：UseZGC 选择完全并发的收集器。（值得注意的是 JDK11 开始可以启动 ZGC，但是此时 ZGC 具有实验性质，在 JDK15 中 [202009 发布] 才取消实验性质的标签，可以直接显示启用，但是 JDK15 默认 GC 仍然是 G1）</li>\n</ul>\n<p>这些准则仅提供选择收集器的起点，因为性能取决于堆的大小，应用程序维护的实时数据量以及可用处理器的数量和速度。<br />\n如果推荐的收集器没有达到所需的性能，则首先尝试调整堆和新生代大小以达到所需的目标。 如果性能仍然不足，尝试使用其他收集器<br />\n<strong>总体原则</strong>：减少 STOP THE WORD 时间，使用并发收集器（比如 CMS+ParNew，G1）来减少暂停时间，加快响应时间，并使用并行收集器来增加多处理器硬件上的总体吞吐量。</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/01/04/doc/ThreadLocal%E7%9A%84%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF%E6%9C%89%E5%93%AA%E4%BA%9B/",
            "url": "https://hk2012.github.io/2024/01/04/doc/ThreadLocal%E7%9A%84%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF%E6%9C%89%E5%93%AA%E4%BA%9B/",
            "title": "ThreadLocal的原理是什么，使用场景有哪些",
            "date_published": "2024-01-03T23:00:00.000Z",
            "content_html": "<h2 id=\"threadlocal的原理是什么使用场景有哪些\"><a class=\"anchor\" href=\"#threadlocal的原理是什么使用场景有哪些\">#</a> ThreadLocal 的原理是什么，使用场景有哪些</h2>\n<p>ThreadLocal 类中有两个变量 threadLocals 和 inheritableThreadLocals，二者都是 ThreadLocal 内部类 ThreadLocalMap 类型的变量，我们通过查看内部类 ThreadLocalMap 可以发现实际上它类似于一个 HashMap。在默认情况下，每个线程中的这两个变量都为 null:</p>\n<pre><code>ThreadLocal.ThreadLocalMap threadLocals = null;\nThreadLocal.ThreadLocalMap inheritableThreadLocals = null;\n</code></pre>\n<p>只有当线程第一次调用 ThreadLocal 的 set 或者 get 方法的时候才会创建他们。</p>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token class-name\">T</span> <span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>        <span class=\"token class-name\">Thread</span> t <span class=\"token operator\">=</span> <span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>        <span class=\"token class-name\">ThreadLocalMap</span> map <span class=\"token operator\">=</span> <span class=\"token function\">getMap</span><span class=\"token punctuation\">(</span>t<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>map <span class=\"token operator\">!=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>            <span class=\"token class-name\">ThreadLocalMap<span class=\"token punctuation\">.</span>Entry</span> e <span class=\"token operator\">=</span> map<span class=\"token punctuation\">.</span><span class=\"token function\">getEntry</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>e <span class=\"token operator\">!=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>                <span class=\"token annotation punctuation\">@SuppressWarnings</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"unchecked\"</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>                <span class=\"token class-name\">T</span> result <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token class-name\">T</span><span class=\"token punctuation\">)</span>e<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>                <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        <span class=\"token keyword\">return</span> <span class=\"token function\">setInitialValue</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    </pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token class-name\">ThreadLocalMap</span> <span class=\"token function\">getMap</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Thread</span> t<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>        <span class=\"token keyword\">return</span> t<span class=\"token punctuation\">.</span>threadLocals<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><p>除此之外，每个线程的本地变量不是存放在 ThreadLocal 实例中，而是放在调用线程的<strong> ThreadLocals</strong> 变量里面。也就是说，<strong>ThreadLocal 类型的本地变量是存放在具体的线程空间上</strong>，其本身相当于一个装载本地变量的载体，通过 set 方法将 value 添加到调用线程的 threadLocals 中，当调用线程调用 get 方法时候能够从它的 threadLocals 中取出变量。如果调用线程一直不终止，那么这个本地变量将会一直存放在他的 threadLocals 中，所以不使用本地变量的时候需要调用 remove 方法将 threadLocals 中删除不用的本地变量，防止出现内存泄漏。</p>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">set</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">T</span> value<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>        <span class=\"token class-name\">Thread</span> t <span class=\"token operator\">=</span> <span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>        <span class=\"token class-name\">ThreadLocalMap</span> map <span class=\"token operator\">=</span> <span class=\"token function\">getMap</span><span class=\"token punctuation\">(</span>t<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>map <span class=\"token operator\">!=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>            map<span class=\"token punctuation\">.</span><span class=\"token function\">set</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">,</span> value<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>            <span class=\"token function\">createMap</span><span class=\"token punctuation\">(</span>t<span class=\"token punctuation\">,</span> value<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">remove</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>         <span class=\"token class-name\">ThreadLocalMap</span> m <span class=\"token operator\">=</span> <span class=\"token function\">getMap</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Thread</span><span class=\"token punctuation\">.</span><span class=\"token function\">currentThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>         <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>m <span class=\"token operator\">!=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>             m<span class=\"token punctuation\">.</span><span class=\"token function\">remove</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure>",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/01/03/doc/ThreadLocal%E6%9C%89%E5%93%AA%E4%BA%9B%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E9%97%AE%E9%A2%98%EF%BC%8C%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D/",
            "url": "https://hk2012.github.io/2024/01/03/doc/ThreadLocal%E6%9C%89%E5%93%AA%E4%BA%9B%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E9%97%AE%E9%A2%98%EF%BC%8C%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D/",
            "title": "ThreadLocal有哪些内存泄露问题，如何避免",
            "date_published": "2024-01-03T09:00:00.000Z",
            "content_html": "<h2 id=\"threadlocal有哪些内存泄露问题如何避免\"><a class=\"anchor\" href=\"#threadlocal有哪些内存泄露问题如何避免\">#</a> ThreadLocal 有哪些内存泄露问题，如何避免</h2>\n<p>每个 Thread 都有一个 ThreadLocal.ThreadLocalMap 的 map，该 map 的 key 为 ThreadLocal 实例，它为一个弱引用，我们知道弱引用有利于 GC 回收。当 ThreadLocal 的 key == null 时，GC 就会回收这部分空间，但是 value 却不一定能够被回收，因为他还与 Current Thread 存在一个强引用关系，如下</p>\n<p><img data-src=\"/img/1621414292593-0b7cfa25-1c6e-46af-9e67-55ae73904a02.png\" alt=\"image\" /> 由于存在这个强引用关系，会导致 value 无法回收。如果这个线程对象不会销毁那么这个强引用关系则会一直存在，就会出现内存泄漏情况。所以说只要这个线程对象能够及时被 GC 回收，就不会出现内存泄漏。如果碰到线程池，那就更坑了。 那么要怎么避免这个问题呢？ 在前面提过，在 ThreadLocalMap 中的 setEntry ()、getEntry ()，如果遇到 key == null 的情况，会对 value 设置为 null。当然我们也可以显示调用 ThreadLocal 的 remove () 方法进行处理。 下面再对 ThreadLocal 进行简单的总结：</p>\n<ul>\n<li>ThreadLocal 不是用于解决共享变量的问题的，也不是为了协调线程同步而存在，而是为了方便每个线程处理自己的状态而引入的一个机制。这点至关重要。</li>\n<li>每个 Thread 内部都有一个 ThreadLocal.ThreadLocalMap 类型的成员变量，该成员变量用来存储实际的 ThreadLocal 变量副本。</li>\n<li>ThreadLocal 并不是为线程保存对象的副本，它仅仅只起到一个索引的作用。它主要是为每一个线程隔离一个类的实例，这个实例的作用范围仅限于线程内部。</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/01/03/doc/synchronized%E5%92%8Clock%E6%9C%89%E5%93%AA%E4%BA%9B%E5%8C%BA%E5%88%AB%20/",
            "url": "https://hk2012.github.io/2024/01/03/doc/synchronized%E5%92%8Clock%E6%9C%89%E5%93%AA%E4%BA%9B%E5%8C%BA%E5%88%AB%20/",
            "title": "synchronized和lock有哪些区别",
            "date_published": "2024-01-03T02:10:00.000Z",
            "content_html": "<h2 id=\"synchronized和lock有哪些区别\"><a class=\"anchor\" href=\"#synchronized和lock有哪些区别\">#</a> synchronized 和 lock 有哪些区别</h2>\n<ol>\n<li>来源：<br />\nlock 是一个接口，而 synchronized 是 java 的一个关键字，synchronized 是内置的语言实现；</li>\n<li>异常是否释放锁：<br />\nsynchronized 在发生异常时候会自动释放占有的锁，因此不会出现死锁；而 lock 发生异常时候，不会主动释放占有的锁，必须手动 unlock 来释放锁，可能引起死锁的发生。（所以最好将同步代码块用 try catch 包起来，finally 中写入 unlock，避免死锁的发生。）</li>\n<li>是否响应中断<br />\n lock 等待锁过程中可以用 interrupt 来中断等待，而 synchronized 只能等待锁的释放，不能响应中断；</li>\n<li>是否知道获取锁<br />\n Lock 可以通过 trylock 来知道有没有获取锁，而 synchronized 不能；</li>\n<li>Lock 可以提高多个线程进行读操作的效率。（可以通过 readwritelock 实现读写分离）</li>\n<li>在性能上来说，如果竞争资源不激烈，两者的性能是差不多的，而当竞争资源非常激烈时（即有大量线程同时竞争），此时 Lock 的性能要远远优于 synchronized。所以说，在具体使用时要根据适当情况选择。</li>\n<li>synchronized 使用 Object 对象本身的 wait 、notify、notifyAll 调度机制，而 Lock 可以使用 Condition 进行线程之间的调度，</li>\n</ol>\n<table>\n<thead>\n<tr>\n<th>区别类型</th>\n<th>synchronized</th>\n<th>Lock</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>存在层次</td>\n<td>Java 的关键字，在 jvm 层面上</td>\n<td>是 JVM 的一个接口</td>\n</tr>\n<tr>\n<td>锁的获取</td>\n<td>假设 A 线程获得锁，B 线程等待。如果 A 线程阻塞，B 线程会一直等待</td>\n<td>情况而定，Lock 有多个锁获取的方式，大致就是可以尝试获得锁，线程可以不用一直等待 (可以通过 tryLock 判断有没有锁)</td>\n</tr>\n<tr>\n<td>锁的释放</td>\n<td>1、以获取锁的线程执行完同步代码，释放锁 2、线程执行发生异常，jvm 会让线程释放</td>\n<td>在 finally 中必须释放锁，不然容易造成线程死锁</td>\n</tr>\n<tr>\n<td>锁类型</td>\n<td>锁可重入、不可中断、非公平</td>\n<td>可重入、可判断 可公平（两者皆可）</td>\n</tr>\n<tr>\n<td>性能</td>\n<td>少量同步</td>\n<td>适用于大量同步</td>\n</tr>\n<tr>\n<td>支持锁的场景</td>\n<td>1.  独占锁</td>\n<td>1.  公平锁与非公平锁</td>\n</tr>\n</tbody>\n</table>\n<p>使用方式区别：</p>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token class-name\">Lock</span> lock <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">ReentrantLock</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">lockTest</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>        <span class=\"token keyword\">try</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>            lock<span class=\"token punctuation\">.</span><span class=\"token function\">tryLock</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>            <span class=\"token comment\">//do-something</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">finally</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>            lock<span class=\"token punctuation\">.</span><span class=\"token function\">unlock</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>\t<span class=\"token class-name\">Object</span> lock2 <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Object</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> </pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">testSync</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>        <span class=\"token keyword\">synchronized</span> <span class=\"token punctuation\">(</span>lock2<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>            <span class=\"token comment\">//do-something</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure>",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/01/02/doc/volatile%E7%9A%84%E5%8F%AF%E8%A7%81%E6%80%A7%E5%92%8C%E7%A6%81%E6%AD%A2%E6%8C%87%E4%BB%A4%E9%87%8D%E6%8E%92%E5%BA%8F%E6%80%8E%E4%B9%88%E5%AE%9E%E7%8E%B0%E7%9A%84/",
            "url": "https://hk2012.github.io/2024/01/02/doc/volatile%E7%9A%84%E5%8F%AF%E8%A7%81%E6%80%A7%E5%92%8C%E7%A6%81%E6%AD%A2%E6%8C%87%E4%BB%A4%E9%87%8D%E6%8E%92%E5%BA%8F%E6%80%8E%E4%B9%88%E5%AE%9E%E7%8E%B0%E7%9A%84/",
            "title": "volatile的可见性和禁止指令重排序怎么实现的",
            "date_published": "2024-01-02T08:10:00.000Z",
            "content_html": "<h2 id=\"volatile的可见性和禁止指令重排序怎么实现的\"><a class=\"anchor\" href=\"#volatile的可见性和禁止指令重排序怎么实现的\">#</a> volatile 的可见性和禁止指令重排序怎么实现的</h2>\n<p>《深入理解 JAVA 虚拟机》中有如下描述：</p>\n<p>“观察加入 volatile 关键字和没有加入 volatile 关键字时所生成的汇编代码发现，加入 volatile 关键字时，会多出一个 lock 前缀指令”</p>\n<p>lock 前缀指令实际上相当于一个<strong>内存屏障</strong>（也成内存栅栏），内存屏障会提供 3 个功能：</p>\n<ol>\n<li>它确保指令重排序时不会把其后面的指令排到内存屏障之前的位置，也不会把前面的指令排到内存屏障的后面；即在执行到内存屏障这句指令时，在它前面的操作已经全部完成；</li>\n<li>它会强制将对缓存的修改操作立即写入主存；</li>\n<li>如果是写操作，它会导致其他 CPU 中对应的缓存行无效。</li>\n</ol>\n<p>所以可见性和禁止指令重排序如下：</p>\n<ul>\n<li>可见性：<br />\nvolatile 的功能就是被修饰的变量在被修改后可以立即同步到主内存，被修饰的变量在每次是用之前都从主内存刷新。本质也是通过内存屏障来实现可见性<br />\n写内存屏障（Store Memory Barrier）可以促使处理器将当前 store buffer（存储缓存）的值写回主存。读内存屏障（Load Memory Barrier）可以促使处理器处理 invalidate queue（失效队列）。进而避免由于 Store Buffer 和 Invalidate Queue 的非实时性带来的问题。</li>\n<li>禁止指令重排序：<br />\nvolatile 是通过<strong>内存屏障</strong>来禁止指令重排序<br />\n JMM 内存屏障的策略\n<ul>\n<li>在每个 volatile 写操作的前面插入一个 StoreStore 屏障。</li>\n<li>在每个 volatile 写操作的后面插入一个 StoreLoad 屏障。</li>\n<li>在每个 volatile 读操作的后面插入一个 LoadLoad 屏障。</li>\n<li>在每个 volatile 读操作的后面插入一个 LoadStore 屏障。</li>\n</ul>\n</li>\n</ul>\n<p>典型使用场景 DCL：</p>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">Singleton</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>    <span class=\"token comment\">//volatile 是防止指令重排</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>    <span class=\"token keyword\">private</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">volatile</span> <span class=\"token class-name\">Singleton</span> singleton<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>    <span class=\"token keyword\">private</span> <span class=\"token class-name\">Singleton</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token class-name\">Singleton</span> <span class=\"token function\">getInstance</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        <span class=\"token comment\">// 第一层判断 singleton 是不是为 null</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>        <span class=\"token comment\">// 如果不为 null 直接返回，这样就不必加锁了</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>singleton <span class=\"token operator\">==</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>            <span class=\"token comment\">// 现在再加锁</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>            <span class=\"token keyword\">synchronized</span> <span class=\"token punctuation\">(</span><span class=\"token class-name\">Singleton</span><span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>                <span class=\"token comment\">// 第二层判断</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>                <span class=\"token comment\">// 如果 A,B 两个线程都在 synchronized 等待</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>                <span class=\"token comment\">//A 创建完对象之后，B 还会再进入，如果不再检查一遍，B 又会创建一个对象</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>                <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>singleton <span class=\"token operator\">==</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>                    singleton <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Singleton</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>        <span class=\"token keyword\">return</span> singleton<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure>",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/01/02/doc/%E5%88%9B%E5%BB%BA%E7%BA%BF%E7%A8%8B%E6%9C%89%E5%93%AA%E4%BA%9B%E6%96%B9%E5%BC%8F/",
            "url": "https://hk2012.github.io/2024/01/02/doc/%E5%88%9B%E5%BB%BA%E7%BA%BF%E7%A8%8B%E6%9C%89%E5%93%AA%E4%BA%9B%E6%96%B9%E5%BC%8F/",
            "title": "创建线程有哪些方式",
            "date_published": "2024-01-01T22:10:00.000Z",
            "content_html": "<h2 id=\"创建线程有哪些方式\"><a class=\"anchor\" href=\"#创建线程有哪些方式\">#</a> 创建线程有哪些方式</h2>\n<p>Java 可以用四种方式来创建线程，如下所示：</p>\n<ol>\n<li>\n<p>继承 Thread 类创建线程</p>\n</li>\n<li>\n<p>实现 Runnable 接口创建线程</p>\n</li>\n<li>\n<p>使用 Callable 和 Future 创建线程</p>\n</li>\n<li>\n<p>使用线程池例如用 Executor 框架继承 Thread 类创建线程</p>\n</li>\n</ol>\n<p>下面让我们分别来看看这四种创建线程的方法。</p>\n<ol>\n<li>\n<p>通过继承 Thread 类来创建并启动多线程的一般步骤如下</p>\n<ul>\n<li>\n<p>定义 Thread 类的子类，并重写该类的 run () 方法，该方法的方法体就是线程需要完成的任务，run () 方法也称为线程执行体。</p>\n</li>\n<li>\n<p>创建 Thread 子类的实例，也就是创建了线程对象</p>\n</li>\n<li>\n<p>启动线程，即调用线程的 start () 方法</p>\n</li>\n</ul>\n</li>\n</ol>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">MyThreadTest</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>        <span class=\"token class-name\">MyThread</span> myThread <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">MyThread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>        myThread<span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token keyword\">class</span> <span class=\"token class-name\">MyThread</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Thread</span><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token annotation punctuation\">@Override</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">run</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token comment\">// 做一些操作</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ol start=\"2\">\n<li>\n<p>通过实现 Runnable 接口创建并启动线程一般步骤如下：</p>\n<ul>\n<li>\n<p>定义 Runnable 接口的实现类，一样要重写 run () 方法，这个 run（）方法和 Thread 中的 run () 方法一样是线程的执行体</p>\n</li>\n<li>\n<p>创建 Runnable 实现类的实例，并用这个实例作为 Thread 的 target 来创建 Thread 对象，这个 Thread 对象才是真正的线程对象</p>\n</li>\n<li>\n<p>第三部依然是通过调用线程对象的 start () 方法来启动线程</p>\n</li>\n</ul>\n</li>\n</ol>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">MyThreadTest</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>        <span class=\"token class-name\">MyThread</span> myThread <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">MyThread</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">MyRunnable</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>        myThread<span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token keyword\">class</span> <span class=\"token class-name\">MyRunnable</span>  <span class=\"token keyword\">implements</span> <span class=\"token class-name\">Runnable</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    <span class=\"token annotation punctuation\">@Override</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">run</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token comment\">// 做一些操作</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ol start=\"3\">\n<li>\n<p>和 Runnable 接口不一样，Callable 接口提供了一个 call（）方法作为线程执行体，call () 方法比 run () 方法功能要强大。</p>\n<ul>\n<li>\n<p>call () 方法可以有返回值</p>\n</li>\n<li>\n<p>call () 方法可以声明抛出异常</p>\n</li>\n</ul>\n</li>\n</ol>\n<ul>\n<li>Java5 提供了 Future 接口来代表 Callable 接口里 call () 方法的返回值，并且为 Future 接口提供了一个实现类 FutureTask，这个实现类既实现了 Future 接口，还实现了 Runnable 接口，因此可以作为 Thread 类的 target。在 Future 接口里定义了几个公共方法来控制它关联的 Callable 任务。</li>\n</ul>\n<blockquote>\n<p>boolean cancel (boolean mayInterruptIfRunning)：视图取消该 Future 里面关联的 Callable 任务</p>\n</blockquote>\n<blockquote>\n<p>V get ()：返回 Callable 里 call（）方法的返回值，调用这个方法会导致程序阻塞，必须等到子线程结束后才会得到返回值</p>\n</blockquote>\n<blockquote>\n<p>V get (long timeout,TimeUnit unit)：返回 Callable 里 call（）方法的返回值，最多阻塞 timeout 时间，经过指定时间没有返回抛出 TimeoutException</p>\n</blockquote>\n<blockquote>\n<p>boolean isDone ()：若 Callable 任务完成，返回 True</p>\n</blockquote>\n<blockquote>\n<p>boolean isCancelled ()：如果在 Callable 任务正常完成前被取消，返回 True</p>\n</blockquote>\n<p>介绍了相关的概念之后，创建并启动有返回值的线程的步骤如下：</p>\n<ol>\n<li>\n<p>创建 Callable 接口的实现类，并实现 call () 方法，然后创建该实现类的实例（从 java8 开始可以直接使用 Lambda 表达式创建 Callable 对象）。</p>\n</li>\n<li>\n<p>使用 FutureTask 类来包装 Callable 对象，该 FutureTask 对象封装了 Callable 对象的 call () 方法的返回值</p>\n</li>\n<li>\n<p>使用 FutureTask 对象作为 Thread 对象的 target 创建并启动线程（因为 FutureTask 实现了 Runnable 接口）</p>\n</li>\n<li>\n<p>调用 FutureTask 对象的 get () 方法来获得子线程执行结束后的返回值</p>\n</li>\n</ol>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">MyThreadTest</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token keyword\">throws</span> <span class=\"token class-name\">Exception</span><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>        <span class=\"token class-name\">FutureTask</span> target <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">FutureTask</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">MyRunnable</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>        <span class=\"token class-name\">Thread</span> thread <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Thread</span><span class=\"token punctuation\">(</span>target<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>        thread<span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        target<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre></pre></td></tr><tr><td data-num=\"10\"></td><td><pre><span class=\"token keyword\">class</span> <span class=\"token class-name\">MyRunnable</span> <span class=\"token keyword\">implements</span> <span class=\"token class-name\">Runnable</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token annotation punctuation\">@Override</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">run</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>        <span class=\"token comment\">// 做一些事情</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ol start=\"4\">\n<li>1.5 后引入的 Executor 框架的最大优点是把任务的提交和执行解耦。要执行任务的人只需把 Task 描述清楚，然后提交即可。这个 Task 是怎么被执行的，被谁执行的，什么时候执行的，提交的人就不用关心了。具体点讲，提交一个 Callable 对象给 ExecutorService（如最常用的线程池 ThreadPoolExecutor），将得到一个 Future 对象，调用 Future 对象的 get 方法等待执行结果就好了。Executor 框架的内部使用了线程池机制，它在 java.util.cocurrent 包下，通过该框架来控制线程的启动、执行和关闭，可以简化并发编程的操作。因此，在 Java 5 之后，通过 Executor 来启动线程比使用 Thread 的 start 方法更好，除了更易管理，效率更好（用线程池实现，节约开销）外，还有关键的一点：有助于避免 this 逃逸问题 —— 如果我们在构造器中启动一个线程，因为另一个任务可能会在构造器结束之前开始执行，此时可能会访问到初始化了一半的对象用 Executor 在构造器中。</li>\n</ol>\n<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token keyword\">throws</span> <span class=\"token class-name\">Exception</span><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>        <span class=\"token class-name\">ExecutorService</span> executorService <span class=\"token operator\">=</span> <span class=\"token class-name\">Executors</span><span class=\"token punctuation\">.</span><span class=\"token function\">newSingleThreadExecutor</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>        <span class=\"token class-name\">Runnable</span> runnable <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Runnable</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>            <span class=\"token annotation punctuation\">@Override</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>            <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">run</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>                <span class=\"token comment\">// 写点逻辑</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>        <span class=\"token comment\">// 执行 Runnable 接口，有返回值</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>        <span class=\"token class-name\">Future</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token operator\">?</span><span class=\"token punctuation\">></span></span> submit <span class=\"token operator\">=</span> executorService<span class=\"token punctuation\">.</span><span class=\"token function\">submit</span><span class=\"token punctuation\">(</span>runnable<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        submit<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        <span class=\"token comment\">// 执行 Runnable 接口，无返回值</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>        executorService<span class=\"token punctuation\">.</span><span class=\"token function\">execute</span><span class=\"token punctuation\">(</span>runnable<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>        <span class=\"token comment\">// 执行 Callable 接口，有返回值</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        <span class=\"token class-name\">Callable</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">></span></span> stringCallable <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Callable</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>            <span class=\"token annotation punctuation\">@Override</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>            <span class=\"token keyword\">public</span> <span class=\"token class-name\">Object</span> <span class=\"token function\">call</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">throws</span> <span class=\"token class-name\">Exception</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>                <span class=\"token comment\">// 写逻辑</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>                <span class=\"token keyword\">return</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>        <span class=\"token class-name\">Future</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">></span></span> submit1 <span class=\"token operator\">=</span> executorService<span class=\"token punctuation\">.</span><span class=\"token function\">submit</span><span class=\"token punctuation\">(</span>stringCallable<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>        submit1<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre></pre></td></tr><tr><td data-num=\"25\"></td><td><pre></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure>",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/01/02/doc/%E7%A8%8B%E5%BA%8F%E5%BC%80%E5%A4%9A%E5%B0%91%E7%BA%BF%E7%A8%8B%E5%90%88%E9%80%82/",
            "url": "https://hk2012.github.io/2024/01/02/doc/%E7%A8%8B%E5%BA%8F%E5%BC%80%E5%A4%9A%E5%B0%91%E7%BA%BF%E7%A8%8B%E5%90%88%E9%80%82/",
            "title": "创建线程有哪些方式",
            "date_published": "2024-01-01T22:10:00.000Z",
            "content_html": "<h2 id=\"程序开多少线程合适\"><a class=\"anchor\" href=\"#程序开多少线程合适\">#</a> 程序开多少线程合适</h2>\n<h3 id=\"为什么要找最佳线程数\"><a class=\"anchor\" href=\"#为什么要找最佳线程数\">#</a> <strong>为什么要找最佳线程数</strong></h3>\n<p>1. 过多的线程只会造成，更多的内存开销，更多的 CPU 开销，但是对提升 QPS 确毫无帮助</p>\n<p>2. 使用多线程就是在正确的场景下通过设置正确个数的线程来充分的利用 CPU 和 I/O 最大化程序的运行速度。</p>\n<h3 id=\"从两个方面和分析\"><a class=\"anchor\" href=\"#从两个方面和分析\">#</a> 从两个方面和分析：</h3>\n<ul>\n<li>\n<p>CPU 密集型程序</p>\n</li>\n<li>\n<p>I/O 密集型程序</p>\n</li>\n</ul>\n<ol>\n<li>CPU 密集型程序，一个完整请求，I/O 操作可以在很短时间内完成，CPU 还有很多运算要处理，也就是说 CPU 计算的比例占很大一部分，线程等待时间接近 0\n<ol>\n<li>单核 CPU： 一个完整请求，I/O 操作可以在很短时间内完成， CPU 还有很多运算要处理，也就是说 CPU 计算的比例占很大一部分，线程等待时间接近 0。单核 CPU 处理 CPU 密集型程序，这种情况并不太适合使用多线程。</li>\n<li>多核 ： 如果是多核 CPU 处理 CPU 密集型程序，我们完全可以最大化的利用 CPU 核心数，应用并发编程来提高效率。CPU 密集型程序的最佳线程数就是：理论上线程数量 = CPU 核数（逻辑），但是实际上，数量一般会设置为 CPU 核数（逻辑）+ 1（经验值）, 计算 (CPU) 密集型的线程恰好在某时因为发生一个页错误或者因其他原因而暂停，刚好有一个 “额外” 的线程，可以确保在这种情况下 CPU 周期不会中断工作</li>\n</ol>\n</li>\n<li>I/O 密集型程序，与 CPU 密集型程序相对，一个完整请求，CPU 运算操作完成之后还有很多 I/O 操作要做，也就是说 I/O 操作占比很大部分，在进行 I/O 操作时，CPU 是空闲状态，所以我们要最大化的利用 CPU，不能让其是空闲状态，由于 I/O 等待时间较长，线程等待时间所占比例越高，需要越多线程；线程 CPU 时间所占比例越高，需要越少线程，\n<ol>\n<li>I/O 密集型程序的最佳线程数就是： 最佳线程数 = CPU 核心数 * <em>(1/CPU 利用率) = CPU 核心数</em> *(1 + (I/O 耗时 / CPU 耗时))</li>\n<li>如果几乎全是 I/O 耗时，那么 CPU 耗时就无限趋近于 0，所以纯理论你就可以说是 2N（N=CPU 核数），当然也有说 2N + 1 的，1 应该是 backup</li>\n<li>一般我们说 2N + 1 就即可</li>\n</ol>\n</li>\n</ol>\n<h3 id=\"拓展\"><a class=\"anchor\" href=\"#拓展\">#</a> 拓展</h3>\n<p>1、我们已经知道创建多少个线程合适了，为什么还要搞一个线程池出来？</p>\n<ul>\n<li>风险不受控</li>\n<li>频繁创建开销大</li>\n</ul>\n<h4 id=\"风险不受控\"><a class=\"anchor\" href=\"#风险不受控\">#</a> 风险不受控</h4>\n<p>系统资源有限，每个人针对不同业务都可以手动创建线程，并且创建标准不一样（比如线程没有名字）。当系统运行起来，所有线程都在疯狂抢占资源，内存被无情榨干耗尽，这好比一个正木马程序（出现问题，自然也就不可能轻易的发现和解决）。</p>\n<h4 id=\"频繁创建开销大\"><a class=\"anchor\" href=\"#频繁创建开销大\">#</a> 频繁创建开销大</h4>\n<p>内存分配，对象初始化，线程创建，线程状态保存等均需要资源</p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2024/01/01/doc/Java%E7%B1%BB%E5%8A%A0%E8%BD%BD%E5%99%A8%E6%9C%89%E5%93%AA%E4%BA%9B/",
            "url": "https://hk2012.github.io/2024/01/01/doc/Java%E7%B1%BB%E5%8A%A0%E8%BD%BD%E5%99%A8%E6%9C%89%E5%93%AA%E4%BA%9B/",
            "title": "Java类加载器有哪些",
            "date_published": "2024-01-01T03:20:53.000Z",
            "content_html": "<h1 id=\"java类加载器有哪些\"><a class=\"anchor\" href=\"#java类加载器有哪些\">#</a> Java 类加载器有哪些</h1>\n<h3 id=\"bootstrap类加载器\"><a class=\"anchor\" href=\"#bootstrap类加载器\">#</a> <strong>Bootstrap 类加载器</strong></h3>\n<p>启动类加载器主要加载的是 JVM 自身需要的类，这个类加载使用 C++ 语言实现的，没有父类，是虚拟机自身的一部分，它负责将 <strong>&lt;JAVA_HOME&gt;/lib 路径下的核心类库</strong>或 **-Xbootclasspath 参数指定的路径下的 jar 包 ** 加载到内存中，注意必由于虚拟机是按照文件名识别加载 jar 包的，如 rt.jar，如果文件名不被虚拟机识别，即使把 jar 包丢到 lib 目录下也是没有作用的 (出于安全考虑，Bootstrap 启动类加载器只加载包名为 java、javax、sun 等开头</p>\n<h3 id=\"extention-类加载器\"><a class=\"anchor\" href=\"#extention-类加载器\">#</a> <strong>Extention 类加载器</strong></h3>\n<p>扩展类加载器是指 Sun 公司实现的 sun.misc.Launcher$ExtClassLoader 类，<strong>由 Java 语言实现的</strong>，父类加载器为 Bootstrap（null），是 Launcher 的静态内部类，它负责加载 **&lt;JAVA_HOME&gt;/lib/ext 目录下<strong>或者由系统变量</strong> - Djava.ext.dir 指定位路径中的类库 **，开发者可以直接使用标准扩展类加载器</p>\n<h3 id=\"application类加载器\"><a class=\"anchor\" href=\"#application类加载器\">#</a> <strong>Application 类加载器</strong></h3>\n<p>称应用程序加载器是指 Sun 公司实现的 sun.misc.Launcher$AppClassLoader。父类加载器为 ExtClassLoader，它负责加载<strong>系统类路径 java -classpath</strong> 或 **-D java.class.path 指定路径下的类库 **，也就是我们经常用到的<strong> classpath 路径</strong>，开发者可以直接使用系统类加载器，一般情况下该类加载是程序中默认的类加载器，通过 ClassLoader#getSystemClassLoader () 方法可以获取到该类加载器<br />\n<strong>​</strong></p>\n<h3 id=\"custom自定义类加载器\"><a class=\"anchor\" href=\"#custom自定义类加载器\">#</a> <strong>Custom 自定义类加载器</strong></h3>\n<p>应用程序可以自定义类加载器，父类加载器为 AppClassLoader</p>\n<p><img data-src=\"/img/Java%E7%B1%BB%E5%8A%A0%E8%BD%BD%E5%99%A8%E6%9C%89%E5%93%AA%E4%BA%9B/classloader.png\" alt=\"image.png\" /></p>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/12/09/course/wumingsha/",
            "url": "https://hk2012.github.io/2023/12/09/course/wumingsha/",
            "title": "无名杀安装教程",
            "date_published": "2023-12-09T07:48:53.000Z",
            "content_html": "<h2 id=\"系统介绍\"><a class=\"anchor\" href=\"#系统介绍\">#</a> 系统介绍</h2>\n<ul>\n<li>\n<p>Windows 11 专业版<br />\n<img data-src=\"/img/software/window11%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%AE%80%E4%BB%8B.png\" alt=\"系统介绍\" /></p>\n</li>\n<li>\n<p>无名杀官方下载链接</p>\n<ul>\n<li><span class=\"exturl\" data-url=\"aHR0cHM6Ly9naXRodWIuY29tL2xpYmNjeS9ub25hbWUvcmVsZWFzZXMvdGFnL2Nocm9taXVtNzctY2xpZW50\">https://github.com/libccy/noname/releases/tag/chromium77-client</span></li>\n<li><img data-src=\"/img/software/%E6%97%A0%E5%90%8D%E6%9D%80%E7%B3%BB%E7%BB%9F%E5%8C%85.png\" alt=\"系统介绍\" /></li>\n</ul>\n</li>\n<li>\n<p>如果不会翻墙，可以直接下载该文件，但是最好还是去官方下载，以免作者<span class=\"red\">夹带私货</span></p>\n<ul>\n<li><a href=\"/file/Noname-win32-x64.zip\">Noname-win32-x64.zip</a></li>\n</ul>\n</li>\n<li>\n<p>下载之后文件解压后的页面</p>\n<ul>\n<li><img data-src=\"/img/software/%E6%97%A0%E5%90%8D%E6%9D%80%E8%A7%A3%E5%8E%8B%E6%96%87%E4%BB%B6%E6%80%BB%E4%BD%93%E7%BB%93%E6%9E%84.png\" alt=\"无名杀解压文件总体结构\" /></li>\n</ul>\n</li>\n<li>\n<p>双击 无名杀.exe 文件后，得到该页面</p>\n<ul>\n<li><img data-src=\"/img/software/%E6%97%A0%E5%90%8D%E6%9D%80%E5%88%9D%E5%A7%8B%E9%A1%B5%E9%9D%A2.png\" alt=\"无名杀初始页面\" /></li>\n</ul>\n</li>\n<li>\n<p>点击下载无名杀</p>\n<ul>\n<li><img data-src=\"/img/software/%E7%82%B9%E5%87%BB%E4%B8%8B%E8%BD%BD%E6%97%A0%E5%90%8D%E6%9D%80.png\" alt=\"点击下载无名杀\" /></li>\n</ul>\n</li>\n<li>\n<p>下载成功后，自动进入页面，该页面是最原始，最纯净的页面，后面的特效需要添加扩展包</p>\n<ul>\n<li><img data-src=\"/img/software/%E6%97%A0%E5%90%8D%E6%9D%80%E6%9C%80%E5%8E%9F%E5%A7%8B%E5%88%9D%E5%A7%8B%E7%95%8C%E9%9D%A2.png\" alt=\"无名杀最原始初始界面\" /></li>\n</ul>\n</li>\n</ul>\n<h2 id=\"添加扩展包\"><a class=\"anchor\" href=\"#添加扩展包\">#</a> 添加扩展包</h2>\n<ul class=\"task-list primary\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"cbx_0\" disabled=\"true\" /><label for=\"cbx_0\"> 未完成</label></li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"cbx_1\" checked=\"true\" disabled=\"true\" /><label for=\"cbx_1\"> 已完成</label>\n<ul class=\"task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"cbx_2\" disabled=\"true\" /><label for=\"cbx_2\"> 三国杀十周年</label></li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"cbx_3\" checked=\"true\" disabled=\"true\" /><label for=\"cbx_3\"> 手杀安装包</label></li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"cbx_4\" disabled=\"true\" /><label for=\"cbx_4\"> 幻听铃音安装包</label></li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"cbx_5\" disabled=\"true\" /><label for=\"cbx_5\"> 无名杀设置</label></li>\n</ul>\n</li>\n</ul>\n<h2 id=\"注释\"><a class=\"anchor\" href=\"#注释\">#</a> 注释</h2>\n",
            "tags": []
        },
        {
            "id": "https://hk2012.github.io/2023/09/11/doc/PubmedPolictics2/",
            "url": "https://hk2012.github.io/2023/09/11/doc/PubmedPolictics2/",
            "title": "2024考研政治 (毛泽东思想和中特色社会主义理论体系概论)",
            "date_published": "2023-09-11T07:36:00.000Z",
            "content_html": "<h1 id=\"毛泽东思想和中特色社会主义理论体系概论\"><a class=\"anchor\" href=\"#毛泽东思想和中特色社会主义理论体系概论\">#</a> 毛泽东思想和中特色社会主义理论体系概论</h1>\n<p><img data-src=\"/img/polictics/%E6%AF%9B%E6%B3%BD%E4%B8%9C%E6%80%9D%E6%83%B3%E4%B8%AD%E5%9B%BD%E7%89%B9%E8%89%B2%E7%90%86%E8%AE%BA%E4%BD%93%E7%B3%BB%E6%A6%82%E8%AE%BA.png\" alt=\"毛泽东思想中国特色理论体系概论\" /></p>\n<h2 id=\"导论\"><a class=\"anchor\" href=\"#导论\">#</a> 导论</h2>\n<h3 id=\"马克思主义中国化的三次飞跃\"><a class=\"anchor\" href=\"#马克思主义中国化的三次飞跃\">#</a> 马克思主义中国化的三次飞跃</h3>\n<ul>\n<li>\n<p>马克思主义中国化的时代内涵</p>\n<ul>\n<li>1938 年，毛泽东在党的六届六中全会上作的题为《论新阶段》的政治报告中最先提出了 “马克思主义中国化” 这个命题。这是党首次明确提出 “马克思主义中国化” 的重大命题，它源于对中国革命进程中正反两个方面的实践经验的科学总结</li>\n</ul>\n</li>\n<li>\n<p>马克思主义中国化的时代内涵</p>\n<ul>\n<li>坚持把马克思主义基本原理同中国具体实际相结合、同中华优秀传统文化相结合，深入研究和解决中国革命、建设、改革不同历史时期的实际问题</li>\n<li>运用马克思主义的立场、观点、方法，观察时代、把握时代、引领时代，解决中国革命、建设、改革中的实际问题。</li>\n<li>总结和提炼中国革命、建设、改革的实践经验并将其上升为理论，不断丰富和发展马克思主义的理论宝库，赋予马克思主义以新的时代内涵.</li>\n<li>运用中国人民喜闻乐见的民族语言来阐述马克思主义理论，使其植根于中华优秀传统文化的土壤之中，具有中国特色、中国风格、中国气派。</li>\n</ul>\n</li>\n<li>\n<p>马克思主义中国化时代化的历史进程、理论成果及其关系<br />\n<img data-src=\"/img/polictics/%E9%A9%AC%E5%85%8B%E6%80%9D%E4%B8%BB%E4%B9%89%E4%B8%AD%E5%9B%BD%E5%8C%96%E6%97%B6%E4%BB%A3%E5%8C%96%E7%9A%84%E5%8E%86%E5%8F%B2%E8%BF%9B%E7%A8%8B%E3%80%81%E7%90%86%E8%AE%BA%E6%88%90%E6%9E%9C%E5%8F%8A%E5%85%B6%E5%85%B3%E7%B3%BB.png\" alt=\"马克思主义中国化时代化的历史进程、理论成果及其关系\" /></p>\n</li>\n</ul>\n<h2 id=\"毛泽东思想\"><a class=\"anchor\" href=\"#毛泽东思想\">#</a> 毛泽东思想</h2>\n<h3 id=\"毛泽东思想及其历史地位\"><a class=\"anchor\" href=\"#毛泽东思想及其历史地位\">#</a> 毛泽东思想及其历史地位</h3>\n<ul>\n<li>\n<p>毛泽东思想形成和发展的时代背景：革命与战争</p>\n</li>\n<li>\n<p>毛泽东思想形成和发展的实践基础：革命和建设的实践</p>\n</li>\n<li>\n<p>毛泽东思想形成发展的历史条件</p>\n<ul>\n<li>毛泽东思想是在我国新民主主义革命、社会主义革命和社会主义建设的实践过程中，在总结我国革命和建设正反两方面历史经验的基础上，逐步形成和发展起来的</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>新民主主义革命【1919-1949】：无产阶级领导的、人民大众的，反对帝国主义、封建主义和官僚资本主义的革命</li>\n<li>五四运动标志着新民主主义革命的开端</li>\n<li>护法运动的失败标志着旧民主主义的终结</li>\n<li>新民主主义和旧民主主义区别：旧民主主义革命的领导者是资产阶级，新民主主义领导者是无产阶级，根本标志在于在于领导权掌握在资产阶级还是无产阶级手中</li>\n<li>新民主主义革命性质依然是资产阶级民主主义革命（社会性质、革命对象、革命任务决定），但领导阶级变了，所以叫 “新”</li>\n</ul>\n</li>\n<li>\n<p>毛泽东思想形成和发展的过程</p>\n<ul>\n<li>\n<p>毛泽东思想的形成</p>\n<ul>\n<li>毛泽东思想的萌芽：党的创立和大革命时期主要代表作：1925《中国社会各阶级分析》、1927《湖南农民运动考察报告》分析了中国社会各阶级在革命中的地位和作用，明确指出无产阶级领导农民斗争的极端重要性，分析了中国农民斗争的特点，强调无产阶级领导农民斗争在推翻反动政权、建立人民革命政权中的重大作用，从而解决了无产阶级领导权的中心问题，即如何领导农民斗争的问题</li>\n<li>土地革命战争时期，以毛泽东同志为主要代表的中国共产党人，坚待马克思列宁主义必须与中国革命具体实际相结合的基本原则，在探索中国革命新道路的具体实践中，在同党内一度盛行的把马克思主义教条化、把共产国际决议和苏联经验神圣化的错误倾向的斗争中，逐步认识和把握中国革命发展的客观规律，成功地把党的工作重点由城市转人农村，开辟了农村包围城市、武装夺取政权的革命道路。从进攻大城市转为向农村进军，是中国革命具有决定意义的新起点【时期：土地革命战争时期（前期）】</li>\n<li>毛泽东思想的初步形成：土地革命时期，提出并阐述了农村包围城市，武装夺取政权的思想【中国革命新道路的提出】著作:《中国的红色政权为什么能够存在？》《井冈山的斗争》《星星之火，可以燎原》《反对本本主义》等；指明了中国革命的发展规律是：将党的工作重点从城市转入衣村，在农村开展游击战争，进行土地革命，建立红色政权，把落后的农村变为先进的革命根据地；依托这样的农村革命根据地去反对依靠城市进攻农村的强大敌人，进而以农村包围城市，以便在长期斗争中逐步锻炼、积累、发展革命的力量，逐步削弱敌人的力量；直到敌我力量强弱发生转化，再攻占中心城市，夺取全国政权和全国革命的胜利。</li>\n<li>刷题总结\n<ul>\n<li>中国革命首要问题：分清敌友</li>\n<li>中国革命基本问题：农民问题</li>\n<li>中国革命中心问题：无产阶级领导权问题；</li>\n<li>中国革命根本问题：农民土地改革问题</li>\n<li>无产阶级领导权问题： 农民问题</li>\n<li>新民主主义革命理论核心问题：无产阶级的领导权</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>毛泽东思想的成熟</p>\n<ul>\n<li>\n<p>毛泽东思想的成熟：系统阐述了新民主主义革命理论 (著作:《实践论》)《矛盾论》《&lt; 共产党人〉发刊词》《中国革命和中国共产党》《新民主主义论》《论联合政府》《改造我们的学习》等</p>\n</li>\n<li>\n<p>毛泽东思想的成熟：系统阐述了新民主主义革命理论 (著作:《实践论》)《矛盾论》《&lt; 共产党人〉发刊词》《中国革命和中国共产党》《新民主主义论》《论联合政府》《改造我们的学习》等；遵义会议至抗日战争时期</p>\n</li>\n<li>\n<p>1945 年党的七大，将毛泽东思想写入党章，作为党的一切工作的指针，标志着把毛泽东思想确立为党必须长期坚持的指导思想</p>\n</li>\n</ul>\n</li>\n<li>\n<p>毛泽东思想的继续发展</p>\n<ul>\n<li>时期：<strong>解放战争时期和新中国成立以后</strong></li>\n<li><span class=\"red\">解放战争时期和新中国成立以后</span>，提出人民民主专政理论、社会主义改造和建立社会主义制度的基本方略，提出了要把马克思列宁主义的基本原理同中国革命和建设的具体实际 “第二次结合” 代表著作：《论人民民主专政》《论十大关系》《关于正确处理人民内部矛盾的问题》《在中国共产党第七届中央委员会第二次全体会议上的报告》《在晋绥干部会议上的讲话》\n<ul>\n<li>刷题总结\n<ul>\n<li>马克思主义与中国实际的 “第一次结合” 是指：马克思主义与新民主主义革命结合；第一次结合的理论成果是毛泽东思想</li>\n<li>马克思主义与中国实际的 “第二次结合” 是指：马克思主义与中国社会主义建设相结合；第二次结合理论成果是 “中特理论”</li>\n<li>注意区分马克思主义与中国实际的结合和马克思主义中国化的飞跃；马克思主义中国化第一次历史性飞跃是毛泽东思想；马克思主义中国化新的飞跃是中特理论体系和习新思想</li>\n<li>毛泽东思想不等于毛泽东的思想；第一，毛泽东思想是一个科学体系，毛泽东晚年所犯的错误不属于毛泽东思想的科学体系。第二，毛泽东思想是集体智慧的结晶，毛泽东的思想仅仅是指毛泽东一个人的思想</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>毛泽东思想的主要内容和活的灵魂</p>\n<ul>\n<li>\n<p>毛泽东思想的主要内容</p>\n<ul>\n<li>毛泽东思想不是在个别的方面，而是在许多方面以其独创性理论丰富和发展了马克思列宁主义，构成一个博大精深的科学思想体系。它有着坚实的中国化马克思主义哲学思想的理论基础，其精髓就是<span class=\"red\">实事求是</span>。它紧紧围绕着中国革命和建设的主题，提出了一系列相互关联的重要的理论观点，包括：\n<ul>\n<li>新民主主义革命理论；</li>\n<li>社会主义革命和社会主义建设理论；</li>\n<li>革命军队建设和军事战略的理论；</li>\n<li>政策和策略的理论；</li>\n<li>思想政治工作和文化工作的理论（如 “思想政治工作是经济工作和其他一切工作的生命线” ;</li>\n<li>党的建设理论。</li>\n<li>此外，毛泽东思想体系中还有关于国际战略和外交工作、思想方法和工作方法的理论等</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>毛泽东思想活的灵魂</p>\n<ul>\n<li>\n<p><span class=\"rainbow\">实事求是</span></p>\n<ul>\n<li>实事求是是毛泽东思想的基本点，是毛泽东思想的精髓</li>\n<li>含义：实事求是，就是一切从实际出发，理论联系实际，坚持在实践中检验真理和发展真理。毛泽东指出：“实事” 就是客观存在着的一切事物，“是” 就是客观事物的内部联系，即规律性，“求” 就是我们去研究。”</li>\n<li>重要性：实事求是是马克思主义的根本观点【实践的观点是马克思主义首要的基本的观点】，是中国共产党人认识世界、改造世界的根本要求，是我们党的基本思想方法、工作方法、领导方法。实事求是是党的思想路线的核心，是党的根本思想路线</li>\n</ul>\n</li>\n<li>\n<p><span class=\"rainbow\">群众路线</span></p>\n<ul>\n<li>在漫长又极端艰苦的环境中，我们党不仅在指导思想上坚持一切为了群众、一切依靠群众的群众观点，而且在党的实际工作中形成了一套从群众中来、到群众中去的领导方法和工作方法，这就是群众路线。</li>\n<li>含义：群众路线，就是一切为了群众，一切依靠群众，从群众中来，到群众中去。</li>\n<li>重要性：群众路线就是把马克思列宁主义关于人民群众是历史创造者的原理，系统地运用在党的全部活动中。群众路线是我们党的生命线和根本工作路线，是我们党永葆青春活力和战斗力的重要传家宝</li>\n</ul>\n</li>\n<li>\n<p><span class=\"rainbow\">独立自主</span></p>\n<ul>\n<li>含义：独立自主，就是坚待独立思考，走自己的路，就是坚定不移地维护民族独立、捍卫国家主权，把立足点放在依靠自己力量的基础上，同时积极争取外援，开展国际经济文化交流，学习外国一切对我们有益的先进事物。早在 1930 年，毛泽东在《反对本本主义》一文中就指出：“中国革命斗争的胜利要靠中国同志了解中国情况” 这是独立自主思想的最初的明确表述</li>\n<li>重要性：独立自主是中华民族的优良传统，是中华民族精神之魂，是中国共产党、中华人民共和国立党立国的重要原则，是我们党从中国实际出发、依靠党和人民力量进行革命、建设、改革的必然结论。不论过去、现在和将来，我们都要把国家和民族发展放在自己力址的基点上，增强民族自信心和自信心，坚定不移走自己的路。走自己的路，是党百年奋斗得出的历史结论</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>共产党在中国革命战胜敌人的三大法宝：统一战线，武装斗争，党的建设</li>\n<li>党在领导新民主主义革命过程三大优良作风：\n<ul>\n<li>理论联系实际【放在首位】</li>\n<li>密切联系群众，</li>\n<li>批评与自我批评</li>\n</ul>\n</li>\n<li>两个务必：党的七届二中全会、毛泽东强调必须保持党的作风：谦虚、谨慎、不骄不躁和艰苦奋斗的作风</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>毛泽东思想的历史地位</p>\n<ul>\n<li>是马克思主义中国化时代化的第 — 个重大理论成果</li>\n<li>中国革命和建设的科学指南</li>\n<li>中国共产党和中国人民宝贵的精神财富</li>\n</ul>\n</li>\n<li>\n<p>科学评价毛泽东和毛泽东思想</p>\n<ul>\n<li>毛泽东同志是伟大的马克思主义者，伟大的无产阶级革命家、战略家、理论家，是马克思主义中国化的伟大开拓者，是近代以来中国伟大的爱国者和民族英雄，<strong>是党的第一代中央领导集体的核心，是领导中国人民彻底改变自己命运和国家面貌的一代伟人</strong>。</li>\n<li>毛泽东同志毕生最突出最伟大的贡献，就是领导我们党和人民找到了新民主主义革命的正确道路，完成了反帝反封建的任务，建立了中华人民共和国，确立了社会主义基本制度，取得了社会主义建设的基础性成就，并为我们探索建设中国特色社会主义的道路积累了经验和提供了条件，为我们党和人民事业胜利发展、为中华民族阔步赶上时代发展潮流创造了根本前提，奠定了坚实的理论和实践基础。</li>\n<li>不能否认，毛泽东同志在社会主义建设道路的探索中走过弯路，他在晚年特别是在 “文化大革命” 中犯了严重错误。毛泽东同志晚年的错误有其主观因素和个人责任，还在于复杂的国内国际的社会历史原因，应该全面、历史、辩证地看待和分析。<strong>就他的一生来看，功绩是第一位的，错误是第二位的，他的错误在于违反了他自己正确的东西，是一个伟大的革命家、伟大的马克思主义者所犯的错误</strong></li>\n<li><strong>将毛泽东晚年所犯的错误同经过长期历史考验形成为科学理论的毛泽东思想区别开来</strong>，为我们完整准确地理解毛泽东思想、坚持和发展毛泽东思想指明了方向。毛泽东思想具有科学的真理性和强大的生命力，不因时代变迁而褪色，始终是中国共产党人、中华民族和中国人民团结奋斗、开拓前进的强大精神支柱，是我们世世代代要高举的伟大旗帜</li>\n</ul>\n</li>\n<li>\n<p>新民主主义革命理论</p>\n</li>\n<li>\n<p>新民主主义革命理论形成的依据</p>\n<ul>\n<li>认清中国国情，是解决中国革命问题的基本前提\n<ul>\n<li><span class=\"rainbow\">近代中国，已经沦为一个半殖民地半封建性质的社会，这是最基本的国情</span>半殖民地半封建社会，既不同于封建社会，也有别于资本主义社会，蕴含着特殊的社会矛盾和革命要求。中国共产党要在这样一个落后的东方大国里领导人民革命并取得胜利，就必须认清这一基本国情，深入了解中国革命的历史特点和时代特征。<span class=\"rainbow\">毛泽东指出：“认清中国社会的性质，就是说，认清中国的国情，乃是认识一切革命问题的基本的根据”</span></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>近代中国的国情</p>\n<ul>\n<li>\n<p>社会性质：1840 年鸦片战争前，中国是一个独立的封建国家，随着封建社会内部商品经济的产生和发展，已经孕育着资本主义的萌芽。鸦片战争后，由于西方列强的入侵，由于封建统治的腐败，中国社会发展的轨道改变了，社会性质发生了两个根本性的变化：独立的中国逐步沦为半殖民地的中国（ 一系列不平等条约使中国丧失了许多主权和政治上完全独立的地位，使中国受制于帝国主义列强），封建的中国逐步变为半封建的中国（帝国主义的侵略在一定程度上加速了封建社会自给自足的自然经济的解体，客观上为中国资本主义的发展创造了一定条件，中国已经不再是一个完全的封建社会，也没有发展成资本主义社会，而是变成了半封建社会，仍然是一个落后的农业国）。中国社会的半殖民地半封建化，是随着帝国主义发动侵略战争和迫使清政府签订一系列不平等条约而逐步形成的。</p>\n</li>\n<li>\n<p>主要矛盾：在半殖民地半封建的近代中国的诸多社会矛盾中，占支配地位的主要矛盾是帝国主义和中华民族的矛盾、封建主义和人民大众的矛盾。而<span class=\"label\">帝国主义和中华民族的矛盾，又是各种矛盾中最主要的矛盾</span>。</p>\n</li>\n<li>\n<p>革命的根本任务与性质：近代中国的社会性质和主要矛盾，决定了近代中国革命的根本任务是推翻帝国主义、封建主义和官僚资本主义的统治，从根本上推翻反动腐朽的政治上层建筑，变革阻碍生产力发展的生产关系，为建设富强民主的国家、改善人民的生活、确立人民当家作主的政治制度扫清陷碍，创造必要的前提。也就是说，<span class=\"label\">近代中国的社会性质和主要矛盾，决定了近代中国革命是资产阶级民主革命，不是无产阶级社会主义革命</span></p>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>新民主主义和旧民主主义区别：旧民主主义革命的领导者是资产阶级，新民主主义领导者是无产阶级，根本标志在于在于领导权掌握在资产阶级还是无产阶级手中</li>\n<li>新民主主义革命性质依然是资产阶级民主主义革命（社会性质、革命对象、革命任务决定），但领导阶级变了，所以叫 “新”</li>\n<li>新民主主义革命属于世界无产阶级社会主义革命的一部分，但他的性质是资产阶级民主革命</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>近代中国革命的时代特征</p>\n<ul>\n<li>俄国十月革命是一个具有划时代意义的世界性历史事件，以此为标志，中国资产阶级民主革命的时代背景发生了根本转换。从鸦片战争到辛亥革命期间，中国人民在不同时期和不同程度上进行的反帝反封建的斗争，属于旧式民主主义革命的范畴。<span class=\"red\">1917 年俄国十月社会主义革命的胜利，开辟了世界无产阶级社会主义革命的新纪元</span>，标志着人类历史开始了由资本主义向社会主义转变的进程。</li>\n<li>十月革命建立了一条从西方无产者经过俄国革命到东方被压迫民族的新的反对世界帝国主义的革命战线，使中国的资产阶级民主主义革命，从原来属于旧的世界资产阶级民主主义革命的范畴，属于旧的世界资产阶级民主主义革命的一部分，转变为属于新的资产阶级民主主义革命的范畴，属于世界无产阶级社会主义革命的一部分</li>\n<li>旧民主主义革命转变为新民主主义革命\n<ul>\n<li>近代中国革命以 (1919 年) 五四运动为开端，进入新民主主义革命的崭新阶段。这一转变的条件是：\n<ul>\n<li>第一，主观条件。\n<ul>\n<li>一是在十月革命的影响下，1919 年五四运动之后，中国无产阶级【工人阶级】开始以独立的政治力量从登上历史舞台。</li>\n<li>二是随着马克思主义在中国的传播，马克思主义逐步成为中国革命的指导思想<br />\n第二，客观条件。</li>\n<li>一是旧民主主义革命的失败；</li>\n<li>二是近代中国革命形势的发展；</li>\n<li>三是世界形势的新变化 (1914 年爆发第一次世界大战和 1917 年俄国十月社会主义革命)</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>刷题总结\n<ul>\n<li>五四运动标志着新民主主义革命的开端</li>\n<li>护法运动的失败标志着旧民主主义的终结</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>新民主主义革命理论的实践基础</p>\n<ul>\n<li>\n<p>旧民主主义革命的失败呼唤新的革命理论</p>\n<ul>\n<li>鸦片战争后，为了挽救空前深重的民族危机和社会危机，无数仁人志士苦苦探索救国救民的道路。但是，事实证明，<span class=\"red\">不触动封建根基的自强运动和改良主义、旧式的农民战争、资产阶级革命派领导的民主革命，以及照搬西方资本主义的其他种种方案，都不能完成反帝反封建的革命任务，都不能为中国找到真正的出路（旧民主主义革命没有为中华民族找到出路）</span>。旧民主主义革命的失败、近代中国革命形势的发展以及世界形势的新变化，迫切期待新的阶级及其政党领导新的革命，呼唤新的革命理论的产生。新民主主义革命理论在近代中国革命的实践中应运而生，它的形成也包含了对旧民主主义革命失败教训的深刻总结</li>\n</ul>\n</li>\n<li>\n<p>新民主主义革命的艰辛探索奠定了革命理论形成的实践基础</p>\n<ul>\n<li><span class=\"red\">新民主主义革命理论是在总结革命斗争正反两方面实践经验的基础上形成的，是对中国革命实践经验的概括和总结</span>。试想，没有两次国共合作的实践，怎么可能有关于统一战线的理论；没有建立和巩固农村根据地的实践，怎么可能有关于中国革命道路的理论；没有革命战争的实践，怎么可能有建立人民军队和关于军事战略的理论；没有在领导中国新民主主义革命历程中，党由小到大、由弱到强的实践，怎么可能有党的建设的理论。总之，<span class=\"red\">没有中国革命的实践，没有党对革命实践经验的科学概括和总结，新民主主义革命理论就无法形成和发展。新民主主义革命实践，是新民主主义理论得以形成的实践基础和智慧源泉</span></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>新民主主义革命的总路线</p>\n<ul>\n<li>新民主主义革命时期，党面临的主要任务是，<span class=\"rainbow\">反对帝国主义、封建主义、官僚资本主义</span>，争取民族独立、人民解放，为实现中华民族伟大复兴创造根本社会条件</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>官僚资本主义：半殖民地半封建国家中的买办的、封建的国家垄断资本主义</li>\n<li>为了抗日民族统一战线的坚持、扩大和巩固，中国共产党制定了 “发展进步势力、争取中间势力、孤立顽固势力” 的策略总方针；中间势力主要是指民族资产阶级、开明绅士和地方实力派</li>\n</ul>\n</li>\n<li>\n<p>新民主主义革命总路线的提出</p>\n<ul>\n<li>1939 年，毛泽东在《中国革命和中国共产党》一文中，第一次提出了新民主主义革命的科学概念和总路线的内容，指出 所谓新民主主义革命，就是在无产阶级领导之下的人民大众的反帝反封建的革命</li>\n<li>1948 年，毛泽东在《在晋绥干部会议上的讲话》中完整地表述了总路线的内容，指出：无产阶级领导的，人民大众的，反对帝国主义、封建主义和官僚资本主义的革命，这就是中国的新民主主义的革命，这就是中国共产党在当前历史阶段的总路线和总政策</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>在晋绥干部会议上的讲话》一文，<span class=\"red\">在革命对象中增加了 “官僚资本主义”</span>，因此，完整地论述了新民主主义革命总路线，并强调新民主主义革命总路线既是总路线又是总政策</li>\n</ul>\n</li>\n<li>\n<p>新民主主义革命的对象</p>\n<ul>\n<li><strong>分清敌友，这是革命的首要问题</strong></li>\n<li>帝国主义是中国革命的首要对象</li>\n<li>封建主义是中国革命的另一对象</li>\n<li>官僚资本主义也是中国革命的对象，官僚资本主义是依靠帝国主义、勾结封建势力、利用国家政权力量而发展起来的买办的、封建的国家垄断资本主义。\n<ul>\n<li>反对官僚资本主义并非因为它是资本主义，而是因为这种资本主义同外国帝国主义、本国地主阶级和旧式富农密切地结合着，具有买办性、封建性和垄断性。</li>\n</ul>\n</li>\n<li>从总体上说，中国革命的对象是帝国主义、封建主义和官僚资本主义。但是，在不同历史阶段，随着社会主要矛盾的变化，革命的主要对象有所不同:<br />\n<img data-src=\"/img/polictics/%E4%B8%8D%E5%90%8C%E9%98%B6%E6%AE%B5%E9%9D%A9%E5%91%BD%E7%9A%84%E4%B8%BB%E8%A6%81%E5%AF%B9%E8%B1%A1.png\" alt=\"不同阶段革命的主要对象\" /></li>\n</ul>\n</li>\n<li>\n<p>民族革命与民主革命的相互关系</p>\n<ul>\n<li>帝国主义和封建主义相互勾结，残酷地压迫和掠夺中国人民，严重地阻碍着中国社会向前发展。<span class=\"red\">中国革命主要地就是打击这两个敌人，就是对外推翻帝国主义压迫的民族革命和对内推翻封建地主压迫的民主革命</span></li>\n</ul>\n</li>\n<li>\n<p>新民主主义革命的动力</p>\n<ul>\n<li>新民主主义革命的动力包括无产阶级、农民阶级、城市小资产阶级和民族资产阶级<span class=\"rainbow\">四大动力</span>；中国无产阶级、农民、知识分子和其他小资产阶级，乃是决定国家命运的基本势力<br />\n<img data-src=\"/img/polictics/%E6%96%B0%E6%B0%91%E4%B8%BB%E4%B8%BB%E4%B9%89%E9%9D%A9%E5%91%BD%E9%9D%A9%E5%91%BD%E5%9B%9B%E5%A4%A7%E5%8A%A8%E5%8A%9B.png\" alt=\"新民主主义革命革命四大动力\" /></li>\n<li>中国无产阶级是中国革命最基本的动力，无产阶级是中国沦为半殖民地半封建社会过程中，最早出现的一个新的社会阶级，是新的社会生产力的代表，是近代中国最进步的阶级，是中国革命的领导力量。</li>\n<li>农民是中国革命的主力军，其中的贫雇农是无产阶级最可靠的同盟军，而中农是无产阶级可靠的同盟军。农民问题是中国革命的基本问题，新民主主义革命实质上就是中国共产党领导下的农民革命，中国革命战争实质上就是党领导下的农民战争。工人阶级只有与农民阶级结成巩固的联盟，才能形成强大的力量，才能完成反帝反封建的革命任务。工人阶级对农民的领导，是实现革命领导权的基础。当然，没有工人阶级及其政党的领导，农民的革命动力作用也无法得到充分发挥</li>\n<li>城市小资产阶级是中国革命的动力之一：城市小资产阶级包括广大的知识分子、小商人手工业者和自由职业者，同样受帝国主义、封建主义和官僚资本主义的压迫和掠夺，日益走向破产和没落。因此，城市小资产阶级同样是中国革命的动力之一，是无产阶级的可靠同盟者【不要把诚市小资产阶级看作资产阶级的组成部分，中国的资产阶级区分为官僚资产阶级（大资产阶级）与民族资产阶级。城市小资产阶级是劳动者，不是剥削阶级】</li>\n<li>民族资产阶级也是中国革命的动力之一：民族资产阶级是一个带有两面性的阶级。一方面，民族资产阶级既受帝国主义的压迫，又受封建主义的束缚，它同帝国主义和封建主义有矛盾，具有革命的要求，是革命的力量之一。另一方面，由于它在经济上和政治上与帝国主义和封建主义有着千丝万缕的联系，没有彻底的反帝反封建的勇气，即使在革命时，也不愿意同帝国主义完全分裂，并且他们同农村中的地租剥削有密切联系，在革命的关键时刻表现出明显的动摇性。民族资产阶级的这种两重性，是由它的软弱性决定的。因此，民族资产阶级虽然也是新民主主义革命的动力之一，但既不能充当革命的主要力量，更不可能是革命的领导力量。中国共产党对民族资产阶级在政治上争取它，对其动摇性和妥协性进行批评和斗争，采取又联合又斗争的政策，在经济上实行保护民族工商业的政策<br />\n<img data-src=\"/img/polictics/%E6%B0%91%E6%97%8F%E8%B5%84%E4%BA%A7%E9%98%B6%E7%BA%A7.png\" alt=\"民族资产阶级\" /></li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>\n<p>为了抗日民族统一战线的坚持、扩大和巩固，中国共产党制定了 “发展进步势力、争取中间势力、孤立顽固势力” 的策略总方针；</p>\n</li>\n<li>\n<p><span class=\"blue\">中间势力主要是指民族资产阶级、开明绅士和地方实力派</span>；</p>\n</li>\n<li>\n<p><span class=\"red\">进步势力主要是指工人、农民和城市小资产阶级</span><br />\n<img data-src=\"/img/polictics/%E6%96%B0%E6%B0%91%E4%B8%BB%E4%B8%BB%E4%B9%89%E9%9D%A9%E5%91%BD%E7%9A%84%E6%80%BB%E8%B7%AF%E7%BA%BF.png\" alt=\"新民主主义革命的总路线\" /></p>\n</li>\n</ul>\n</li>\n<li>\n<p>新民主主义革命的领导力量</p>\n<ul>\n<li>无产阶级的领导权是中国革命的中心问题，也是新民主主义革命理论的核心问题：区别新旧两种不同范畴的民主主义革命，根本的标志是革命的领导权由无产阶级掌握还是由资产阶级掌握</li>\n<li>无产阶级的领导权是由历史和中国无产阶级的特点决定的：由于帝国主义不允许中国民族资产阶级建立独立的资产阶级共和国，而是要把中国变成它们的殖民地和半殖民地；由于中国民族资产阶级的软弱性和妥协性，它们不愿意也不能够彻底推翻帝国主义和封建势力；由于中国无产阶级的强大和革命的彻底性，领导中国革命取得成功的重任，历史地落到了中国无产阶级及其政党的肩上。新民主主义革命不能由任何别的阶级和任何别的政党充当领导者，只能和必须由无产阶级及其政党充当领导者。无产阶级及其政党的领导，是中国革命取得胜利的根本保证</li>\n<li>无产阶级及其政党对中国革命的领导权不是自然而然得来的，而是在与资产阶级争夺领导权的斗争中实现的\n<ul>\n<li>第一，实现领导权的基本条件。毛泽东指出：领导的阶级和政党，要实现自己对于被领导的阶级、阶层、政党和人民团体的领导，必须具备两个条件：（甲）率领被领导者（同盟者）向着共同敌人作坚决的斗争，并取得胜利；（乙）对被领导者给以物质福利，至少不损害其利益，同时对被领导者给以政治教育。没有这两个条件或两个条件缺一，就不能实现领导。”</li>\n<li>第二，无产阶级及其政党实现对各革命阶级的领导，必须建立以工农联盟为基础的广泛的统一战线，这是实现领导权的关键</li>\n<li>第三，无产阶级在同资产阶级建立统一战线时，必须坚持独立自主的原则，保持党在思想上、政治上和组织上的独立性，实行又联合又斗争的方针，这是坚持领导权的基本策略。</li>\n<li>第四，无产阶级要保待在民主革命中的领导权，就必须建立和发展人民的革命武装力量，建立一支无产阶级领导的以农民为主体的强大的革命武装，这是保证领导权的坚强支柱。</li>\n<li>第五，加强无产阶级政党的建设，是实现领导权的根本保证</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>新民主主义革命的性质和前途</p>\n<ul>\n<li>社会性质和革命任务决定革命性质\n<ul>\n<li>近代中国半殖民地半封建社会的性质和中国革命的历史任务，决定了新民主主义革命的性质不是无产阶级社会主义革命，而是资产阶级民主主义革命。但是，中国的资产阶级民主主义革命已不是旧式的、一般的资产阶级民主主义的革命，而是新的民主主义革命</li>\n</ul>\n</li>\n<li>新旧民主主义革命的区别\n<ul>\n<li>新民主主义革命与旧民主主义革命相比有其新的内容和特点，集中表现在新民主主义革命处于世界无产阶级社会主义革命的时代，是世界无产阶级社会主义革命的一部分；革命的领导力量是中同无产阶级及其先锋队 —— 中国共产党（这是与旧民主主义革命的根本区别）；革命的指导思想是马克思列宁主义；革命的前途是社会主义而不是资本主义。</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"新民主主义革命理论\"><a class=\"anchor\" href=\"#新民主主义革命理论\">#</a> 新民主主义革命理论</h3>\n<div class=\"note primary\">\n<p>新民主主义革命理论形成的依据</p>\n</div>\n<ul>\n<li>\n<p>国情：半殖民地半封建社会</p>\n</li>\n<li>\n<p>主要矛盾：帝国主义和中华名族的矛盾、封建主义和人民大众的矛盾</p>\n</li>\n<li>\n<p>根本任务：推翻 &quot;三座大山&quot;</p>\n</li>\n<li>\n<p>革命性质：资产阶级民主革命</p>\n</li>\n<li>\n<p>总路线：无产阶级领导的，人民大众的，反帝，反封建，反官僚资本主义的革命</p>\n</li>\n<li>\n<p>基本纲领：新民主主义的政治、经济、文化纲领</p>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>新民主主义革命理论的实践基础</p>\n</div>\n<ul>\n<li>\n<p>旧民主主义革命的失败呼唤新的革命理论的诞生</p>\n</li>\n<li>\n<p>新民主主义革命的实践探索奠定了革命理论形成的基础</p>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>新民主主义革命的总路线和基本纲领</p>\n</div>\n<ul>\n<li>新民主主义革命的总路线\n<ol>\n<li>新民主主义革命的对象</li>\n</ol>\n<ul>\n<li>帝国主义</li>\n<li>封建主义</li>\n<li>官僚资本主义</li>\n<li>不同时期的不同革命对象</li>\n</ul>\n<ol start=\"2\">\n<li>新民主主义革命的动力</li>\n</ol>\n<ul>\n<li>无产阶级</li>\n<li>农名阶级</li>\n<li>城市小资产阶级</li>\n<li>民族资产阶级</li>\n</ul>\n<ol start=\"3\">\n<li>新民主主义革命的领导</li>\n</ol>\n<ul>\n<li>\n<p>无产阶级领导权的重要性</p>\n</li>\n<li>\n<p>无产阶级的特点和优点</p>\n</li>\n<li>\n<p>无产阶级领导权的实现</p>\n<ol>\n<li>条件：率领被领导者斗争并取得胜利；给被领导者以物质福利，并进行政治教育</li>\n<li>关键：建立以工农联盟为基础的广泛的统一战线</li>\n<li>基本策略：保持党在思想上，政治上和组织上的独立性，实行又联合又斗争的方针</li>\n<li>坚强支柱：革命武装力量</li>\n<li>根本保证：党的建设</li>\n</ol>\n</li>\n</ul>\n<ol start=\"4\">\n<li>新民主主义革命的性质和前途</li>\n</ol>\n<ul>\n<li>新民主主义革命与旧民主主义革命的比较</li>\n<li>新民主主义革命与社会主义革命的比较</li>\n<li>中国革命分 &quot;两步走&quot;</li>\n<li>&quot;左&quot; 倾和右倾两种错误思想</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>新民主主义的基本纲领</p>\n</div>\n<ul>\n<li>\n<p>新民主主义的政治纲领</p>\n</li>\n<li>\n<p>新民主主义的经济纲领</p>\n</li>\n<li>\n<p>新民主主义的文化纲领 （民族的，科学的，人民大众的）</p>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>新民主主义革命的道路和基本经验</p>\n</div>\n<ol>\n<li>新民主主义革命道路的提出</li>\n</ol>\n<ul>\n<li>道路理论的初步形成：秋收起义失败后</li>\n<li>道理的最终确立：党的六届六中全会上明确提出</li>\n</ul>\n<ol start=\"2\">\n<li>新民主主义革命道路形成的必然性</li>\n</ol>\n<ul>\n<li>必然性：中国革命的主要斗争形式只能是<span class=\"rainbow\">武装斗争</span></li>\n<li>可能性: <span class=\"rainbow\">群众基础好</span></li>\n</ul>\n<ol start=\"3\">\n<li>新民主主义革命道路的内容及意义</li>\n</ol>\n<ul>\n<li>怎样走条道路</li>\n<li>走这条道路的意义</li>\n</ul>\n<div class=\"note primary\">\n<p>新民主主义革命的三大法宝</p>\n</div>\n<ul>\n<li>统一战线\n<ul>\n<li>第一次国共合作统一战线</li>\n<li>工农民主统一战线</li>\n<li>抗日民族统一战线</li>\n<li>人民民主统一战线</li>\n</ul>\n</li>\n<li>武装斗争\n<ul>\n<li>坚持党对军队的绝对领导</li>\n<li>建设全心全意为人民服务的人民军队</li>\n<li>坚持正确的战略战术原则</li>\n</ul>\n</li>\n<li>党的建设\n<ul>\n<li>思想建设</li>\n<li>组织建设</li>\n<li>作风建设</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>新民主主义革命理论的意义</p>\n</div>\n<ul>\n<li>理论上：极大地丰富了马克思主义的理论宝库</li>\n<li>实践上：开创了中国历史的新纪元</li>\n<li>国际上：增强了世界人民争取和平的力量</li>\n</ul>\n<h3 id=\"社会主义改造理论\"><a class=\"anchor\" href=\"#社会主义改造理论\">#</a> 社会主义改造理论</h3>\n<div class=\"note primary\">\n<p>从新民主主义到社会主义的转变</p>\n</div>\n<ul>\n<li>新民主主义社会的性质和特点\n<ul>\n<li>经济方面</li>\n</ul>\n</li>\n</ul>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\">性质</th>\n<th style=\"text-align:center\">五种经济成分</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">社会主义性质</td>\n<td style=\"text-align:center\">国营经济 (领导地位)</td>\n</tr>\n<tr>\n<td style=\"text-align:center\" rowspan=\"2\">过度性质 (半社会主义性质)</td>\n<td style=\"text-align:center\">合作社经济</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">国家资本主义经济</td>\n</tr>\n<tr>\n<td style=\"text-align:center\" rowspan=\"2\">非社会主义性质</td>\n<td style=\"text-align:center\">农民和手工业者的个体经济 (绝对优势)</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">私人资本主义经济</td>\n</tr>\n</tbody>\n</table>\n<ul>\n<li>政治方面\n<ul>\n<li>既有剥削工人的一面，又有接受工人阶级及其政党领导的一面。</li>\n</ul>\n</li>\n<li>新民主主义社会的性质：新民主主义社会是属于社会主义体系的</li>\n</ul>\n<div class=\"note primary\">\n<p>党在过渡时期的总路线及其理论依据</p>\n</div>\n<ol>\n<li>党在过渡时期的总路线提出</li>\n</ol>\n<ul>\n<li>主要内容 &quot;一化三改&quot;:\n<ul>\n<li>一化：社会主义工业化，</li>\n<li>三改：个体农业、手工业和资本主义工商业的社会主义改造</li>\n</ul>\n</li>\n</ul>\n<ol start=\"2\">\n<li>党在过渡时期的总路线的理论依据</li>\n</ol>\n<div class=\"note primary\">\n<p>社会主义改造道路和历史经验</p>\n</div>\n<ul>\n<li>适合中国特点的社会主义改造道路\n<ul>\n<li>农业的社会主义改造\n<ul>\n<li>互助组</li>\n<li>初级农业生产合作社</li>\n<li>高级社</li>\n</ul>\n</li>\n<li>手工业的社会主义改造\n<ul>\n<li>手工业供销小组</li>\n<li>手工业供销合作社</li>\n<li>手工业生产合作社</li>\n</ul>\n</li>\n<li>资本主义工商业的社会主义改造\n<ul>\n<li>初级形式的国家资本主义</li>\n<li>个别企业的公私合营</li>\n<li>全行业的公私合营</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>社会主义改造的历史经验</p>\n</div>\n<ul>\n<li>坚持社会主义工业化建设与社会主义改造并举</li>\n<li>采取积极引导、逐步过渡的方式</li>\n<li>用和平方法进行改造</li>\n</ul>\n<div class=\"note primary\">\n<p>社会主义基本制度在中国的确立</p>\n</div>\n<ul>\n<li>经济基础</li>\n<li>上层建筑</li>\n<li>阶级关系</li>\n</ul>\n<div class=\"note primary\">\n<p>确立社会主义基本制度的重大意义</p>\n</div>\n<ol>\n<li>社会主义基本制度的确立是中国历史上最深刻最伟大的社会变革，为当代中国一切发展进步奠定了制度基础，也为中国特色社会主义制度的创新和发展提供了重要前提。</li>\n<li>社会主义基本制度的确立，极大地提高了工人阶级和广大劳动人民的积极性、创造性，极大地促进了我国社会生产力的发展，初步显示了社会主义的优越性。</li>\n<li>社会主义基本制度的确立，使广大劳动人民真正成为国家的主人。</li>\n<li>中国社会主义基本制度的确立，使占世界人口 1/4 的东方大国进入了社会主义社会，这是世界社会主义运动史上又一个历史性的伟大胜利。</li>\n<li>社会主义基本制度的确立，是以毛泽东为主要代表的中国共产党人对一个脱胎于半殖民地半封建的东方大国如何进行社会主义革命问题的系统回答和正面解决，是马克思列宁主义关于社会主义关于社会主义革命理论在中国的正确运用和创造性发展的结果。<span class=\"red\">它不仅再次证明了马克思列宁主义的真理性，而且以其独创性的理论原则和经验总结丰富和发展了马克思主义的科学社会主义理论</span>。</li>\n</ol>\n<h3 id=\"社会主义建设道路初步探索的理论成果\"><a class=\"anchor\" href=\"#社会主义建设道路初步探索的理论成果\">#</a> 社会主义建设道路初步探索的理论成果</h3>\n<div class=\"note primary\">\n<p>初步探索的重要理论成果</p>\n</div>\n<ul>\n<li>调动一切积极因素为社会主义事业服务\n<ol>\n<li>必须坚持中国共产党的领导</li>\n<li>必须发展社会主义民主政治</li>\n<li>有一个如何认识社会主义发展阶段和社会主义建设规律的问题</li>\n</ol>\n</li>\n<li>正确认识和处理社会主义社会矛盾的思想\n<ol>\n<li>关于社会主义社会的基本矛盾</li>\n</ol>\n<ul>\n<li>生产关系和生产力的矛盾</li>\n<li>上层建筑和经济基础的矛盾</li>\n</ul>\n<ol start=\"2\">\n<li>关于我国社会的主要矛盾和根本任务</li>\n</ol>\n<ul>\n<li>先进的工业国同落后的农业国的现实之间的矛盾</li>\n</ul>\n<ol start=\"3\">\n<li>关于社会主义社会存在两类不同性质社会矛盾的理论</li>\n</ol>\n<ul>\n<li>敌我矛盾</li>\n<li>人民内部矛盾</li>\n</ul>\n<ol start=\"4\">\n<li>关于正确处理两类不同性质社会矛盾的基本方法</li>\n</ol>\n<ul>\n<li>敌我矛盾 (采用专政的方法)</li>\n<li>人民内部矛盾 (民主的方法)</li>\n</ul>\n<ol start=\"5\">\n<li>关于正确处理人民内部矛盾的方针</li>\n</ol>\n<ul>\n<li>团结 - 批评 - 团结</li>\n</ul>\n<ol start=\"6\">\n<li>关于区分两类不同性质矛盾和正确处理人民内部矛盾的目的和意义</li>\n</ol>\n<ul>\n<li>毛泽东强调，关于正确处理人民内部矛盾的问题是社会主义国家政治生活的主题。</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>走中国工业化道路的思想</p>\n</div>\n<ul>\n<li>中国工业化道路的问题</li>\n<li>走中国工业化道路的要求 (六个必须)\n<ol>\n<li>必须明确战略目的和战略步骤</li>\n<li>必须采取正确的经济建设方针</li>\n<li>必须发展科学技术和文化教育</li>\n<li>必须重视知识分子工作</li>\n<li>必须调整和完善所有制结构</li>\n<li>必须积极探索适合我国情况的经济体制和运行机制</li>\n</ol>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>初步探索的意义和经验教训</p>\n</div>\n<ul>\n<li>初步探索的意义\n<ol>\n<li>巩固和发展了我国社会主义制度</li>\n<li>为开创中国特色社会主义提供了宝贵经验、理论准备、物质基础</li>\n<li>丰富了科学社会主义的理论和实践</li>\n</ol>\n</li>\n<li>初步探索的经验教训\n<ol>\n<li>必须把马克思主义与中国实际相结合，探索符合中国特点的社会主义建设道路</li>\n<li>必须正确认识社会主义社会的主要矛盾和根本任务，集中力量发展生产力</li>\n<li>必须从实际出发进行社会主义建设，建设规模和速度要和国力相适应，不能急于求成。</li>\n<li>必须发展社会主义民主，健全社会主义法制</li>\n<li>必须坚持党的民主集中制和集体领导制度，加强执政党建设</li>\n<li>必须坚持对外开放、借鉴和吸收人类文明成果建设社会主义，不能关起门来搞建设。</li>\n</ol>\n</li>\n<li>改革开放前后的两个历史时期及其关系\n<ul>\n<li>改革开放前</li>\n<li>改革开放后</li>\n<li>两者相互联系却又有重大区别，但本质上都是我们党领导人民进行社会主义建设的实践探索。后者是对前者一个时期的坚持、改革、发展。</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"中国特色社会主义理论体系\"><a class=\"anchor\" href=\"#中国特色社会主义理论体系\">#</a> 中国特色社会主义理论体系</h2>\n<h3 id=\"邓小平理论\"><a class=\"anchor\" href=\"#邓小平理论\">#</a> 邓小平理论</h3>\n<h4 id=\"邓小平理论的形成\"><a class=\"anchor\" href=\"#邓小平理论的形成\">#</a> 邓小平理论的形成</h4>\n<div class=\"note primary\">\n<p>邓小平理论的形成条件</p>\n</div>\n<ul>\n<li>时代背景：和平与发展成为时代主题</li>\n<li>历史根据：社会主义建设的经验教训</li>\n<li>现实依据：改革开放和现代化建设的时间</li>\n</ul>\n<div class=\"note primary\">\n<p>邓小平理论的形成过程</p>\n</div>\n<ol>\n<li>党的十一届三中全会：重新确立解放思想、实事求是的思想路线</li>\n<li>党的十二大：&quot;中国特色社会主义&quot; 成为理论和实践创新的主题</li>\n<li>党的十三大：第一次对中国特色社会主义理论进行系统概括，邓小平理论轮廓形成</li>\n<li>南方谈话：邓小平理论走向成熟</li>\n<li>党的十四大：高度评价了邓小平对创新中国特色社会主义理论的贡献</li>\n<li>党的十五大：正式命名 &quot;邓小平理论&quot; 并写入党章</li>\n</ol>\n<ul>\n<li>重要会议内容 (1978 - 1997)</li>\n</ul>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\">重要会议</th>\n<th style=\"text-align:left\">考点内容</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\" rowspan=\"3\">党的十一届三中全会</td>\n<td style=\"text-align:left\">(1) 彻底否定 &quot;两个凡是&quot; 的错误方针，果断结束 “以阶级斗争为纲” 的口号</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">(2) 高度评价关于真理标准问题的讨论，重新确立了党的思想路线、政治路线、组织路线</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">(3) 实现党和国家工作中心战略转移，开启了改革开放和社会主义现代化建设新时期，实现了新中国成立以来党的历史上最具有深远意义的伟大转折</td>\n</tr>\n</tbody>\n<tbody>\n<tr>\n<td style=\"text-align:center\" rowspan=\"3\">党的十一届六中全会</td>\n<td style=\"text-align:left\">(1) 科学评价了毛泽东和毛泽东思想</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">(2) 提出了毛泽东思想的活的灵魂是 “实事求是、群众路线、独立自主”</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">(3) 第一次使用 “社会主义初级阶段” 的提法</td>\n</tr>\n</tbody>\n<tbody>\n<tr>\n<td style=\"text-align:center\">党的十二大</td>\n<td style=\"text-align:left\">(1) “中国特色社会主义” 成为我们党的全部理论和实践创新的主题</td>\n</tr>\n<tr>\n<td style=\"text-align:center\" rowspan=\"4\">党的十三大</td>\n<td style=\"text-align:left\">(1) 第一次对 &quot;社会主义初级阶段&quot; 理论作了系统阐述</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">(2) 提出了社会主义初级阶段的基本路线 “一个中心，两个基本点”</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">(3) 第一次对中国特色社会主义理论做了系统概括</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">(4) 邓小平理论轮廓形成</td>\n</tr>\n</tbody>\n<tbody>\n<tr>\n<td style=\"text-align:center\" rowspan=\"2\">党的十四大</td>\n<td style=\"text-align:left\">(1) 明确了建立社会主义市场经济体制的改革目标</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">(2) 高度评价了邓小平对创新中国特色社会主义理论党的贡献</td>\n</tr>\n<tr>\n<td style=\"text-align:center\" rowspan=\"2\">党的十五大</td>\n<td style=\"text-align:left\">(1) 把邓小平理论写入党章</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">(2) 指出 &quot;公有制为主体、多种所有制经济共同发展&quot; 是我国社会主义初级阶段的一项基本经济制度</td>\n</tr>\n</tbody>\n</table>\n<h4 id=\"邓小平理论的基本问题和主要内容\"><a class=\"anchor\" href=\"#邓小平理论的基本问题和主要内容\">#</a> 邓小平理论的基本问题和主要内容</h4>\n<div class=\"note primary\">\n<p>邓小平理论回答的基本问题</p>\n</div>\n<ol>\n<li>邓小平理论首要的基本理论问题：什么是社会主义、怎样建设社会主义</li>\n<li>社会主义的本质</li>\n</ol>\n<ul>\n<li>解放生产力，发展生产力，消灭剥削，消除两极分化，最终达到共同富裕。</li>\n</ul>\n<ol start=\"3\">\n<li>两条根本原则</li>\n</ol>\n<ul>\n<li>以社会主义公有制经济为主体</li>\n<li>共同富裕</li>\n</ul>\n<div class=\"note primary\">\n<p>邓小平理论的主要内容</p>\n</div>\n<ul>\n<li>解放思想、实事求是的思想路线</li>\n<li>社会主义初级阶段理论</li>\n<li>党的基本路线</li>\n<li>社会主义根本任务的理论</li>\n<li>&quot;三步走&quot; 战略</li>\n<li>改革开放理论</li>\n<li>社会主义市场经济理论</li>\n<li>两手抓，两手都要硬</li>\n<li>一国两制\n<ul>\n<li>和平统一，一国两制</li>\n<li>两制并存</li>\n<li>高度自治</li>\n</ul>\n</li>\n<li>中国问题的关键在于党</li>\n</ul>\n<h4 id=\"邓小平理论的历史地位\"><a class=\"anchor\" href=\"#邓小平理论的历史地位\">#</a> 邓小平理论的历史地位</h4>\n<ul>\n<li>马克思列宁主义、毛泽东思想的继承和发展</li>\n<li>中国特色社会主义理论体系的开篇之作</li>\n<li>改革开放和社会主义现代化建设的科学指南</li>\n</ul>\n<h3 id=\"三个代表重要思想\"><a class=\"anchor\" href=\"#三个代表重要思想\">#</a> 三个代表重要思想</h3>\n<h4 id=\"三个代表重要思想的形成\"><a class=\"anchor\" href=\"#三个代表重要思想的形成\">#</a> 三个代表重要思想的形成</h4>\n<div class=\"note primary\">\n<p>三个代表重要思想的形成条件</p>\n</div>\n<ul>\n<li>“三个代表” 重要思想是在对冷战结束后国际局势科学判断的基础上形成的</li>\n<li>“三个代表” 重要思想是在科学判断党的历史方位和总结历史经验的基础上提出来的</li>\n<li>“三个代表” 重要思想是在建设中国特色社会主义伟大实践的基础上形成的。</li>\n</ul>\n<div class=\"note primary\">\n<p>三个代表重要思想的形成过程</p>\n</div>\n<ul>\n<li>首次阐述 2000 年 2 月 25 日</li>\n<li>回答主题 2000 年 6 月 9 日</li>\n<li>全面阐述 2001 年 7 月 1 日</li>\n<li>写入党章 2002 年党的十六大</li>\n</ul>\n<h4 id=\"三个代表-重要思想的核心观点和主要内容\"><a class=\"anchor\" href=\"#三个代表-重要思想的核心观点和主要内容\">#</a> “三个代表” 重要思想的核心观点和主要内容</h4>\n<div class=\"note primary\">\n<p>“三个代表” 重要思想的核心观点</p>\n</div>\n<ul>\n<li>始终代表中国<span class=\"red\">先进生产力的发展要求</span></li>\n<li>始终代表中国<span class=\"red\">先进文化的前进方向</span></li>\n<li>始终代表中国<span class=\"red\">最广大人民的根本利益</span></li>\n</ul>\n<div class=\"note primary\">\n<p>“三个代表” 重要思想的主要内容</p>\n</div>\n<ul>\n<li>\n<p>发展是党执政兴国的第一要务</p>\n</li>\n<li>\n<p>建立社会主义市场经济体制</p>\n<ul>\n<li>所有制</li>\n<li>分配至</li>\n<li>建立和完善社会保障体系</li>\n</ul>\n</li>\n<li>\n<p>全面建设小康社会</p>\n</li>\n<li>\n<p>建设社会主义政治文明</p>\n<ul>\n<li>依法治国</li>\n</ul>\n</li>\n<li>\n<p>推进党的建设新的伟大工程</p>\n</li>\n</ul>\n<h4 id=\"三个代表-重要思想的历史地位\"><a class=\"anchor\" href=\"#三个代表-重要思想的历史地位\">#</a> “三个代表” 重要思想的历史地位</h4>\n<ul>\n<li>中国特色社会主义理论体系的丰富发展</li>\n<li>加强和改进党的建设，推进中国特色社会主义事业的强大理论武器</li>\n</ul>\n<h3 id=\"科学发展观\"><a class=\"anchor\" href=\"#科学发展观\">#</a> 科学发展观</h3>\n<h4 id=\"科学发展观的形成\"><a class=\"anchor\" href=\"#科学发展观的形成\">#</a> 科学发展观的形成</h4>\n<div class=\"note primary\">\n<p>科学发展观的形成条件</p>\n</div>\n<ul>\n<li>现实依据：社会主义初级阶段基本国情和新的阶段性特征</li>\n<li>实践基础：改革开放以来的实践经验</li>\n<li>时代背景：当今世界发展大势、国外发展的经验教训</li>\n</ul>\n<div class=\"note primary\">\n<p>科学发展观的形成过程</p>\n</div>\n<ul>\n<li>第一次提出：党的十六届三中全会</li>\n<li>走向成熟：党的十七大</li>\n<li>发展完善：党的十八大</li>\n</ul>\n<h4 id=\"科学发展观的科学内涵和主要内容\"><a class=\"anchor\" href=\"#科学发展观的科学内涵和主要内容\">#</a> 科学发展观的科学内涵和主要内容</h4>\n<ul>\n<li>推动经济社会发展是科学发展观的第一要义</li>\n<li>以人为本是科学发展观的核心立场</li>\n<li>全面协调可持续是科学发展观的基本要求</li>\n<li>统筹兼顾是科学发展观的根本方法</li>\n</ul>\n<div class=\"note primary\">\n<p>科学发展观的主要内容</p>\n</div>\n<ol>\n<li>加快转变经济发展形势</li>\n<li>发展社会主义民主政治</li>\n<li>推进社会主义文化强国建设</li>\n<li>构建社会主义和谐社会</li>\n<li>推进生态文明建设</li>\n<li>全面提高党的建设科学化水平</li>\n</ol>\n<h4 id=\"科学发展观的历史地位\"><a class=\"anchor\" href=\"#科学发展观的历史地位\">#</a> 科学发展观的历史地位</h4>\n<div class=\"note primary\">\n<p>科学发展观的重要意义</p>\n</div>\n<ul>\n<li>中国特色社会主义理论体系的接续发展</li>\n<li>全面建设小康社会、加快推进社会主义现代化的根本指针</li>\n</ul>\n<h2 id=\"习近平新时代中国特色社会主义思想\"><a class=\"anchor\" href=\"#习近平新时代中国特色社会主义思想\">#</a> 习近平新时代中国特色社会主义思想</h2>\n<h3 id=\"习近平新时代中国特色社会主义思想及其历史地位\"><a class=\"anchor\" href=\"#习近平新时代中国特色社会主义思想及其历史地位\">#</a> 习近平新时代中国特色社会主义思想及其历史地位</h3>\n<h4 id=\"习近平新时代中国特色社会主义思想创立的社会历史条件\"><a class=\"anchor\" href=\"#习近平新时代中国特色社会主义思想创立的社会历史条件\">#</a> 习近平新时代中国特色社会主义思想创立的社会历史条件</h4>\n<div class=\"note primary\">\n<p>中国特色社会主义进入新时代</p>\n</div>\n<ul>\n<li>党和人民事业具有重大现实意义和深远历史意义的三件大事\n<ul>\n<li>迎来了中国共产党成立一百周年</li>\n<li>中国特色社会主义进入新时代</li>\n<li>完成脱贫攻坚、全面建成小康社会的历史任务</li>\n</ul>\n</li>\n<li>中国特色社会主义进入新时代是我国社会主要矛盾转化的必然结果\n<ul>\n<li>我国社会生产力水平总体上显著提高，很多方面进入世界前列</li>\n<li>人民生活水平显著提高，对美好生活的向往更加强烈，不仅对物质文化生活提出了更高要求，而且在民主、法治、正义、安全、环境等方面的要求日益增长</li>\n<li>发展的不平衡不充分的问题</li>\n<li>对党和国家工作提出的新要求</li>\n<li>两个没有变</li>\n</ul>\n</li>\n<li>中国特色社会主义进入新时代具有丰富内涵和深远意蕴 (&quot;五个是&quot;)</li>\n<li>中国特色社会主义进入新时代的重大意义 (&quot;三个意味着&quot;)</li>\n</ul>\n<div class=\"note primary\">\n<p>世界百年未有之大变局</p>\n</div>\n<ul>\n<li>和平与发展仍然是时代主题，中国日益成为世界格局演变的主要推动力量</li>\n</ul>\n<div class=\"note primary\">\n<p>中华民族伟大复兴正处于关键时期</p>\n</div>\n<ul>\n<li>中国共产党是实现中华民族伟大复兴的根本保证</li>\n<li>中华优秀传统文化是中国民族的根和魂，是中国特色社会主义植根的文化沃土</li>\n</ul>\n<h4 id=\"习近平新时代中国特色社会主义思想的科学体系\"><a class=\"anchor\" href=\"#习近平新时代中国特色社会主义思想的科学体系\">#</a> 习近平新时代中国特色社会主义思想的科学体系</h4>\n<div class=\"note primary\">\n<p>习近平新时代中国特色社会主义思想的核心要义</p>\n</div>\n<ul>\n<li>坚持和发展中国特色社会主义，这也是改革开放以来我们党全部理论和实践的鲜明主题。</li>\n</ul>\n<div class=\"note primary\">\n<p>习近平新时代中国特色社会主义思想的主要内容</p>\n</div>\n<ul>\n<li>&quot;十个明确&quot;</li>\n<li>&quot;十四个坚持&quot;</li>\n<li>&quot;十三个方面成就&quot;</li>\n</ul>\n<div class=\"note primary\">\n<p>习近平新时代中国特色社会主义思想的世界观和方法论</p>\n</div>\n<ul>\n<li>必须坚持<span class=\"rainbow\">人民至上</span></li>\n<li>必须坚持<span class=\"rainbow\">自信自立</span></li>\n<li>必须坚持<span class=\"rainbow\">守正创新</span></li>\n<li>必须坚持<span class=\"rainbow\">问题导向</span></li>\n<li>必须坚持<span class=\"rainbow\">系统观念</span></li>\n<li>必须坚持<span class=\"rainbow\">胸怀天下</span></li>\n</ul>\n<h4 id=\"习近平新时代中国特色社会主义思想的历史地位\"><a class=\"anchor\" href=\"#习近平新时代中国特色社会主义思想的历史地位\">#</a> 习近平新时代中国特色社会主义思想的历史地位</h4>\n<div class=\"note primary\">\n<p>习近平新时代中国特色社会主义思想的重要意义</p>\n</div>\n<ul>\n<li>当代中国马克思主义，21 世纪马克思主义</li>\n<li>实现中华民族伟大复兴的行动指南</li>\n<li>建设美好世界的中国智慧和中国方案</li>\n</ul>\n<h3 id=\"坚持和发展中国特色社会主义的总任务\"><a class=\"anchor\" href=\"#坚持和发展中国特色社会主义的总任务\">#</a> 坚持和发展中国特色社会主义的总任务</h3>\n<h4 id=\"实现中华民族伟大复兴的中国梦\"><a class=\"anchor\" href=\"#实现中华民族伟大复兴的中国梦\">#</a> 实现中华民族伟大复兴的中国梦</h4>\n<div class=\"note primary\">\n<p>实现中华民族伟大复兴的中国梦</p>\n</div>\n<ul>\n<li>中国梦的提出</li>\n<li>中国梦的科学内涵\n<ul>\n<li>中国梦的本质：国家富强、民族振兴、人民幸福</li>\n</ul>\n</li>\n<li>中国梦的伟大意义</li>\n<li>奋力实现中国梦\n<ul>\n<li>怎样才能实现中国梦：走中国道路、弘扬中国精神、凝聚中国力量</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"以中国式现代化全面推进中华民族伟大复兴\"><a class=\"anchor\" href=\"#以中国式现代化全面推进中华民族伟大复兴\">#</a> 以中国式现代化全面推进中华民族伟大复兴</h4>\n<div class=\"note primary\">\n<p>中国共产党的中心任务</p>\n</div>\n<ul>\n<li>中国式现代化的中国特色</li>\n<li>中国式现代化的本质要求</li>\n<li>推进中国式现代化必须牢牢把握的重大原则\n<ul>\n<li><span class=\"rainbow\">领导力量</span>，坚持和加强党的全面领导</li>\n<li><span class=\"rainbow\">方向道路</span>，坚持中国特色社会主义道路</li>\n<li><span class=\"rainbow\">价值立场</span>，坚持以人民为中心的发展思想</li>\n<li><span class=\"rainbow\">根本动力</span>，坚持深化改革开放</li>\n<li><span class=\"rainbow\">精神状态</span>，坚持发扬斗争精神</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"五位一体-总体布局\"><a class=\"anchor\" href=\"#五位一体-总体布局\">#</a> 五位一体 总体布局</h3>\n<h3 id=\"四个全面-战略布局\"><a class=\"anchor\" href=\"#四个全面-战略布局\">#</a> 四个全面 战略布局</h3>\n<h3 id=\"实现中华民族伟大复兴的重要保障\"><a class=\"anchor\" href=\"#实现中华民族伟大复兴的重要保障\">#</a> 实现中华民族伟大复兴的重要保障</h3>\n<h3 id=\"中国特色大国外交\"><a class=\"anchor\" href=\"#中国特色大国外交\">#</a> 中国特色大国外交</h3>\n<h3 id=\"坚持和加强党的领导\"><a class=\"anchor\" href=\"#坚持和加强党的领导\">#</a> 坚持和加强党的领导</h3>\n",
            "tags": [
                "记录"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/09/09/doc/PubmedPolictics3/",
            "url": "https://hk2012.github.io/2023/09/09/doc/PubmedPolictics3/",
            "title": "2024考研政治 (中国近代史纲要)",
            "date_published": "2023-09-09T07:36:00.000Z",
            "content_html": "<h1 id=\"中国近代史纲要\"><a class=\"anchor\" href=\"#中国近代史纲要\">#</a> 中国近代史纲要</h1>\n<h2 id=\"旧民主主义革命时期\"><a class=\"anchor\" href=\"#旧民主主义革命时期\">#</a> 旧民主主义革命时期</h2>\n<h3 id=\"进入近代后中华民族的磨难与抗争\"><a class=\"anchor\" href=\"#进入近代后中华民族的磨难与抗争\">#</a> 进入近代后中华民族的磨难与抗争</h3>\n<div class=\"note info\">\n<p>鸦片战争前后的中国与世界</p>\n</div>\n<ul>\n<li>\n<p>中国封建社会的衰落</p>\n</li>\n<li>\n<p>世界资本主义的发展和殖民扩张</p>\n</li>\n<li>\n<p>鸦片战争的爆发</p>\n</li>\n<li>\n<p>近代中国社会的半殖民地半封建性质</p>\n</li>\n<li>\n<p>近代中国的主要矛盾和历史任务</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>西方列强对中国的侵略</p>\n</div>\n<ul>\n<li>\n<p>军事侵略</p>\n</li>\n<li>\n<p>政治控制</p>\n</li>\n<li>\n<p>经济掠夺</p>\n</li>\n<li>\n<p>文化渗透</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>反抗外国武装侵略的斗争</p>\n</div>\n<ul>\n<li>\n<p>抵御外来侵略的斗争历程</p>\n</li>\n<li>\n<p>义和团运动</p>\n</li>\n<li>\n<p>列强瓜分中国图谋的破产</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>反侵略战争的失败与民族意识的觉醒</p>\n</div>\n<ul>\n<li>\n<p>反侵略战争的失败及其原因</p>\n</li>\n<li>\n<p>民族意识的觉醒</p>\n</li>\n</ul>\n<h3 id=\"不同社会力量对国家出路的早期探索\"><a class=\"anchor\" href=\"#不同社会力量对国家出路的早期探索\">#</a> 不同社会力量对国家出路的早期探索</h3>\n<div class=\"note info\">\n<p>太平天国运动的起落</p>\n</div>\n<ul>\n<li>\n<p>太平天国农民战争</p>\n</li>\n<li>\n<p>太平天国农民战争的意义和局限</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>洋务运动的兴衰</p>\n</div>\n<ul>\n<li>\n<p>洋务事业的兴办</p>\n</li>\n<li>\n<p>洋务运动的历史作用及其失败原因</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>戊戌维新运动的兴起和夭折</p>\n</div>\n<ul>\n<li>\n<p>戊戌维新运动的开展</p>\n</li>\n<li>\n<p>戊戌维新运动的历史意义、失败原因和教训</p>\n</li>\n</ul>\n<h3 id=\"辛亥革命与君主专制制度的终结\"><a class=\"anchor\" href=\"#辛亥革命与君主专制制度的终结\">#</a> 辛亥革命与君主专制制度的终结</h3>\n<div class=\"note info\">\n<p>举起近代民族民主革命的旗帜</p>\n</div>\n<ul>\n<li>\n<p>辛亥革命爆发的历史条件</p>\n</li>\n<li>\n<p>资产阶级革命派的活动</p>\n</li>\n<li>\n<p>三民主义学说和资产阶级共和国方案</p>\n</li>\n<li>\n<p>关于革命和改良的辩论</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>辛亥革命与中华民国的建立</p>\n</div>\n<ul>\n<li>\n<p>辛亥革命的爆发与清王朝的覆灭</p>\n</li>\n<li>\n<p>中华民国的建立</p>\n</li>\n<li>\n<p>辛亥革命的历史意义</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>北洋军阀统治与旧民主主义革命的失败</p>\n</div>\n<ul>\n<li>\n<p>封建军阀专制统治的形成</p>\n</li>\n<li>\n<p>旧民主主义革命的失败</p>\n</li>\n</ul>\n<h2 id=\"新民主主义革命时期\"><a class=\"anchor\" href=\"#新民主主义革命时期\">#</a> 新民主主义革命时期</h2>\n<h3 id=\"中国共产党成立和中国革命新局面\"><a class=\"anchor\" href=\"#中国共产党成立和中国革命新局面\">#</a> 中国共产党成立和中国革命新局面</h3>\n<ul>\n<li>\n<p>新文化运动与思想解放的潮流</p>\n</li>\n<li>\n<p>十月革命对中国的影响</p>\n</li>\n<li>\n<p>五四运动的发生和发展</p>\n</li>\n<li>\n<p>五四运动的历史特点与新民主主义革命的开端</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>马克思主义广泛传播与中国共产党诞生</p>\n</div>\n<ul>\n<li>\n<p>中国早期马克思主义思想运动</p>\n</li>\n<li>\n<p>马克思主义与中国工人运动的结合</p>\n</li>\n<li>\n<p>中国共产党的成立及其意义</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>中国革命的新局面</p>\n</div>\n<ul>\n<li>\n<p>制定革命纲领，发动工农运动</p>\n</li>\n<li>\n<p>实行国共合作和掀起大革命高潮</p>\n</li>\n<li>\n<p>大革命的失败及其原因</p>\n</li>\n<li>\n<p>大革命失败的经验教训和意义</p>\n</li>\n</ul>\n<h3 id=\"中国革命的新道路\"><a class=\"anchor\" href=\"#中国革命的新道路\">#</a> 中国革命的新道路</h3>\n<div class=\"note info\">\n<p>中国共产党对革命新道路的艰苦探索</p>\n</div>\n<ul>\n<li>\n<p>国民党在全国统治的建立</p>\n</li>\n<li>\n<p>土地革命战争的兴起</p>\n</li>\n<li>\n<p>农村包围城市、武装夺取政权的道路</p>\n<ol>\n<li>对中国革命新道路的探索</li>\n<li>反围剿战争与土地革命</li>\n</ol>\n</li>\n</ul>\n<div class=\"note info\">\n<p>中国革命在曲折中前进</p>\n</div>\n<ul>\n<li>\n<p>土地革命战争的发展及其挫折</p>\n</li>\n<li>\n<p>遵义会议与中国革命的历史性转折</p>\n</li>\n<li>\n<p>红军长征的胜利</p>\n</li>\n<li>\n<p>总结历史经验，迎接全民族抗日战争</p>\n</li>\n</ul>\n<h3 id=\"中华民族的抗日战争\"><a class=\"anchor\" href=\"#中华民族的抗日战争\">#</a> 中华民族的抗日战争</h3>\n<div class=\"note info\">\n<p>日本发动企图灭亡中国的侵略战争</p>\n</div>\n<ul>\n<li>\n<p>日本灭亡中国的计划及其实施</p>\n</li>\n<li>\n<p>残暴的殖民统治和中华民族的深重灾难</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>中国人民奋起抗击日本侵略者</p>\n</div>\n<ul>\n<li>\n<p>中国共产党举起武装抗日的旗帜</p>\n</li>\n<li>\n<p>抗日救亡运动</p>\n</li>\n<li>\n<p>一二・九运动</p>\n</li>\n<li>\n<p>西安事变</p>\n</li>\n<li>\n<p>抗日民族统一战线政策的形成</p>\n</li>\n<li>\n<p>全民族抗战开始</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>抗日战争的正面战争</p>\n</div>\n<ul>\n<li>\n<p>战略防御阶段和战略相持阶段的正面战场</p>\n<ul>\n<li>战略防御阶段的正面战场</li>\n<li>抗战初期正面战场败退的原因</li>\n<li>战略相持阶段的正面战场</li>\n<li>1938 年 10 月，广州、武汉失守，抗日战争进入相持阶段\n<ul>\n<li>日本对国民党的态度\n<ul>\n<li>政治诱降为主，军事打击为辅的方针</li>\n</ul>\n</li>\n<li>国民党对共产党的态度\n<ul>\n<li>“防共、限共、溶共、反共” 的方针</li>\n</ul>\n</li>\n<li>反法西斯联盟\n<ul>\n<li>1941 年 12 月，日军发动太平洋战争，美、英对日宣战，整个世界格局发生变化。</li>\n<li>1942 年元旦，由美、英、苏、中 4 国领衔，26 个国家签署《联合国家宣言》，决心互相合作，结成反法西斯联盟。</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info\">\n<p>中国共产党成为抗日战争的中流砥柱</p>\n</div>\n<ul>\n<li>全面抗战的路线和持久战的战略总方针\n<ul>\n<li>实行全面的全民族抗战的路线\n<ul>\n<li>洛川会议\n<ul>\n<li>中国共产党主张实行全面抗战的总路线，即人民战争路线</li>\n<li>制定了抗日救国十大纲领，强调要打倒日本帝国主义，关键在于使已经发动的抗战成为全面的全民族的抗战。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>采取持久战的战略总方针\n<ul>\n<li>毛泽东在抗日战争时期的文章，1938 年 5 月 6 日，毛泽东发表《论持久战》的讲演。</li>\n<li>抗日战争的发展阶段\n<ul>\n<li>战略防御</li>\n<li>战略相持</li>\n<li>战略反攻</li>\n</ul>\n</li>\n<li><span class=\"red\">战略相持阶段，是中国抗日战争取得最后胜利的最关键的阶段</span></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info\">\n<p>敌后战场的开辟与游击战争的发展及其战略地位</p>\n</div>\n<ul>\n<li>\n<p>敌后战场的开辟和发展</p>\n<ul>\n<li>敌后战场的胜利</li>\n<li>国共两党军队合作的胜利</li>\n</ul>\n</li>\n<li>\n<p>抗日游击战争的战略地位和作用</p>\n<ul>\n<li>在全民族抗战中，游击战被提到了战略地位，具有全局性的意义</li>\n<li>第一，在战略防御阶段，从全局看，国民党正面战场的正规战是主要的，敌后的游击战是辅助的。</li>\n<li>第二，在战略相持阶段，敌后游击战成为主要的抗日战争作战方式。对华北日军发动了一场大规模的以破袭敌人交通线为重要目标的进攻战役。这就是<span class=\"label\">百团大战</span></li>\n<li>第三，游击战还为人民军队进行战略反攻准备了条件。</li>\n</ul>\n</li>\n<li>\n<p>坚持抗战、团结、进步的方针</p>\n<ul>\n<li>第一，统一战线中的独立自主原则，\n<ul>\n<li>共产党必须：\n<ul>\n<li>保持思想上、政治上和组织上的独立性</li>\n<li>对国民党采取又团结又斗争以斗争求团结的方针</li>\n<li>动员千百万群众进入抗日民族统一战线，实质上就是力争中国共产党对抗日战争的领导权，使自己成为团结全民族抗战的中坚力量。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>第二，<span class=\"red\">坚持</span>抗战、团结、进步，<span class=\"red\">反对</span>妥协、分裂、倒退\n<ul>\n<li>中国共产党进行了针锋相对的斗争：除在军事上坚决进行自卫反击战外，还在政治上对其进行有力的揭露和声讨，赢得了国内外舆论的同情和支持。</li>\n</ul>\n</li>\n<li>第三，巩固抗日民族统一战线的策略总方针\n<ul>\n<li><span class=\"blue\">发展进步势力，争取中间势力，孤立顽固势力</span>的策略总方针</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>抗日民主根据地的建设</p>\n<ul>\n<li>政治建设方面</li>\n<li>经济建设方面: <span class=\"label\">减租减息，发展生产</span></li>\n<li>文化建设方面与干部教育方面</li>\n</ul>\n</li>\n<li>\n<p>大后方的抗日民主运动和进步文化工作</p>\n<ul>\n<li>宪政运动</li>\n<li>中国民主政团同盟</li>\n<li>联合政府的主张</li>\n<li>文化界抗敌协会</li>\n<li>“马克思主义的中国化” 命题的提出</li>\n</ul>\n</li>\n<li>\n<p>新民主主义理论的系统阐明</p>\n<ul>\n<li>毛泽东思想成熟的标志：以毛泽东同志为主要代表的中国共产党人创立的新民主主义理论，是马克思主义基本原理同中国具体实际相结合的成果。<span class=\"blue\">新民主主义理论的系统阐明，标志着毛泽东思想得到多方面展开而达到成熟</span></li>\n</ul>\n</li>\n<li>\n<p>延安整风运动与中共七大</p>\n<ul>\n<li>\n<p>延安整风运动</p>\n</li>\n<li>\n<p>整风运动的主要内容</p>\n<ul>\n<li>主观主义的实质：理论脱离实际</li>\n<li>主观主义的主要表现形式：教条主义和经验主义，尤其教条主义为整风运动的重点</li>\n</ul>\n</li>\n<li>\n<p>整风运动的意义</p>\n</li>\n<li>\n<p>中共七大</p>\n<ul>\n<li>\n<p>中共七大内容</p>\n<ul>\n<li>中共七大制定了党的政治录像</li>\n<li>中共七大总结党的建设的历史经验，把党在长期奋斗中形成的优良作风概括为三大作风\n<ul>\n<li>理论和实践相结合</li>\n<li>和人民群众紧密联系在一起的作风</li>\n<li>自我批评的作风</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>毛泽东思想</p>\n<ul>\n<li>把马克思列宁主义基本原理同中国具体实际相结合所创造的理论成果，正式命名为毛泽东思想。</li>\n<li>毛泽东思想规定为党的一切工作的指针</li>\n</ul>\n</li>\n<li>\n<p>党的七大在党的历史上具有重要里程碑意义</p>\n<ul>\n<li>标志着我们党在政治上、思想上、组织上走向了成熟</li>\n<li>在政治上，通过延安整风运动，使全党团结在毛泽东的旗帜下，实现了党的空前统一和团结</li>\n<li>在思想上，党确立了毛泽东思想在全党的指导地位，把毛泽东思想写入党章。</li>\n<li>在组织上，党形成了一支高举毛泽东旗帜的久经经验的政治家集团。</li>\n</ul>\n</li>\n<li>\n<p>中共中央在延安的十三年</p>\n<ul>\n<li>领导中国革命事业从低潮走向高潮，实现历史性转折，扭转了中国前途命运。</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info\">\n<p>抗日战争的胜利及其意义</p>\n</div>\n<ul>\n<li>抗日战争的胜利\n<ul>\n<li>19454 年 9 月 2 日，日本天皇和政府以及日本大本营的代表在东京湾美军军舰密苏里号上签署向同盟国的投降书。</li>\n</ul>\n</li>\n<li>抗日战争胜利纪念日与抗战胜利的标志\n<ul>\n<li>9 月 3 日成为中国人民抗日战争胜利纪念日。</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info\">\n<p>中国人民抗日战争在世界反法西斯战争中的地位</p>\n</div>\n<ul>\n<li>\n<p>第一，中国的抗日战争是世界反法西斯战争的重要组成部分</p>\n</li>\n<li>\n<p>第二，世界反法西斯力量对中国的援助。中国人民抗日战争的胜利，是同世界所有爱好和平和正义的国家和人民、国际组织及各种反法西斯力量的同情和支持分不开的。</p>\n</li>\n</ul>\n<div class=\"note info\">\n<p>抗日战争胜利的原因和意义</p>\n</div>\n<ul>\n<li>\n<p>原因</p>\n<ol>\n<li>以爱国主义为核心的民族精神是中国人民抗日战争胜利的决定因素</li>\n<li>中国共产党的中流砥柱作用是中国人民抗日战争胜利的关键</li>\n<li>全民族抗战是中国人民抗日战争胜利的重要法宝</li>\n<li>中国人民抗日战争的胜利，同世界所有爱好和平和正义的国家和人民、国际组织及各种反法西斯力量的同情和支持分不开的</li>\n</ol>\n</li>\n<li>\n<p>意义</p>\n<ol>\n<li>彻底粉碎了日本帝国主义殖民奴役中国的图谋，捍卫了国家主权和领土完整</li>\n<li>促进了中华民族的大团结，形成了伟大的抗战精神。</li>\n<li>对世界各国夺取反法西斯战争的胜利、维护世界和平的事业产生了巨大影响</li>\n<li>开辟了中华民族伟大复兴的光明前景。</li>\n</ol>\n</li>\n</ul>\n<h3 id=\"为建立新中国而奋斗\"><a class=\"anchor\" href=\"#为建立新中国而奋斗\">#</a> 为建立新中国而奋斗</h3>\n<div class=\"note info\">\n<p>从争取和平民主到进行自卫战争</p>\n</div>\n<ul>\n<li>抗战胜利后的国际国内局势</li>\n</ul>\n<div class=\"note info\">\n<p>抗日战争胜利的原因和意义</p>\n</div>\n<div class=\"note info\">\n<p>抗日战争胜利的原因和意义</p>\n</div>\n<h2 id=\"新中国时期\"><a class=\"anchor\" href=\"#新中国时期\">#</a> 新中国时期</h2>\n<h3 id=\"中华人民共和国的成立与中国社会主义建设道路的探索\"><a class=\"anchor\" href=\"#中华人民共和国的成立与中国社会主义建设道路的探索\">#</a> 中华人民共和国的成立与中国社会主义建设道路的探索</h3>\n<h3 id=\"改革开放与中国特色社会主义的开创和发展\"><a class=\"anchor\" href=\"#改革开放与中国特色社会主义的开创和发展\">#</a> 改革开放与中国特色社会主义的开创和发展</h3>\n<h3 id=\"中国特色社会主义进入新时代\"><a class=\"anchor\" href=\"#中国特色社会主义进入新时代\">#</a> 中国特色社会主义进入新时代</h3>\n",
            "tags": [
                "记录"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/09/09/doc/PubmedPolictics4/",
            "url": "https://hk2012.github.io/2023/09/09/doc/PubmedPolictics4/",
            "title": "2024考研政治 (思想道德与法制)",
            "date_published": "2023-09-09T07:36:00.000Z",
            "content_html": "<h1 id=\"思想道德与法制\"><a class=\"anchor\" href=\"#思想道德与法制\">#</a> 思想道德与法制</h1>\n<h2 id=\"绪论\"><a class=\"anchor\" href=\"#绪论\">#</a> 绪论</h2>\n<h3 id=\"担当复兴大任-成就时代新人\"><a class=\"anchor\" href=\"#担当复兴大任-成就时代新人\">#</a> 担当复兴大任 成就时代新人</h3>\n<ul>\n<li>时代新人特征\n<ul>\n<li>立大志</li>\n<li>明大德</li>\n<li>成大才</li>\n<li>担大任</li>\n</ul>\n</li>\n<li>思想道德和法律关系\n<ul>\n<li><span class=\"rainbow\">思想道德和法律</span>都是调节人们思想行为，协调人际关系、维护社会秩序的重要手段</li>\n<li><span class=\"rainbow\">思想道德和法律</span>虽然在<strong>调节领域、调节方式、调节目标等方面存在很大不同</strong>，但是两者都是<span class=\"red\">上层建筑的重要组成部分，共同服务于一定的经济基础</span>\n<ul>\n<li>一方面，思想道德建设为法治建设提供思想指引和价值基础</li>\n<li>另一方面，法治建设为思想道德建设提供制度支撑和法律保障，通过对思想道德的基本原则予以确认，为思想道德建设提供国家强制力保障</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>思想道德素质\n<ul>\n<li>思想道德素质的内涵\n<ul>\n<li>思想道德素质是人们的思想观念、政治立场、价值取向、道德情操和行为习惯等方面品质和能力的综合体现，反映着一个人的思想境界和道德风貌，是促进个体健康成长、社会发展进步的重要保障。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>法治素养\n<ul>\n<li>法治素养的内涵\n<ul>\n<li>法治素养是指人们通过学习法律知识、理解法律本质、运用法治思维、依法维护权利与履行义务的品质和能力，对于保证人们尊崇法治、遵守法律具有重要的意义。</li>\n<li>法律必须转化为人们内心自觉，才能真正为人们所遵行。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>思想道德素质和法治素养是新时代青年必须具备的<span class=\"red\">基本素质</span></li>\n</ul>\n<h2 id=\"思想篇\"><a class=\"anchor\" href=\"#思想篇\">#</a> 思想篇</h2>\n<h3 id=\"领悟人生真谛-把握人生方向\"><a class=\"anchor\" href=\"#领悟人生真谛-把握人生方向\">#</a> 领悟人生真谛 把握人生方向</h3>\n<ul>\n<li>\n<p>正确认识人的本质</p>\n<ul>\n<li>人的本质：一切社会关系的总和</li>\n<li>人的社会属性：是人的本质属性</li>\n</ul>\n</li>\n<li>\n<p>个人与社会的辩证关系</p>\n<ul>\n<li>个人与社会的关系问题是认识和处理人生问题的重要着眼点和出发点。</li>\n<li>个人与社会的关系，最根本的是个人利益与社会利益的关系</li>\n<li><strong>社会利益不是个人利益的简单相加，而是所有人利益的有机统一</strong>。社会利益体现了作为社会成员的个人的根本利益和长远利益，<strong>是个人利益得以实现的前提和基础</strong>，同时它也保障着个人利益的实现。人的社会性决定了人只有在推动社会进步的过程中，才能实现自我的发展。</li>\n</ul>\n</li>\n<li>\n<p>人生观的主要内容包括三个方面：</p>\n<ul>\n<li>\n<p>人生目的 <span class=\"red\">(核心)</span></p>\n<ul>\n<li>人生目的：表明人的一生追求什么，回答人为什么活着</li>\n<li>人生目的决定人生道路。人生目的规定了人生的方向。</li>\n<li>人生目的决定人生态度。不同的人生目的会使人采取不同的人生态度。</li>\n<li>人生目的决定人生价值选择。正确的人生目的会使人懂得<strong>人生的价值首先在于奉献</strong>。</li>\n</ul>\n</li>\n<li>\n<p>人生态度</p>\n<ul>\n<li>人生态度：回答人应当如何活着，表示以怎样的心态实现人生目标</li>\n<li>第一，人生态度是人生观的重要内容</li>\n<li>第二，人生态度是人生观的表现和反映</li>\n</ul>\n</li>\n<li>\n<p>人生价值</p>\n<ul>\n<li>\n<p>人生价值：回答什么样的人生才有价值，即人怎样活着有意义</p>\n</li>\n<li>\n<p>人生价值内在地包含了人生的自我价值和社会价值两个方面</p>\n<ul>\n<li>两者既相互区别，又密切联系、相互依存，共同构成人生价值的矛盾统一体。</li>\n<li>人生的自我价值的实现是个体为社会创造更大价值的前提</li>\n<li>人生社会价值的实现是个体自我完善、全面发展的保障。没有社会价值，人生的自我价值就无法存在</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>三者的辩证统一关系</p>\n<ul>\n<li>人生目的<span class=\"rainbow\">决定</span>着人们对待实际生活的态度和对人生价值的评判，</li>\n<li>人生态度<span class=\"rainbow\">影响</span>著人们对人生目的的持守和人生价值的实现，</li>\n<li>人生价值<span class=\"rainbow\">制约</span>着人们对人生目的和人生态度的选择</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>人生观与世界观、价值观</p>\n<ul>\n<li>世界观是人们对生活在其中的世界以及人与世界的关系的总体看法和根本观点</li>\n<li>人生观是人们关人人生目的、人生态度、人生价值等问题的总观点和总看法。</li>\n<li>世界观决定人生观，人生观又对世界观的巩固、发展和变化起着重要作用。</li>\n<li>价值观是人们关于价值的根本观点，对人人生观的形成和发展有重要的引导作用。</li>\n</ul>\n</li>\n</ul>\n<div class=\"note danger no-icon\">\n<p><strong>第二节 正确的人生观</strong></p>\n</div>\n<ul>\n<li>\n<p>高尚的人生追求</p>\n<ul>\n<li>什么是高尚的人生追求？\n<ul>\n<li><strong>服务人民，奉献社会</strong> 的思想以其科学而高尚品质，代表了人类社会迄今最先进的人生追求</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>积极进取的人生态度</p>\n<ul>\n<li>人生须认真</li>\n<li>人生当务实</li>\n<li>人生应乐观</li>\n<li>人生要进取</li>\n</ul>\n</li>\n<li>\n<p>人生价值的评价与实现</p>\n<ul>\n<li>\n<p><span class=\"rainbow\">评价人生价值的根本尺度：看一个人的实践活动是否符合社会发展的客观规律，是否促进了历史的进步。(历史标准)</span></p>\n</li>\n<li>\n<p>在今天，衡量人生价值的标准，<span class=\"rainbow\">最重要</span>的就是看一个人是否用自己的劳动和聪明才智为国家和社会真诚奉献，为人民群众尽心尽力服务</p>\n</li>\n<li>\n<p>评价人生价值的方法：</p>\n<ul>\n<li>第一，既要看贡献的大小，也要看尽力的程度；</li>\n<li>第二，既要尊重物质贡献，也要尊重精神贡献；</li>\n<li>第三，既要注重社会贡献，也要注重自身完善。</li>\n</ul>\n</li>\n<li>\n<p>人生价值的实现</p>\n<ul>\n<li>第一，实现人生价值要从社会客观条件出发。我们要珍惜难得的历史机遇，把自己的人生追求建立在正确把握当今中国社会发展实际的基础上，努力实现自己的人生价值。</li>\n<li>第二，实现人生价值要从个体自身条件出发。</li>\n<li>第三，不断增强实现人生价值的能力和本领（个人的主观努力）</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note danger no-icon\">\n<p><strong>第三节 创造有意义的人生</strong></p>\n</div>\n<ul>\n<li>辩证对待人生矛盾\n<ul>\n<li>树立正确的幸福观\n<ul>\n<li><span class=\"red\">幸福是奋斗出来的</span></li>\n<li>第一，幸福是一个总体性范畴，是相对的，不同的人有不同的幸福标准；</li>\n<li>第二，幸福体现在物质与精神两个方面，精神需要的满足、精神生活的充实是更重要的方面；</li>\n<li>第三，在追求幸福的过程中，不能把自己的幸福建立在损害社会整体利益和他人利益的基础上。</li>\n<li><span class=\"red\">反对三种错误人生观：拜金主义、享乐主义、极端个人主义</span></li>\n<li><span class=\"red\">现在，青春是用来奋斗的；将来，青春是用来回忆的。（习近平）</span></li>\n</ul>\n</li>\n<li>树立正确的得失观、苦乐观、顺逆观、生死观、荣辱观</li>\n</ul>\n</li>\n<li>成就出彩人生\n<ul>\n<li>与历史同向\n<ul>\n<li>增强时代的责任感，与历史同步伐，与时代共命运</li>\n</ul>\n</li>\n<li>与祖国同行\n<ul>\n<li>自觉与国家和民族共奋进、同发展</li>\n</ul>\n</li>\n<li>与人民同在\n<ul>\n<li><span class=\"red\">社会实践是实现人生价值的必由之路</span></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"追求远大理想-坚定崇高信念\"><a class=\"anchor\" href=\"#追求远大理想-坚定崇高信念\">#</a> 追求远大理想 坚定崇高信念</h3>\n<div class=\"note info no-icon\">\n<p><strong>第一节 理想信念的内涵及重要性</strong></p>\n</div>\n<ul>\n<li>理想信念\n<ul>\n<li>\n<p>理想的分类</p>\n<ul>\n<li>个人理想和社会理想</li>\n<li>近期理想和远期理想</li>\n<li>生活理想、职业理想、道德理想、政治理想</li>\n<li>一般理想和崇高理想</li>\n</ul>\n</li>\n<li>\n<p>理想的特征</p>\n<ul>\n<li>理想具有超越性：理想因其远大而为理想。它不仅源于现实，而且超越现实，是与奋斗目标相联系的未来的现实。</li>\n<li>理想具有实践性：理想是处在特定历史条件下的人们对社会实践活动理性认识的结晶。理想在实践中产生，在实践中发展，也只有在实践中才能得以实现。</li>\n<li>理想具有时代性：理想受时代条件的制约，随着时代的发展而发展</li>\n</ul>\n</li>\n<li>\n<p>信念的内涵和特征</p>\n<ul>\n<li>信念具有执着性：信念因其执着而为信念。信念一旦形成，就不会轻易改变。</li>\n<li>信念具有支撑性：信念是一个人经受实践考验而始终坚守理想的精神力量。纵观人类社会发展史，共同的信念凝聚眷一个国家、一个民族的集体意志，为社会理想的实现提供强大的精神力量。</li>\n<li>信念具有多样性：信念有不同的层次和类型。其中，高层次的信念决定着低层次的信念，低层次的信念服从于高层次的信念。信仰是最高层次的信念，具有最大的统摄力。信仰有盲目和科学之分。科学的信仰来自人们对自然界和人类社会发展规律的正确认识</li>\n</ul>\n</li>\n<li>\n<p>理想和信念的关系</p>\n<ul>\n<li>理想是信念所指的对象，信念则是理想实现的保障。离开理想，信念无从产生；离开信念，理想寸步难行。也正因如此，人们常将理想与信念合称为理想信念</li>\n</ul>\n</li>\n<li>\n<p>理想信念是精神之 “钙”</p>\n<ul>\n<li>第一，昭示奋斗目标；</li>\n<li>第二，催生前进动力；</li>\n<li>第三，提供精神支柱；</li>\n<li>第四，提高精神境界</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info no-icon\">\n<p><strong>第二节 崇高的理想信念</strong></p>\n</div>\n<ul>\n<li>马克思主义信仰\n<ul>\n<li>要确立马克思主义信仰的原因\n<ul>\n<li>马克思主义是我们认识世界、改造世界的强大思想武器</li>\n<li>马克思主义是科学的理论，创造性地揭示了人类社会发展的规律</li>\n<li>马克思主义是人民的理论，第一次创立了人民实现自身解放的思想体系</li>\n<li>马克思主义是实践的理论，指引着人民改造世界的行动</li>\n<li>马克思主义是不断发展的开发的理论，始终站在时代的前沿</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note info no-icon\">\n<p><strong>第三节 在实现中国梦的实践中放飞青春梦想</strong></p>\n</div>\n<ul>\n<li>科学把握理想与现实的辩证统一\n<ul>\n<li>理想与现实是对立统一的。</li>\n<li>首先，理想与现实存在着对立的一面，理想不等同于现实。其次，理想与现实又是统一的。理想受现实的规定和制约。现实中包含着理想的因素，孕育着理想的发展。理想中也包含着现实</li>\n</ul>\n</li>\n<li>个人理想和社会理想\n<ul>\n<li>个人理想与社会理想的关系实质上是个人与社会的关系在理想层面的反映。\n<ol>\n<li>个人理想以社会理想为指引。正确的个人理想从根本上说是由正确的社会理想规定的。同时，个人理想的实现，必须以社会理想的实现为前提和基础。因此，在整个理想体系中，社会理想是最根本、最重要的，而个人理想则从属于社会理想。个人理想的确立要以社会理想为导向，个人理想的实现依赖于社会理想的指引。个人理想只有同国家的前途、民族的命运相结合，个人的向往和追求只有同社会的需要和人民的利益相一致，才可能变为现实。</li>\n<li>社会理想是个人理想的汇聚和升华。社会理想是建立在广大社会成员的个人理想基础之上的，是个人理想的汇聚和升华。</li>\n</ol>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"继承优良传统-弘扬中国精神\"><a class=\"anchor\" href=\"#继承优良传统-弘扬中国精神\">#</a> 继承优良传统 弘扬中国精神</h3>\n<div class=\"note info no-icon\">\n<p><strong>第一节 理想信念的内涵及重要性</strong></p>\n</div>\n<h2 id=\"道德篇\"><a class=\"anchor\" href=\"#道德篇\">#</a> 道德篇</h2>\n<h3 id=\"明确价值要求-践行价值准则\"><a class=\"anchor\" href=\"#明确价值要求-践行价值准则\">#</a> 明确价值要求 践行价值准则</h3>\n<h3 id=\"遵守道德规范-锤炼道德品格\"><a class=\"anchor\" href=\"#遵守道德规范-锤炼道德品格\">#</a> 遵守道德规范 锤炼道德品格</h3>\n<h2 id=\"法治篇\"><a class=\"anchor\" href=\"#法治篇\">#</a> 法治篇</h2>\n<h3 id=\"学习法治思想-提升法治素养\"><a class=\"anchor\" href=\"#学习法治思想-提升法治素养\">#</a> 学习法治思想 提升法治素养</h3>\n",
            "tags": [
                "记录"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/09/08/note/softwareEnginee/",
            "url": "https://hk2012.github.io/2023/09/08/note/softwareEnginee/",
            "title": "2024软件工程",
            "date_published": "2023-09-08T09:55:00.000Z",
            "content_html": "<h1 id=\"概述\"><a class=\"anchor\" href=\"#概述\">#</a> 概述</h1>\n<h2 id=\"软件和软件危机\"><a class=\"anchor\" href=\"#软件和软件危机\">#</a> 软件和软件危机</h2>\n<div class=\"note default\">\n<p>软件的定义、特点及定义</p>\n</div>\n<ul>\n<li>\n<p>软件的定义</p>\n<ul>\n<li>软件不是程序，而是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。</li>\n</ul>\n</li>\n<li>\n<p>软件的特点</p>\n<ul>\n<li>软件是一种逻辑产品，而不是具体的物理实体，具有抽象性。</li>\n<li>软件产品的生产主要是开发研制，没有明显的制造过程。</li>\n<li>软件产品在使用过程中，不存在磨损、消耗老化等问题。</li>\n<li>软件产品的开发主要是脑力劳动，还未完全摆脱手工开发方式，大部分产品是 “定做的”，生产效率低。</li>\n<li>软件产品的成本相当昂贵，软件费用不断增加，软件的研制需要投入大量的人力、物力和资金，生产过程中还需对产品进行质量控制，对每件产品进行严格的检验。</li>\n<li>软件对硬件和环境有不同程度的依赖性，为了减少这种依赖性，在软件开发中提出了软件的可移植性问题</li>\n<li>软件是复杂的。</li>\n</ul>\n</li>\n<li>\n<p>软件的分类</p>\n<ul>\n<li>服务类软件\n<ul>\n<li>此类软件是面向用户的，为用户提供各种服务，包括多种软件开发工具和常用的库函数及多种语言的集成化软件</li>\n</ul>\n</li>\n<li>维护类软件\n<ul>\n<li>此类软件是面向计算机维护的，包括错误诊断和检测软件、测试软件、多种调试所用软件。</li>\n</ul>\n</li>\n<li>操作管理软件\n<ul>\n<li>此类软件是面向计算机操作系统和管理的，包括各种操作系统、网络通信系统、计算机管理软件</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>软件危机的定义及表现形式</p>\n</div>\n<ul>\n<li>\n<p>软件危机</p>\n<ul>\n<li>“软件危机” 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题，软件危机主要包含了两个方面的问题：\n<ul>\n<li>如何开发软件以满足软件日益增长的需求</li>\n<li>如何维护数量不断增长的已有软件</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>软件危机表现形式</p>\n<ul>\n<li>软件开发成本和研制进度的估计常常很不精确。\n<ul>\n<li>经费预算经常突破，完成时间一拖再拖</li>\n<li>有时为了赶进度和节约成本所采取的一些权宜之计又往往影响了软件产品的质量</li>\n</ul>\n</li>\n<li>“已完成” 的软件不能满足用户要求。\n<ul>\n<li>软件开发人员常常对用户需求只有模糊的了解，甚至对所要解决的问题还没有确切认识的情况下，就匆忙着手编写程序了。</li>\n</ul>\n</li>\n<li>软件产品质量差，可靠性得不到保证。</li>\n<li>软件产品可维护性差，软件开发人员在开发过程中按各自的风格工作，各行其是，没有统一、公认的规范和完整规范的文档</li>\n<li>软件成本在计算机系统总成本中所占的比例逐年上升。</li>\n<li>软件开发生产率提高的速度远远跟不上计算机应用速度普及深入的趋势。</li>\n</ul>\n</li>\n<li>\n<p>软件危机的产生原因及解决途径</p>\n<ul>\n<li>\n<p>产生软件危机的原因</p>\n<ol>\n<li>软件是计算机的逻辑部件</li>\n<li>软件开发的管理困难</li>\n<li>软件开发费用不断增加，维护费用急剧上升</li>\n<li>软件开发技术落后。</li>\n<li>生产方式落后。</li>\n<li>开发工具落后，生产效率提高缓慢</li>\n</ol>\n</li>\n<li>\n<p>解决软件危机途径</p>\n<ol>\n<li>首先应该对计算机软件有一个正确的认识，彻底清除 &quot;软件就是程序&quot; 的错误观念。</li>\n<li>要使用好的开发技术和方法，并且要不断研究探索更好更有效的技术和方法。</li>\n<li>要有良好的组织、严密的管理，各类人员要相互配合，共同完成任务。（软件开发不是某种个体劳动的神秘技巧）</li>\n<li>应该开发和使用好的软件工具。</li>\n</ol>\n<ul>\n<li>软件系统开发与制造一台机器或建造一栋大厦有许多相同之处，所以要采用 “工程化” 的思想做指导来解决软件研究中面临的困难和混乱，从而走出软件危机的困境。</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"软件工程\"><a class=\"anchor\" href=\"#软件工程\">#</a> 软件工程</h2>\n<div class=\"note default\">\n<p>软件工程的定义及目标</p>\n</div>\n<div class=\"note default\">\n<p>软件工程的研究内容和基本原理</p>\n</div>\n<div class=\"note default\">\n<p>软件工程的发展史</p>\n</div>\n<h2 id=\"软件过程和软件的生存周期\"><a class=\"anchor\" href=\"#软件过程和软件的生存周期\">#</a> 软件过程和软件的生存周期</h2>\n<div class=\"note default\">\n<p>软件过程</p>\n</div>\n<div class=\"note default\">\n<p>软件生存周期</p>\n</div>\n<h2 id=\"软件开发模型\"><a class=\"anchor\" href=\"#软件开发模型\">#</a> 软件开发模型</h2>\n<div class=\"note default\">\n<p>瀑布模型</p>\n</div>\n<div class=\"note default\">\n<p>快速原型模型</p>\n</div>\n<div class=\"note default\">\n<p>增量模型</p>\n</div>\n<div class=\"note default\">\n<p>螺旋模型</p>\n</div>\n<div class=\"note default\">\n<p>喷泉模型</p>\n</div>\n<div class=\"note default\">\n<p>基于构建的开发模型</p>\n</div>\n<div class=\"note default\">\n<p>统一过程（RUP）模型</p>\n</div>\n<div class=\"note default\">\n<p>基于形式化的开发模型</p>\n</div>\n<h2 id=\"传统的软件工程和面向对象的软件工程\"><a class=\"anchor\" href=\"#传统的软件工程和面向对象的软件工程\">#</a> 传统的软件工程和面向对象的软件工程</h2>\n<div class=\"note default\">\n<p>传统的软件工程方法</p>\n</div>\n<div class=\"note default\">\n<p>面向对象的软件工程方法</p>\n</div>\n<div class=\"note default\">\n<p>传统的软件工程和面向对象的软件工程的分析方法对比</p>\n</div>\n<h2 id=\"本章小结\"><a class=\"anchor\" href=\"#本章小结\">#</a> 本章小结</h2>\n<ul>\n<li>软件工程自 1968 年提出至今，正式发展成为用于指导软件生产工程化，覆盖软件开发方法学、软件工具和环境、软件工程管理学等内容的一门课程。</li>\n<li>本章节主要介绍了软件工程的基本内容，包括软件工程的学科背景、软件生存周期理论、软件开发模型、软件工程方法论等</li>\n</ul>\n<h1 id=\"可行性研究\"><a class=\"anchor\" href=\"#可行性研究\">#</a> 可行性研究</h1>\n<div class=\"note default\">\n<p>可行性研究的目的和任务</p>\n</div>\n<ul>\n<li>\n<p>目的：用最小的代价在尽可能短的时间内确定问题是否能够解决。</p>\n</li>\n<li>\n<p>主要任务：</p>\n<ul>\n<li>进行概要的分析研究</li>\n<li>初步确定项目的规模和目标</li>\n<li>确定项目的约束和限制</li>\n<li>分析几种可能解法的利弊</li>\n</ul>\n</li>\n<li>\n<p>四个方面研究各种解法的可行性</p>\n<ul>\n<li>经济可行性</li>\n<li>技术可行性</li>\n<li>操作可行性</li>\n<li>法律可行性</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>可行性研究的步骤</p>\n</div>\n<ul>\n<li>复查并确定系统规模和目标</li>\n<li>研究目前正在使用的系统</li>\n<li>建立新系统的高层逻辑模型</li>\n<li>导出和评价各种方案</li>\n<li>推荐可行方案</li>\n<li>草拟初步的开发计划</li>\n<li>编写可行性研究报告提交审查</li>\n</ul>\n<div class=\"note default\">\n<p>系统流程图</p>\n</div>\n<ul>\n<li>系统流程图符号\n<ul>\n<li>\n<p>常用 5 种基本符号</p>\n</li>\n<li>\n<p><img data-src=\"/img/software/%E5%B8%B8%E7%94%A8%E7%B3%BB%E7%BB%9F%E6%B5%81%E7%A8%8B%E5%9B%BE.png\" alt=\"常用系统流程图\" /></p>\n</li>\n<li>\n<p>11 种系统符号</p>\n</li>\n<li>\n<p><img data-src=\"/img/software/11%E7%A7%8D%E7%B3%BB%E7%BB%9F%E7%AC%A6%E5%8F%B7.png\" alt=\"11种系统符号\" /></p>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>成本 - 效益分析</p>\n</div>\n<ul>\n<li>\n<p>货币的时间价值</p>\n<ul>\n<li>成本估算的目的是对项目投资。经过成本估算后，得到项目开发时需要的费用，该费用就是项目的投资</li>\n<li>项目完成后，应取得相应的效益。有多少效益才划算？这就是应该考虑货币的时间价值。因为投资是现在进行的，而效益是将来获得的。</li>\n</ul>\n</li>\n<li>\n<p>投资回收期</p>\n<ul>\n<li>通常用投资回收期衡量一个开发项目的价值。所谓投资回收期就是使累计的经济效益等于最初的投资费用所需要的时间</li>\n<li>总的来说就是，投资回收期越短，就可以越快获得利润，该项目就越值得投资开发。</li>\n</ul>\n</li>\n<li>\n<p>纯收入</p>\n<ul>\n<li>整个生存周期之内系统的累计经济效益与投资之差</li>\n<li>这相当于投资一个软件系统和把钱存入银行中 （或做其他项目）两种方案的优劣比较。</li>\n<li>如一个项目纯收入为零，而开发一个系统还要冒风险，则不值得投资开发</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>可行性研究报告的主要内容</p>\n</div>\n<ul>\n<li>可行性研究结束后要提交的文档是可行性研究报告，尽管可行性研究报告的格式各有不同，但主要内容应该包括以下几项\n<ul>\n<li>引言</li>\n<li>可行性研究前提</li>\n<li>对现有系统的分析</li>\n<li>对所建设系统的分析\n<ul>\n<li>经济可行性</li>\n<li>技术可行性</li>\n<li>社会因素的可行性</li>\n</ul>\n</li>\n<li>其他与设计有关选择方案</li>\n<li>其他与设计有关的专门问题</li>\n<li>结论意见</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"本章小结-2\"><a class=\"anchor\" href=\"#本章小结-2\">#</a> 本章小结</h2>\n<ul>\n<li>\n<p>可行性研究阶段是进一步探讨问题定义阶段所确定的问题是否有可行性的解。尤其对于大型项目的开发，可行性研究是<span class=\"rainbow\">必需的</span>。主要通过<span class=\"rainbow\">经济可行性、技术可行性、法律可行性、操作可行性</span>这四个方面来探讨，是否能够解决以及是否值得去解决。通过可行性研究可以减少技术风险和投资风险。</p>\n</li>\n<li>\n<p>系统流程图用来表达分析员对现有系统的认识和描绘他对未来物理系统的设想</p>\n</li>\n<li>\n<p>成本 - 效益分析是可行性研究的一项主要内容，它主要是从经济角度判断该项目是否继续下去的依据。</p>\n</li>\n</ul>\n<h1 id=\"软件需求分析\"><a class=\"anchor\" href=\"#软件需求分析\">#</a> 软件需求分析</h1>\n<div class=\"note default\">\n<p>需求分析的任务和步骤</p>\n</div>\n<ul>\n<li>\n<p>需求分析的任务</p>\n<ul>\n<li>确定对系统的综合需求\n<ul>\n<li>功能需求</li>\n<li>性能需求</li>\n<li>环境需求</li>\n<li>接口要求</li>\n<li>用户界面需求</li>\n</ul>\n</li>\n<li>分析系统的数据需求</li>\n<li>建立软件的逻辑模型</li>\n<li>编写软件需求规格说明书 (Software Requirement Specification SRS)</li>\n<li>需求分析评审</li>\n</ul>\n</li>\n<li>\n<p>需求分析的步骤 (四个步骤)</p>\n<ul>\n<li>需求获取：调查研究</li>\n<li>需求提炼：分析建模</li>\n<li>需求描述：编写 SRS（需求规格说明书）</li>\n<li>需求验证：需求不清，不一致，二义性等问题</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>需求获取的常用方法</p>\n</div>\n<ol>\n<li>客户访谈</li>\n<li>建立联合分析小组</li>\n<li>问题分析与确认</li>\n</ol>\n<div class=\"note default\">\n<p>快速建立软件原型来获取需求</p>\n</div>\n<ul>\n<li>\n<p>快速原型 特点</p>\n<ul>\n<li>快速</li>\n<li>容易修改</li>\n</ul>\n</li>\n<li>\n<p>判断是否选择原型法来帮助获取需求</p>\n<ul>\n<li>需求已经建立，并且可以预见是相当稳定吗？</li>\n<li>软件开发人员和用户已经理解了目标系统的应用领域吗？</li>\n<li>问题是否可被模型化？</li>\n<li>用户能否清楚地确定基本的系统需求？</li>\n<li>有任何需求是含糊的吗？</li>\n<li>已知的需求中存在矛盾吗？</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>快速建立软件原型来获取需求</p>\n</div>\n<ul>\n<li>\n<p>功能分解方法</p>\n</li>\n<li>\n<p>结构化分析方法</p>\n</li>\n<li>\n<p>信息建模方法</p>\n</li>\n<li>\n<p>面向对象方法</p>\n</li>\n</ul>\n<div class=\"note default\">\n<p>结构化分析方法</p>\n</div>\n<ul>\n<li>\n<p>自顶向下逐层分解的分析策略</p>\n</li>\n<li>\n<p>结构化分析描述工具</p>\n</li>\n<li>\n<p>数据流图</p>\n</li>\n<li>\n<p>数据字典</p>\n<ul>\n<li>数据字典的内容及使用符号</li>\n<li>数据字典的实现</li>\n</ul>\n</li>\n<li>\n<p>加工逻辑的描述</p>\n<ul>\n<li>结构化语言</li>\n<li>判定表</li>\n<li>判定树</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>需求分析图形工具</p>\n</div>\n<ul>\n<li>\n<p>层次方框图</p>\n</li>\n<li>\n<p>维纳图</p>\n<ul>\n<li>用 大括号 [{].{.label} 区分信息的层次</li>\n</ul>\n</li>\n<li>\n<p>IPO 图 (Input - Process - Output)</p>\n</li>\n<li>\n<p>SA (Structured Analysis 结构化分析) 方法应用</p>\n<ul>\n<li>项目说明</li>\n<li>数据流图</li>\n<li>数据字典</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>数据库内容的需求分析和描述</p>\n</div>\n<ul>\n<li>\n<p>数据库内容的需求分析</p>\n<ul>\n<li>信息需求</li>\n<li>处理需求</li>\n<li>使用需求\n<ul>\n<li>建立各局部应用的 E-R 模型</li>\n<li>建立全局 E-R 模型</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>数据库内容的需求分析描述</p>\n<ul>\n<li>\n<p>实体联系 （E-R）</p>\n<ul>\n<li>实体型</li>\n<li>属性和联系</li>\n</ul>\n</li>\n<li>\n<p>联系</p>\n<ul>\n<li>一对一联系</li>\n<li>一对多联系</li>\n<li>多对多联系</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>需求规格说明书</p>\n</div>\n<ul>\n<li>需求规格说明书主要内容\n<ol>\n<li>引言\n<ul>\n<li>编写目的</li>\n<li>项目背景</li>\n<li>定义</li>\n<li>参考资料</li>\n</ul>\n</li>\n<li>任务概述\n<ul>\n<li>目标</li>\n<li>运行环境</li>\n<li>条件和约束</li>\n</ul>\n</li>\n<li>数据描述\n<ul>\n<li>静态数据</li>\n<li>动态数据：（输入、输出数据）</li>\n<li>数据库描述</li>\n<li>数据字典</li>\n<li>数据采集</li>\n</ul>\n</li>\n<li>功能需求\n<ul>\n<li>功能划分</li>\n<li>功能描述</li>\n</ul>\n</li>\n<li>性能需求\n<ul>\n<li>数据精确度</li>\n<li>时间特性</li>\n<li>适应性</li>\n</ul>\n</li>\n<li>运行需求\n<ul>\n<li>用户界面</li>\n<li>硬件接口</li>\n<li>软件接口</li>\n<li>故障处理</li>\n</ul>\n</li>\n<li>其他需求\n<ul>\n<li>包括可使用性、安全保密性、可维护性、可移植性等</li>\n</ul>\n</li>\n</ol>\n</li>\n</ul>\n<h2 id=\"本章小结-3\"><a class=\"anchor\" href=\"#本章小结-3\">#</a> 本章小结</h2>\n<ul>\n<li>\n<p>软件分析是软件生存周期一个十分重要的阶段，其根本任务是确定用户对软件系统的需求。他是项目开发的<span class=\"ranibow\">基础</span>，他要确定软件系统做什么，具有什么功能、性能，有什么约束条件等。把这些问题搞清楚之后，要用某种无二义性的描述形成需求规格说明书。</p>\n</li>\n<li>\n<p>需求分析的结构是软件开发的重要基础，必须经过严格评审并得到用户确认。要从一致性、完整性、现实性和有效性四个方面复审软件需求规格说明书</p>\n</li>\n</ul>\n<h1 id=\"软件总体设计\"><a class=\"anchor\" href=\"#软件总体设计\">#</a> 软件总体设计</h1>\n<h2 id=\"软件总体设计的目标和任务\"><a class=\"anchor\" href=\"#软件总体设计的目标和任务\">#</a> 软件总体设计的目标和任务</h2>\n<ul>\n<li>总体设计阶段的基本目标就是回答：“系统应该如何实现？”，所以总体设计又称概要设计。</li>\n<li>总体设计以模块为基础，以需求分析阶段得到的数据流图为依据来设计软件结构。</li>\n</ul>\n<h2 id=\"软件结构设计准则\"><a class=\"anchor\" href=\"#软件结构设计准则\">#</a> 软件结构设计准则</h2>\n<div class=\"note default\">\n<p>软件体系结构设计准则</p>\n</div>\n<ol>\n<li>体系结构是对复杂事务的一种抽象</li>\n<li>体系结构在一定的时间内保持稳定</li>\n<li>良好的体系结构意味着普通、高效和稳定</li>\n</ol>\n<div class=\"note default\">\n<p>软件模块设计准则</p>\n</div>\n<ol>\n<li>降低模块之间的耦合性，提高模块的内聚性</li>\n<li>模块结构的深度、宽度、扇出和扇入适当</li>\n<li>模块的作用范围应该在控制范围内</li>\n<li>模块接口设计要简单，以便降低复杂程度和冗余度</li>\n<li>设计功能可预测并能得到验证的模块</li>\n<li>适当划分模块规模，以保持其独立性</li>\n</ol>\n<h2 id=\"软件设计的概念和原理\"><a class=\"anchor\" href=\"#软件设计的概念和原理\">#</a> 软件设计的概念和原理</h2>\n<div class=\"note default\">\n<p>模块和模块化</p>\n</div>\n<ul>\n<li>\n<p>模块是软件结构的基础，是软件元素，能够单独命名、独立完成一定功能的程序语句的集合。</p>\n</li>\n<li>\n<p>模块化</p>\n<ul>\n<li>模块化是使得软件能够对付复杂问题所具备的属性。</li>\n<li>模块化是指解决一个复杂问题时，自顶向下逐层把软件系统划分成若干模块的过程。</li>\n<li>模块化的目的是为了降低软件复杂性，使软件设计、测试、维护等操作变得简易。</li>\n<li>运用模块化技术还可以防止错误蔓延，从而可以提高系统的可靠性。</li>\n<li>模块与外部联系多，模块的独立性差。模块与外部联系少，模块的独立性强。</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>抽象</p>\n</div>\n<ul>\n<li>\n<p>模块最重要的特征：</p>\n<ul>\n<li>抽象</li>\n<li>信息隐蔽</li>\n</ul>\n</li>\n<li>\n<p>抽象：过程抽象、数据抽象、控制抽象</p>\n</li>\n</ul>\n<div class=\"note default\">\n<p>信息隐蔽和局部化</p>\n</div>\n<ul>\n<li>\n<p>信息隐蔽意味着有效的模块化可以通过定义一组独立的模块来实现，这些模块彼此之间仅仅交换那些为了完成系统功能所必须交换的信息。</p>\n</li>\n<li>\n<p>局部化概念和信息隐蔽是密切相关的。</p>\n</li>\n<li>\n<p>局部化就是把一些关系密切的软件元素物理地放的彼此靠近。</p>\n</li>\n</ul>\n<div class=\"note default\">\n<p>模块独立性及其度量</p>\n</div>\n<ul>\n<li>\n<p>模块独立性的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。</p>\n</li>\n<li>\n<p>耦合：模块之间相互独立性的度量</p>\n<ul>\n<li>无直接耦合</li>\n<li>数据耦合</li>\n<li>标记耦合</li>\n<li>控制耦合</li>\n<li>公共环境耦合</li>\n<li>内容耦合</li>\n</ul>\n</li>\n<li>\n<p>尽量使用数据耦合，少用标记耦合和控制耦合，限制公共环境耦合的范围，完全不用内容耦合。</p>\n</li>\n<li>\n<p>内聚：模块内部各个成分之间彼此结合的紧密程度的度量</p>\n<ul>\n<li>低内聚\n<ul>\n<li>偶然内聚</li>\n<li>逻辑内聚</li>\n<li>时间内聚</li>\n</ul>\n</li>\n<li>中内聚\n<ul>\n<li>通信内聚</li>\n</ul>\n</li>\n<li>高内聚\n<ul>\n<li>顺序内聚</li>\n<li>功能内聚</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>尽可能做到高内聚，并且能辨认出低内聚的模块。从而通过修改设计提高模块的内聚性，降低模块之间的耦合程度，提高模块的独立性，为设计高质量的软件结构奠定基础。</p>\n</li>\n</ul>\n<h2 id=\"数据库设计\"><a class=\"anchor\" href=\"#数据库设计\">#</a> 数据库设计</h2>\n<div class=\"note default\">\n<p>数据库系统的三级模式概念</p>\n</div>\n<ul>\n<li>\n<p>外模式： 子模式或用户模式</p>\n</li>\n<li>\n<p>模式：逻辑模式</p>\n</li>\n<li>\n<p>内模式：存储模式</p>\n</li>\n<li>\n<p>三级模式之间提供了两层映像</p>\n<ul>\n<li>外模式 / 模式</li>\n<li>模式 / 内模式</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>数据库逻辑设计原则</p>\n</div>\n<ul>\n<li>目前 DBMS 产品一般支持 3 种模型：关系、网状、层次</li>\n</ul>\n<div class=\"note default\">\n<p>关系数据库规范化</p>\n</div>\n<ul>\n<li>\n<p>第一范式</p>\n<ul>\n<li>消除原关系中非主属性对码的<span class=\"label\">部分函数依赖</span></li>\n<li>满足第一范式的关系模式并不一定是一个好的关系模式，由于数据冗余度大，有可能出现插入异常、删除异常和修改异常现象</li>\n</ul>\n</li>\n<li>\n<p>第二范式</p>\n<ul>\n<li>采用投影分解法将一个 1NF 的关系分解为多个 2NF 的关系</li>\n<li>消除原关系中非主属性对码的<span class=\"label\">传递函数依赖</span></li>\n<li>满足第二范式的关系模式并不一定是一个好的关系模式</li>\n<li>并不能完全消除关系模式中的各种异常情况和数据冗余</li>\n</ul>\n</li>\n<li>\n<p>第三范式</p>\n<ul>\n<li>将一个 2NF 关系分解为多个 3NF 的关系后，并不能完全消除关系模式中的各种异常情况和数据冗余，虽然 3NF 范式，基本上消除了大部分异常问题，但解决的并不彻底，仍然存在改进的余地</li>\n<li>消除原关系中非主属性对码的<span class=\"label\">部分函数依赖</span>和<span class=\"label\">传递函数依赖</span></li>\n</ul>\n</li>\n<li>\n<p>BC 范式</p>\n<ul>\n<li>BCNF 是从 1NF 直接定义而成的</li>\n<li>规范化的基本思想是逐步消除数据依赖中不合适的部分，使模式中各关系模式达到某种程度的 【分离】，即采用 一事一地 的模式设计原则。</li>\n<li>在函数依赖范畴，属于 BCNF 的关系模式已经很完美了。</li>\n</ul>\n</li>\n<li>\n<p>第四范式</p>\n<ul>\n<li>略</li>\n</ul>\n</li>\n<li>\n<p>第五范式</p>\n<ul>\n<li>略</li>\n</ul>\n</li>\n<li>\n<p>范式化程度过低的关系可能会存在插入异常、删除异常、修改复杂、数据冗余等问题。需要对其进行范式化，转换为高级范式。</p>\n</li>\n<li>\n<p>但并不意味着范式化程度越高的关系模式越好，在设计数据库模式结构时，如关系模式分解过多，势必在数据查询时要用到较多的连接运算，这样就会影响查询速度。</p>\n</li>\n</ul>\n<div class=\"note default\">\n<p>软件结构设计的图形工具</p>\n</div>\n<ol>\n<li>\n<p>软件结构图</p>\n</li>\n<li>\n<p>层次图</p>\n</li>\n<li>\n<p>HIPO 图</p>\n</li>\n</ol>\n<div class=\"note default\">\n<p>结构化设计方法</p>\n</div>\n<ol>\n<li>\n<p>数据流图机器类型</p>\n</li>\n<li>\n<p>结构化设计方法的步骤</p>\n</li>\n<li>\n<p>变换型数据流图的分析设计</p>\n</li>\n<li>\n<p>事务型数据流图的分析设计</p>\n</li>\n<li>\n<p>综合分析设计</p>\n<ul>\n<li>首先确定数据流图整体上的类型</li>\n<li>然后利用变换型数据流图的分析方法，先找出主加工，把软件系统分为输入、变换、输出三部分，由此设计出软件系统的顶层和第一层</li>\n<li>最后根据数据流图各个部分的结构特点，适当地运用 <span class=\"label\">变换分析</span> 或 <span class=\"label\">事务分析</span>，就可得出初始软件结构图的某个方案。</li>\n</ul>\n</li>\n</ol>\n<div class=\"note default\">\n<p>总体设计说明书</p>\n</div>\n<ol>\n<li>\n<p>引言</p>\n<ul>\n<li>编写目的</li>\n<li>项目背景</li>\n<li>定义</li>\n<li>参考资料</li>\n</ul>\n</li>\n<li>\n<p>任务概述</p>\n<ul>\n<li>目标</li>\n<li>运行环境</li>\n<li>需求概述</li>\n<li>条件与限制</li>\n</ul>\n</li>\n<li>\n<p>总体设计</p>\n<ul>\n<li>处理流程</li>\n<li>总体结构和模块外部设计 （给出软件系统的结构图）</li>\n<li>功能分配：表明各项功能与程序的关系</li>\n</ul>\n</li>\n<li>\n<p>接口设计</p>\n<ul>\n<li>外部接口</li>\n<li>内部接口</li>\n</ul>\n</li>\n<li>\n<p>数据结构设计</p>\n<ul>\n<li>逻辑结构设计</li>\n<li>物理结构设计</li>\n<li>数据结构与程序的关系</li>\n</ul>\n</li>\n<li>\n<p>运行设计</p>\n<ul>\n<li>运行模块的组合</li>\n<li>运行控制</li>\n<li>运行时间</li>\n</ul>\n</li>\n<li>\n<p>出错处理设计</p>\n<ul>\n<li>出错输出信息</li>\n<li>出错处理对策：如设置后备、性能降级、恢复及再启动等</li>\n</ul>\n</li>\n<li>\n<p>安全保密设计</p>\n</li>\n<li>\n<p>维护设计</p>\n<ul>\n<li>说明为方便维护工作的设施，如维护模块</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"本章小结-4\"><a class=\"anchor\" href=\"#本章小结-4\">#</a> 本章小结</h2>\n<ul>\n<li>\n<p>软件总体设计的基本目的是用<span class=\"rainbow\">比较抽象概括</span>的方式确定系统如何完成预定的任务。总体设计阶段主要由两个小阶段组成：</p>\n<ul>\n<li>首先进行<span class=\"blue\">系统设计</span>，从数据流图出发设想完成系统功能的若干种推荐方案，然后比较分析这些方案，最后和用户共同选定一个最佳方案</li>\n<li>然后进行<span class=\"blue\">软件结构设计</span>，结构化设计方法把软件结构主要划分为<span class=\"red\">交换型</span>和<span class=\"red\">事务型</span>两大类，并且提出与之相应的变换型设计和事务型设计两种方法，以及综合型数据流图的设计方法。</li>\n</ul>\n</li>\n<li>\n<p>软件结构的模块化设计遵循<span class=\"rainbow\">抽象、信息隐蔽、分解、逐步求精和模块独立性</span>等一系列指导准则。模块独立性是一个良好设计的关键，评价标准主要是模块的耦合和内聚。</p>\n</li>\n<li>\n<p>数据库设计是指一个给定的应用环境下，确定一个最优数据模型和处理模式，主要包括<span class=\"rainbow\">数据库逻辑结构设计，物理结构设计和数据规范化</span>。</p>\n</li>\n<li>\n<p>总体设计阶段产生的文档是<span class=\"rainbow\">总体设计说明书</span>，它既是详细设计、编码的基础，也是进行测试的依据之一。</p>\n</li>\n</ul>\n<h1 id=\"软件详细设计\"><a class=\"anchor\" href=\"#软件详细设计\">#</a> 软件详细设计</h1>\n<div class=\"note default\">\n<p>详细设计的目的与任务</p>\n</div>\n<ul>\n<li>\n<p>详细设计的根本目的就是<span class=\"rainbow\">确定应该怎样具体实现所要求的系统</span>，应该得出对目标系统的精确描述，具体的就是为软件结构图中每一个模块确定采用的<span class=\"yello\">算法</span>和<span class=\"red\">块内数据结构</span>，用某种选定的详细设计工具更清晰地描述，从而在编码阶段可以把这些描述直接翻译成某种程序设计语言书写的源程序。</p>\n</li>\n<li>\n<p>详细设计阶段的任务是要设计出程序的【蓝图】，以后程序员将根据这个蓝图写出实际的代码。</p>\n<ul>\n<li>因此，详细设计的结构基本上决定了<span class=\"rainbow\">最终程序代码的质量</span>。</li>\n<li>程序的 &quot;读者&quot; 有两个，即 计算机 和 人 ！</li>\n<li>在整个软件生存周期中，软件测试、诊断程序错误、修改和软件维护等都必须先读懂程序。实际上对于长期使用的软件系统，读程序的时间可能比写程序的时间要长得多。因此，衡量程序的质量不仅仅看它的逻辑是否正确，性能是否满足要求，更重要的是看它是否易读，易理解。</li>\n<li>结构程序设计技术是实现上述目的的关键技术</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>结构化程序设计</p>\n</div>\n<ul>\n<li>\n<p>结构化程序设计所使用的结构有<span class=\"red\">顺序、条件和重复</span>三种，&quot;只有三种基本控制结构就能实现任何单入口单出口，且无死循环、死语句的程序&quot;。</p>\n</li>\n<li>\n<p>结构化程序设计采用自顶向下，逐步求精的设计方法和单入口单出口的控制结构。</p>\n<ul>\n<li>逐步求精在总体设计阶段用逐步求精法可以把一个复杂问题解法分解和细化成由许多模块组成的层次结构和软件系统。</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>详细设计工具</p>\n</div>\n<ul>\n<li>\n<p>程序流程图</p>\n</li>\n<li>\n<p>盒图 （N-S 图）</p>\n</li>\n<li>\n<p>问题分析图（PAD 图）</p>\n</li>\n<li>\n<p>过程设计语言（PDL）</p>\n</li>\n</ul>\n<div class=\"note default\">\n<p>人机界面设计</p>\n</div>\n<ul>\n<li>\n<p>无论一个软件的内部结构设计得多好，如果他的人机界面难以理解，那么软件还是失败的。</p>\n</li>\n<li>\n<p>人机界面设计问题</p>\n<ul>\n<li>进行人机界面设计时，几乎都有遇到 4 个问题：系统响应时间、用户帮助设施、出错信息处理、命令交互。\n<ul>\n<li>系统响应时间</li>\n<li>用户帮助设施</li>\n<li>出错信息处理</li>\n<li>命令交互</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>人机界面设计原则</p>\n<ul>\n<li>屏幕界面设计原则可归为 4 点：界面简洁、控件摆放规范、颜色统一、符合用户习惯。</li>\n<li>让用户驾驭软件，而不是软件驾驭用户</li>\n<li>尽可能减少用户的记忆负担</li>\n<li>保持界面的一致性</li>\n</ul>\n</li>\n<li>\n<p>人机界面设计过程</p>\n</li>\n<li>\n<p>人机界面设计已经经历了两个界限分明的时代。第一代是以文本为基础的简单交互，如常见的命令行、字符菜单等。第二代是使用图形、语音和其他交互媒介，充分地考虑了人对美的需求。更深高层的界面甚至模拟了人的生活空间，例如，虚拟现实环境。</p>\n</li>\n<li>\n<p>人机界面设计基本过程可以分为以下步骤:</p>\n<ul>\n<li>建立任务的目的和意图</li>\n<li>目标和意图明确后，建立界面需求规格模型</li>\n<li>以界面需求模型为依据创建用户界面原型</li>\n<li>用户试用并评估该界面原型</li>\n<li>设计者根据用户的意见修改设计并实现下一原型</li>\n<li>不断进行下去、直到用户感到满意为止</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>详细设计说明书</p>\n</div>\n<ul>\n<li>引言\n<ul>\n<li>编写目的\n<ul>\n<li>阐明编写详细设计说明书的目的，指明读者对象</li>\n</ul>\n</li>\n<li>项目背景\n<ul>\n<li>应包括项目的来源和主管部门等</li>\n</ul>\n</li>\n<li>定义\n<ul>\n<li>列出文档中用到的专门术语定义和缩写词的原意</li>\n</ul>\n</li>\n<li>参考资料\n<ul>\n<li>列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源，包括项目经核准的计划任务书，合同或批文；项目开发计划；需求规格说明书；总体设计说明书；测试计划（初稿）；用户操作手册（初稿）；文档所引用的其他资料、软件开发标准或规范。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>程序描述\n<ul>\n<li>功能</li>\n<li>性能</li>\n<li>输出和输入项目</li>\n<li>算法 (模块所选用的算法)</li>\n<li>程序逻辑\n<ul>\n<li>详细描述各个模块实现的算法，可以采用流程图、NS 图、PDL 语言、PAD 图、判定表和判定树等描述算法的图表。</li>\n</ul>\n</li>\n<li>接口</li>\n<li>存储分配</li>\n<li>限制条件</li>\n<li>测试要点 （给出测试模块的主要测试要求）</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>本章小结</p>\n</div>\n<ul>\n<li>详细设计阶段的任务是确定如何实现所要求的目标系统，将总体设计阶段得到的模块算法用详细设计工具：程序流程图、NS 图、PAD 图和 PDL 语言描述出来，即设计出程序的 &quot;蓝图&quot;，从而在下一编码阶段直接翻译成用某种程序设计语言书写的程序。结构化程序设计技术是软件详细设计的基础，任何一个程序都可以用顺序、选择、循环 3 种结构来设计和实现，结构化程序设计具有可理解性和可维护性。</li>\n<li>人机界面设计质量直接影响用户对软件产品的接受程度，因此，必须对人机界面设计给予足够重视。在人机界面的设计过程中，必须充分重视并认真处理好系统响应时间、用户帮助实施、出错信息处理和命令交互 4 个设计问题。</li>\n</ul>\n<h1 id=\"软件编码\"><a class=\"anchor\" href=\"#软件编码\">#</a> 软件编码</h1>\n<div class=\"note default\">\n<p>程序设计语言的分类</p>\n</div>\n<ul>\n<li>基础语言</li>\n<li>结构化语言</li>\n<li>面向对象语言</li>\n</ul>\n<div class=\"note default\">\n<p>程序设计语言的选择</p>\n</div>\n<ul>\n<li>主要的使用标准有如下几条\n<ul>\n<li>待开发软件的应用领域</li>\n<li>用户的要求</li>\n<li>软件的运行环境</li>\n<li>软件开发人员的知识</li>\n<li>软件的可移植性要求</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>程序设计风格</p>\n</div>\n<ul>\n<li>\n<p>人们在编写程序时，只追求编程的个人技巧，并不重视所编写程序的可读性、可维护性。也就是说人们并不关心源代码的编写风格。只要程序的执行效率、正确就是好程序。但是，随着软件规模的扩大，复杂性的增加，人们逐渐认识到，程序设计风格的混乱在很大程度上制约了软件的发展，并深刻认识到一个逻辑绝对正确但杂乱无章的程序不是好程序，因为这种难以供人阅读的程序，必然难以测试、排错和维护，甚至由于变得无法维护，而<span class=\"rainbow\">提前报废</span>。</p>\n</li>\n<li>\n<p>程序内部文档</p>\n<ul>\n<li>\n<p>标识符的选取</p>\n</li>\n<li>\n<p>程序的注解</p>\n<ul>\n<li>序言性注解\n<ul>\n<li>序言性注解应该安排在每个模块的首部，用来简要描述模块的整体功能、主要算法、接口特点、重要数据含义以及开发简史等。</li>\n</ul>\n</li>\n<li>功能性注解\n<ul>\n<li>功能性注解主要描述的是程序块，而不是解释每行代码</li>\n<li>适当使用空行、空格或括号，使读者容易区分程序和注解</li>\n<li>注解的内容一定要正确、准确，修改程序的同时也应该修改注解。【错误的或不一致的注解不仅对理解程序毫无帮助，而且会引起误导，还不如没有注解！】</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>程序的布局</p>\n<ul>\n<li>程序代码的布局对于程序的可读性也有很大的影响，应该适当利用阶梯形式，使程序的逻辑结构清晰、易读。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>数据说明</p>\n<ul>\n<li>数据说明的次序应该标准化</li>\n</ul>\n</li>\n<li>\n<p>语句构造</p>\n<ul>\n<li>不要为了节省存储空间把多个语句写在同一行</li>\n<li>尽量避免复杂的条件测试，尤其是减少对 &quot;非&quot; 条件的测试</li>\n<li>避免大量使用循环嵌套语句和条件嵌套语句</li>\n<li>利用圆括号使逻辑表达式或算术表达式的运算次序清晰直观</li>\n<li>变量说明不要遗漏，变量的类型、长度、存储及初始化要正确</li>\n<li>心理换位：“如果我不是编码人，我能看懂它吗？”</li>\n</ul>\n</li>\n<li>\n<p>输入 / 输出</p>\n<ul>\n<li>对所有输入数据都要进行校验</li>\n<li>检查输入项重要组合的合法性</li>\n<li>保持简单的输入格式，为方便用户使用</li>\n<li>输入一批数据时，使用数据或文件结束标志，不要用计数来控制，更不能要求用户自己指定输入项数或记录数。</li>\n<li>人机交互输入时，要详细说明可用的选择范围和边界值</li>\n<li>当程序设计语言对输入 / 输出格式有严格要求时，应保持输入格式与输入语句的要求一致</li>\n<li>输出报表的设计要符合用户要求，输出数据尽量表格化、图形化</li>\n<li>给有的输出数据加标志，</li>\n</ul>\n</li>\n<li>\n<p>效率</p>\n<ul>\n<li>代码效率</li>\n<li>存储效率</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>本章小结</p>\n</div>\n<ul>\n<li>\n<p>编码阶段是将详细设计的每个模块算法转换为用程序设计语言编写的源程序。用程序设计语言编写源程序时，要根据实际项目的特点，既要考虑现实可能性，又要从技术角度、工程角度和心理角度评价和比较各种语言，选择一种合适的程序设计语言。</p>\n</li>\n<li>\n<p>编码风格直接影响软件的质量，影响软件的可读性、可维护性和可移植性。因此，编码风格要简明和清晰，不要追求所谓程序设计技巧，要注重程序结构清晰，层次结构分明，语言简单明了，各种标识符名字的命名要规范，程序和复杂的数据要有注释。</p>\n</li>\n</ul>\n<h1 id=\"软件测试\"><a class=\"anchor\" href=\"#软件测试\">#</a> 软件测试</h1>\n<div class=\"note default\">\n<p>软件测试的目标</p>\n</div>\n<ul>\n<li>软件测试是为了发现错误而执行程序的过程</li>\n<li>一个好的测试用例能够发现【至今尚未发现的错误】的测试</li>\n<li>一个成功的测试是发现了【至今尚未发现的错误】的测试</li>\n</ul>\n<div class=\"note default\">\n<p>软件测试的原则</p>\n</div>\n<ul>\n<li>软件用例既要有输入数据，又要有对应的输出结果。</li>\n<li>测试用例不仅要选合理的输入数据，还应选择不合理的输入数据。</li>\n<li>除了检查程序是否做了它应该做的工作，还应该检查是否做了它不应该做的工作。</li>\n<li>应该远在测试开始之前就制定测试计划。</li>\n<li>测试计划、测试用例、测试报告必须作为文档长期保存。</li>\n<li>Pare to 原理说明，测试发现的错误中 80% 很可能是由程序中 20% 的模块造成的，即错误出现的 &quot;群集性&quot; 现象。</li>\n<li>为了达到最佳的预测效果，程序员应该避免测试自己的程序。测试是一种 &quot;挑剔性&quot; 的行为，测试自己的程序存在心理障碍。另外，对需求规格说明书的理解而引入的错误则更不容易发现。因此，应该由独立的第三方从事测试工作，会更客观，更有效。</li>\n</ul>\n<div class=\"note default\">\n<p>软件测试方法及分类</p>\n</div>\n<ul>\n<li>\n<p>静态测试</p>\n<ul>\n<li>人工测试</li>\n<li>计算机辅助静态分析</li>\n</ul>\n</li>\n<li>\n<p>动态测试</p>\n</li>\n</ul>\n<div class=\"note default\">\n<p>黑盒测试与白盒测试</p>\n</div>\n<ul>\n<li>黑盒测试\n<ul>\n<li>功能测试或数据驱动测试</li>\n</ul>\n</li>\n<li>白盒测试\n<ul>\n<li>结构测试或逻辑驱动测试</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>软件测试用例的设计</p>\n</div>\n<ul>\n<li>\n<p>白盒技术</p>\n<ul>\n<li>逻辑覆盖\n<ul>\n<li>语句覆盖</li>\n<li>判定覆盖</li>\n<li>条件覆盖</li>\n<li>判定条件覆盖</li>\n<li>条件组合覆盖</li>\n<li>路径覆盖</li>\n</ul>\n</li>\n<li>循环覆盖\n<ul>\n<li>单循环</li>\n<li>嵌套循环</li>\n</ul>\n</li>\n<li>基本路径测试</li>\n</ul>\n</li>\n<li>\n<p>黑盒技术</p>\n<ul>\n<li>等价类划分法\n<ul>\n<li>有效等价类</li>\n<li>无效等价类</li>\n</ul>\n</li>\n<li>边界值分析法</li>\n<li>错误推测法</li>\n<li>因果图法</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>软件测试过程</p>\n</div>\n<ul>\n<li>\n<p>软件产品在交付使用之前一般要经历单元测试、集成测试、确认测试和系统测试 4 个阶段的测试。</p>\n</li>\n<li>\n<p>软件过程中需要 3 类信息</p>\n<ul>\n<li>软件配置</li>\n<li>测试配置</li>\n<li>测试工具</li>\n</ul>\n</li>\n<li>\n<p>单元测试</p>\n<ul>\n<li>模块接口测试</li>\n<li>模块局部数据结构测试</li>\n<li>模块出错处理通路测试</li>\n<li>模块中重要的执行路径测试</li>\n<li>模块边界条件测试</li>\n</ul>\n</li>\n<li>\n<p>集成测试</p>\n<ul>\n<li>自顶向下集成方法</li>\n<li>自底向上集成方法</li>\n</ul>\n</li>\n<li>\n<p>确认测试</p>\n<ul>\n<li>有效性测试</li>\n<li>软件配置报告</li>\n</ul>\n</li>\n<li>\n<p>系统测试</p>\n<ul>\n<li>着重对系统的性能、特性进行测试。</li>\n</ul>\n</li>\n<li>\n<p>α 测试和 β 测试</p>\n<ul>\n<li>\n<p>α 测试</p>\n<ul>\n<li>指在软件公司进行的由内部人员指导的新产品的测试，经过测试的软件称为 Alpha 版本。</li>\n</ul>\n</li>\n<li>\n<p>β 测试</p>\n<ul>\n<li>指公司外部的典型用户在开发者不能控制的环境中 &quot;真实&quot; 应用，并要求用户报告异常情况、提出批评建议，然后对 β 版本进行修正和完善，最终得到正式发布的版本。</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>调试</p>\n</div>\n<ul>\n<li>调试的目的和任务\n<ul>\n<li>目的：为了解决软件中存在的错误，即<span class=\"rainbow\">错误定位</span>，分析并找出原因改正错误。</li>\n<li>任务：</li>\n</ul>\n</li>\n<li>常用调试技术\n<ul>\n<li>简单的调试技术</li>\n<li>消去原因法\n<ul>\n<li>归纳法</li>\n<li>演绎法</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>软件测试阶段终止的条件</p>\n</div>\n<ul>\n<li>根据程序的可靠性制定测试的终止条件</li>\n<li>测试的覆盖率要达到一定的目标</li>\n<li>规定至少要查出错误数量</li>\n</ul>\n<h1 id=\"软件维护\"><a class=\"anchor\" href=\"#软件维护\">#</a> 软件维护</h1>\n<div class=\"note default\">\n<p>软件维护概述</p>\n</div>\n<ul>\n<li>软件维护定义\n<ul>\n<li>传统上，软件系统交付之后对其实施更改的学科叫做软件维护。</li>\n<li>通俗地说，软件维护是指软件系统交付使用以后，为了改正软件运行错误，或者因满足新的需求而加入新功能的修改软件的过程。</li>\n</ul>\n</li>\n<li>软件维护的分类\n<ul>\n<li>改正性维护 （Corrective Maintenance）</li>\n<li>适应性维护 （Adaptive Maintenance）</li>\n<li>完善性维护 （Perfective Maintenance）</li>\n<li>预防性维护 （Preventive Maintenance）</li>\n</ul>\n</li>\n<li>软件维护的特点\n<ul>\n<li>软件维护是软件生存周期中延续时间最长、工作量最大的一个阶段</li>\n<li>软件维护不仅工作量大、任务重，而且维护不当的话，还会产生一些意想不到的副作用，甚至引起新的错误。</li>\n<li>软件维护活动实际上是一个修改和简化了的软件开发活动。</li>\n<li>尽管软件维护需要工作量大，但是长期以来，软件维护工作却一直未受到软件设计者们的足够重视。有关软件维护方面的文献资料很少，相应的技术手段和方法也很缺乏。</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>软件维护的过程</p>\n</div>\n<ul>\n<li>\n<p>结构化维护与非结构化维护</p>\n</li>\n<li>\n<p>维护组织</p>\n</li>\n<li>\n<p>维护工作的流程</p>\n<ul>\n<li>建立维护机构</li>\n<li>编写软件维护申请报告</li>\n<li>确定软件维护工作的流程</li>\n<li>整理软件维护文档</li>\n<li>评价软件维护性能</li>\n</ul>\n</li>\n<li>\n<p>维护工作的组织管理</p>\n</li>\n</ul>\n<div class=\"note default\">\n<p>软件可维护性</p>\n</div>\n<ul>\n<li>软件可维护性的定义\n<ul>\n<li>七大特性衡量程序的可维护性\n<ul>\n<li>可理解性</li>\n<li>可测试性</li>\n<li>可修改性</li>\n<li>可靠性</li>\n<li>可移植性</li>\n<li>可使用性</li>\n<li>效率</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>软件可维护性的度量</li>\n<li>提高软件可维护性的方法\n<ul>\n<li>建立明确的软件质量目标和优先级</li>\n<li>使用提高软件质量的技术和工具\n<ul>\n<li>模块化方法</li>\n<li>结构化方法</li>\n<li>面向对象方法</li>\n</ul>\n</li>\n<li>选择便于维护的程序设计语言</li>\n<li>采取明确的、有效的质量保证审查措施\n<ol>\n<li>在检查点进行复查</li>\n<li>验收检查</li>\n<li>周期性的维护审查</li>\n<li>对软件包进行检查</li>\n</ol>\n</li>\n<li>完善程序的文档</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>软件维护中存在的问题</p>\n</div>\n<ul>\n<li>软件维护困难的表现\n<ul>\n<li>读懂别人的程序是很困难的，而文档的不足更增加了这种难度。</li>\n<li>文档的不一致性是软件维护困难的又一要素。</li>\n<li>软件开发和软件维护在人员和时间上存在差异。</li>\n<li>软件维护不是一件吸引人的工作。</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>软件维护的副作用</p>\n</div>\n<ul>\n<li>修改代码的副作用</li>\n<li>修改数据的副作用</li>\n<li>修改文档的副作用</li>\n</ul>\n<div class=\"note default\">\n<p>软件维护的代价</p>\n</div>\n<ul>\n<li>系统的大小：系统规模越大，其功能就越复杂，软件维护的工作量也随之增大。</li>\n<li>程序设计语言：使用强功能的程序设计语言就可以控制程序的规模。</li>\n<li>系统年龄：</li>\n<li>数据库技术的应用：</li>\n<li>先进的软件开发技术：</li>\n<li>其他的一些因素：如应用的类型、数学模型、任务的难度、开关与标记、if 嵌套深度、索引或下标数等，对维护工作量也有影响。</li>\n<li>无形的成本\n<ul>\n<li>一些看起来是合理的修复或修改请求不能及时安排，使得客户不满意</li>\n<li>变更的结果把一些潜在的错误引入正在维护的软件，使得软件开发工作受到干扰。</li>\n<li>当必须把软件人员抽调到维护工作中去时，就使得软件开发工作受到干扰。</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>再工程和逆向工程</p>\n</div>\n<ul>\n<li>\n<p>软件再工程旨在对现存的大量软件系统进行挖掘、整理，以得到有用的软件构件，或对已有软件构件进行维护，以延长其生存期。</p>\n</li>\n<li>\n<p>再工程和逆向工程的概念</p>\n<ul>\n<li>\n<p>软件再工程的定义</p>\n<ol>\n<li>增进对软件的理解</li>\n<li>准备或直接提高软件的可维护性、复用性或演化性</li>\n</ol>\n</li>\n<li>\n<p>逆向工程</p>\n</li>\n</ul>\n</li>\n<li>\n<p>为什么要实施软件再工程</p>\n<ul>\n<li>\n<p>再工程可帮助软件机构降低软件演化的风险</p>\n</li>\n<li>\n<p>再工程可帮助软件机构补偿软件的投资</p>\n</li>\n<li>\n<p>再工程可使得软件易于进一步变更</p>\n</li>\n<li>\n<p>再工程有着广阔的市场</p>\n</li>\n</ul>\n</li>\n<li>\n<p>软件再工程技术</p>\n<ul>\n<li>改进软件\n<ul>\n<li>软件重构：</li>\n<li>文档重写、加注释及文档更新：</li>\n<li>复用工程：</li>\n<li>重新划分模块：</li>\n<li>数据再工程：</li>\n<li>业务过程再工程：</li>\n<li>可维护性分析、业务量分析和经济分析：</li>\n</ul>\n</li>\n<li>理解软件\n<ul>\n<li>浏览：</li>\n<li>分析与度量：</li>\n<li>逆向工程与设计恢复：</li>\n</ul>\n</li>\n<li>获取、保护及扩充软件的已有知识\n<ul>\n<li>程序分解</li>\n<li>对象恢复</li>\n<li>程序理解</li>\n<li>知识库和程序变换</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>再工程和逆向工程</p>\n</div>\n<ul>\n<li>软件系统开发完成，经测试达到可靠性指标后，就交给用户，进入软件生存周期的最后一个阶段，即运行维护阶段。软件维护阶段是软件生存周期中时间最长的一个阶段，也是所花费精力和费用最多的一个阶段。软件维护有 4 种类型，即<span class=\"rainbow\">改正性、适应性、完善性和预防性</span>维护。软件维护过程需要建立相应的维护组织，按照一定的维护流程进行结构化维护工作。</li>\n<li>软件可维护性是衡量软件质量的重要指标，主要通过<span class=\"rainbow\">可理解性、可测试性、可修改性、可靠性、可移植性、可使用性、效率</span> 7 个特性来度量，提高软件可维护性需要从 5 个方面入手完善维护工作。软件维护工作本身的副作用，因此，维护人员更应遵守软件维护流程。</li>\n<li>软件维护阶段还有一个重要工作是进行软件再工程，实施软件再工程首先需要理解系统，此外还会涉及软件再工程的一些相关技术。</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/09/08/note/softwareEnginee2/",
            "url": "https://hk2012.github.io/2023/09/08/note/softwareEnginee2/",
            "title": "2024面向对象的软件工程",
            "date_published": "2023-09-08T09:54:00.000Z",
            "content_html": "<h1 id=\"面向对象方法学\"><a class=\"anchor\" href=\"#面向对象方法学\">#</a> 面向对象方法学</h1>\n<h2 id=\"面向对象方法概述\"><a class=\"anchor\" href=\"#面向对象方法概述\">#</a> 面向对象方法概述</h2>\n<ul>\n<li>面向对象（Object Oriented，OO）方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式，使开发软件的方法与过程尽可能接近人类解决问题的方法与过程。</li>\n<li>OO = Objects + Classes + Inheritance + Communication with messages</li>\n</ul>\n<div class=\"note primary\">\n<p>面向对象方法学的发展</p>\n</div>\n<ul>\n<li>初期阶段（20 世纪 60 年代开始）</li>\n<li>发展阶段（20 世纪 80 年代中期到 90 年代）</li>\n<li>成熟阶段（20 世纪 90 年代以后）</li>\n</ul>\n<div class=\"note primary\">\n<p>面向对象方法学的优点与不足</p>\n</div>\n<ul>\n<li>\n<p>面向对象方法学的主要优点</p>\n<ul>\n<li>与人类习惯的思维方式一致</li>\n<li>软件稳定性好</li>\n<li>可重用性好</li>\n<li>较易开发大型软件产品</li>\n<li>可维护性好，易于测试</li>\n</ul>\n</li>\n<li>\n<p>面向对象方法学的不足之处</p>\n<ul>\n<li>相对面向过程而言比较麻烦，需要写更多的代码</li>\n<li>占用空间比较多，程序效率比较低，如多态等特性会降低性能</li>\n<li>创建对象实例的过程往往是非常耗时的工作，因为一些认为【万事皆对象】的语言，对于一些简单类型的操作性能比较低</li>\n<li>对系统动态特征表述不充分（主要是整体动态特征），且反映系统整体功能特征的能力比较差。</li>\n<li>面向对象方法学 4 大特性（抽象、封装、继承和多态）在一定程度上避免了不合理的操作，并能有效地阻止错误的扩散，减轻了维护工作量，但是也加大了测试的难度，给软件测试带来不便。</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"面向对象的软件工程\"><a class=\"anchor\" href=\"#面向对象的软件工程\">#</a> 面向对象的软件工程</h2>\n<ul>\n<li>\n<p>OOA (Objected Oriented Analysis) 面向对象的分析</p>\n</li>\n<li>\n<p>OOD (Objected Oriented Design) 面向对象的设计</p>\n</li>\n<li>\n<p>OOP (Objected Oriented Programming) 面向对象的编程</p>\n</li>\n<li>\n<p>OOT (Objected Oriented Test) 面向对象的测试</p>\n</li>\n<li>\n<p>OOSM (Objected Oriented Software Maintenance) 面向对象的软件维护</p>\n</li>\n<li>\n<p>OOA -&gt; OOD -&gt; OOP -&gt; OOT -&gt; OOSM</p>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>面向对象的基本概念</p>\n</div>\n<ul>\n<li>对象\n<ul>\n<li>是一组静态特征和动态特征的封装体</li>\n</ul>\n</li>\n<li>类\n<ul>\n<li>具有抽象，无值的特征</li>\n</ul>\n</li>\n<li>消息</li>\n<li>封装</li>\n</ul>\n<div class=\"note primary\">\n<p>对象、类及类之间关系的分析</p>\n</div>\n<ul>\n<li>类与对象的关系\n<ul>\n<li>模板与实例的关系</li>\n</ul>\n</li>\n<li>类与类之间的关系\n<ul>\n<li>继承 (Inheritance)</li>\n<li>多态性 (polymorphism)</li>\n<li>关联 (Association)</li>\n<li>依赖 (dependency)</li>\n<li>实现 (Realization)</li>\n<li>聚集 (Aggregation) 与 组合 (Composition)\n<ul>\n<li>\n<p>关联与聚合的区别如下</p>\n<ul>\n<li>关联和聚合在代码层面是一致的，只能从语义级别来区分。</li>\n<li>关联的两个对象之间一般是平等的</li>\n<li>聚集则一般是不平等的</li>\n</ul>\n</li>\n<li>\n<p>强弱关系：组合 &gt; 聚集 &gt; 关联 &gt; 依赖</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>典型的面向对象开发方法</p>\n</div>\n<ul>\n<li>Booch 方法</li>\n<li>Coad/Yourdon 方法 (简称 Coad 方法或 OOAD 方法)\n<ul>\n<li>OOA 面向对象的分析</li>\n<li>OOD 面向对象的分析</li>\n</ul>\n</li>\n<li>OMT/Rumbaugh 方法\n<ul>\n<li>OMT (Object Modeling Technique) 对象模型化技术</li>\n</ul>\n</li>\n<li>OOSE 方法 / Jacobson 方法\n<ul>\n<li>OOSE (Object Oriented Software Engineering) 面向对象软件工程</li>\n<li>需求模型</li>\n<li>分析模型</li>\n<li>设计模型</li>\n<li>实现模型</li>\n<li>测试模型</li>\n</ul>\n</li>\n<li>Wirfs - Brock 方法\n<ul>\n<li>Wirfs - Brock 方法主要包括以下步骤\n<ol>\n<li>评估客户规约</li>\n<li>使用语法分析从规约中抽取候选类</li>\n<li>组合类以试图标识超类</li>\n<li>为每个类定义责任</li>\n<li>为每个类赋予责任</li>\n<li>标识类之间的关系</li>\n<li>定义类之间基于责任的协作</li>\n<li>构造类的层次表示以显示继承关系</li>\n<li>构造系统的协作图</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>上述 5 种方法的比较\n<ul>\n<li>Booch 方法并不是一个开发过程，只是在开发面向对象系统时应遵循的一些技术和原则。</li>\n<li>OMT 方法覆盖了应用开发的全过程，是一种比较成熟的方法，用几种不同的观念来适应不同的建模场合，他在许多重要观念上受到关系数据库设计的影响，适用于数据数据密集型的信息系统的开发，是一种比较完善和有效的分析与设计方法。</li>\n<li>在 OOAD 方法中，OOA 把系统横向划分为 5 个层次，OOD 把系统纵向划分为 4 个部分，从而形成了一个清晰的系统模型。OOAD 适用于小型系统的开发。</li>\n<li>OOSE 能够较好地描述系统的需求，是一种实用的面向对象的系统开发方法，适用于商务处理方面的应用开发。</li>\n<li>Wirfs-Brock 方法不明确区分分析和设计任务，从评估客户规格说明到设计完成，是一个连续的过程。</li>\n</ul>\n</li>\n<li>统一建模语言 UML (Unified Modeling Language)\n<ul>\n<li>该方法力图实现 OMT 方法和 Booch 方法的统一。</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"统一建模语言-uml\"><a class=\"anchor\" href=\"#统一建模语言-uml\">#</a> 统一建模语言 UML</h2>\n<div class=\"note primary\">\n<p>概述</p>\n</div>\n<ul>\n<li>UML 是一种编制软件蓝图的标准化语言，需要强调的是，UML 是一种建模语言而不是方法，UML 本身是独立于过程的。</li>\n<li>UML 建立在当今国际上最具有代表性的 3 种面向对象方法（Booch 方法，OMT 方法，OOSE 方法）的基础之上，由 OMG (Object Management Group) 国际对象管理组织 于 1997 年 11 月批准为标准建模语言，支持面向对象的技术和方法，能够准确方便地表达面向对象的概念，体现面向对象的分析和设计风格。</li>\n<li>UML 的建模过程包括分析和设计两个建模阶段\n<ul>\n<li>分析阶段主要通过 [用例图、类图、活动图、类分析图、顺序图].{rainbow} 等表示分析结果；</li>\n<li>设计阶段主要通过<span class=\"rainbow\">类设计图、通信图、状态图、构件图、部署图</span>等表示设计结果；</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>UML 的发展</p>\n</div>\n<ul>\n<li>统一建模语言 UML 起源于两位杰出的面向对象方法大师 Booch 和 Rumbaugh 及 著名的软件工具制造企业 Rational Software。他们于 1994 年 10 月加盟了该公司，于 1995 年 10 月将两种方法合并，推出统一方法（Unified Method）。同年......</li>\n</ul>\n<div class=\"note primary\">\n<p>UML 的定义及主要内容</p>\n</div>\n<ul>\n<li>UML 的语义\n<ul>\n<li>UML 的语义在一个四层抽象级别的建模框架中定义。</li>\n<li>元元模型 (Meta-Meta Model) 层</li>\n<li>元模型 (Meta Model) 层</li>\n<li>模型层 (Model) 层</li>\n<li>用户模型 (User Model) 层</li>\n</ul>\n</li>\n<li>UML 的表示方法\n<ul>\n<li>视图 (View)</li>\n<li>图 (Diagram)</li>\n<li>模型元素 (Model Element)</li>\n<li>公共机制 (Common Mechanism)</li>\n</ul>\n</li>\n<li>UML 的构成 (3 类主要元素)\n<ul>\n<li><span class=\"label primary\">基本构造块</span> (Basic Building Block)\n<ul>\n<li>\n<p><span class=\"label info\">事物</span> (Thing)</p>\n<ul>\n<li>\n<p><span class=\"label\">结构事物</span> (Structural Thing)</p>\n<ul>\n<li>类 (Class)</li>\n<li>接口 (Interface)</li>\n<li>协作 (Collaboration)</li>\n<li>用例 (Use Case)</li>\n<li>主动类 (Active Class)</li>\n<li>构件 (Component)</li>\n<li>结点 (Node)</li>\n</ul>\n</li>\n<li>\n<p><span class=\"label\">行为事物</span> (Behavioral Thing)</p>\n<ul>\n<li>交互 (Interaction)</li>\n<li>状态机 (State Machine)</li>\n</ul>\n</li>\n<li>\n<p><span class=\"label\">分组事物</span> (Grouping Thing)</p>\n<ul>\n<li>包 (package)</li>\n</ul>\n</li>\n<li>\n<p><span class=\"label\">注释事物</span> (Annotation Thing)</p>\n<ul>\n<li>注解 (Note)</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><span class=\"label info\">关系</span> (Relationship)</p>\n</li>\n<li>\n<p><span class=\"label info\">图</span> (Diagram)</p>\n</li>\n</ul>\n</li>\n<li><span class=\"label primary\">规则</span> (Rule)\n<ul>\n<li>命名 (Name)</li>\n<li>范围 (Scope)</li>\n<li>可见性 (Visibility)</li>\n<li>完整性 (Integrity)</li>\n<li>执行 (Execution)</li>\n</ul>\n</li>\n<li><span class=\"label primary\">公共机制</span> (Common Mechanism)\n<ul>\n<li>规范说明 (Specification)</li>\n<li>修饰 (Adornment)</li>\n<li>通用划分 (Common Division)</li>\n<li>扩展机制 (Extensibility Mechanism)\n<ul>\n<li>版型 (Stereotype)</li>\n<li>标记值 (Tagged Value)</li>\n<li>约束 (Constraint)</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>UML 的构成图</li>\n<li><img data-src=\"/img/software/UML%E7%9A%84%E6%9E%84%E6%88%90%E5%9B%BE.png\" alt=\"UML的构成图\" /></li>\n</ul>\n<div class=\"note primary\">\n<p>UML 的特点和用途</p>\n</div>\n<ul>\n<li>特点\n<ul>\n<li>统一的标准</li>\n<li>面向对象</li>\n<li>可视化，表示能力强大</li>\n<li>独立于过程</li>\n<li>易于掌握应用</li>\n</ul>\n</li>\n<li>UML 是一个通用的标准语言，在系统开发的各个阶段的都可使用 UML, 其应用覆盖了从需求分析到软件测试的各阶段。\n<ul>\n<li>需求分析阶段</li>\n<li>系统分析阶段</li>\n<li>系统设计阶段</li>\n<li>编码阶段</li>\n<li>测试阶段</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>UML 的模型视图简介</p>\n</div>\n<ul>\n<li>静态图\n<ul>\n<li>类图</li>\n<li>对象图</li>\n<li>用例图</li>\n<li>构件图</li>\n<li>部署图</li>\n<li>包图</li>\n</ul>\n</li>\n<li>动态图\n<ul>\n<li>状态图</li>\n<li>顺序图</li>\n<li>通信图</li>\n<li>活动图</li>\n<li>计时图</li>\n<li>交互概览图</li>\n</ul>\n</li>\n<li>视图\n<ul>\n<li>用例视图 (Use Case View)</li>\n<li>逻辑视图 (Logical View)</li>\n<li>进程视图 (Process View)</li>\n<li>实现视图 (Realization View)</li>\n<li>部署视图 (Deployment View)</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>UML 常用工具</p>\n</div>\n<ul>\n<li>Rational Rose</li>\n<li>Star UML</li>\n<li>Visio Professional</li>\n</ul>\n<div class=\"note primary\">\n<p>Rational Rose</p>\n</div>\n<ul>\n<li>对面向对象模型的支持</li>\n<li>对螺旋上升式开发过程的支持</li>\n<li>对双向工程的支持</li>\n<li>对团队开发的支持\n<ul>\n<li>\n<p>个人工作间 (Workspace)</p>\n</li>\n<li>\n<p>配置管理 CM (Configuration Management)</p>\n</li>\n<li>\n<p>虚拟路径地图 (Virtual Path Maps)</p>\n</li>\n<li>\n<p>提供与 ClearCase (Rational 公司的软件版本控制产品)</p>\n</li>\n<li>\n<p>在对项目团队开发的管理方面，Rational Rose 支持的每次迭代包括 6 个阶段。</p>\n<ul>\n<li>计划</li>\n<li>蔓延</li>\n<li>延伸</li>\n<li>整合</li>\n<li>评估</li>\n<li>发布</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>对工具的支持</li>\n</ul>\n<h2 id=\"统一软件开发过程-rup-概述\"><a class=\"anchor\" href=\"#统一软件开发过程-rup-概述\">#</a> 统一软件开发过程 RUP 概述</h2>\n<ul>\n<li>RUP (Rational Unified Process) 是一个面向对象软件工程的通用业务流程。</li>\n</ul>\n<div class=\"note primary\">\n<p>RUP 的历史</p>\n</div>\n<div class=\"note primary\">\n<p>RUP 的特色</p>\n</div>\n<ul>\n<li>\n<p>迭代和增量方法</p>\n</li>\n<li>\n<p>以软件体系结构为中心</p>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>RUP 软件开发的生存周期</p>\n</div>\n<ul>\n<li>动态结构\n<ul>\n<li>初始阶段</li>\n<li>细化阶段</li>\n<li>构造阶段</li>\n<li>交付阶段</li>\n</ul>\n</li>\n<li>静态结构\n<ul>\n<li>业务建模 (Business Modeling)</li>\n<li>需求 (Requirements)</li>\n<li>分析和设计 (Analysis &amp; Design)</li>\n<li>实现 (Realization)</li>\n<li>测试 (Test)</li>\n<li>部署 (Deployment)</li>\n<li>项目管理 (Project Management)</li>\n<li>配置与变更管理 (Configuration &amp; Change Management)</li>\n<li>环境 (Environment)</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>RUP 过程的建模</p>\n</div>\n<ul>\n<li>初始阶段</li>\n<li>细化阶段</li>\n<li>构造阶段</li>\n<li>交付阶段</li>\n</ul>\n<h2 id=\"本章小结\"><a class=\"anchor\" href=\"#本章小结\">#</a> 本章小结</h2>\n<ul>\n<li>\n<p>面向对象方法学尽可能模拟人类认识客观世界的思维方式来进行软件开发、使开发软件的方法与过程尽可能接近人类解决问题的方法与过程，能够开发出稳定性好、可重用性好、可维护性好的软件，并且较易开发大型软件产品，这些都是面向对象方法学的突出优点</p>\n</li>\n<li>\n<p>面向对象软件工程是面向对象方法学在软件工程领域的全面应用，可应用在生存周期的各个阶段。本章还介绍 5 种典型的面向对象方法及其特点。</p>\n</li>\n<li>\n<p>统一建模语言 UML 是在面向对象方法学大战后的集成和统一，被国际对象管理组织 OMG 接纳为标准建模方法和语言。最新的 UML2.0 版共包含 3 类主要元素、4 类事物和 13 种图形，并提供 5 种视图用于系统的建模指导，本章还介绍了支持 UML 的相关工具。</p>\n</li>\n<li>\n<p>统一软件开发过程 RUP (Rational Unified Process) 是一个面向对象软件工程的通用业务流程，强调整个开发过程中的多次迭代，为在开发组织中分配任务和职责提供了一种规范的方法。RUP 软件开发生存周期是一个二维的软件开发模型，横轴代表时间，显示过程的生存周期，体现了过程的动态结构；纵轴给出 RUP 软件开发过程中的核心工作流，表示 RUP 软件开发过程的静态结构。</p>\n</li>\n</ul>\n<h1 id=\"面向对象的分析\"><a class=\"anchor\" href=\"#面向对象的分析\">#</a> 面向对象的分析</h1>\n<h2 id=\"面向对象的分析过程\"><a class=\"anchor\" href=\"#面向对象的分析过程\">#</a> 面向对象的分析过程</h2>\n<ul>\n<li>\n<p>面向对象分析就是抽取和整理用户需求并建立问题领域精确模型的过程。OOA 强调运用面向对象方法，对问题域和系统职责进行分析和理解，找出描述问题域及系统职责所需要的对象，定义对象的属性、服务及他们之间的关系，以便建立一个符合问题领域、满足用户需求的 OOA 模型。</p>\n</li>\n<li>\n<p>面向对象分析过程，首要的是先建模，通常需要建立 4 种形式的模型：</p>\n<ul>\n<li>用类和对象表示的对象 (静态) 模型</li>\n<li>用用例和场景表示的用例 (功能) 模型</li>\n<li>由状态机和交互图表示的动态行为模型</li>\n<li>由构件图和部署图表示的物理实现模型</li>\n</ul>\n</li>\n<li>\n<p>4 种模型之间的关系</p>\n<ul>\n<li>针对每个类建立的动态模型，描述类实例的生存周期或运行周期</li>\n<li>状态转换驱使行为发生，这些行为在数据流图中被映射成处理，在用例图中被映射成用例，他们同时与类图中的服务相对应。</li>\n<li>用例 (功能) 模型中的用例 (或处理) 对应于对象模型中的类所提供的服务。</li>\n<li>数据流图中数据存储及数据的源点 / 终点通常是对象模型中的对象</li>\n<li>数据流图中数据流往往是对象模型中对象的属性值，也可能是整个对象</li>\n<li>用例图中的参与者可能是对象模型中的对象</li>\n<li>用例 (功能) 模型中的用例 (或处理) 可能产生动态模型中的事件</li>\n<li>对象模型描述数据流图中的数据流、数据存储及数据源点 / 终点的结构</li>\n<li>物理实现模型中的构件通常对应对象模型中的类</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"建立用例模型\"><a class=\"anchor\" href=\"#建立用例模型\">#</a> 建立用例模型</h2>\n<div class=\"note primary\">\n<p>需求分析与用例建模</p>\n</div>\n<div class=\"note primary\">\n<p>确定系统范围和系统边界</p>\n</div>\n<div class=\"note primary\">\n<p>确定参与者</p>\n</div>\n<ul>\n<li>通常通过回答以下问题找到参与者\n<ul>\n<li>谁使用系统的主要功能？</li>\n<li>谁需要系统的支持已完成其日常工作任务？</li>\n<li>谁负责维护、管理并保证系统的正常运行？</li>\n<li>系统需要和那些外部系统交互？</li>\n<li>系统需要处理那些设备？</li>\n<li>对系统产生的结果感兴趣的人或事物是那些？</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>确定用例</p>\n</div>\n<div class=\"note primary\">\n<p>确定用例之间的关系</p>\n</div>\n<ul>\n<li>包含关系</li>\n<li>扩展关系</li>\n<li>泛化关系</li>\n<li>使用关系</li>\n</ul>\n<h2 id=\"建立对象模型\"><a class=\"anchor\" href=\"#建立对象模型\">#</a> 建立对象模型</h2>\n<ul>\n<li>5 个层次对应着建立对象模型的 5 项活动：\n<ul>\n<li>找出类和对象</li>\n<li>识别结构</li>\n<li>识别主题</li>\n<li>定义属性</li>\n<li>定义服务</li>\n</ul>\n</li>\n</ul>\n<dl>\n<dt>面向对象分析大体上按照下列顺序进行:</dt>\n<dd>寻找类和对象 -&gt; 识别结构 -&gt; 识别主题 -&gt; 定义属性 -&gt; 建立动态模型 -&gt; 建立功能模型 -&gt; 定义服务</dd>\n</dl>\n<div class=\"note primary\">\n<p>确定类和对象</p>\n</div>\n<dl>\n<dt>筛选过程主要依据下列标准来删除不正确或不必要的类和对象</dt>\n<dd>冗余</dd>\n<dd>无关</dd>\n<dd>笼统</dd>\n<dd>属性</dd>\n<dd>操作</dd>\n<dd>实现</dd>\n</dl>\n<div class=\"note primary\">\n<p>确定关联</p>\n</div>\n<dl>\n<dt>标识关联的启发式规则有</dt>\n<dd>从需求描述中查找动词或动词短语，识别动作的主体和客体，从角色寻找关联；</dd>\n<dd>准确地命名关联和角色；</dd>\n<dd>尽量使用常用的修饰词标识名字空间和关键属性；</dd>\n<dd>应删除派生关联，即可由其他关联导出的关联；</dd>\n<dd>在一组关联被确定下来之前，先不必考虑实例之间的多重性</dd>\n<dd>为适用于不同的关联，必要时要分解以前确定的类；</dd>\n<dd>分析过程中，及时补上遗漏的关联</dd>\n</dl>\n<div class=\"note primary\">\n<p>确定属性</p>\n</div>\n<div class=\"note primary\">\n<p>建立对象类图</p>\n</div>\n<div class=\"note primary\">\n<p>划分主题</p>\n</div>\n<div class=\"note primary\">\n<p>优化对象模型</p>\n</div>\n<h2 id=\"建立动态行为模型\"><a class=\"anchor\" href=\"#建立动态行为模型\">#</a> 建立动态行为模型</h2>\n<div class=\"note primary\">\n<p>建立顺序图</p>\n</div>\n<div class=\"note primary\">\n<p>建立通信图</p>\n</div>\n<div class=\"note primary\">\n<p>建立状态图</p>\n</div>\n<ul>\n<li>状态机及状态图的定义</li>\n<li>状态</li>\n<li>事件\n<ol>\n<li>入口事件</li>\n<li>出口事件</li>\n<li>动作事件</li>\n<li>信号事件</li>\n<li>调用事件</li>\n<li>修改事件</li>\n<li>时间事件</li>\n<li>延迟事件</li>\n</ol>\n</li>\n<li>转换\n<ol>\n<li>外部转换</li>\n<li>内部转换</li>\n<li>完成转换：又称自转换</li>\n</ol>\n</li>\n<li>触发事件</li>\n<li>监护条件</li>\n<li>动作</li>\n<li>状态图的建模步骤\n<ol>\n<li>找出适合用模型描述其行为的类</li>\n<li>确定对象可能存在的状态</li>\n<li>确定引起状态转换的事件</li>\n<li>确定转换进行时对象执行的相应动作</li>\n<li>对建模的结果进行相应的精化和细化</li>\n</ol>\n</li>\n<li>建立状态图\n<ol>\n<li>编写典型交互行为脚本</li>\n<li>从脚本中提取出事物，确定触发每个事件的动作对象及接受事件的目标对象。</li>\n<li>排列事件发生的次序，确定每个对象可能有的状态及状态间转换关系，并用状态图描绘出来。</li>\n<li>比较各个对象的状态图，检查它们之间的一致性，确保事件之间的匹配。</li>\n</ol>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>建立活动图</p>\n</div>\n<ol>\n<li>\n<p>活动图与流程图</p>\n</li>\n<li>\n<p>活动图与状态图</p>\n</li>\n<li>\n<p>活动图的组成及 UML 图形表示</p>\n<ul>\n<li>动作状态</li>\n<li>活动状态</li>\n<li>动作流</li>\n<li>分支与合并</li>\n<li>分叉与汇合</li>\n<li>分区</li>\n<li>对象流</li>\n</ul>\n</li>\n<li>\n<p>活动的分解</p>\n</li>\n<li>\n<p>活动图建模技术</p>\n<ul>\n<li>识别要对工作流描述的类或对象。</li>\n<li>确定工作流的初始状态和终止阶段，明确工作流的边界。</li>\n<li>对动作状态或活动状态建模。</li>\n<li>对动作流建模</li>\n<li>对对象流建模</li>\n<li>对建立的模型进行精化和细化</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"建立物理实现模型\"><a class=\"anchor\" href=\"#建立物理实现模型\">#</a> 建立物理实现模型</h2>\n<div class=\"note primary\">\n<p>建立构件图</p>\n</div>\n<ol>\n<li>构件 (Component)</li>\n<li>构件的接口</li>\n<li>对构件和构件关系建模的用途</li>\n<li>构件图 (Component Diagram)\n<ul>\n<li>源代码文件建模</li>\n<li>可执行文件和库建模</li>\n<li>表、文件和文档建模</li>\n</ul>\n</li>\n</ol>\n<div class=\"note primary\">\n<p>建立部署图</p>\n</div>\n<ol>\n<li>部署图的要素\n<ul>\n<li>结点</li>\n<li>连接</li>\n</ul>\n</li>\n<li>如何开发部署模型\n<ul>\n<li>确定模型范围</li>\n<li>确定分布结构</li>\n<li>确定结点和他们的连接</li>\n<li>把构件分布到结点</li>\n<li>为不同构件之间的依赖建模</li>\n</ul>\n</li>\n<li>几种部署图建模方法\n<ul>\n<li>构建的分布建模</li>\n<li>嵌入式系统建模</li>\n<li>客户机 / 服务器建模</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"面向对象软件开发过程的案例分析\"><a class=\"anchor\" href=\"#面向对象软件开发过程的案例分析\">#</a> 面向对象软件开发过程的案例分析</h2>\n<div class=\"note primary\">\n<p>系统需求</p>\n</div>\n<ol>\n<li>客户预约汽车</li>\n<li>客户得到汽车</li>\n<li>客户返还汽车</li>\n</ol>\n<div class=\"note primary\">\n<p>系统用例模型</p>\n</div>\n<ol>\n<li>定义参与者</li>\n<li>用例图</li>\n</ol>\n<div class=\"note primary\">\n<p>系统对象模型</p>\n</div>\n<div class=\"note primary\">\n<p>系统动态行为模型</p>\n</div>\n<ol>\n<li>顺序图和通信图\n<ul>\n<li>顺序图</li>\n<li>通信图</li>\n</ul>\n</li>\n<li>状态图和活动图\n<ul>\n<li>状态图</li>\n<li>活动图</li>\n</ul>\n</li>\n</ol>\n<div class=\"note primary\">\n<p>系统物理实现模型</p>\n</div>\n<ol>\n<li>构件图</li>\n<li>部署图</li>\n</ol>\n<h2 id=\"本章小结-2\"><a class=\"anchor\" href=\"#本章小结-2\">#</a> 本章小结</h2>\n<ul>\n<li>面向对象的分析就是抽取和整理用户需求，并建立问题领域精确模型的过程。</li>\n<li>分析工作主要包括 3 项内容：理解、表达和验证。与传统的面向数据流的结构化方法以功能为导向的分析，构建的是面向类的模型。一般地，可通过对象模型、用例 (功能) 模型、动态 (行为) 模型和物理实现模型来表达分析结果。</li>\n<li>本章最后通过一个简化的汽车租赁系统的分析过程给出面向对象分析的应用案例。</li>\n<li>本章以面向对象的概念为基础，介绍了以这 4 种模型为基础进行建模的基本方法和注意事项，为面向对象软件的分析过程提供指导。</li>\n</ul>\n<h1 id=\"面向对象的设计与实现\"><a class=\"anchor\" href=\"#面向对象的设计与实现\">#</a> 面向对象的设计与实现</h1>\n<h2 id=\"面向对象的设计准则和启发式规则\"><a class=\"anchor\" href=\"#面向对象的设计准则和启发式规则\">#</a> 面向对象的设计准则和启发式规则</h2>\n<div class=\"note primary\">\n<p>面向对象设计准则</p>\n</div>\n<ol>\n<li>模块化</li>\n<li>抽象</li>\n<li>信息隐蔽</li>\n<li>弱耦合\n<ul>\n<li>交互耦合</li>\n<li>继承耦合</li>\n</ul>\n</li>\n<li>强内聚\n<ul>\n<li>服务内聚</li>\n<li>类内聚</li>\n<li>一般 - 特殊内聚</li>\n</ul>\n</li>\n<li>可重用\n<ul>\n<li>尽量使用已有的类</li>\n<li>如果确实需要创建新类，则在设计这些新类的协议时，应该考虑将来的可重复使用性</li>\n</ul>\n</li>\n</ol>\n<div class=\"note primary\">\n<p>启发式规则</p>\n</div>\n<ol>\n<li>设计结果应该清晰易懂\n<ul>\n<li>用词一致</li>\n<li>使用已有的的协议</li>\n<li>减少消息模式的数据</li>\n<li>避免模糊的定义</li>\n</ul>\n</li>\n<li>一般 - 特殊结构的深度应适当</li>\n<li>设计简单的类</li>\n<li>使用简单的协议</li>\n<li>使用简单的服务</li>\n<li>把设计变动减至最小</li>\n</ol>\n<h2 id=\"系统设计\"><a class=\"anchor\" href=\"#系统设计\">#</a> 系统设计</h2>\n<div class=\"note primary\">\n<p>问题域子系统设计</p>\n</div>\n<ol>\n<li>为复用设计与编程的类而增加结构</li>\n<li>按编程语言调整继承关系</li>\n<li>提高性能</li>\n<li>为编程方便增加底层成分，通过细化对象的分类来实现</li>\n<li>对复杂关联的转化并决定关联的实现方式</li>\n<li>调整与完善属性</li>\n<li>构造或优化算法，调整服务</li>\n<li>其他</li>\n</ol>\n<div class=\"note primary\">\n<p>人机交互子系统设计</p>\n</div>\n<ol>\n<li>用户分类</li>\n<li>描述与系统交互的参与者的脚本</li>\n<li>设计详细的交互</li>\n<li>设计命令层</li>\n<li>设计人机交互类</li>\n<li>继续做原型</li>\n</ol>\n<div class=\"note primary\">\n<p>任务管理子系统设计</p>\n</div>\n<ol>\n<li>确定任务的特征 (如事件驱动、时钟驱动等)</li>\n<li>定义协调者任务和关联的对象</li>\n<li>集成协调者和其他任务</li>\n</ol>\n<div class=\"note primary\">\n<p>任务管理子系统设计</p>\n</div>\n<ol>\n<li>选择数据存储管理的模式\n<ul>\n<li>文件管理系统</li>\n<li>关系数据库管理系统</li>\n<li>面向对象数据库管理系统</li>\n</ul>\n</li>\n<li>设计数据管理子系统\n<ul>\n<li><span class=\"label\">数据格式设计</span>\n<ul>\n<li>文件管理系统</li>\n<li>关系数据库管理系统</li>\n<li>面向对象数据库管理系统</li>\n</ul>\n</li>\n<li><span class=\"label\">服务设计</span>\n<ul>\n<li>文件管理系统</li>\n<li>关系数据库管理系统</li>\n<li>面向对象数据库管理系统</li>\n</ul>\n</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"服务-关联与聚合关系设计\"><a class=\"anchor\" href=\"#服务-关联与聚合关系设计\">#</a> 服务、关联与聚合关系设计</h2>\n<div class=\"note primary\">\n<p>服务设计</p>\n</div>\n<ol>\n<li>\n<p>确定类中应有的服务</p>\n<ul>\n<li>从对象模型中引入服务</li>\n<li>从动态模型中确定服务</li>\n<li>从用例模型中确定服务</li>\n</ul>\n</li>\n<li>\n<p>设计实现服务的方法</p>\n<ul>\n<li>选择数据结构</li>\n<li>定义内部类和内部操作</li>\n<li>设计实现服务的算法</li>\n<li>算法复杂度</li>\n<li>容易理解和实现</li>\n<li>易修改和易维护</li>\n</ul>\n</li>\n</ol>\n<div class=\"note primary\">\n<p>关联设计</p>\n</div>\n<ol>\n<li>单向关联与双向关联</li>\n<li>关联的命名</li>\n<li>角色</li>\n<li>关联类及其属性</li>\n<li>关联的约束</li>\n<li>关联的限定符</li>\n<li>关联的种类</li>\n</ol>\n<div class=\"note primary\">\n<p>聚合关系设计</p>\n</div>\n<ol>\n<li>简化了对象的定义</li>\n<li>支持软件重用</li>\n<li>聚集和组合的区别如下：\n<ul>\n<li>聚集关系称为 &quot;has-a&quot; 关系，组合关系称为 &quot;contains-a&quot; 关系</li>\n<li>聚集关系表示事物的整体 / 部分关系的较<span class=\"red\">弱</span>的情况，组合关系表示事物的整体 / 部分关系的较<span class=\"red\">强</span>的情况。</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"面向对象设计优化\"><a class=\"anchor\" href=\"#面向对象设计优化\">#</a> 面向对象设计优化</h2>\n<ol>\n<li>确定优先级</li>\n<li>提高效率的几项技术\n<ul>\n<li>增加冗余关联以提高访问效率</li>\n<li>调整查询次序</li>\n<li>保留派生属性</li>\n</ul>\n</li>\n<li>调整继承关系\n<ul>\n<li>抽象与具体</li>\n<li>为提高继承程度而修改类定义</li>\n<li>利用委托实现行为共享</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"面向对象系统的实现\"><a class=\"anchor\" href=\"#面向对象系统的实现\">#</a> 面向对象系统的实现</h2>\n<div class=\"note primary\">\n<p>面向对象程序设计语言的选择</p>\n</div>\n<ol>\n<li>面向对象程序设计语言的优点</li>\n<li>面向对象语言的技术特点</li>\n<li>选择面向对象语言的实际原因</li>\n</ol>\n<div class=\"note primary\">\n<p>面向对象程序设计风格</p>\n</div>\n<ol>\n<li>提高可重用性</li>\n<li>提高可扩充性</li>\n<li>提高健壮性</li>\n</ol>\n<h2 id=\"本章小结-3\"><a class=\"anchor\" href=\"#本章小结-3\">#</a> 本章小结</h2>\n<ul>\n<li>面向对象设计是面向对象分析内容的细化和扩展，目的是解决分析阶段所得到模型 “如何做” 的问题。面向对象设计把分析阶段得到的对目标系统的需求转变为符合成本和质量要求的、抽象的系统实现方案。</li>\n<li>面向对象方法学在概念和表示方法上的一致性，保证了在各开发活动之间的平滑过渡，从面向对象分析、面向对象设计，再到面向对象的实现，实际上就变成了一个逐渐扩充模型的过程。面向对象分析、设计和实现是一个多次反复迭代的过程。</li>\n<li>本章首先介绍了面向对象设计应遵循的准则和启发式准则。大多数求解空间模型，在逻辑上由问题域、人机交互、任务管理和数据管理 4 大部分组成，本章按照系统分解的观点，介绍了这 4 个子系统的设计策略和方法。根据面向对象分析和设计过程的迭代特性，面向对象设计阶段需要对类中的服务、关联和聚合等关系进行细化，同时需要按照一定规则对设计进行优化。本章最后对面向对象实现所涉及的程序设计语言的选择和程序设计的风格问题进行了介绍。</li>\n</ul>\n<h1 id=\"软件开发工具-staruml-及其应用\"><a class=\"anchor\" href=\"#软件开发工具-staruml-及其应用\">#</a> 软件开发工具 StarUML 及其应用</h1>\n<h2 id=\"软件开发工具-staruml-概述\"><a class=\"anchor\" href=\"#软件开发工具-staruml-概述\">#</a> 软件开发工具 StarUML 概述</h2>\n<div class=\"note primary\">\n<p>StarUML 的安装及使用</p>\n</div>\n<ol>\n<li>运行 StarUML (tm) 的最低系统需求</li>\n<li>StarUML 的安装步骤</li>\n<li>StarUML 的使用</li>\n</ol>\n<div class=\"note primary\">\n<p>StarUML 的主要功能</p>\n</div>\n<h2 id=\"staruml-环境下的-uml-图形建模\"><a class=\"anchor\" href=\"#staruml-环境下的-uml-图形建模\">#</a> StarUML 环境下的 UML 图形建模</h2>\n<div class=\"note primary\">\n<p>StarUML 的用例图、类图和包图</p>\n</div>\n<ol>\n<li>用例图</li>\n<li>类图</li>\n<li>包图</li>\n</ol>\n<div class=\"note primary\">\n<p>StarUML 的交互图和状态机图</p>\n</div>\n<ol>\n<li>顺序图和通信图</li>\n<li>状态图和活动图</li>\n</ol>\n<div class=\"note primary\">\n<p>StarUML 的构件图与部署图</p>\n</div>\n<ol>\n<li>构件图</li>\n<li>部署图</li>\n</ol>\n<div class=\"note primary\">\n<p>StarUML 的正向工程和逆向工程</p>\n</div>\n<ol>\n<li>代码生成</li>\n<li>逆向工程</li>\n</ol>\n<h2 id=\"一个简易教学管理系统的分析和设计\"><a class=\"anchor\" href=\"#一个简易教学管理系统的分析和设计\">#</a> 一个简易教学管理系统的分析和设计</h2>\n<div class=\"note primary\">\n<p>系统需求描述及分析</p>\n</div>\n<div class=\"note primary\">\n<p>系统问题领域分析</p>\n</div>\n<ol>\n<li>确定系统范围和系统边界</li>\n<li>定义参与者</li>\n<li>定义用例</li>\n<li>绘制用例图</li>\n<li>绘制主要交互图</li>\n</ol>\n<div class=\"note primary\">\n<p>静态结构模型的建立</p>\n</div>\n<div class=\"note primary\">\n<p>动态行为模型的建立</p>\n</div>\n<ol>\n<li>建立顺序图</li>\n<li>建立通讯图</li>\n<li>建立状态图</li>\n<li>建立活动图</li>\n</ol>\n<div class=\"note primary\">\n<p>系统物理模型的建立</p>\n</div>\n<div class=\"note primary\">\n<p>代码框架自动生成的过程</p>\n</div>\n<h2 id=\"本章小结-4\"><a class=\"anchor\" href=\"#本章小结-4\">#</a> 本章小结</h2>\n<ul>\n<li>StarUML 是一款开源的 UML 建模工具，基于 UML1.4 版本，提供 11 种不同类型的图，支持 UML2.0 的表示法。另外，StarUML 的扩展机制还允许用户增加定制内容，使用灵活、方便。</li>\n<li>本章介绍了 StarUML 环境下几种典型的 UML 图形建模的基本用法，并通过一个简易教学管理系统的分析和设计，展示了 StarUML 用于分析设计过程的辅助用法。</li>\n</ul>\n<h1 id=\"软件体系结构\"><a class=\"anchor\" href=\"#软件体系结构\">#</a> 软件体系结构</h1>\n<h2 id=\"软件体系结构概述\"><a class=\"anchor\" href=\"#软件体系结构概述\">#</a> 软件体系结构概述</h2>\n<h2 id=\"经典的软件体系结构风格\"><a class=\"anchor\" href=\"#经典的软件体系结构风格\">#</a> 经典的软件体系结构风格</h2>\n<div class=\"note primary\">\n<p>管道 - 过滤器 (流程处理) 体系结构</p>\n</div>\n<ul>\n<li>流程处理系统 (Procedure Processing System) 以程序算法和数据结构为中心，由称作过滤器的构件和称作管道的连接件组成的体系结构 (常常被称作管道 - 过滤器体系结构)。每一个处理过程中，先接收数据、进行处理 (过滤)，最后产生输出数据。</li>\n</ul>\n<div class=\"note primary\">\n<p>分层体系结构</p>\n</div>\n<div class=\"note primary\">\n<p>客户机 / 服务器体系结构</p>\n</div>\n<ol>\n<li>\n<p>两层的客户机 / 服务器体系结构</p>\n</li>\n<li>\n<p>3 层和多层体系结构</p>\n</li>\n</ol>\n<div class=\"note primary\">\n<p>浏览器 / 服务器体系结构 (B/S)</p>\n</div>\n<h2 id=\"现代的软件体系结构风格\"><a class=\"anchor\" href=\"#现代的软件体系结构风格\">#</a> 现代的软件体系结构风格</h2>\n<div class=\"note primary\">\n<p>公共对象请求代理体系结构</p>\n</div>\n<div class=\"note primary\">\n<p>基于层次消息总线的体系结构风格</p>\n</div>\n<div class=\"note primary\">\n<p>异构结构风格</p>\n</div>\n<ol>\n<li>\n<p>按功能不同构成的混合体系结构</p>\n</li>\n<li>\n<p>按结点组合方式的不同构成的混合体系结构</p>\n<ul>\n<li>随机式</li>\n<li>轮流式</li>\n<li>负载平分式</li>\n<li>多队列式</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"本章小结-5\"><a class=\"anchor\" href=\"#本章小结-5\">#</a> 本章小结</h2>\n<ul>\n<li>\n<p>面向对象技术的出现和广泛使用，在一定程度上解决了软件可复用性的问题，但同时对软件的可复用性提出了更高的要求，从程序代码的复用逐渐过渡到分析、设计的复用上来。软件体系结构就是希望为软件开发的工程化提供更高抽象层次的复用粒度。</p>\n</li>\n<li>\n<p>软件体系结构可以看作是面向对象设计阶段中的总体设计，提供系统设计的总体架构。</p>\n</li>\n<li>\n<p>本章分别介绍几种经典的和现代的软件体系结构的风格和模式，为面向对象设计的总体架构设计提供指导，同时希望在设计复用方面对现代软件工程开发过程提供一些帮助。</p>\n</li>\n</ul>\n<h1 id=\"设计模式\"><a class=\"anchor\" href=\"#设计模式\">#</a> 设计模式</h1>\n<h2 id=\"设计模式概述\"><a class=\"anchor\" href=\"#设计模式概述\">#</a> 设计模式概述</h2>\n<div class=\"note primary\">\n<p>设计模式的出现和发展</p>\n</div>\n<div class=\"note primary\">\n<p>设计模式和软件体系结构的关系</p>\n</div>\n<div class=\"note primary\">\n<p>设计模式的优点和分类</p>\n</div>\n<h2 id=\"grasp-设计模式及其应用\"><a class=\"anchor\" href=\"#grasp-设计模式及其应用\">#</a> GRASP 设计模式及其应用</h2>\n<div class=\"note primary\">\n<p>GRASP 设计模式概念及其分类</p>\n</div>\n<div class=\"note primary\">\n<p>几种典型的 GRASP 设计模式应用简介</p>\n</div>\n<ol>\n<li>信息专家 (Information Expert)</li>\n<li>创建者 (Creator)</li>\n<li>高内聚 (Hign Cohesion)</li>\n<li>低耦合 (Low Goupling)</li>\n<li>控制者 (Controller)</li>\n<li>多态 (Polymorphism)</li>\n<li>纯虚构 (Pure Fabrication)</li>\n<li>间接，也成为中介者 (Indirection)</li>\n<li>受保护变化 (Protected Variations)</li>\n</ol>\n<h2 id=\"gof-设计模式及其应用\"><a class=\"anchor\" href=\"#gof-设计模式及其应用\">#</a> GoF 设计模式及其应用</h2>\n<ol>\n<li>模式名称</li>\n<li>问题</li>\n<li>解决方案</li>\n<li>效果</li>\n</ol>\n<ul>\n<li>设计模式的描述</li>\n<li>设计模式的用途</li>\n<li>GoF 给出的 &quot;使用设计模式的循序渐进的方法&quot;</li>\n</ul>\n<div class=\"note primary\">\n<p>GoF 设计模式的组成及其分类</p>\n</div>\n<ol>\n<li>\n<p>创建型模式 (Creational Pattern)：处理新对象的创建过程</p>\n<ul>\n<li>工厂方法 (Factory Method)</li>\n<li>抽象工厂 (Abstract Factory)</li>\n<li>生成器 (Builder)</li>\n<li>原型 (Prototype)</li>\n<li>单例 (Singleton)</li>\n</ul>\n</li>\n<li>\n<p>结构性模式 (Structural Pattern)：处理类和对象的组成</p>\n<ul>\n<li>适配器 (Adapter)</li>\n<li>桥接 (Bridge)</li>\n<li>组成 (Composite)</li>\n<li>装饰 (Decorator)</li>\n<li>外观 (Facade)</li>\n<li>享元 (FlyWeight)</li>\n<li>代理 (Proxy)</li>\n</ul>\n</li>\n<li>\n<p>行为型模式 (Behavioral Pattern)：详细说明对象或类之间如何交互及如何分配职责。</p>\n<ul>\n<li>责任链 (Chain of Responsibility)</li>\n<li>命令 (Command)</li>\n<li>解释器 (Interpreter)</li>\n<li>迭代器 (Iterator)</li>\n<li>中介者 (Mediator)</li>\n<li>备忘录 (Memento)</li>\n<li>观察者 (Observer)</li>\n<li>状态 (State)</li>\n<li>策略 (Strategy)</li>\n<li>模板方法 (Template Method)</li>\n<li>访问者 (Visitor)</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"本章小结-6\"><a class=\"anchor\" href=\"#本章小结-6\">#</a> 本章小结</h2>\n<ul>\n<li>\n<p>设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格及解决问题的思考方式。使用设计模式是为了重用已有的设计经验、框架、代码，以便让代码更容易被他人理解，保证代码可靠性。对设计模式的理解和掌握是程序员提高自身素质的一个很好的方面。</p>\n</li>\n<li>\n<p>GRASP 模式着重考虑设计类的原则及如何分配类的功能。</p>\n</li>\n<li>\n<p>GoF 模式着重考虑设计的实现、类的交互和软件质量。</p>\n</li>\n<li>\n<p>GRASP 可以说是 GoF 设计模式的基础，GoF 模式是符合 GRASP 模式要求的面向对象设计模式。GoF 设计模式针对特定问题提出相应解决方法，是目前常用的设计模式之一。</p>\n</li>\n<li>\n<p>本章主要介绍设计模式的基本概念和发展、GRASP 设计模式和 GoF 设计模式的概念及其分类，并给出典型的应用实例，目的是使读者掌握设计模式的基本理论及应用设计模式解决软件设计中的实际问题的方法。</p>\n</li>\n</ul>\n<h1 id=\"软件工程新技术\"><a class=\"anchor\" href=\"#软件工程新技术\">#</a> 软件工程新技术</h1>\n<h2 id=\"软件复用技术\"><a class=\"anchor\" href=\"#软件复用技术\">#</a> 软件复用技术</h2>\n<ul>\n<li>软件复用 (Software Reuse) 是指在软件开发过程中重复使用相同或相似软件元素的过程。通过软件复用，可以提高软件开发的效率和质量。</li>\n</ul>\n<div class=\"note primary\">\n<p>软件复用概念及分类</p>\n</div>\n<div class=\"note primary\">\n<p>软件复用的关键技术和复用粒度</p>\n</div>\n<ul>\n<li>软件复用有 3 个基本问题\n<ol>\n<li>必须有可以复用的对象</li>\n<li>所复用的对象必须是有用的</li>\n<li>复用者需要知道如何去使用被服用的对象。</li>\n</ol>\n</li>\n</ul>\n<h2 id=\"基于构件的软件工程技术\"><a class=\"anchor\" href=\"#基于构件的软件工程技术\">#</a> 基于构件的软件工程技术</h2>\n<div class=\"note primary\">\n<p>中间件技术</p>\n</div>\n<ul>\n<li>中间件是一个用应用程序接口定义的分布式软件管理框架，其有强大的通信能力和良好的可扩展性。</li>\n</ul>\n<ol>\n<li>中间件要解决的问题\n<ul>\n<li>互连和互操作的问题</li>\n<li>核心要解决名字服务、安全控制、并发控制、可靠性保证、效率保证等</li>\n<li>特点\n<ol>\n<li>满足大量应用的需要</li>\n<li>运行于多种硬件和操作系统平台</li>\n<li>支持分布式计算</li>\n<li>提供跨网络、硬件和操作系统平台的透明性</li>\n<li>支持标准的协议和接口</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>中间件的分类\n<ul>\n<li>根据中间件具有的功能和所提供的服务分类：\n<ol>\n<li>面向对象中间件</li>\n<li>面向消息中间件</li>\n<li>容错中间件</li>\n<li>反射中间件</li>\n</ol>\n</li>\n<li>基于 IDC 分类\n<ol>\n<li>终端仿真 / 屏幕转换</li>\n<li>数据访问中间件</li>\n<li>远程过程调用中间件</li>\n<li>消息中间件</li>\n<li>交易中间件</li>\n<li>基于对象请求代理 (Object Request Broker ,ORB) 中间件</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>中间件的发展及认识度</li>\n</ol>\n<div class=\"note primary\">\n<p>构件与构件化</p>\n</div>\n<ul>\n<li>构件技术的基本思想在于：创建和利用可复用的软件构件来解决软件开发的问题。</li>\n</ul>\n<div class=\"note primary\">\n<p>构件模型及描述语言</p>\n</div>\n<ol>\n<li>构建模型\n<ul>\n<li>构件实现模型的基本思想:\n<ul>\n<li>采用将构件的接口和实现相分离的原则；</li>\n<li>采用黑盒重用的方式，外界仅可以通过构件的接口来访问构件的功能；</li>\n<li>在实现方法上都使用接口描述语言 (Interface Description Language , IDL) 进行构件接口定义，利用相应的中间件作为支撑该构件模型的运行时环境，从而达到由不同的编程语言所实现、运行在不同的操作系统环境中及不同主机上的构件都能相互交互的目的。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>构件描述语言</li>\n</ol>\n<div class=\"note primary\">\n<p>构件的检索与组装</p>\n</div>\n<ol>\n<li>\n<p>构件的检索</p>\n<ul>\n<li>枚举分类</li>\n<li>刻面分类</li>\n<li>属性值分类</li>\n<li>正文检索</li>\n<li>关键词分类</li>\n</ul>\n</li>\n<li>\n<p>构件组装技术</p>\n</li>\n<li>\n<p>构件组装技术及方法的分类</p>\n</li>\n<li>\n<p>构件组装的实现方法</p>\n</li>\n</ol>\n<div class=\"note primary\">\n<p>基于构件的软件工程方法</p>\n</div>\n<ul>\n<li>软件团队针对系统需求的构件，采用如下问题列表的方式确认本系统中需要的构件的获取方式：\n<ol>\n<li>现有的商业成品构件 (Commercial Off-The-Shelf, COTS) 是否能够实现该需求？</li>\n<li>内部开发的可复用构件是否能够实现该需求？</li>\n<li>可用构件的接口与待构造系统的体系结构是否相容？</li>\n</ol>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>SOA 与 SaaS</p>\n</div>\n<ul>\n<li>SOA (Service-Oriented Architecture, 面向服务架构)</li>\n<li>SaaS (Software-as-a-Service, 软件即服务)</li>\n</ul>\n<h2 id=\"软件过程与标准化\"><a class=\"anchor\" href=\"#软件过程与标准化\">#</a> 软件过程与标准化</h2>\n<div class=\"note primary\">\n<p>软件过程及其改进</p>\n</div>\n<ol>\n<li>对比目前的状态和期望达到的状态，找出存在的差距。</li>\n<li>确定要改变那些差距，需要改变到什么程度。</li>\n<li>制定相应的具体实施计划，其中的 &quot;具体&quot; 包括\n<ul>\n<li>要有明确的、可以检验的目标；</li>\n<li>要定出检验成功与否的标准；</li>\n<li>要有具体的实施办法；</li>\n<li>指定具体执行计划的人，明确具体的职责和任务；</li>\n<li>明确执行计划的主要领导或协调者，以负责解决在计划执行中出现的问题</li>\n<li>要列出 &quot;实施计划&quot; 所应用的新技术与新工具及如何获得这些新技术与新工具。</li>\n</ul>\n</li>\n</ol>\n<div class=\"note primary\">\n<p>ISO 9000 标准</p>\n</div>\n<div class=\"note primary\">\n<p>软件能力成熟度模型 (CMM)</p>\n</div>\n<ul>\n<li>CMM (Capability Maturity Model) 卡内基梅隆大学软件工程研究院 SEI 受美国国防部委托制定的软件过程的改良、评估模型，也称为 SEI SW-CMM (Software Engineering Institute Software-Capability Maturity Model).</li>\n</ul>\n<ol>\n<li>\n<p>CMM 的内容</p>\n<ul>\n<li>初始级 (Initial)</li>\n<li>可重复级 (Repeatable)</li>\n<li>已定义级 (Defined)</li>\n<li>已管理级 (Managed)</li>\n<li>优化级 (Optimizing)</li>\n</ul>\n</li>\n<li>\n<p>关键过程域 (Key Process Area,KPA)</p>\n</li>\n<li>\n<p>CMM 实施中应注意的问题</p>\n</li>\n</ol>\n<div class=\"note primary\">\n<p>PSP、TSP 和 CMMI</p>\n</div>\n<ol>\n<li>个体软件过程 (Personal Software Process , PSP)</li>\n<li>小组软件开发过程 (Team Software Process , TSP)</li>\n<li>能力成熟度继承模型 (Capability Maturity Model Integration , CMMI)\n<ul>\n<li>SW-CMM (Software CMM) 软件 CMM</li>\n<li>SE-CMM (System Engineering CMM) 系统工程 CMM</li>\n<li>SA-CMM (Software Acquisition CMM) 软件采购 CMM</li>\n<li>IPT-CMM (Integrated Product Team CMM) 集成产品群组 CMM</li>\n<li>P-CMM (People CMM) 人力资源能力成熟度模型</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"敏捷软件开发过程\"><a class=\"anchor\" href=\"#敏捷软件开发过程\">#</a> 敏捷软件开发过程</h2>\n<div class=\"note primary\">\n<p>敏捷及敏捷过程的相关概念</p>\n</div>\n<ol>\n<li>\n<p>&quot;敏捷过程&quot; 在软件业中的提出</p>\n<ul>\n<li>可工作软件胜过面面俱到的文档</li>\n<li>客户合作胜过合同谈判</li>\n<li>响应变化胜过遵循计划</li>\n</ul>\n</li>\n<li>\n<p>敏捷的概念</p>\n</li>\n<li>\n<p>敏捷宣言所遵循的 12 条原则</p>\n<ol>\n<li>人们最优先要做的是通过尽早地、持续地交付有价值的软件来使客户满意</li>\n<li>即使到了开发的后期，也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势</li>\n<li>经常性的交付可以工作的软件，交付的间隔可以从几个星期到几个月，交付的时间间隔越短越好。</li>\n<li>在整个项目开发期间，业务人员和开发人员必须天天都在一起工作。</li>\n<li>围绕被激励起来的个体来构建项目。给它们提供所需的环境和支持，并且信任它们能够完成工作。</li>\n<li>在团队内部，最具有效果并且富有效率的传递信息的方法就是面对面的交谈</li>\n<li>工作的软件是首要的进度度量标准</li>\n<li>敏捷过程提倡可持续的开发进度。责任人、开发者和用户应保持一个长期恒定的开发速度。</li>\n<li>不断关注优秀的技能和好的设计会增强敏捷能力</li>\n<li>简单 - <span class=\"rainbow\">使未完成的工作最大化的艺术</span> - 是根本的</li>\n<li>最好的架构、需求和设计出自于自组织的团队</li>\n<li>每隔一定时间，团队会在如何才能更有效的工作方面进行反省，然后相应地对自己的行为进行调整。</li>\n</ol>\n</li>\n<li>\n<p>敏捷软件过程的特性</p>\n<ol>\n<li>轻载软件过程</li>\n<li>基于时间</li>\n<li>够用就好</li>\n<li>并行</li>\n<li>基于构建的软件工程</li>\n</ol>\n</li>\n<li>\n<p>敏捷软件过程模型 = 功能模型 + 合作模型 + 资源模型 + 产品模型</p>\n</li>\n</ol>\n<div class=\"note primary\">\n<p>典型的敏捷过程模型</p>\n</div>\n<ol>\n<li>极限编程 (eXtreme Programming , XP)</li>\n<li>Scrum 方法\n<ul>\n<li>待定项 (Backlog)</li>\n<li>冲刺 (Sprint)</li>\n<li>例会</li>\n<li>演示</li>\n</ul>\n</li>\n<li>特征驱动开发 (Feature Driven Development , FDD)\n<ul>\n<li>FDD 的核心\n<ul>\n<li>领域对象建模</li>\n<li>按照特征开发</li>\n<li>类 (代码) 拥有权</li>\n<li>特征小组</li>\n<li>审查</li>\n<li>定期构造</li>\n<li>配置管理</li>\n<li>可视性进度报告</li>\n</ul>\n</li>\n<li>FDD 方法包括 5 个过程组成\n<ul>\n<li>开发整体模型</li>\n<li>构建特征列表</li>\n<li>依据特征规划</li>\n<li>依据特征设计</li>\n<li>依据特征构建</li>\n</ul>\n</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"web-软件工程\"><a class=\"anchor\" href=\"#web-软件工程\">#</a> Web 软件工程</h2>\n<div class=\"note primary\">\n<p>Web 软件工程概述</p>\n</div>\n<ol>\n<li>基于 Web 的系统和应用的属性和特点\n<ul>\n<li>网络密集型 (Network Intensive)</li>\n<li>访问并发性 (Concurrency)</li>\n<li>工作负荷的跳跃性 (Unpredictable load)</li>\n<li>性能 (Performance)</li>\n<li>安全性 (Security)</li>\n<li>可用性 (Availability)</li>\n<li>数据驱动 (Data driven)</li>\n<li>内容敏感性 (Content Sensitive)</li>\n<li>持续演化 (Continuous Evolution)</li>\n<li>即时性 (Immediacy)</li>\n<li>美观性 (Aesthetics)</li>\n</ul>\n</li>\n<li>Web 工程过程\n<ul>\n<li>计划阶段</li>\n<li>建模阶段</li>\n<li>构建阶段</li>\n<li>部署阶段</li>\n</ul>\n</li>\n</ol>\n<div class=\"note primary\">\n<p>Web 软件的需求分析</p>\n</div>\n<ol>\n<li>内容模型</li>\n<li>交互模型</li>\n<li>功能模型</li>\n<li>配置模型</li>\n<li>导航模型</li>\n</ol>\n<div class=\"note primary\">\n<p>Web 软件的设计</p>\n</div>\n<ol>\n<li>WebApp 界面设计</li>\n<li>美学设计</li>\n<li>内容设计</li>\n<li>体系结构设计\n<ul>\n<li>线性结构</li>\n<li>网络结构</li>\n<li>层次结构</li>\n</ul>\n</li>\n<li>导航设计\n<ul>\n<li>单独的导航链接</li>\n<li>水平导航条</li>\n<li>垂直导航列</li>\n<li>标签</li>\n<li>网站地图</li>\n</ul>\n</li>\n<li>构件级设计</li>\n</ol>\n<div class=\"note primary\">\n<p>Web 软件的测试</p>\n</div>\n<ol>\n<li>内容</li>\n<li>功能</li>\n<li>结构</li>\n<li>易用性</li>\n<li>导航性</li>\n<li>性能</li>\n<li>兼容性</li>\n<li>互操作性</li>\n<li>安全性</li>\n</ol>\n<h2 id=\"软件产品线技术\"><a class=\"anchor\" href=\"#软件产品线技术\">#</a> 软件产品线技术</h2>\n<div class=\"note primary\">\n<p>软件产品线基本概念</p>\n</div>\n<ul>\n<li>\n<p>软件产品线的 3 大基本活动</p>\n</li>\n<li>\n<p>软件产品线的特点</p>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>软件产品线方法</p>\n</div>\n<div class=\"note primary\">\n<p>北大青鸟工程</p>\n</div>\n<ul>\n<li>\n<p>青鸟工程简介</p>\n</li>\n<li>\n<p>青鸟软件生产线系统</p>\n</li>\n</ul>\n<h2 id=\"本章小结-7\"><a class=\"anchor\" href=\"#本章小结-7\">#</a> 本章小结</h2>\n<ul>\n<li>随着软、硬件技术、网络的发展及计算理念的变化，软件工程领域也出现了很多新的技术。本章主要介绍继面向对象技术之后软件工程领域研究使用的新技术，包括软件复用技术、基于构建的软件工程技术（中间件和构件技术）、软件能力成熟度模型、敏捷软件工程、Web 软件工程及软件产品线技术。</li>\n<li>软件复用技术是其他软件工程技术的核心和基础。基于构建的软件工程技术需要软件体系结构的支持。软件能力成熟度模型则是从软件过程改进的角度为个人、团队和整个软件开发组织提供参考。敏捷软件过程改变了传统的软件开发过程中先设计后实现的思想，敏捷更强调快速灵活反应，主动迎接和适应变化。敏捷开发能够适应中小型快速软件开发的需求，代表了 21 世纪互联网时代软件开发模式的一种先进理念和价值观。随着网络应用逐渐成为人们生活中不可或缺的组成部分，以 Web 系统和应用为主体的 Web 软件工程 (简称 Web 工程) 成为软件工程中一个渐渐分离的独立分支。Web 工程借用了软件工程的许多基本概念和原理，以相同的技术和管理活动完成具有 Web 应用特色的软件生存周期。软件产品线方法是软件工程领域中软件体系结构和软件重用技术发展的结果，产品线方法可以看作是软件复用发展的一个更高阶段，目前关于软件产品线的研究更多还在实验阶段。</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/09/08/note/CLanguage/",
            "url": "https://hk2012.github.io/2023/09/08/note/CLanguage/",
            "title": "2024 C语言程序设计",
            "date_published": "2023-09-08T09:51:00.000Z",
            "content_html": "<h1 id=\"c语言与程序设计\"><a class=\"anchor\" href=\"#c语言与程序设计\">#</a> C 语言与程序设计</h1>\n<h2 id=\"c语言特点\"><a class=\"anchor\" href=\"#c语言特点\">#</a> C 语言特点</h2>\n<pre><code>1. 过程式语言：C语言是一种过程式编程语言，重点在于算法和逻辑的实现，以过程和函数为主要组织方式。\n2. 简洁高效：C语言设计简洁，执行高效，适合系统编程和底层开发。\n3. 指针：C语言提供了指针的概念，允许直接访问和操作内存地址，这在系统编程中很有用。\n4. 低级别控制：C语言提供了对计算机底层的直接控制，包括对硬件的访问、内存管理等。\n5. 面向过程：C语言是一种面向过程的语言，它将程序分解成一系列函数或过程，通过调用这些函数来完成任务。\n</code></pre>\n<ul>\n<li>C++ 语言特点：\n<ol>\n<li>多范式编程：C++ 是一种多范式编程语言，支持面向对象编程、泛型编程和过程式编程。</li>\n<li>面向对象：C++ 支持面向对象编程，提供类、继承、多态等面向对象的特性，使得代码更具可扩展性和可维护性。</li>\n<li>标准模板库（STL）：C++ 标准库提供了丰富的模板类和函数，称为 STL，包括容器、算法和迭代器等，可以大大提高开发效率。</li>\n<li>异常处理：C++ 支持异常处理机制，允许在程序执行过程中抛出和捕获异常，提高了程序的健壮性。</li>\n<li>运算符重载：C++ 允许运算符重载，使得用户自定义类型可以像内置类型一样使用运算符。</li>\n<li>扩展性：C++ 提供了丰富的语言特性和库支持，可以进行底层编程，也可以用于开发大型、复杂的软件系统。</li>\n</ol>\n</li>\n<li>虽然 C 语言和 C<ins> 有许多共同点，但 C</ins> 作为 C 语言的超集，在功能上更加丰富，提供了更多的特性和工具，因此在实际应用中，开发者可以根据项目需求选择使用合适的语言。</li>\n</ul>\n<h2 id=\"计算机的解题过程\"><a class=\"anchor\" href=\"#计算机的解题过程\">#</a> 计算机的解题过程</h2>\n<ol>\n<li>分析问题\n<ul>\n<li>在解决问题之前，需要完全理解问题的要求和约束条件。这可能需要对问题进行分析和拆解，以确保对问题的理解准确无误。</li>\n</ul>\n</li>\n<li>设计算法\n<ul>\n<li>一旦理解了问题，就需要设计一个算法来解决它。算法是一系列明确定义的步骤，用于解决特定问题或执行特定任务。在设计算法时，需要考虑效率、正确性和可维护性等因素。</li>\n</ul>\n</li>\n<li>编写程序\n<ul>\n<li>根据设计好的算法，编写相应的代码实现。编写的代码应该准确地反映算法的逻辑，并考虑到输入数据的边界情况和异常情况。</li>\n</ul>\n</li>\n<li>运行验证\n<ul>\n<li>编写完代码后，需要进行调试和测试以确保代码的正确性。这可能涉及在不同的输入数据上运行代码，并检查输出是否符合预期。如果发现错误，就需要进行调试，并修复代码中的问题。</li>\n</ul>\n</li>\n<li>优化和改进\n<ul>\n<li>一旦代码能够正确地解决问题，就可以考虑对代码进行优化和改进，以提高性能、减少资源消耗或使代码更易于理解和维护。优化可能涉及改进算法、优化数据结构或利用并行计算等技术。</li>\n</ul>\n</li>\n<li>文档和维护\n<ul>\n<li>最后，还需要编写文档来说明代码的功能、用法和限制。这有助于其他人理解和使用代码。此外，需要定期维护代码，以应对新的需求或发现的问题。</li>\n</ul>\n</li>\n</ol>\n<ul>\n<li>PS: <span class=\"blue\">这些步骤通常是迭代进行的，可能需要多次修改和调整代码，直到达到满意的解决方案。</span></li>\n</ul>\n<h2 id=\"算法的概念\"><a class=\"anchor\" href=\"#算法的概念\">#</a> 算法的概念</h2>\n<ul>\n<li>算法是指解决问题或执行任务的一系列有序步骤。它是一种计算机程序的设计方法，通过确定性的、明确定义的步骤，将输入数据转换为输出结果。</li>\n</ul>\n<h2 id=\"算法的特性\"><a class=\"anchor\" href=\"#算法的特性\">#</a> 算法的特性</h2>\n<ol>\n<li>有序性：算法由一系列明确的步骤组成，每个步骤都有特定的执行顺序。</li>\n<li>确定性：算法对于给定的输入，在相同的条件下总是产生相同的输出，不受随机因素的影响。</li>\n<li>可行性：算法是可行的，可以在有限的时间内完成执行。</li>\n<li>输入输出：算法接受输入数据，并产生输出结果。</li>\n<li>解决问题：算法用于解决特定的问题或执行特定的任务。</li>\n</ol>\n<h2 id=\"算法的表示\"><a class=\"anchor\" href=\"#算法的表示\">#</a> 算法的表示</h2>\n<ul>\n<li>\n<p>算法可以用多种方式表示，以便于理解、实现和交流。以下是几种常见的表示方法：</p>\n<ol>\n<li>自然语言的描述</li>\n</ol>\n<ul>\n<li>使用自然语言，如英语或中文，对算法进行文字描述。这种表示方法简单直观，适合于初步了解算法的工作原理。例如：</li>\n</ul>\n<figure class=\"highlight txt\"><figcaption data-lang=\"txt\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>步骤1：从输入数组中找到最小元素。</pre></td></tr><tr><td data-num=\"2\"></td><td><pre>步骤2：将最小元素放置在数组的第一个位置。</pre></td></tr><tr><td data-num=\"3\"></td><td><pre>步骤3：在剩余的元素中继续重复步骤1和步骤2，直到整个数组排序完成。</pre></td></tr></table></figure><ol start=\"2\">\n<li>传统流程图（Flowchart）</li>\n</ol>\n<ul>\n<li>流程图是一种图形化的表示方法，用图形符号表示算法的执行流程和控制结构。流程图通常包括流程框（表示操作或处理）、连接线（表示流程的顺序）、判断框（表示条件判断）等元素。例如：</li>\n</ul>\n<figure class=\"highlight css\"><figcaption data-lang=\"CSS\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>Start -> Initialize variable i to 0</pre></td></tr><tr><td data-num=\"2\"></td><td><pre>   -> Repeat until i reaches the length of array A</pre></td></tr><tr><td data-num=\"3\"></td><td><pre>       -> Find the index of the minimum element in the unsorted part of A</pre></td></tr><tr><td data-num=\"4\"></td><td><pre>       -> Swap the minimum element with the first element in the unsorted part of A</pre></td></tr><tr><td data-num=\"5\"></td><td><pre>       -> Increment i</pre></td></tr><tr><td data-num=\"6\"></td><td><pre>   -> End</pre></td></tr></table></figure><ol start=\"3\">\n<li>N-S 流程图</li>\n<li>伪代码（Pseudocode）</li>\n</ol>\n<ul>\n<li>伪代码是一种介于自然语言和实际编程语言之间的表示方法，它结合了编程语言的结构和自然语言的表达方式，以简单的方式描述算法的逻辑流程和步骤。例如：</li>\n</ul>\n<figure class=\"highlight less\"><figcaption data-lang=\"less\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>procedure <span class=\"token function\">SelectionSort</span><span class=\"token punctuation\">(</span><span class=\"token property\">A</span><span class=\"token punctuation\">:</span> list of sortable items<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>n = <span class=\"token function\">length</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">)</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>for i = 0 to n<span class=\"token operator\">-</span>1</pre></td></tr><tr><td data-num=\"4\"></td><td><pre>    min_index = i</pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    for j = i<span class=\"token operator\">+</span>1 to n</pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        if A[j] &lt; A[min_index]</pre></td></tr><tr><td data-num=\"7\"></td><td><pre>            min_index = j</pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    swap A[i] with A[min_index]</pre></td></tr></table></figure><ol start=\"5\">\n<li>编程语言代码</li>\n</ol>\n<ul>\n<li>算法可以直接用编程语言代码表示，这种表示方法最为具体和精确，可以直接用于实现算法。不同的编程语言可以用不同的语法来表示同一个算法。例如，使用 c 和 c++ 表示选择排序算法：</li>\n</ul>\n<figure class=\"highlight c\"><figcaption data-lang=\"c\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdio.h></span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 选择排序函数</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">selection_sort</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> A<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> n<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>    <span class=\"token comment\">// 遍历数组</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> n<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        <span class=\"token comment\">// 找到未排序部分的最小元素的索引</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>        <span class=\"token keyword\">int</span> min_index <span class=\"token operator\">=</span> i<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> j <span class=\"token operator\">=</span> i <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> j <span class=\"token operator\">&lt;</span> n<span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;</span> A<span class=\"token punctuation\">[</span>min_index<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>                min_index <span class=\"token operator\">=</span> j<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>        <span class=\"token comment\">// 将最小元素与当前位置交换</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>        <span class=\"token keyword\">int</span> temp <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>min_index<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>        A<span class=\"token punctuation\">[</span>min_index<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> temp<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre></pre></td></tr><tr><td data-num=\"20\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token keyword\">int</span> A<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token number\">64</span><span class=\"token punctuation\">,</span> <span class=\"token number\">25</span><span class=\"token punctuation\">,</span> <span class=\"token number\">12</span><span class=\"token punctuation\">,</span> <span class=\"token number\">22</span><span class=\"token punctuation\">,</span> <span class=\"token number\">11</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token keyword\">int</span> n <span class=\"token operator\">=</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">)</span> <span class=\"token operator\">/</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token comment\">// 调用选择排序函数</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    <span class=\"token function\">selection_sort</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">,</span> n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Sorted array: \"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> n<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"%d \"</span><span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"\\n\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;iostream></span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 选择排序函数</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">void</span> <span class=\"token function\">selection_sort</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> A<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> n<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    <span class=\"token comment\">// 遍历数组</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> n<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>        <span class=\"token comment\">// 找到未排序部分的最小元素的索引</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>        <span class=\"token keyword\">int</span> min_index <span class=\"token operator\">=</span> i<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> j <span class=\"token operator\">=</span> i <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> j <span class=\"token operator\">&lt;</span> n<span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;</span> A<span class=\"token punctuation\">[</span>min_index<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>                min_index <span class=\"token operator\">=</span> j<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>        <span class=\"token comment\">// 将最小元素与当前位置交换</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span><span class=\"token function\">swap</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>min_index<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre></pre></td></tr><tr><td data-num=\"19\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>    <span class=\"token keyword\">int</span> A<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span><span class=\"token number\">64</span><span class=\"token punctuation\">,</span> <span class=\"token number\">25</span><span class=\"token punctuation\">,</span> <span class=\"token number\">12</span><span class=\"token punctuation\">,</span> <span class=\"token number\">22</span><span class=\"token punctuation\">,</span> <span class=\"token number\">11</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>    <span class=\"token keyword\">int</span> n <span class=\"token operator\">=</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">)</span> <span class=\"token operator\">/</span> <span class=\"token keyword\">sizeof</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>    <span class=\"token comment\">// 调用选择排序函数</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>    <span class=\"token function\">selection_sort</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">,</span> n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>    std<span class=\"token double-colon punctuation\">::</span>cout <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\"Sorted array: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> n<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>        std<span class=\"token double-colon punctuation\">::</span>cout <span class=\"token operator\">&lt;&lt;</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\" \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    std<span class=\"token double-colon punctuation\">::</span>cout <span class=\"token operator\">&lt;&lt;</span> std<span class=\"token double-colon punctuation\">::</span>endl<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ul>\n<li>选择合适的表示方法取决于解释算法的目的、目标受众以及所处的环境和情境。</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"常用的算法介绍\"><a class=\"anchor\" href=\"#常用的算法介绍\">#</a> 常用的算法介绍</h2>\n<ol>\n<li>\n<p>枚举法</p>\n</li>\n<li>\n<p>递推法</p>\n</li>\n<li>\n<p>递归法</p>\n</li>\n<li>\n<p>回溯法</p>\n</li>\n<li>\n<p>贪婪法 （贪心算法）</p>\n<ol>\n<li>最小生成树（Minimum Spanning Tree，MST）：从图中选择边的子集，使得这些边连接了所有节点，且总权重最小。</li>\n<li>最短路径（Shortest Path）：寻找两个节点之间的最短路径，以最小化路径的总权重。</li>\n</ol>\n</li>\n<li>\n<p>动态规划法</p>\n<ol>\n<li>斐波那契数列（Fibonacci Sequence）：通过将问题分解为更小的子问题，并保存子问题的解，来避免重复计算，从而提高效率。</li>\n<li>最长公共子序列（Longest Common Subsequence，LCS）：寻找两个序列中的最长子序列，使得它在两个原始序列中同时出现，且不一定连续。</li>\n</ol>\n</li>\n<li>\n<p>排序算法：</p>\n<ol>\n<li>冒泡排序（Bubble Sort）：通过多次遍历数组，依次比较相邻的元素，并交换它们，将最大（或最小）的元素逐步 “冒泡” 到数组的顶端。</li>\n<li>选择排序（Selection Sort）：每次遍历数组，选择未排序部分的最小元素，并将其放置到已排序部分的末尾。</li>\n<li>插入排序（Insertion Sort）：将数组分为已排序和未排序两部分，每次将未排序部分的第一个元素插入到已排序部分的适当位置 3</li>\n<li><strong>快速排序（Quick Sort）</strong>：选择一个基准元素，将数组分为小于基准元素和大于基准元素的两部分，然后递归地对这两部分进行排序。</li>\n</ol>\n</li>\n<li>\n<p>搜索算法：</p>\n<ol>\n<li>线性搜索（Linear Search）：逐个检查数组中的元素，直到找到目标元素或遍历完整个数组。</li>\n<li>二分搜索（Binary Search）：仅适用于有序数组，通过反复将目标值与数组中间元素比较，来确定目标值在数组中的位置。</li>\n</ol>\n</li>\n<li>\n<p>图算法</p>\n<ol>\n<li>深度优先搜索（Depth-First Search，DFS）：遍历图的节点，沿着路径尽可能深入，直到无法再继续为止，然后回溯并继续探索其他路径。</li>\n<li>广度优先搜索（Breadth-First Search，BFS）：从起始节点开始，逐层遍历图的节点，先访问所有与起始节点相邻的节点，然后依次访问它们的相邻节点。</li>\n</ol>\n</li>\n</ol>\n<ul>\n<li>PS: 这些算法只是众多常用算法的<span class=\"blue\">一部分</span>，它们应用广泛，可以用于解决各种不同类型的问题。</li>\n</ul>\n<h3 id=\"算法示例\"><a class=\"anchor\" href=\"#算法示例\">#</a> 算法示例</h3>\n<ul>\n<li>题目： 假设一万个数组相同的数，查找出来，要求时间复杂度和空间复杂度最优</li>\n</ul>\n<ol>\n<li>分析思路\n<ul>\n<li>理想情况下，我们可以通过对这些数组进行一次遍历来找到所有相同的值。以下是一种可能的方法，时间复杂度为 O (N)，其中 N 是所有数组中元素的总数，空间复杂度也是 O (N)，因为我们需要一个哈希集合来存储已经遇到的元素。</li>\n</ul>\n</li>\n<li>算法步骤\n<ol>\n<li>遍历每个数组，并将数组中的每个元素添加到一个哈希集合中。</li>\n<li>如果遇到的元素已经在哈希集合中存在，则将其添加到结果集中。</li>\n</ol>\n</li>\n<li>编写代码</li>\n</ol>\n<ul>\n<li>Java 版本：<figure class=\"highlight java\"><figcaption data-lang=\"java\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">import</span> <span class=\"token import\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>util<span class=\"token punctuation\">.</span></span><span class=\"token class-name\">ArrayList</span></span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token keyword\">import</span> <span class=\"token import\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>util<span class=\"token punctuation\">.</span></span><span class=\"token class-name\">HashMap</span></span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token keyword\">import</span> <span class=\"token import\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>util<span class=\"token punctuation\">.</span></span><span class=\"token class-name\">List</span></span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token keyword\">import</span> <span class=\"token import\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>util<span class=\"token punctuation\">.</span></span><span class=\"token class-name\">Map</span></span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">FindDuplicates</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token class-name\">List</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Integer</span><span class=\"token punctuation\">></span></span> <span class=\"token function\">findDuplicates</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">List</span><span class=\"token operator\">&lt;</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token operator\">></span> arrays<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>        <span class=\"token comment\">// 创建一个哈希集合来存储已经遇到的元素</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>        <span class=\"token class-name\">Map</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Integer</span><span class=\"token punctuation\">,</span> <span class=\"token class-name\">Integer</span><span class=\"token punctuation\">></span></span> seen <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">HashMap</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>        <span class=\"token comment\">// 创建一个结果列表来存储重复的元素</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>        <span class=\"token class-name\">List</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Integer</span><span class=\"token punctuation\">></span></span> duplicates <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">ArrayList</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>        <span class=\"token comment\">// 遍历每个数组</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> array <span class=\"token operator\">:</span> arrays<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>            <span class=\"token comment\">// 遍历数组中的每个元素</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>            <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> item <span class=\"token operator\">:</span> array<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>                <span class=\"token comment\">// 如果元素已经在哈希集合中存在，则将其添加到结果列表中</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>                <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>seen<span class=\"token punctuation\">.</span><span class=\"token function\">containsKey</span><span class=\"token punctuation\">(</span>item<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>                    <span class=\"token comment\">// 只有当元素第二次出现时才添加到结果列表中，避免重复添加</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>                    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>seen<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span>item<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>                        duplicates<span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span>item<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>                    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>                    <span class=\"token comment\">// 如果元素第一次出现，则将其添加到哈希集合中</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>                    seen<span class=\"token punctuation\">.</span><span class=\"token function\">put</span><span class=\"token punctuation\">(</span>item<span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"30\"></td><td><pre></pre></td></tr><tr><td data-num=\"31\"></td><td><pre>        <span class=\"token keyword\">return</span> duplicates<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"33\"></td><td><pre></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>        <span class=\"token comment\">// 示例输入</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>        <span class=\"token class-name\">List</span><span class=\"token operator\">&lt;</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token operator\">></span> arrays <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">ArrayList</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>        arrays<span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">&#123;</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>        arrays<span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">&#123;</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">6</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>        arrays<span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">&#123;</span><span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">6</span><span class=\"token punctuation\">,</span> <span class=\"token number\">7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>        arrays<span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">&#123;</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>        <span class=\"token comment\">// 查找重复的元素</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>        <span class=\"token class-name\">List</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Integer</span><span class=\"token punctuation\">></span></span> duplicates <span class=\"token operator\">=</span> <span class=\"token function\">findDuplicates</span><span class=\"token punctuation\">(</span>arrays<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>        <span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Duplicates: \"</span> <span class=\"token operator\">+</span> duplicates<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure></li>\n<li>C++ 版本：<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;iostream></span></span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;vector></span></span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;unordered_map></span></span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token keyword\">using</span> <span class=\"token keyword\">namespace</span> std<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>vector<span class=\"token operator\">&lt;</span><span class=\"token keyword\">int</span><span class=\"token operator\">></span> <span class=\"token function\">findDuplicates</span><span class=\"token punctuation\">(</span>vector<span class=\"token operator\">&lt;</span>vector<span class=\"token operator\">&lt;</span><span class=\"token keyword\">int</span><span class=\"token operator\">>></span><span class=\"token operator\">&amp;</span> arrays<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    <span class=\"token comment\">// 创建一个哈希表来存储已经遇到的元素</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    unordered_map<span class=\"token operator\">&lt;</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span><span class=\"token operator\">></span> seen<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    <span class=\"token comment\">// 创建一个结果向量来存储重复的元素</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    vector<span class=\"token operator\">&lt;</span><span class=\"token keyword\">int</span><span class=\"token operator\">></span> duplicates<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    <span class=\"token comment\">// 遍历每个数组</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">auto</span><span class=\"token operator\">&amp;</span> array <span class=\"token operator\">:</span> arrays<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre>        <span class=\"token comment\">// 遍历数组中的每个元素</span></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> item <span class=\"token operator\">:</span> array<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"17\"></td><td><pre>            <span class=\"token comment\">// 如果元素已经在哈希表中存在，则将其添加到结果向量中</span></pre></td></tr><tr><td data-num=\"18\"></td><td><pre>            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>seen<span class=\"token punctuation\">.</span><span class=\"token function\">find</span><span class=\"token punctuation\">(</span>item<span class=\"token punctuation\">)</span> <span class=\"token operator\">!=</span> seen<span class=\"token punctuation\">.</span><span class=\"token function\">end</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"19\"></td><td><pre>                <span class=\"token comment\">// 只有当元素第二次出现时才添加到结果向量中，避免重复添加</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre>                <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>seen<span class=\"token punctuation\">[</span>item<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"21\"></td><td><pre>                    duplicates<span class=\"token punctuation\">.</span><span class=\"token function\">push_back</span><span class=\"token punctuation\">(</span>item<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"22\"></td><td><pre>                <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"23\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre>                <span class=\"token comment\">// 如果元素第一次出现，则将其添加到哈希表中</span></pre></td></tr><tr><td data-num=\"25\"></td><td><pre>                seen<span class=\"token punctuation\">[</span>item<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre>            <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"27\"></td><td><pre>        <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"28\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"29\"></td><td><pre></pre></td></tr><tr><td data-num=\"30\"></td><td><pre>    <span class=\"token keyword\">return</span> duplicates<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"31\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"32\"></td><td><pre></pre></td></tr><tr><td data-num=\"33\"></td><td><pre><span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"34\"></td><td><pre>    <span class=\"token comment\">// 示例输入</span></pre></td></tr><tr><td data-num=\"35\"></td><td><pre>    vector<span class=\"token operator\">&lt;</span>vector<span class=\"token operator\">&lt;</span><span class=\"token keyword\">int</span><span class=\"token operator\">>></span> arrays <span class=\"token operator\">=</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"36\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"37\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">6</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"38\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span><span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">6</span><span class=\"token punctuation\">,</span> <span class=\"token number\">7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">8</span><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">,</span></pre></td></tr><tr><td data-num=\"39\"></td><td><pre>        <span class=\"token punctuation\">&#123;</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"40\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"41\"></td><td><pre></pre></td></tr><tr><td data-num=\"42\"></td><td><pre>    <span class=\"token comment\">// 查找重复的元素</span></pre></td></tr><tr><td data-num=\"43\"></td><td><pre>    vector<span class=\"token operator\">&lt;</span><span class=\"token keyword\">int</span><span class=\"token operator\">></span> duplicates <span class=\"token operator\">=</span> <span class=\"token function\">findDuplicates</span><span class=\"token punctuation\">(</span>arrays<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"44\"></td><td><pre>    cout <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\"Duplicates: \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"45\"></td><td><pre>    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> item <span class=\"token operator\">:</span> duplicates<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"46\"></td><td><pre>        cout <span class=\"token operator\">&lt;&lt;</span> item <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\" \"</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"47\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"48\"></td><td><pre>    cout <span class=\"token operator\">&lt;&lt;</span> endl<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"49\"></td><td><pre></pre></td></tr><tr><td data-num=\"50\"></td><td><pre>    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"51\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure></li>\n<li>结构化程序的设计基本思想\n<ol>\n<li>采用自顶向下，逐步求精的程序设计</li>\n<li>任何程序只使用顺序、选择和循环这三种基本控制结构</li>\n</ol>\n</li>\n</ul>\n<h1 id=\"c语言基本概念\"><a class=\"anchor\" href=\"#c语言基本概念\">#</a> C 语言基本概念</h1>\n<ul>\n<li>\n<p>简单的 C 语言程序</p>\n<ul>\n<li>简单输出一个 <span class=\"rainbow\">hello world</span> 字符串，表明向全世界宣布 &quot;C 语言我来了！&quot;</li>\n</ul>\n</li>\n<li>\n<p>关键字和标识符</p>\n<ul>\n<li>字符集</li>\n<li>关键字</li>\n<li>标识符</li>\n</ul>\n</li>\n<li>\n<p>数据类型</p>\n<ul>\n<li>基本类型\n<ul>\n<li>整数类型</li>\n<li>浮点类型</li>\n<li>字符类型</li>\n<li>枚举类型</li>\n</ul>\n</li>\n<li>构造类型</li>\n<li>指针类型</li>\n<li>空类型 (void)</li>\n</ul>\n</li>\n<li>\n<p>常量和变量</p>\n<ul>\n<li>整数常量</li>\n<li>浮点数常量</li>\n<li>字符常量</li>\n<li>字符串常量</li>\n</ul>\n</li>\n</ul>\n<figure class=\"highlight c\"><figcaption data-lang=\"c\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">define</span> <span class=\"token macro-name\">PI</span> <span class=\"token expression\"><span class=\"token number\">3.14159</span></span></span></pre></td></tr></table></figure><ul>\n<li>\n<p>变量</p>\n<ul>\n<li>变量声明\n<ul>\n<li>格式： 数据类型  变量名列表</li>\n</ul>\n</li>\n<li>变量初始化</li>\n</ul>\n</li>\n<li>\n<p>运算符和表达式</p>\n<ul>\n<li>算术运算符</li>\n<li>自增自减运算符</li>\n<li>算术运算符 (实际运用中少，考试出题较多)</li>\n<li>赋值运算符</li>\n<li>其他运算符\n<ul>\n<li>逗号运算符</li>\n<li>条件运算符</li>\n<li>求字节运算符 (sizeof ())</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>数据类型转换</p>\n<ul>\n<li>隐式转换\n<ul>\n<li>自动类型类型转换</li>\n<li>赋值类型转换</li>\n</ul>\n</li>\n<li>显式转换\n<ul>\n<li>强制类型转换</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h1 id=\"程序控制结构\"><a class=\"anchor\" href=\"#程序控制结构\">#</a> 程序控制结构</h1>\n<ul>\n<li>顺序结构\n<ul>\n<li>赋值\n<ul>\n<li>=</li>\n</ul>\n</li>\n<li>数据输出\n<ul>\n<li>putchar() , printf()</li>\n</ul>\n</li>\n<li>数据输入\n<ul>\n<li>getchar() , scanf()</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>选择结构\n<ul>\n<li>关系运算符、关系表达式</li>\n<li>逻辑运算符、逻辑表达式</li>\n<li>if, else, else if, switch</li>\n<li>选择嵌套</li>\n</ul>\n</li>\n<li>循环结构\n<ul>\n<li>while</li>\n<li>do while</li>\n<li>for</li>\n<li>循环嵌套</li>\n</ul>\n</li>\n</ul>\n<h1 id=\"数组和字符串\"><a class=\"anchor\" href=\"#数组和字符串\">#</a> 数组和字符串</h1>\n<ul>\n<li>\n<p>一维数组</p>\n</li>\n<li>\n<p>冒泡排序</p>\n</li>\n<li>\n<p>选择排序</p>\n</li>\n<li>\n<p>二维数组</p>\n</li>\n<li>\n<p>多维数组</p>\n</li>\n</ul>\n<h1 id=\"指针\"><a class=\"anchor\" href=\"#指针\">#</a> 指针</h1>\n<ul>\n<li>指针是表示计算机内存地址的数据类型，\n<ul>\n<li>指针就是地址，指针变量就是存储地址的变量</li>\n</ul>\n</li>\n</ul>\n<h1 id=\"函数\"><a class=\"anchor\" href=\"#函数\">#</a> 函数</h1>\n<ul>\n<li>\n<p>定义 ：C 语言和 C++ 都使用函数来组织和重用代码。函数是一段可重用的代码块，它可以接受输入（参数）、执行特定的任务，并返回结果。下面是它们的基本格式：</p>\n<figure class=\"highlight c\"><figcaption data-lang=\"c\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>返回类型 函数名<span class=\"token punctuation\">(</span>参数列表<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>    <span class=\"token comment\">// 函数体</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>    <span class=\"token comment\">// 可以包含声明、语句等</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>    <span class=\"token keyword\">return</span> 返回值<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回结果，如果函数有返回类型的话</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ol>\n<li>返回类型（Return Type）: 函数执行完任务后返回的数据类型。如果函数不返回任何值，则返回类型为 void。</li>\n<li>函数名（Function Name）: 函数的标识符，用于调用函数。</li>\n<li>参数列表（Parameter List）: 可选项，用于传递数据给函数。参数列表中可以包含零个或多个参数。</li>\n<li>函数体（Function Body）: 函数的具体实现，包含了需要执行的代码。</li>\n<li>返回值（Return Value）: 如果函数有返回类型，则使用 return 语句返回结果。</li>\n</ol>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>返回类型 函数名<span class=\"token punctuation\">(</span>参数列表<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">// 函数体</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token comment\">// 可以包含声明、语句等</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>    <span class=\"token keyword\">return</span> 返回值<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回结果，如果函数有返回类型的话</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ul>\n<li>\n<p>C<ins> 函数的格式与 C 语言相似，但 C</ins> 增加了一些特性，例如函数重载、默认参数、函数模板等。</p>\n</li>\n<li>\n<p>在 C++ 中，你还可以定义类成员函数，其格式为：</p>\n</li>\n</ul>\n<figure class=\"highlight cpp\"><figcaption data-lang=\"C++\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token keyword\">class</span> 类名 <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token keyword\">public</span><span class=\"token operator\">:</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>    返回类型 函数名<span class=\"token punctuation\">(</span>参数列表<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre>        <span class=\"token comment\">// 函数体</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>        <span class=\"token comment\">// 可以包含声明、语句等</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        <span class=\"token keyword\">return</span> 返回值<span class=\"token punctuation\">;</span> <span class=\"token comment\">// 返回结果，如果函数有返回类型的话</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre><span class=\"token punctuation\">&#125;</span><span class=\"token punctuation\">;</span></pre></td></tr></table></figure><ul>\n<li>这样的函数属于类的一部分，称为成员函数</li>\n</ul>\n</li>\n</ul>\n<h1 id=\"结构体-共用体和枚举\"><a class=\"anchor\" href=\"#结构体-共用体和枚举\">#</a> 结构体、共用体和枚举</h1>\n<h1 id=\"文件\"><a class=\"anchor\" href=\"#文件\">#</a> 文件</h1>\n<h1 id=\"编译预处理\"><a class=\"anchor\" href=\"#编译预处理\">#</a> 编译预处理</h1>\n<h1 id=\"实验指导\"><a class=\"anchor\" href=\"#实验指导\">#</a> 实验指导</h1>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/09/02/doc/PubmedPolictics/",
            "url": "https://hk2012.github.io/2023/09/02/doc/PubmedPolictics/",
            "title": "2024考研政治 (马克思主义基本原理)",
            "date_published": "2023-09-02T07:48:53.000Z",
            "content_html": "<h1 id=\"马克思主义基本原理\"><a class=\"anchor\" href=\"#马克思主义基本原理\">#</a> 马克思主义基本原理</h1>\n<ul>\n<li><strong>马克思主义是关于无产阶级和人类解放的科学</strong></li>\n</ul>\n<h2 id=\"导论\"><a class=\"anchor\" href=\"#导论\">#</a> 导论</h2>\n<ul>\n<li>马克思主义的创立</li>\n</ul>\n<details class=\"info\"><summary>点击展开</summary><div>\n<div class=\"note info\">\n<p>马克思主义的创立</p>\n</div>\n<div class=\"tab\" data-id=\"produce\" data-title=\"社会根源\">\n<p>资本主义经济的发展为马克思主义的产生提供了经济、社会历史条件。</p>\n</div>\n<div class=\"tab\" data-id=\"produce\" data-title=\"阶级基础\">\n<p>无产阶级在反抗资产阶级的斗争逐步走向<span class=\"red\">自觉</span>，对科学理论的指导提出了强烈的需求。</p>\n</div>\n<div class=\"tab\" data-id=\"produce\" data-title=\"思想渊源\">\n<p>马克思、恩格斯的革命实践和对人类文明成果的继承与创新（主观条件）</p>\n</div>\n</div></details>\n<ul>\n<li>西欧三大先进思潮</li>\n</ul>\n<details class=\"primary\"><summary>19世纪西欧三大先进思潮</summary><div>\n<div class=\"note info\">\n<p>为马克思主义提供了<span class=\"red\">直接的理论</span>来源</p>\n</div>\n<ul>\n<li>德国古典哲学</li>\n<li>英国古典政治经济学</li>\n<li>英法两国的空想社会主义</li>\n</ul>\n</div></details>\n<ul>\n<li>三大科学发现</li>\n</ul>\n<details class=\"primary\"><summary>19世纪三大科学发现</summary><div>\n<div class=\"note info\">\n<p>为马克思主义提供了<span class=\"red\">自然科学</span>前提</p>\n</div>\n<ul>\n<li>细胞学说</li>\n<li>能量守恒与转化定律</li>\n<li>生物进化论</li>\n</ul>\n</div></details>\n<ul>\n<li>著作汇总</li>\n</ul>\n<details class=\"info\"><summary>点击展开</summary><div>\n<div class=\"note info\">\n<p>马恩列重要著作核心重点<span class=\"red\">第一页</span></p>\n</div>\n<div class=\"tab\" data-id=\"id1\" data-title=\"第一页\">\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\">著作</th>\n<th style=\"text-align:center\">主要内容或标志</th>\n<th style=\"text-align:center\">记忆关键词</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">《德意志意识形态》</td>\n<td style=\"text-align:center\">首次系统阐述历史唯物主义基本观点，创立了唯物史观、标志着马克思主义哲学的诞生</td>\n<td style=\"text-align:center\"><span class=\"red\">首次系统阐述</span>历史唯物主义</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《资本论》</td>\n<td style=\"text-align:center\">系统阐述剩余价值理论，标志马克思主义政治经济学的诞生</td>\n<td style=\"text-align:center\">政治经济的诞生、被誉为\t <ins class=\"rainbow\">工人阶级的圣经</ins></td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《共产党宣言》</td>\n<td style=\"text-align:center\">1. 标志着科学社会主义的诞生；2. 标志着马克思主义的诞生；3. 世界上第一个无产阶级政党的党纲</td>\n<td style=\"text-align:center\"><ins class=\"rainbow\">（科学社会、马克思主义）的诞生</ins>、第一个无产阶级政党的党纲</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《反杜林论》</td>\n<td style=\"text-align:center\">全面阐述马克思主义理论体系的著作</td>\n<td style=\"text-align:center\">全面阐述马克思主义理论体系，三个组成部分进行全面阐述</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《德法年鉴》</td>\n<td style=\"text-align:center\">实现了唯心主义转唯物主义、革命民主主义转共产主义；为创立马克思主义奠定了思想前提</td>\n<td style=\"text-align:center\">实现了<ins class=\"rainbow\">两个转变</ins>，奠定了思想前提</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《神圣家族》</td>\n<td style=\"text-align:center\">批判黑格尔派的主观唯心主义，是马恩第一次合著的作品</td>\n<td style=\"text-align:center\"><ins class=\"red\">马恩第一次合著的作品</ins></td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《哲学的贫困》</td>\n<td style=\"text-align:center\">马克思主义学说最早发表的文本</td>\n<td style=\"text-align:center\">马克思主义学说<ins class=\"rainbow\">最早发表文本</ins></td>\n</tr>\n</tbody>\n</table>\n</div>\n<div class=\"tab\" data-id=\"id1\" data-title=\"第二页\">\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\">著作</th>\n<th style=\"text-align:center\">主要内容或标志</th>\n<th style=\"text-align:center\">记忆关键词</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">《法兰西内战》</td>\n<td style=\"text-align:center\">科学总结巴黎公社的历史经验和教训</td>\n<td style=\"text-align:center\">巴黎公社经验教训</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《哥达纲领批判》</td>\n<td style=\"text-align:center\">提出共产主义分为两个阶段：1. 社会主义社会；2. 共产主义社会。进一步丰富了科学社会主义学说</td>\n<td style=\"text-align:center\">丰富科学社会主义</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《家庭、私有制和国家起源》</td>\n<td style=\"text-align:center\">关于古代社会发展规律和国家起源的著作；马克思主义国家学说代表作之一</td>\n<td style=\"text-align:center\">马恩的国家学说</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《关于费尔巴哈的提纲》</td>\n<td style=\"text-align:center\">包含新世界观天才萌芽的第一个文件中，首次确立科学实践观</td>\n<td style=\"text-align:center\"><span class=\"rainbow\">天才萌芽、科学实践观</span></td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《帝国主义是资本主义的最高阶段》</td>\n<td style=\"text-align:center\">指出帝国主义是无产阶级革命的前夜</td>\n<td style=\"text-align:center\">革命的前夜 (列宁)</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《论欧洲联邦口号》</td>\n<td style=\"text-align:center\">首次明确提出 &quot;一国胜利论&quot;, 列宁认为无产阶级革命可能在少数国家甚至在一国取得胜利</td>\n<td style=\"text-align:center\"><span class=\"rainbow\">一国胜利论</span></td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《国家与革命》</td>\n<td style=\"text-align:center\">发展了马克思主义的国家革命论，马克思主义国家学说的代表作之一</td>\n<td style=\"text-align:center\">列宁的国家学说、与马恩的国家学说区别</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">《唯物主义和经验批判主义》</td>\n<td style=\"text-align:center\">明确提出 “生活”、“实践” 的观点、应该是 “认识论” 的首要的基本的观点</td>\n<td style=\"text-align:center\">“实践” 、 “认识论首要基本的观点”</td>\n</tr>\n</tbody>\n</table>\n</div>\n</div></details>\n<ul>\n<li>丰富和发展</li>\n</ul>\n<details class=\"info\"><summary>点击展开</summary><div>\n<div class=\"note info\">\n<p>列宁和中国共产党对马克思主义的丰富和发展</p>\n</div>\n<div class=\"tab\" data-id=\"dev\" data-title=\"列宁\">\n<ul>\n<li>资本主义各国之间政治经济发展不平衡加剧，成为社会主义革命可能胜利的历史条件</li>\n<li>经济政治发展的不平衡已成为资本主义发展的绝对规律。提出了社会主义革命可能在一国或数国首先发生并取得胜利的论断 <span class=\"rainbow\">（一国胜利论）</span>。</li>\n<li>俄国十月革命的胜利，使科学社会主义从理论开始变为现实</li>\n</ul>\n</div>\n<div class=\"tab\" data-id=\"dev\" data-title=\"中国共产党\">\n<ul>\n<li>中国共产党在长期奋斗中坚持把马克思主义基本原理同中国具体实际相结合，丰富和发展了马克思主义</li>\n<li>先后产生了毛泽东思想，和中国特色社会主义理论体系。</li>\n<li>习近平新时代中国特色社会主义思想是马克思主义中国化最新理论成果。</li>\n</ul>\n</div>\n</div></details>\n<ul>\n<li>鲜明特征</li>\n</ul>\n<details class=\"info\"><summary>点击展开</summary><div>\n<div class=\"note info\">\n<p>列宁和中国共产党对马克思主义的丰富和发展</p>\n</div>\n<div class=\"tab\" data-id=\"feature\" data-title=\"科学性\">\n<ul>\n<li>马克思主义是对自然、社会和人类思维发展本质和规律的 <span class=\"rainbow\">正确反映</span></li>\n</ul>\n</div>\n<div class=\"tab\" data-id=\"feature\" data-title=\"人民性\">\n<ul>\n<li>人民至上是马克思主义的 <span class=\"rainbow\">政治立场</span>.</li>\n<li>人民性是马克思主义<span class=\"rainbow\">最鲜明的品格</span>.</li>\n<li>归根到底就是一句话：<span class=\"rainbow\">为人类解放</span>。</li>\n</ul>\n</div>\n<div class=\"tab\" data-id=\"feature\" data-title=\"实践性\">\n<ul>\n<li>实践性是马克思主义理论区别于其他理论的显著特征。</li>\n<li>实践观点是马克思主义 <span class=\"red\">首要的</span>和<span class=\"red\">基本的</span>观点</li>\n</ul>\n</div>\n<div class=\"tab\" data-id=\"feature\" data-title=\"发展性\">\n<ul>\n<li>马克思主义是不断发展的学说，具有<span class=\"rainbow\">与时俱进的理论品质</span></li>\n</ul>\n</div>\n</div></details>\n<h3 id=\"刷题总结\"><a class=\"anchor\" href=\"#刷题总结\">#</a> 刷题总结</h3>\n<ol>\n<li>人民性、实践性、发展性统称为革命性。</li>\n<li>一句话概括马克思主义的鲜明特征就是:<span class=\"red\"> 科学性和革命性的统一</span>。</li>\n<li>马克思主义理论区别于其他理论<span class=\"red\">最显著</span><span class=\"rainbow\">根本特征</span>：实践性</li>\n<li>实践的的观点是马克思主义的<span class=\"rainbow\">基本观点</span></li>\n<li>马克思主义的本质属性: <span class=\"rainbow\">人民性</span></li>\n<li>马克思主义追求的根本价值目标: <span class=\"rainbow\">实现人的自由而全面的发展</span></li>\n<li>马克思的整个世界观是不是教义，而是方法。它提供的不是现成的教条，是进一步研究的出发点和供这种研究使用的方法。(如果选项中出现 &quot;现成答案&quot;、&quot;现成理想方案&quot; 等，多为干扰项)</li>\n</ol>\n<ul>\n<li>当代价值</li>\n</ul>\n<details class=\"primary\"><summary>点击展开</summary><div>\n<div class=\"note info\">\n<p>马克思主义的当代价值</p>\n</div>\n<ul>\n<li>观察当代世界变化的认识工具</li>\n<li>指引当代中国发展的行动指南</li>\n<li>引领人类社会进步的科学真理</li>\n</ul>\n</div></details>\n<h2 id=\"马克思主义哲学\"><a class=\"anchor\" href=\"#马克思主义哲学\">#</a> 马克思主义哲学</h2>\n<h3 id=\"辩证唯物论\"><a class=\"anchor\" href=\"#辩证唯物论\">#</a> 辩证唯物论</h3>\n<h4 id=\"哲学及其基本问题\"><a class=\"anchor\" href=\"#哲学及其基本问题\">#</a> 哲学及其基本问题</h4>\n<ul>\n<li>\n<p>哲学基本问题</p>\n<ul>\n<li>存在和思维的关系问题</li>\n</ul>\n</li>\n<li>\n<p>基本问题的内容</p>\n<ol>\n<li>\n<p>存在和思维究竟谁是世界的本原，<span class=\"aqua\">物质和精神何者是第一性、何者是第二性</span>的问题 (唯心或唯物)</p>\n</li>\n<li>\n<p>思维能否正确认识存在的问题，即<span class=\"aqua\">思维和存在有无同一性</span>的问题 (可知论或不可知论)</p>\n</li>\n</ol>\n</li>\n<li>\n<p>哲学划分</p>\n<details class=\"info\"><summary>点击展开</summary><div>\n<div class=\"note info\">\n<p>哲学划分分为四个方面</p>\n</div>\n<div class=\"tab\" data-id=\"id2\" data-title=\"世界本原\">\n<ul>\n<li>唯物主义：把世界的本原归结为物质，主张物质第一性，意识第二性，意识是物质的产物。</li>\n<li>唯心主义：把世界的的本原归结为精神，意识物质第一性，物质第二性，物质是意识的产物。</li>\n</ul>\n</div>\n<div class=\"tab\" data-id=\"id2\" data-title=\"世界是否可知\">\n<ul>\n<li>可知论：认为世界是可以被认识的，存在和思维具有同一性</li>\n<li>不可知论：认为世界是不能被人所认识或不能被完全认识的，否认存在和思维的同一性。</li>\n</ul>\n</div>\n<div class=\"tab\" data-id=\"id2\" data-title=\"世界是怎样存在\">\n<ul>\n<li>辩证法：坚持用联系的、发展的观点看世界，认为发展的根本原因在于事物的内部矛盾。</li>\n<li>形而上学：坚持用孤立的、静止的观点看问题，否认事物内部矛盾的存在和作用。</li>\n</ul>\n</div>\n<div class=\"tab\" data-id=\"id2\" data-title=\"社会历史观\">\n<ul>\n<li>历史唯物主义：认为社会存在决定社会意识</li>\n<li>历史唯心主义：认为社会意识决定社会存在</li>\n</ul>\n</div>\n</div></details>\n</li>\n<li>\n<p>唯物主义与辩证法要统一起来</p>\n<ul>\n<li>只有既坚持唯物主义，又坚持辩证法，才能全面地认识世界的本质和发展规律。只有达到唯物主义和辩证法的内在统一，才能有科学的彻底的唯物主义和科学的彻底的辩证法。</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n</li>\n</ul>\n<ol>\n<li>\n<p>物质第一性还是第二性，只是就谁是世界的本原而言的，不要把它与价值混淆。不存在物质和意识谁比谁更重要，也不涉及谁与社会生活的关系更密切的问题。<span class=\"rainbow\">第一性不等于第一重要，第二性也不等于第二重要</span></p>\n</li>\n<li>\n<p>唯心主义并非都是不可知论，唯心主义既有可知论 (黑格尔)，也有不可知论；唯物主义哲学家以及唯物主义观点的科学家，都反对不可知论，主张世界是可以认识的。</p>\n</li>\n<li>\n<p>唯心主义不等于形而上学，唯物主义不等于辩证法</p>\n</li>\n<li>\n<details class=\"success\"><summary>唯心主义的两种形态</summary><div>\n<div class=\"note info\">\n<p>唯心主义又分为主观唯心主义和客观唯心主义</p>\n</div>\n<ul>\n<li>主观唯心主义：把人的感觉、观念作为世界的本原.(关键词：心、观念、感觉、精神等)</li>\n<li>客观唯心主义：把某种脱离物质、脱离任何个人的精神作为世界的本原. (关键词：理、理念、绝对观念、上帝、造物主、绝对精神等)</li>\n</ul>\n</div></details>\n</li>\n<li>\n<details class=\"success\"><summary>三种形态的唯物主义对物质的理解</summary><div>\n<div class=\"note info\">\n<p>共同点：从朴素到科学、从片面到比较全面，但都把世界的本原归结为物质，主张物质第一性，意识第二性</p>\n</div>\n<ul>\n<li>古代朴素唯物主义\n<ul>\n<li>&quot;金 木 水 火 土&quot; 等具体的物质形态</li>\n</ul>\n</li>\n<li>近代形而上学唯物主义\n<ul>\n<li>原子</li>\n</ul>\n</li>\n<li>现代辩证唯物主义\n<ul>\n<li>客观实在</li>\n</ul>\n</li>\n</ul>\n</div></details>\n</li>\n</ol>\n<h4 id=\"世界多样性与物质一致性\"><a class=\"anchor\" href=\"#世界多样性与物质一致性\">#</a> 世界多样性与物质一致性</h4>\n<ul>\n<li>\n<p>物质范畴及其理论意义</p>\n<ol>\n<li>\n<p>马克思主义物质观</p>\n<ul>\n<li>强调要从能动的实践出发去把握客观世界的意义</li>\n</ul>\n</li>\n<li>\n<p>恩格斯对物质作了初步概括</p>\n<ul>\n<li>“物、物质无非是各种物的总和，而这个概念就是从这一总和中抽象出来的。”</li>\n</ul>\n</li>\n<li>\n<p>列宁对物质概念做了全面的科学的规定</p>\n<ul>\n<li>所谓物质，就是不依赖于人类的而存在，并能为人类的所反映的客观实在</li>\n</ul>\n</li>\n<li>\n<p>马克思主义的物质概念是与实践的观点内在统一的。人类的社会生活本质上是实践的</p>\n</li>\n<li>\n<p>物质的共同特性 (唯一特性) 是<span class=\"rainbow\">客观实在性</span></p>\n</li>\n</ol>\n</li>\n<li>\n<p>刷题总结</p>\n<ol>\n<li>客观实在不一定是人可以直接看得见、摸得着的事物 (如磁场或声波就需要仪器来感知)，重点在于它是存在于人的意识之外，不以人的意志为转移的。</li>\n<li>不要混淆自然科学物质结构概念与哲学物质范畴、他们是个别与一般、个性与共性的关系。<span class=\"red\">(不是整体与部分)</span></li>\n<li>马克思主义<span class=\"rainbow\">以前的旧唯物主义</span>在自然观上是唯物的。在历史上却陷入了唯心。所以是不彻底的唯物主义。</li>\n<li>庸俗唯物主义不是唯物主义，它<span class=\"rainbow\">混淆物质与意识的界限</span>。认为人的精神活动能力只不过是脑物质的分泌物。</li>\n<li>物质和意识的对立，只有它们何者为第一性、何者为第二性这一范围内才具有绝对的意义；超出这个范围，物质和意识的对立便是相对的。</li>\n<li>现在的马克思主义既看到了自然界的物质性，又以实践为基础揭示了人类社会的物质性，实现了<span class=\"rainbow\">唯物主义自然观和历史观的统一</span>。</li>\n</ol>\n</li>\n<li>\n<p>物质与运动</p>\n</li>\n</ul>\n<ol>\n<li>运动是物质的<span class=\"rainbow\">根本属性</span>或<span class=\"rainbow\">存在方式</span></li>\n<li>物质和运动<span class=\"rainbow\">不可分割</span>。脱离运动的物质是不存在的，</li>\n<li>设想有不运动的物质，将导致形而上学。</li>\n</ol>\n<ul>\n<li>\n<p>运动与静止</p>\n<ol>\n<li>运动是<span class=\"rainbow\">普遍的、永恒的、无条件的</span>，因而是绝对的</li>\n<li>在物质运动中又包含着<span class=\"rainbow\">暂时的、有条件的、相对的静止</span>。</li>\n<li>静止是运动的<span class=\"rainbow\">特殊状态</span></li>\n<li>运动的绝对性体现了物质运动的<span class=\"rainbow\">变动性、无条件性</span></li>\n<li>静止的相对性体现了物质运动的<span class=\"rainbow\">稳定性、有条件性</span></li>\n<li>无条件的绝对运动和有条件的相对静止构成了事物的矛盾运动</li>\n</ol>\n</li>\n<li>\n<p>物质运动与时间、空间</p>\n<ol>\n<li>时间具有持续性、顺序性，特点是一维性 （即一去不复返）；</li>\n<li>空间是指物质运动的广延性、伸张性，特点是三维性（即空间具有长、宽、高三方面的规定性）。</li>\n<li>时间和空间是运动着的物质的基本存在形式</li>\n<li>时空既是有限的又是无限的</li>\n</ol>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>&quot;绝对的&quot; 与 &quot;无条件的&quot; 并列</li>\n<li>&quot;相对的&quot; 与 &quot;有条件的&quot; 并列</li>\n<li>客观实在性是物质的<span class=\"rainbow\">共同特性 (唯一特性)</span></li>\n<li>运动是物质的根本属性（存在方式）</li>\n<li>时空是运动着的物质的基本存在方式 <span class=\"red\">(如果单说时间、空间也是对的)</span></li>\n</ul>\n</li>\n<li>\n<p>物质世界的二重化</p>\n<ul>\n<li>从自然界中分化出人类社会</li>\n<li>客观世界中分化出主观世界</li>\n<li><span class=\"red\">人的实践活动</span>是自然界与人类社会、客观世界与主观世界相分化的关键，也是它们相统一的关键</li>\n</ul>\n</li>\n<li>\n<p>物质与意识的辩证关系</p>\n<ul>\n<li>物质决定意识，意识依赖于物质并反作用于物质</li>\n</ul>\n</li>\n<li>\n<p>物质对意识的决定作用表现在意识的起源和本质上</p>\n<ul>\n<li>\n<p>意识的起源</p>\n<ul>\n<li>\n<p>是自然界长期发展的产物 (分为三个阶段)</p>\n<ol>\n<li>一切物质所具有的反应特性到低等生物的刺激感应性</li>\n<li>高等动物的感觉和心理</li>\n<li>最终发展为人类的【人类独有】</li>\n</ol>\n</li>\n<li>\n<p>是社会历史发展的产物</p>\n<ol>\n<li>劳动为意识的产生和发展提供了客观需要和可能</li>\n<li>在人们的劳动和交往中形成的语言促进了的发展 (语言是意识的物质外壳)</li>\n<li>在劳动和语言的推动下，猿脑变成人脑，为意识的产生提供了物质基础，并促进了意识的发展</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>\n<p>意识的本质</p>\n<ol>\n<li>意识是物质的产物，但又不是物质本身，是特殊的物质 —— 人脑的机能和属性。</li>\n<li>从本质上是客观世界的主观映象，是客观内容和主观形式的统一。</li>\n<li>意识是由各种反映形式共同组成的完整体系，它包括感觉、知觉、表象等<span class=\"rainbow\">感性认识</span>和概念、判断、推理等<span class=\"rainbow\">理性认识</span>这两种基本的认识形式</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>人脑是意识的器官，但不是意识的源泉，意识的源泉是客观世界</li>\n<li>意识不管正确错误、先进落后，都是物质世界的主观映象。</li>\n<li>高级动物也有感觉和心理，但只有人才有意识。实践、意识都是人特有的，动物、机器（人工智能）都没有</li>\n<li>物质的共同特性：客观实在性。</li>\n<li>客观实在性：存在于人的意识之外，可以被人的意识所反映，但不以人的意志所转移</li>\n<li>意识的内容是客观的，形式是主观的，是客观内容与主观形式的统一。</li>\n<li>世界只有尚未认识之物，没有不可认识之物</li>\n<li>意识可以 <span class=\"rainbow\">通过实践</span> 转化为物质</li>\n</ul>\n</li>\n<li>\n<p>意识对物质的反作用就是意识的能动作用</p>\n<ul>\n<li>意识对物质的反作用（能动作用）\n<ol>\n<li><span class=\"rainbow\">计划打算</span>：意识活动具有目的性和计划性</li>\n<li><span class=\"rainbow\">思维建模</span>：意识活动具有创造性</li>\n<li><span class=\"rainbow\">发明创造</span>：意识具有指导实践改造客观世界的作用</li>\n<li><span class=\"rainbow\">安慰剂</span>：意识具有调控人的行为和生理活动的作用</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>\n<p>主观能动性和客观规律性的统一</p>\n<ol>\n<li>规律：指事物变化发展过程中本身所固有的<span class=\"red\">内在的、本质的、必然的联系</span></li>\n<li><span class=\"red\">规律和必然性是同等程度的概念</span>，代表着事物发展过程中必定如此、确定不移的趋势</li>\n<li><span class=\"red\">规律是客观的，是不以人们的意志为转移的.</span></li>\n<li>正确认识和把握物质的决定作用及意识的反作用，必须处理好主观能动性和客观规律性的关系</li>\n</ol>\n</li>\n<li>\n<p>意识和人工智能</p>\n<ol>\n<li>人工智能是人的意识能动性的一种特殊表现，是人的本质力量的对象化、现实化</li>\n<li>即使是最先进的智能机器，也达不到人类智能的层级，无法真正具有人的意识，不可能取代或超越人类智能</li>\n</ol>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>人工智能不具备情感、信念、意志等人类意识形式</li>\n<li>人工智能不可能真正具备人类的社会属性</li>\n<li>人工智能难以完全具备理解自然语言真实意义的能力</li>\n<li>人工智能实质上是对人脑组织结构与思维运行机制的模仿</li>\n<li>人工智能没有意识、不能实践、实践是人所特有的对象化活动</li>\n<li>人工智能可以取代人部分脑力劳动</li>\n<li>人工智能可以将意识活动部分的从人脑中分离出来</li>\n</ul>\n</li>\n<li>\n<p>世界的物质统一性原理</p>\n<ol>\n<li>世界的物质统一性（世界的本原是一个）\n<ul>\n<li>包括自然界和人类社会在内的整个世界</li>\n<li>真正统一性在于它的物质性</li>\n<li>世界统一于物质</li>\n</ul>\n</li>\n<li>自然界是物质的</li>\n<li>人类社会本质上是生产实践基础上形成的物质体系</li>\n<li>人的意识统一于物质（从意识的起源、本质、作用上看）</li>\n</ol>\n<ul>\n<li>其理论意义在于，它是辩证唯物主义最基本、最核心的观点，是马克思主义的基石<span class=\"red\">（帽子）</span></li>\n<li>其实践意义在于，它是我们从事一切工作的立足点，一切从实际出发是唯物主义一元论的根本要求</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"唯物辩证法\"><a class=\"anchor\" href=\"#唯物辩证法\">#</a> 唯物辩证法</h3>\n<h4 id=\"事物的联系和发展\"><a class=\"anchor\" href=\"#事物的联系和发展\">#</a> 事物的联系和发展</h4>\n<ul>\n<li>\n<p>唯物辩证法两大总特征</p>\n<ol>\n<li>唯物辩证法是关于世界普遍联系和永痕发展的科学</li>\n<li>联系和发展是唯物辩证法的总观点和总特征</li>\n</ol>\n</li>\n<li>\n<p>事物的普遍联系</p>\n</li>\n<li>\n<p>联系的内涵（概念）：<strong>联系是指事物内部各要素之间和事物之间相互影响、相互制约和相互作用的关系</strong></p>\n</li>\n<li>\n<p>联系的特点</p>\n<ol>\n<li>\n<p>联系具有客观性</p>\n<ul>\n<li>事物的联系是事物本身所固有的、不以人的意志为转移的【地球绕着太阳转】</li>\n</ul>\n</li>\n<li>\n<p>联系具有普遍性</p>\n<ul>\n<li>事物联系的普遍性有三层含义\n<ol>\n<li>任何事物内部的不同部分和要素是相互联系的，也就是说，任何事物都具有【内在的结构性】</li>\n<li>任何事物都不能孤立存在，都同其他事物处于一定的相互联系之中</li>\n<li>整个世界是相互联系的【统一整体】，每一事物都是世界普遍联系中的一个成分或环节，都是统一的联系之网上的一个网结，并通过它体现出联系的普遍性</li>\n</ol>\n</li>\n<li>世界的普遍联系是通过 “中介” 来实现的，所谓中介就是事物相互联系的媒介、环节或桥梁</li>\n</ul>\n</li>\n<li>\n<p>联系具有多样性</p>\n<ul>\n<li>世界上的事物是多样的，因而事物之间的联系也是多样的</li>\n<li>事物联系的主要方式可分为\n<ol>\n<li>直接联系与间接联系</li>\n<li>内部联系与外部联系</li>\n<li>本质联系与非本质联系</li>\n<li>必然联系与偶然联系</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>\n<p>联系具有条件性</p>\n<ul>\n<li>条件是对事物发展和人的活动具有支持和制约作用</li>\n<li>条件是可以改变的，人们经过努力可以创造出事物发展所需要的条件</li>\n<li>改变和创造条件不是任意的，必须尊重事物发展的客观规律</li>\n</ul>\n</li>\n</ol>\n</li>\n<li>\n<p>事物的永恒发展</p>\n<ol>\n<li>内涵（概念）：概括一切形式的变化就是<span class=\"label\">💔运动</span>，运动变化的基本趋势是<span class=\"label\">发展</span></li>\n<li>发展及其实质\n<ul>\n<li>变化泛指事物发生的一切改变</li>\n<li>发展则是事物变化中前进的、上升的运动</li>\n<li>发展的<span class=\"red\">实质</span>是新事物的产生和旧事物的灭亡</li>\n</ul>\n</li>\n<li>新事物是不可战胜的（必然战胜旧事物）\n<ul>\n<li>新事物是指合乎历史前进方向、具有远大前途的东西</li>\n<li>旧事物是指丧失历史必然性、日趋灭亡的东西</li>\n<li>新事物是在旧事物的 “母体” 中孕育成熟的，它既否定了旧事物中消极腐朽的东西，又保留了旧事物中合理的、仍然适合新条件的因素，并添加了旧事物所不能容纳的新内容。（取其精华，去其糟普）</li>\n<li>从根本上符合人民群众的利益和要求，能够得到人民群众的拥护，因而必然战胜旧事物。</li>\n</ul>\n</li>\n</ol>\n</li>\n<li>\n<p>刷题总结</p>\n<ol>\n<li>新、旧事物相互区别的根本标志，在于是否同历史发展的必然趋势相符合，而不能单凭出现时间的先后</li>\n<li>规律是内在的、本质的、必然的联系</li>\n<li>人们可以根据事物固有的联系、改变事物的状态，调整原有的联系，建立新的联系</li>\n<li>否定是事物联系发展的环节，是旧事物向新事物的转变，是从旧质到新质的飞跃</li>\n<li>否定是新、旧事物联系的环节、新事物孕育产生于旧事物</li>\n<li>发展的实质：新事物的产生和旧事物的灭亡</li>\n<li>新事物必然战胜旧事物  <span class=\"label primary\">(新事物与旧事物的融合推动社会发展为错误表述)</span></li>\n<li>辩证否定的实质是：<span class=\"label\">扬弃</span></li>\n</ol>\n<ul>\n<li>扬弃是新事物对旧事物既批判又继承，既克服其消极因素，又保留其积极因素</li>\n<li>坚持事物发展是过程的思想，就要用历史的眼光看问题，把一切事物如实地看作变化、发展的过程，既要了解它们的过去，观察它们的现在，又要预见它们的未来</li>\n</ul>\n</li>\n<li>\n<p>对立统一规律是事物发展的根本规律 (唯物辩证法第一规律)</p>\n<ul>\n<li><span class=\"label info\"><strong>对立统一规律是唯物辩证法的实质和核心</strong></span></li>\n<li>矛盾是辩证法的核心概念\n<ul>\n<li>对立统一规律又称矛盾规律</li>\n<li>对立和统一分别体现了矛盾的两种基本属性（斗争性和同一性）</li>\n<li>简言之，矛盾即对立统一</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>矛盾的同一性和斗争性及其在事物发展中的作用</p>\n<ol>\n<li>矛盾的同一性和矛盾的斗争性的含义</li>\n</ol>\n<ul>\n<li>同一性和斗争性是矛盾的两种基本属性，是矛盾双方相互联系的两个方面</li>\n<li>矛盾的同一性是指矛盾着的对立面<span class=\"rainbow\">相互依存、相互贯通</span>的性质和趋势</li>\n<li>矛盾的斗争性是指矛盾着的对立面<span class=\"rainbow\">相互排斥、相互分离</span>的性质和趋势</li>\n<li>矛盾的同一性和矛盾的斗争性是相互联结、相辅相成的</li>\n<li>斗争性寓于同一性之中</li>\n<li>矛盾的斗争性是无条件的、绝对的</li>\n<li>矛盾的同一性是有条件的、相对的</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ol>\n<li>和谐是相对的，有条件性的，只有在矛盾双方处于平衡，协调合作的情况下才可以</li>\n<li>矛盾的斗争性和同一性都可能处于主要的方面</li>\n<li>事物的性质是由主要矛盾的主要方面确定的</li>\n<li>事物发展的根本动力：矛盾同一性与斗争性的相互作用</li>\n<li>矛盾推动事物的发展，说明事物发展的根本原因不在事物的外部，而在于事物内部的矛盾性。事物的内部矛盾是事物发展的内因，它是事物变化的根据，规定着事物发展的方向。外因（外部矛盾）是事物变化的条件，它能够影晌事物的状况和发展进程， 但它心须通过内因而起作用。</li>\n</ol>\n</li>\n<li>\n<p>矛盾的普遍性和特殊性</p>\n<ul>\n<li>普遍性\n<ul>\n<li>矛盾存在于一切事物中，存在于一切事物发展过程的始终【无处不在】</li>\n</ul>\n</li>\n<li>特殊性\n<ul>\n<li>不同事物的矛盾又是具体的、特殊的</li>\n<li>不同事物的矛盾各有其特点</li>\n<li>同一事物的矛盾在不同发展过程和发展阶段各有不同特点</li>\n<li>构成事物的诸多矛盾以及每一矛盾的不同方面各有不同的性质、地位和作用</li>\n<li>主要矛盾是矛盾体系中处于支配地位、对事物发展起决定作用的矛盾</li>\n<li>每一对矛盾中有一方处于支配地位，起着主导作用，这是矛盾的主要方面</li>\n<li>事物的性质是由主要矛盾的主要方面所规定的</li>\n<li>坚持 “两点论” 和 “重点论” 的统一</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>矛盾解决的形式</p>\n<ol>\n<li>矛盾一方克服另一方；</li>\n<li>矛盾双方同归于尽；</li>\n<li>矛盾双方形成协同运动的新形式；</li>\n<li>矛盾双方融合成一个新事物【注意新旧事物不能融合】</li>\n<li>用不同的方法解决不同的矛盾是马克思主义的一个重要原则</li>\n</ol>\n</li>\n<li>\n<p>矛盾的普遍性和特殊性的辩证关系</p>\n<ol>\n<li>矛盾的普遍性即矛盾的共性</li>\n<li>矛盾的特殊性即矛盾的个性。矛盾的共性是无条件的、绝对的，矛盾的个性是有条件的、相对的</li>\n<li>共性寓于个性之中，没有离开个性的共性，也没有离开共性的个性</li>\n</ol>\n</li>\n<li>\n<p>量变质变规律 (唯物辩证法第二规律)</p>\n<ul>\n<li>事物存在的质、量、度\n<ul>\n<li>质是一事物成为自身并区别于其他事物的内在规定性</li>\n<li>量是事物的规模、程度、速度等可以用数量关系表示的规定性</li>\n<li>度是保持事物质的稳定性的数量界限，即事物的限度、幅度和范围。度的两端叫关节点或临界点</li>\n</ul>\n</li>\n<li>事物发展的量变和质变及其辩证关系\n<ul>\n<li>量变：量变是事物数量的增减和组成要素排列次序的变动</li>\n<li>质变：质变是事物性质的根本变化</li>\n<li>区分量变和质变的根本标志：变化是否超出度，在度的范围内的变化是量变，超出度的变化是质变</li>\n<li>量变和质变的辩证关系\n<ol>\n<li>量变是质变的必要准备</li>\n<li>质变是量变的必然结果</li>\n<li>量变和质变是相互渗透的</li>\n<li>量变质变规律体现了事物发展的渐进性【量变】和飞跃性【质变】的统一</li>\n</ol>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ol>\n<li>质和事物的存在是直接同一的。事物丧失了自己的质，它就不再是自身而变成他物。量和事物是不可分离的，但量和事物的存在不是直接同一的，在一定范围内，量的增减不影响事物的存在。区分质是认识量的前提，考察量是认识质的深化</li>\n<li>矛盾普遍性（无处不在、无时不有）和特殊性（具体问题具体分析）</li>\n<li>矛盾的共性是无条件的、绝对的，矛盾的个性是有条件的、相对的</li>\n</ol>\n</li>\n<li>\n<p>否定之否定规律 （唯物辩证法第三规律）</p>\n<ul>\n<li>事物发展过程中的肯定和否定</li>\n<li>辩证否定观的基本内容</li>\n<li>否定之否定规律及其意义\n<ul>\n<li>是螺旋式上升或波浪式前进的过程，方向是前进上升的，道路是迂回曲折的，是前进性与曲折性的统一【我回来了，也变强了】</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>唯物辩证法基本范畴</p>\n<ol>\n<li>\n<p>内容与形式</p>\n<ul>\n<li>内容指构成事物的一切要素的总和，是事物存在的基础</li>\n<li>内容决定形式，形式反作用于内容</li>\n</ul>\n</li>\n<li>\n<p>本质与现象</p>\n<ul>\n<li>第一，现象是个别的、具体的，而本质是一般的、普遍的</li>\n<li>第二，现象是多变易逝的，本质是相对稳定的</li>\n<li>第三，现象是表面、外显的，可以直接为人的感官所感知，本质则深藏于事物的内部，只有靠人的理性思维才能把握</li>\n<li>现象表现本质，本质总是通过一定的现象表现自己的存在。任何现象都从一定的方面表现着本质，即使假象也是本质的表现本质与现象的相互依存表明：不表现为现象的本质和不表现本质的现象都是不存在的</li>\n</ul>\n</li>\n<li>\n<p>原因与结果</p>\n<ul>\n<li>原因与结果的区分既是确定的，又是不确定的</li>\n</ul>\n</li>\n<li>\n<p>必然与偶然</p>\n<ul>\n<li>必然存在于偶然之中，通过大量的偶然表现出来，并为自已开辟道路</li>\n</ul>\n</li>\n<li>\n<p>现实与可能</p>\n<ul>\n<li>现实蕴藏着未来的发展方向，会不断产生出新的可能</li>\n<li>发展就是现实与可能相互转化的过程</li>\n</ul>\n</li>\n</ol>\n</li>\n<li>\n<p>刷题总结</p>\n<ol>\n<li>\n<p>相对独立性意思：A 决定 B，但是 B 又有自己的发展规律变化形式，B 对 A 具有反作用</p>\n</li>\n<li>\n<p>同一内容可以有多种形式，同一种形式也可以表现不同的内容</p>\n</li>\n<li>\n<p>真理的内容是客观的，形式是主观的【同一物理规律有不同数学表达形式】</p>\n</li>\n<li>\n<p>内容是事物存在的基础；内容是易变的，形式是稳定的【考研政治大纲每年都在变，但试卷形式稳定】</p>\n</li>\n<li>\n<p>现象有真象和假象之分，真象是事物本质直接正面的表现，假象则是从反面歪曲地、颠倒地表现本质的现象。真象和假象都是客观的现象，而错觉是主观的，错觉不表现事物的本质</p>\n</li>\n<li>\n<p>本质决定现象，现象表现本质。不存在不表现本质的现象</p>\n</li>\n<li>\n<p>在一个具体的事物中，原因就是原因，结果就是结果，原因在前，结果在后，二者不能混淆和颠倒（相互区别）。在事物因果联系的长链中，一种现象在一种联系中是原因，在另一种联系中则可能是结果，反之亦然（相互转化）</p>\n</li>\n<li>\n<p>不可能无法转化为可能，二者区别在于现实中有无根据和条件</p>\n</li>\n<li>\n<p>对人是否有利是区分：好的可能性与坏的可能性；可能性没有真实和虚假之分</p>\n</li>\n<li>\n<p>现实中的根据和条件是否充分是区分现实的可能性与抽象的可能性依据</p>\n</li>\n<li>\n<p>一个事物只要合乎发展的必然性迟早会变成现实</p>\n</li>\n</ol>\n</li>\n</ul>\n<h4 id=\"唯物辩证法是认识世界和改造世界的根本方法\"><a class=\"anchor\" href=\"#唯物辩证法是认识世界和改造世界的根本方法\">#</a> 唯物辩证法是认识世界和改造世界的根本方法</h4>\n<ul>\n<li>\n<p>唯物辩证法<span class=\"blue\">本质</span>是批判的和革命的</p>\n</li>\n<li>\n<p>唯物辩证法是客观辩证法与主观辩证法的统一</p>\n<ul>\n<li>体现了唯物主义、辩证法、认识论的统一</li>\n<li>客观辩证法与主观辩证法在本质上是统一的，但在其表现形式上却是不同的。\n<ul>\n<li>主观辩证法：采取观念的、逻辑的形式，是同人类思维的自觉活动相联系</li>\n<li>客观辩证法：外部必然的形式，离开人的意识、思维而独立存在的，不以人的意志为转移。</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"辩证思维方法\"><a class=\"anchor\" href=\"#辩证思维方法\">#</a> 辩证思维方法</h4>\n<ol>\n<li>辩证思维的主要方法：\n<ul>\n<li>归纳和演绎</li>\n<li>分析和综合</li>\n<li>抽象上升到具象、逻辑和历史相一致等方法。</li>\n</ul>\n</li>\n<li>矛盾分析方法是根本的认识方法\n<ul>\n<li>在唯物辩证法的方法论体系中，矛盾分析方法居于<span class=\"blue\">核心</span>的地位，是根本的认识方法。</li>\n</ul>\n</li>\n<li>学习唯物辩证法，不断增强思维能力，特别是不断增强\n<ul>\n<li>辩证思维能力</li>\n<li>历史思维能力</li>\n<li>系统思维能力</li>\n<li>战略思维能力</li>\n<li>底线思维能力</li>\n<li>创新思维能力</li>\n</ul>\n</li>\n</ol>\n<h3 id=\"认识论\"><a class=\"anchor\" href=\"#认识论\">#</a> 认识论</h3>\n<h4 id=\"实践与认识\"><a class=\"anchor\" href=\"#实践与认识\">#</a> 实践与认识</h4>\n<ul>\n<li>\n<p>实践的本质和基本特征</p>\n<ul>\n<li>实践是人类能动地改造世界的社会性的物质活动</li>\n<li>基本特征\n<ul>\n<li>客观实在性</li>\n<li>自觉能动性</li>\n<li>社会历史性</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>实践的基本结构和形式</p>\n<ul>\n<li>\n<p>实践主体</p>\n<ul>\n<li>在实践活动中，实践主体是指具有一定的主体能力、从事现实社会实践活动的<span class=\"red\">人</span>，是实践活动中自主性和能动性的因素，担负着设定实践目的、操作实践中介、改造实践客体的任务</li>\n</ul>\n</li>\n<li>\n<p>实践客体</p>\n<ul>\n<li>实践客体是指实践活动所指向的<span class=\"red\">对象</span></li>\n</ul>\n</li>\n<li>\n<p>实践中介</p>\n<ul>\n<li>实践的中介系统可分为两个子系统：</li>\n<li>一是作为人的肢体延长、感官延伸、体能放大的物质性工具系统，如火车、电脑、雷达分别是对人的腿、脑、眼功能的延伸和放大。</li>\n<li>二是语言符号工具系统</li>\n</ul>\n</li>\n<li>\n<p>实践的主体和客体相互作用的关系<br />\n 1. 实践关系 (最根本的关系)<br />\n 2. 认识关系<br />\n 3. 价值关系</p>\n</li>\n</ul>\n</li>\n<li>\n<p>实践形式多样性</p>\n<ul>\n<li>\n<p>实践的三种基本类型</p>\n<ul>\n<li>物质生产实践 (最基本的实践活动)</li>\n<li>社会政治实践 (主要指人们的政治活动)</li>\n<li>科学文化实践 (虚拟实践)\n<ul>\n<li>其重要的形式有 科学、艺术、教育等</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>实践对认识的决定作用</p>\n<ul>\n<li>实践是认识的基础\n<ul>\n<li>实践对认识的决定作用表现在以下四个方面：\n<ol>\n<li>实践是认识的来源</li>\n<li>实践是认识发展的动力</li>\n<li>实践是认识的目的</li>\n<li>实践是检验认识真理性的唯一标准. <span class=\"red\">(实践是认识的起点，也是认识的归宿)</span></li>\n</ol>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>虽然实践是认识的来源，<strong>但是不能说 “认识总是落后于实践</strong>，（如预测、假说规划等超前于实践）</li>\n<li>实践是人所特有的对象化活动</li>\n<li>实践是认识的目的</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>认识的本质</p>\n<ul>\n<li>辩证唯物主义认识论对认识本质的科学回答：【认识是主体在实践基础上对客体的能动反映】</li>\n</ul>\n<ol>\n<li>唯物主义反映论与唯心主义先验论对立</li>\n</ol>\n<ul>\n<li>唯物主义反映论\n<ul>\n<li>坚持<span class=\"label\">从物到感觉和思想</span>的唯物主义认识路线</li>\n</ul>\n</li>\n<li>唯心主义先验论\n<ul>\n<li>坚持从<span class=\"label\">思想和感觉到物</span>的唯心主义认识路线</li>\n</ul>\n</li>\n</ul>\n<ol start=\"2\">\n<li>辩证唯物主义能动反映论与旧唯物主义直观反映论的区别</li>\n</ol>\n<ul>\n<li>辩证唯物主义和旧唯物主义虽然都坚持反映论，认为认识是主体对客体的反映，但是两者之间有着本质的区别\n<ul>\n<li>\n<p>旧唯物主义认识论的基本特点是以感性直观为基础，把人的认识看成是消极地、被动地反映和接受外界对象，类似于照镜子那样的反射活动。它有两个严重的缺陷：</p>\n<ul>\n<li>一是离开实践考察认识问题，因而不了解实践对认识的决定作用。</li>\n<li>二是不了解认识的辩证本性，没有把认识看作一个不断发展的过程，认为认识是一次性完成的</li>\n</ul>\n</li>\n<li>\n<p>辩证唯物主义的认识论对旧唯物主义直观反映论的批判继承</p>\n<ul>\n<li>辩证唯物主义的认识论是建立在实践基础上的能动的反映论。它在继承了旧唯物主义反映论的合理前提的同时，又克服了它的严重缺陷，坚持以科学的社会实践为特征的实践观，即实践是人类能动地改造世界的社会性的物质活动，这是辩证唯物主义认识论与唯心主义认识论和旧唯物主义认识论的根本区别辩证唯物主义认识论具有两个突出的特点：</li>\n<li>一是把实践的观点引入认识论。</li>\n<li>二是把辩证法应用于反映论考察认识的发展过程，科学地揭示了认识过程中多方面的辩证关系，把认识看成一个由不知到知、由浅入深的充满矛盾的能动的认识过程</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><img data-src=\"/img/polictics/%E4%B8%A4%E7%A7%8D%E8%AE%A4%E8%AF%86%E8%AE%BA%E7%9A%84%E5%8C%BA%E5%88%AB.png\" alt=\"两种认识论的区别\" /><br />\n 3. 认识是主体在实践基础上对客体的能动反映</p>\n<ul>\n<li>认识是主体对客体的反映，是在思维中再现或摹写客观事物的状态、属性和本质</li>\n<li>主体对客体的反映是一个能动的创造性的过程（反映的创造性）</li>\n<li>在人的认识活动中，反映的特性与能动的创造特性，二者是<span class=\"label\">不可分割</span>的</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default no-icon\">\n<p>认识的过程</p>\n</div>\n<ul>\n<li>\n<p>从实践到认识 （感性认识到理性认识的飞跃）</p>\n<ul>\n<li>认识运动的辩证过程，首先是从实践到认识的过程，即从实践中产生感性认识，然后能动地发展到理性认识。这是认识过程中的第一次飞跃</li>\n</ul>\n<ol>\n<li>感性认识和理性认识的含义</li>\n</ol>\n<ul>\n<li>\n<p>感性认识是指人们在实践基础上，由感觉器官直接感受到的关于事物的现象、事物的外部联系、事物的各个方面的认识，包括感觉、知觉和表象三种形式。感性认识是认识的低级阶段，突出特点是直接性、具体性。因为感性认识还没有深入到对事物本质的认识，所以具有不深刻的局限性，必须进一步上升到理性认识</p>\n</li>\n<li>\n<p>理性认识是指人们借助抽象思维，在概括整理大量感性材料的基础上，达到关于事物的本质、全体、内部联系和事物自身规律性的认识。理性认识包括概念、判断、推理三种形式。理性认识是认识的高级阶段，具有抽象性、间接性的特点，它在形式上超越了客观事物，而在内容上则更深刻、更正确、更完整地反映了客观事物</p>\n</li>\n<li>\n<p>区别：感性认识和理性认识在内容和形式上都有质的区别。所以，“熟知不等于真知”,“感觉到了的东西，我们不能立刻理解它”</p>\n</li>\n<li>\n<p>联系：第一，理性认识依赖于感性认识。感性认识是认识过程的起点，是达到理性认识的必经阶段，没有感性认识，就没有理性认识。理性认识对感性认识的这种依赖关系，是认识对实践依赖关系的重要表现。第二，感性认识有待于发展和深化为理性认识。认识的任务在于经过感觉达到对事物的本质、规律性的认识，感性认识是认识的初级阶段，是对事物外部联系的认识，还不能达到对事物的本质和规律的认识，因此感性认识还不是完全的认识。第三，感性认识和理性认识相互渗透、相互包含。一方面，感性中有理性，人的感觉是渗透着理性的感觉；另一方面，理性中有感性，理性不仅以感性材料为基础，而且也以文字符号等感性形式的语言作为表达手段</p>\n</li>\n<li>\n<p>感性认识和理性认识的辩证统一关系是在实践的基础上形成的，也需要在实践中发展。绝不能割裂二者的辩证统一关系，否则就会走向唯理论（片面强调理性认识）和经验论（片面强调感性认识），在实际工作中表现为教条主义和经验主义</p>\n</li>\n</ul>\n<ol start=\"3\">\n<li>从感性认识向理性认识的飞跃</li>\n</ol>\n<ul>\n<li>从感性认识上升到理性认识，必须具备两个基本条件：第一，投身实践，深入调查，获取十分丰富和合乎实际的感性材料。这是实现由感性认识上升到理性认识的基础。第二，经过理性思考的作用，将丰富的感性材料加以去粗取精、去伪存真、由此及彼、由表及里的处理加工</li>\n</ul>\n<ol start=\"4\">\n<li>认识过程中的理性因素和非理性因素</li>\n</ol>\n<ul>\n<li>理性因素是指人的理性直观、理性思维等能力它在认识活动中的作用主要有指导作用、解释作用和预见作用等</li>\n<li>非理性因素是指人的情感和意志（包括冲动、欲望、本能等）。从广义上看，还包括认识能力中具有不自觉、非逻辑性等特点的认识形式，如联想、想象、猜测、直觉、顿悟、灵感等。非理性因素对于人的认识能力和认识活动具有激活、驱动和控制作用。</li>\n</ul>\n</li>\n<li>\n<p>从认识到实践（理性认识到实践的飞跃）</p>\n<ul>\n<li>从认识到实践，是认识过程的第二个阶段，是第二次能动的飞跃，也是认识过程中更为重要的一次飞跃。其必要性和重要性在于两个方面：\n<ul>\n<li>一是认识世界的目的是改造世界。</li>\n<li>二是认识的真理性只有在实践中才能得到检验和发展</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>实现飞跃的条件</p>\n<ul>\n<li>需要经过一定的中介环节（包括确定实践目的，形成实践理念，制定实践方案，进行中间实验，运用科学的实践方法等）；让理论为群众所掌握，转化为认识世界、改造世界的物质力量。只有这样，理论才能真正发挥指导作用，并随着实践的发展而发展</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ol>\n<li>\n<p>正确的认识指导实践会使实践顺利进行、达到预期的效果；当错误的认识误导实践肘，就会对实践产生消极的乃至破坏性的作用，使实践失败【都能指导实践】</p>\n</li>\n<li>\n<p>认识过程以理性因素为主导，同时又有非理性因素参与的过程</p>\n</li>\n<li>\n<p>人的认识是一个循环往复和无限发展的过程【不存在理性认识是认识的终点此类说法】</p>\n</li>\n<li>\n<p>认识世界和改造世界统一的基础是实践</p>\n</li>\n<li>\n<p>实现由认识向实践的飞跃，需要经过一定的中介环节<span class=\"rainbow\">确定目的、制定方案、进行实验</span></p>\n</li>\n</ol>\n<ul>\n<li>认识的过程中的影响因素（理性因素和非理性因素）</li>\n<li>认识的两大规律（反复性和无限性）</li>\n<li>认识和实践是具体的和历史的统一\n<ul>\n<li>认识的矛盾运动过程是主观与客观、认识与实践具体的历史的统一过程。所谓具体的，即主观认识要同一定时间、地点、条件下的客观实践相符合；所谓历史的，即主观认识要同特定历史发展阶段的客观实践相符合。由于客观实践是具体的、历史的，所以，主观认识也应当是具体的、历史的。当事物的具体过程已经向前推移，转变到另一个具体过程的时候，主观认识就应当随之而转变</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"真理与价值\"><a class=\"anchor\" href=\"#真理与价值\">#</a> 真理与价值</h4>\n<ul>\n<li>\n<p>人们的实践活动，一方面要遵循事物的本质和规律，按规律办事；另一方面，又要符合人自身的尺度和需要，体现人的活动的目的性</p>\n</li>\n<li>\n<p>真理的客观性</p>\n<ul>\n<li>真理是标志主观与客观相符合的哲学范畴，是对客观事物及其规律的正确反映。这个定义表明，真理的内容是<span class=\"red\">客观的</span>，形式是<span class=\"red\">主观的</span></li>\n<li>凡真理都是客观真理。真理的客观性或客观真理是指真理的内容是客观的。真理中包含着不以人的意志为转移的客观内容。</li>\n<li>客观性是真理的<span class=\"red\">本质属性</span></li>\n<li>它所反映的内容是<span class=\"red\">客观的</span></li>\n</ul>\n</li>\n<li>\n<p>真理的一元性</p>\n<ul>\n<li>真理的客观性决定了真理的一元性</li>\n<li>在同一条件下，对于特定实践活动中的特定的认识对象来说，只能有一种认识是与特定的认识客体的状态、本质和规律相一致的，这种认识就是真理.</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>真理与规律既有联系，又有区别。联系在于真理是对客观事物及其规律的正确反映。区别在于规律是客观的，而真理的内容是客观的，形式是主观的。真理是一种认识</li>\n<li>我们既不能因为真理的客观性而把真理等同于客观实在；也不能因为真理具有主观形式而把真理误认为主观产物。</li>\n<li>真理根本特征：主观与客观相符合，对客体的认识与客体的实际相符合</li>\n</ul>\n</li>\n<li>\n<p>真理的绝对性和相对性及其辩证关系</p>\n<ul>\n<li>真理的绝对性是指真理主客观统一的确定性和发展的无限性。</li>\n<li>它有两层含义：\n<ol>\n<li>一是指任何真理都标志着主观与客观相符合，都包含着不依赖于人和人的意识的客观内容，都同谬误有原则的界限。这是绝对的、无条件的。因此，承认了真理的客观性也就是承认了真理的绝对性。</li>\n<li>二是人类认识按其本性来说，能够正确认识无限发展着的物质世界，认识每前进一步，都是对无限发展着的物质世界的接近，这也是绝对的、无条件的。在这个意义上，承认世界的可知性，也就是承认了真理的绝对性</li>\n</ol>\n</li>\n<li>真理的相对性是指人们在一定条件下对客观事物及其本质和发展规律的正确认识总是有限度的、不完善的</li>\n<li>它也有两层含义：\n<ol>\n<li>一是从客观世界的整体来看，任何真理都只是对客观世界的某一阶段、某一部分的正确认识，有待扩展；</li>\n<li>二是就特定事物而言，任何真理都只是对客观对象一定方面、一定层次和一定程度的正确认识，有待深化。也就是说，任何真理都只能是主观对客观事物近似正确即相对正确的反映</li>\n</ol>\n</li>\n<li>真理的绝对性和相对性的辩证统一关系\n<ol>\n<li>第一，二者相互依存。任何真理都既是绝对的，又是相对的 第二，二者相互包含。 一是真理的绝对性寓于真理的相对性之中；二是真理的相对性必然包含并表现着真理的绝对性。从真理的发展上看，任何真理性的认识都是由真理的相对性向绝对性转化过程中的一个环节，真理永远处在由相对向绝对的转化和发展中，是从真理的相对性走向绝对性、接近绝对性的过程。毛泽东把真理的绝对性与相对性的关系比喻为长河与水滴的关系.<span class=\"rainbow\"> 无数相对的真理之总和，就是绝对的真理</span></li>\n</ol>\n</li>\n<li>真理的绝对性与相对性根源于人类认识世界的能力的无限性与有限性、绝对性与相对性的矛盾\n<ul>\n<li rainbow=\"\">人类的思维按其本性、使命、可能和历史的终极目的来说，是能够认识无限发展着的物质世界的（即思维的至上性）。但是，具体到每一个人乃至每一代人，又要受到客观事物及其本质的显露程度、社会历史的实践水平、主观的条件以及生命的有限性等各方面的限制（即思维的非至上性）。[人的认识能力、思维能力既然是无限性与有限性、绝对性与相对性的统一，作为人的正确认识成果的真理，当然也是绝对性和相对性的统一].</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>真理是客观的，一元的，不断发展的，具体的，全面的，有用的</li>\n<li>真理永远处于相对向绝对的转化过程中，是发展的</li>\n<li>真理的绝对性和相对性是同一客观真理的两种属性，而不是同一真理不同表述方式</li>\n<li>已经确定的真理是不能够被推翻的【当我们谈到真理具有相对性的时候，并不是推翻以前的真理，而是在深度、完整程度上进行深化和扩展。已经确定的真理是不能被推翻的。任何真理都标志着主观与客观相符台。真理是具体的，抛开条件谈认识是否具有真理性是没有意义的。在一定条件下，真理就是真理永远不能被推翻。当条件变化时，原有的 (真理性)<strong> 认识可能不再适用了</strong>，甚至可能变成谬误</li>\n<li>真理是具体的，任何真理都是在一定范围内、一定条件下才能够成立</li>\n<li>真理既是绝对的又是相对的</li>\n</ul>\n</li>\n<li>\n<p>真理与谬误</p>\n<ul>\n<li>\n<p>在人的认识活动中，由于受到主观和客观因素的多重限制，既能形成真理，也能造成谬误。<span class=\"rainbow\">谬误是同客观事物及其发展规律相违背的认识，是对客观事物及其发展规律的歪曲反映</span></p>\n</li>\n<li>\n<p>真理与谬误的对立统一关系</p>\n<ul>\n<li>第一，真理与谬误相互对立。真理和谬误是性质不同的两种认识。在确定的对象和范围内，真理与谬误的对立是绝对的，与对象相符合的认识就是真理，与对象不相符合的认识就是谬误，二者存在着原则界限</li>\n<li>第二，真理与谬误又是统一的，它们相互依存、相互转化。真理是与谬误相比较而存在的，没有真理也无所谓谬误，没有谬误也无所谓真理。真理与谬误在一定范围内的对立是绝对的，但超出一定范围，它们就会互相转化</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>谬误也是对客体的反映，不过是错误歪曲的反映【说谬误是主观自生的说法错误；参照假象】</li>\n<li>真理是具体的，任何真理都是在一定范围内、一定条件下才能够成立<span class=\"red\">超出这个范围，失去特定条件就会变成谬误</span>.(如牛顿力学作为真理是以物体宏观低速运动为其成立的范围和条件的)</li>\n<li>真理是全面的【科学体系某个原理不能切断同其他原理的联系】</li>\n</ul>\n</li>\n<li>\n<p>真理的检验标准：实践</p>\n<ul>\n<li>\n<p>实践之所以能够作为检验真的唯一标准，是由真理的本性和实践的特点决定的</p>\n</li>\n<li>\n<p>实践之所以能够作为检验真的唯一标准，是由真理的本性和实践的特点决定的.</p>\n<ul>\n<li>第一，真理的本性在于主观和客观相符合。所谓检验真理，就是检验人的主观认识同客观实际是否相符合以及符合的程度。这就决定了检验标准既不能在纯粹主观范围内去寻找，也不能在纯粹客观范围内去解决，而只能是把主观同客观联系起来加以比较对照。检验认识真理性的标准，只能是把主观和客观联系起来的桥梁 (纽带、“交错点 &quot;)—— 社会实践</li>\n<li>第二，从实践的特点看，实践是主观见之于客观的活动，不仅具有普遍性的特点和优点，而且具有直接现实性的特点和优点。实践能够把一定的认识、理论变成直接的、实实在在的现实，从而判明主观与客观是否一致，判明认识是否具有真理性。实践的直接现实性，是它能够成为检验真理唯一标准的主要根据</li>\n</ul>\n</li>\n<li>\n<p>在实践检验真理的过程中，逻辑证明可以起到重要的补充作用</p>\n<ul>\n<li>逻辑证明是运用已知的正确概念和判断，通过一定的推理，从理论上确定另一个判断的正确性的方法。</li>\n<li>逻辑证明是探索真理、论证真理的方式，是正确思维和表达的必要条件，也是建立科学理论体系的重要途径。但是，逻辑证明只能回答前提与结论的关系是不是符合逻辑的问题，不能回答结论是不是符合客观实际（真理性）的问题，因而，不能取代实践作为检验认识真理性的标准。已被逻辑证明了的东西，还必须经过实践的检验，并最终服从检验的结果</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>实践标准的确定性和不确定性</p>\n<ul>\n<li>\n<p>实践标准的确定性即绝对性，是指实践作为检验认识真理性的标准的唯一性</p>\n<ul>\n<li>实践是检验真理的唯一标准，此外再无别的标准；凡是经过实践证明了的一切认识都是客观真理，都具有不可推翻的性质；实践能够检验一切认识，即使当前的实践还不能加以判定，最终也会被以后的实践作出裁决。肯定了实践标准的客观性和唯一性，也就必须承认实践标准的确定性、绝对性</li>\n<li>实践标准的不确定性即相对性，是指实践作为检验真理标准的条件性。一定历史阶段上的具体实践具有局限性，它往往不能充分证明或驳倒某一认识的真理性；实践检验真理是一个过程，不是一次完成的；已被实践检验过的真理还要继续经受实践的检验。因此，我们必须把实践对真理的检验，看作全部人类实践即无数个别的、历史发展着的、整个社会的实践对真理的检验。实践检验和证明真理是一个过程，这个过程永远不会完结。在发展的实践中不断验证认识的真理性，这就是实践检验真理的辩证发展过程</li>\n</ul>\n</li>\n<li>\n<p>实践作为检验认识真理性的标准，既是确定的，又是不确定的，是确定性与不确定性的统一</p>\n</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>实践标准的不确定性是指实践作为检验真理标准的条件性</li>\n<li>必须把人的全部实践一作为真理的标准</li>\n<li>实践对真理的检验具有相对性、有限性，不可能绝对的永恒的，一劳永逸的予以确证</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>真理与价值的辩证统一</p>\n</div>\n<ul>\n<li>\n<p>哲学上的 “价值” 的含义</p>\n<ul>\n<li>哲学上的 价值 是指在实践基础上形成的主体和客体之间的意义关系。价值由两方面构成： 一是主体的需要；二是客体的特性。价值既具有主体性的特征，又具有客观基础</li>\n</ul>\n</li>\n<li>\n<p>价值基本特性</p>\n<ul>\n<li>第一，价值具有<strong>主体性</strong>。价值直接同主体相联系，始终以主体为中心。其一，价值关系的形成依赖于主体的存在，同一客体对于不同主体的价值是不同的（例如，药物对于健康人并没有直接的价值，而对于病人则具有直接的价值）。其二，价值关系的形成依赖于主体的创造，使客体潜在的价值转化为现实的价值主客体之间的价值关系不是一种自然的现成关系，而是主体在实践基础上确立的与客体之间的一种创造性的关系【价值是相对于主体而言的，正因为主体的实践活动，才创造了事物与人之间的价值关系，才有了自然界原本不具有的价值现象；所谓益虫害虫实际上是对人类的益和害】</li>\n<li>第二，价值具有客观性。这是指在一定条件下客体对于主体的意义不依赖于主体的主观意识而存在。价值是一种客观存在，独立于人们对它的认识和评价。首先，主体的存在和需要是客观的。其次，客体的存在、属性及作用是客观的【电脑能满足人类上网的需求】</li>\n<li>第三，价值具有多维性。这是指每个主体的价值关系具有多样性，同一客体相对于主体的不同需要会产生不同的价值【一块钻石对于主体的不同需要来说，可能构成多维的价值关系】</li>\n<li>第四，价值具有社会历史性。价值关系中的主体是在一定社会关系中从事实践的具体的人，随着实践和历史的发展，主体和客体以及主客体之间的关系发生变化，导致人们对客体价值的判断也会发生改变。因此，必须用社会的和历史的眼光考察价值现象【读书是唯一的出路吗？】</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>价值不是实体，而是主体与客体之间一种特定的关系。在价值关系中，不是人趋近物，而是物趋近人，具有客观需要的现实的主体是整个价值关系的中心</li>\n<li>价值具有主体性和客观性。注意这里是 “主体性” 而不是 “<strong>主观性</strong>”。主观和主观性是指人的意识，思维所特有的一种状态和属性；主体是指从事认识活动和实践活动的人。主体不等于主观，二者之间既有联系又有区别</li>\n<li>人类的实践活动总是受着真理尺度和价值尺度的制约</li>\n<li>任何成功的实践都是真理尺度和价值尺度的统一，是合规律性和合目的性的统一</li>\n</ul>\n</li>\n</ul>\n<div class=\"note default\">\n<p>价值评价的特点及其标准</p>\n</div>\n<ol>\n<li>\n<p>第一，评价以主客体之间的价值关系为认识对象。以获得关于客体对于主体的意义即 “善”“美” 的认识为目的。（知识性认识以求真为认识目的；价值评价以善和美为认识目的）</p>\n</li>\n<li>\n<p>第二，<span class=\"rainbow\">评价结果与评价主体直接相关，受主体意志的影响</span>（与之相对，知识性认识的结果不以主体意志为转移）</p>\n</li>\n<li>\n<p>第三，评价结果的正确与否依赖于对客体状况和主体需要的认识。只有对主体和客体都有了正确认识，才能对主客体间的价值关系作出正确评价</p>\n</li>\n<li>\n<p>第四，价值评价有科学与非科学之别。科学的评价是客观公正、全面有效的评价。相反，非科学的评价是歪曲、遮蔽客观的价值关系的评价。评价作为一种价值判断活动，虽具有主观性，但并不是一种主观随意的认识活动，只有正确反映价值关系的评价才是正确的评价。对于任何主体而言，是否推动社会历史进步，是否符合社会发展趋势，是否维护、满足了最广大人民的需要和根本利益，是价值评价的最高标准，是判断特定主体实际需要是否合理的最高尺度</p>\n</li>\n</ol>\n<div class=\"note default\">\n<p>真理与价值在实践中的辩证统一</p>\n</div>\n<ul>\n<li>\n<p>实践的真理尺度和价值尺度</p>\n<ul>\n<li>实践的真理尺度是指在实践中人们必须遵循正确反映客观事物本质和规律的真理。实践的价值尺度是指在实践中人们都是按照自己的尺度和需要去认识世界和改造世界。任何实践活动都是在这两种尺度共同制约下进行的，<span class=\"rainbow\">任何成功的实践都是真理尺度和价值尺度的统一</span>，<span class=\"rainbow\">是合规律性和合目的性的统一</span></li>\n</ul>\n</li>\n<li>\n<p>真理与价值在实践中的辩证统一关系</p>\n<ul>\n<li>一方面，价值尺度必须以真理为前提。只有按照真理办事，才能在实践中取得成功。另一方面，人类自身需要的内在尺度，推动着人们不断发现新的真理。脱离了价值尺度，真理就缺失了主体意义。基于实践的具体性和历史性，真理尺度与价值尺度的统一也是具体的和历史的，二者的统一会随着实践的发展而不断发展到更高级的程度</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ol>\n<li><span class=\"green\">对于真理，不能说它对谁来说是真理</span>.<span class=\"red\"> 对于价值， 则心须说它对谁来说有价值</span></li>\n<li><strong>真理必然是具有价值的</strong></li>\n</ol>\n</li>\n</ul>\n<h4 id=\"认识世界和改造世界\"><a class=\"anchor\" href=\"#认识世界和改造世界\">#</a> 认识世界和改造世界</h4>\n<ul>\n<li>\n<p>认识世界和改造世界必须用于创新</p>\n</li>\n<li>\n<p>改造客观世界和改造主观世界及其辩证关系</p>\n</li>\n<li>\n<p>从必然走向自由</p>\n<ul>\n<li>自由是表示人的活动状态的范畴，是指人在活动中通过认识和利用必然所表现出的一种自觉自主的状态。必然性即规律性，指的是不依赖于人的意识而存在的自然和社会发展所固有的客观规律。认识必然、争取自由，是人类认识世界和改造世界的根本目标，是一个历史性的过程。由必然到自由表现为人类不断地从必然王国走向自由王国的过程。</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ol>\n<li>必然是自由的根据和限度</li>\n<li>对于人来说，客观必然性既不能摆脱或绕开，<strong> 也不能废除或排除</strong>，<strong> 人的活动要受到必然性的制约。客观必然性既是对人的自由的约束</strong>，<strong> 又是人实现自由的根据。对必然的认识越全面和深刻</strong>，<strong> 对事物的判断就越准确</strong>，<strong> 行动就越主动</strong>，自由的程度就越大。</li>\n<li>必然王国和自由王国是人类在客观世界面前所处的两种不同的社会活动状态。从必然王国到自由王国是永无止境的无限发展过程</li>\n<li>自由不是由自；认识必然，追求自由。自由不代表不受任何限制</li>\n</ol>\n</li>\n</ul>\n<h3 id=\"唯物史观\"><a class=\"anchor\" href=\"#唯物史观\">#</a> 唯物史观</h3>\n<h4 id=\"人类社会的存在与发展\"><a class=\"anchor\" href=\"#人类社会的存在与发展\">#</a> 人类社会的存在与发展</h4>\n<div class=\"note primary\">\n<p>唯物史观和唯心史观的对立</p>\n</div>\n<ul>\n<li>\n<p>社会历史观的基本问题：社会存在和社会意识的关系问题</p>\n<ul>\n<li>哲学基本问题在历史观中的贯彻和表现就是历史观的基本问题，即社会存在与社会意识的关系问题。正确认识这一问题是解决其他社会历史观问题的<span class=\"red\">基础和前提</span></li>\n</ul>\n<ol>\n<li>两种根本对立的历史观</li>\n</ol>\n<ul>\n<li>历史观是人们在认识社会历史现象、解决社会问题时所采取的根本观点。在对待社会历史发展及其规律问题上，存在着两种根本对立的观点：\n<ul>\n<li>一种是唯物史观（认为社会存在决定社会意识），</li>\n<li>另一种是唯心史观（认为社会意识决定社会存在）。主张社会存在决定社会意识，还是社会意识决定社会存在，是唯物史观与唯心史观的根本分野</li>\n</ul>\n</li>\n</ul>\n<ol start=\"2\">\n<li>在马克思主义产生之前，唯心史观一直占据统治地位</li>\n</ol>\n<ul>\n<li>唯心史观的主要缺陷： 一是至多考察了人的活动的思想动机，而没有进一步考究思想动机背后的物质动因和经济根源；二是只石到个人在历史上的作用，而忽视人民群众创造历史的决定作用</li>\n</ul>\n<ol start=\"3\">\n<li>唯物史观的创立马克思科学地解决了社会存在与社会意识的关系问题，创立了唯物史观唯物史观实现了自然观与历史观在唯物主义基础上的统一，把人们对社会历史的认识，从唯心史观的统治下彻底解放出来；给社会历史的研究提供了科学的理论和方法；把对社会主义的研究奠定在实践的基础之上，从而使社会主义成为科学</li>\n</ol>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>社会存在和社会意识及其辩证关系</p>\n</div>\n<ul>\n<li>社会存在\n<ul>\n<li>\n<p>社会存在也称社会物质生活条件，是社会生活的物质方面，主要包括自然地理环境、人口因素和物质生产方式</p>\n</li>\n<li>\n<p>自然地理环境</p>\n<ul>\n<li>是人类社会生存和发展的永恒的、必要的条件，是人们生活和生产的自然基础</li>\n</ul>\n</li>\n<li>\n<p>人口因素</p>\n<ul>\n<li>是社会存在和发展的必要条件，它对社会发展起着重要作用</li>\n</ul>\n</li>\n<li>\n<p>自然地理环境和人口因素</p>\n<ul>\n<li>对社会发展起着加速或延缓的作用，但都不能脱离社会生产而发生作用，都不能决定社会的性质和社会形态的更替</li>\n</ul>\n</li>\n<li>\n<p>物质生产方式</p>\n<ul>\n<li>\n<p>是指人们为获取物质生活资料而进行的生产活动的方式，它是生产力和生产关系的统一体，集中地体现了人类社会的物质性</p>\n</li>\n<li>\n<p>生产方式中的生产力体现着人们改造自然的现实的物质力量</p>\n</li>\n<li>\n<p>物质生产方式是社会历史发展的决定力量<br />\n<img data-src=\"/img/polictics/%E7%A4%BE%E4%BC%9A%E5%AD%98%E5%9C%A8.png\" alt=\"社会存在\" /></p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>社会意识\n<ul>\n<li>社会意识是社会生活的精神方面，是社会存在的反映。属于上层建筑的社会意识形式称为社会意识形态，主要包括政治法律思想、道德、艺术、宗教、哲学等</li>\n</ul>\n</li>\n</ul>\n<p><img data-src=\"/img/polictics/%E7%A4%BE%E4%BC%9A%E6%84%8F%E8%AF%86.png\" alt=\"社会意识\" /></p>\n<ul>\n<li>社会存在和社会意识的辩证关系\n<ul>\n<li>\n<p>社会存在决定社会意识，社会意识是社会存在的反映，并反作用于社会存在</p>\n<ul>\n<li>社会存在是社会意识内容的客观来源，社会意识是社会物质生活过程及其条件的主观反映。</li>\n<li>社会意识是人们进行社会物质交往的产物。</li>\n<li>随着社会存在的发展，杜会意识也相应地或迟或早地发生变化和发展</li>\n</ul>\n</li>\n<li>\n<p>社会意识既依赖于社会存在，又具有相对独立性</p>\n<ul>\n<li>社会意识与社会存在发展的不完全同步性和不平衡性</li>\n<li>社会意识内部各种形式之间的相互影响及各自具有的历史继承性</li>\n<li>社会意识对社会存在能动的反作用。这是社会意识相对独立性的突出表现</li>\n<li>先进的社会意识，反映了社会发展的客观规律，对社会发展起着积极的促进作用；落后的社会意识不符合社会发展的规律，对社会发展起着阻碍的作用</li>\n</ul>\n</li>\n<li>\n<p>社会存在和社会意识辩证关系原理的意义对社会历史的研究真正成为科学，从而揭示了人类社会发展的规律。</p>\n</li>\n<li>\n<p>它对于推进社会发展包括社会文化建设具有重要指导意义。</p>\n<ul>\n<li>它在人类思想史上第一次正确回答了社会历史观的基本问题，宣告了唯心史观的彻底破产，使</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>并非只有先进的社会意识才能对社会存在发挥反作用。不论是先进的社会意识，还是落后的社会意识，<strong>都会对社会存在产生反作用</strong>，只不过反作用的性质不同而已</li>\n<li>社会意识的能动作用是通过指导人们的实践活动实现的。<strong>思想本身并不能实现什么，要实现思想就要诉诸实践</strong></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>生产力与生产关系的矛盾运动及其规律 （第一社会基本矛盾）</p>\n</div>\n<ul>\n<li>\n<p>生产力</p>\n<ul>\n<li>含义：生产力是人类在生产实践中形成的改造和影响自然以使其适合社会需要的物质力量。生产力具有客观现实性【与人的主观意识相独立】和社会历史性【不同社会历史时期生产力不一样】</li>\n</ul>\n</li>\n<li>\n<p>结构：生产力具有复杂的系统结构。其基本要素包括：</p>\n<ul>\n<li>劳动资料，也称劳动手段：它是人们在劳动过程中所运用的物质资料或物质条件，是人和劳动对象之间的媒介。其中最重要的是生产工具。生产工具是生产力发展水平的客观尺度，是区分社会经济时代的客观依据（物质标志）</li>\n<li>劳动对象：一切自然物质都是可能的劳动对象，劳动资料和劳动对象合称生产资料</li>\n<li>劳动者：劳动者是具有一定生产经验、劳动技能和知识，能够运用一定劳动资料作用于劳动对象、从事生产实践活动的人。劳动者是生产力中最活跃的因素。生产资料和劳动者相结合，才能变为现实生产力</li>\n<li>科学技术是生产力中的重要因素，科学技术能够应用于生产过程，与生产力中的劳动资料、劳动对象和劳动者等因素相结合而转化为实际生产能力。科学技术是先进生产力的集中体现和主要标志，是第一生产力【科技在生产劳动中起决定性作用，社会历史发展中决定作用是社会基本矛盾】</li>\n</ul>\n</li>\n<li>\n<p>生产关系</p>\n<ul>\n<li>含义：生产关系是人们在物质生产过程中形成的不以人的意志为转移的经济关系，实质是人们的物质利益关系。生产关系是社会关系中最基本的关系。政治关系、家庭关系、宗教关系等其他社会关系，都受生产关系的支配和制约</li>\n<li>内容：生产关系包括生产资料所有制关系、生产中人与人的关系和产品分配关系。在生产关系中，生产资料所有制关系是最基本的、决定性的，它是人们进行物质资料生产的前提，构成全部生产关系的基础，是区分不同生产方式、判定社会经济结构性质的客观依据</li>\n<li>分析生产关系必须透过 “物” 看到 “ 物” 后面的人与人的关系，生产关系具有客观性\n<ul>\n<li>生产关系是一种客观的物质的社会关系。生产关系虽然是一种人和人的关系，但它是在物质生产过程中结成的关系，是不以人的意志为转移的。首先，生产关系具有客观性，本质上是生产力的社会存在形式，人们不能离开生产力的发展状况自由地选择生产关系，也不能任意改变生产关系。其次，生产关系是一种物质利益关系，它体现着人们之间的物质经济利益，不是人们的主观愿望和要求。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>生产关系一定要适合生产力状况的规律（人类社会发展的基本规律）</p>\n<ul>\n<li>\n<p>生产力与生产关系的相互关系：</p>\n<ul>\n<li>生产力和生产关系是社会生产不可分割的两个方面。在社会生产中，生产力是生产的物质内容，生产关系是生产的社会形式，二者的有机结合和统一构成社会的生产方式。生产力与生产关系的相互关系是：生产力决定生产关系，而生产关系又反作用于生产力。</li>\n<li>第一，生产力决定生产关系。在二者的矛盾运动中，生产力是居支配地位、起决定作用的方面。首先，生产力状况决定生产关系的性质。有什么样的生产力，就会产生什么样的生产关系。其次，生产力的发展决定生产关系的变化。生产关系是生产力发展需要的产物，只有当它为生产力提供足够的发展空间时才能够存在。</li>\n<li>第二，生产关系对生产力具有能动的反作用。主要表现为两种情形：当生产关系适合生产力发展的客观要求时，它对生产力的发展起推动作用；当生产关系不适合生产力发展的客观要求时，它就会阻碍生产力的发展。</li>\n<li>生产关系对生产力的反作用归根到底还是由生产力决定的，生产关系对生产力反作用的性质也是取决于它是否适合生产力的状况。因此，判断一种生产关系是否优越的标准，在于这种生产关系对生产力是适合的还是不适合的，是促进还是阻碍生产力发展。不能离开生产力的状况和要求，孤立地、抽象地行待生产关系。</li>\n</ul>\n</li>\n<li>\n<p>生产力与生产关系予盾运动规律</p>\n<ul>\n<li>生产力与生产关系的相互作用是一个过程，表现为二者的矛盾运动。这种矛盾运动中的内在的、本质的、必然的联系，就是生产关系一定要适合生产力状况的规律，亦称生产力与生产关系的矛盾运动规律。这是人类社会发展的基本规律。</li>\n<li>这一规律就内容看，包括两个方面：第一，生产力的状况决定一定的生产关系的产生及其变化发展的方向和形式；第二，生产关系反作用于生产力，当生产关系适合生产力的状况时对生产力发展起着促进作用，反之将起着阻碍作用。从过程上看，这一规律表现为生产关系对于生产力总是从基本适合到基本不适合，再到基本适合；与此相适应，生产关系也总是从相对稳定到新旧更替，再到相对稳定。生产力和生产关系的这种矛盾运动循环往复、不断推动社会生产发展，进而推动整个社会逐步走向更高阶段。生产关系一定要适合生产力状况的规律是社会形态发展的普遍规律</li>\n<li>第一，理论意义：这一原理在人类思想史上彻底否定了以 “道德说教” 作为评判历史功过是非的思想体系，第一次科学地确立了生产力发展是 “社会进步的最高标准” ，并且把生产力和生产关系矛盾运动的规律作为判断时代变革的客观依据。</li>\n<li>第二，现实意义：这一原理是马克思主义政党制定路线、方针、政策的重要依据</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ol>\n<li>生产方式是生产力与生产关系的总和。</li>\n<li>生产力是人类改造自然的物质力量</li>\n<li>生产关系是人们在物质生产过程中形成的不以人的意志为转移的经济关系</li>\n<li>物质资料的生产方式构成了人类社会存在和发展的基础，集中体现了人类社会的物质性</li>\n<li>生产力体现人与自然的关系，生产关系指人与人之间的经济关系</li>\n<li>劳动者是生产力中最活跃的因素</li>\n<li>判断社会性质的主要标准：生产关系的性质</li>\n</ol>\n<ul>\n<li>社会进步的根本内容：<span class=\"label\">生产力</span></li>\n<li>衡量社会进步的根本尺度：<span class=\"label\">生产力</span></li>\n</ul>\n</li>\n</ul>\n<div class=\"note primary\">\n<p>经济基础与上层建筑的矛盾运动及其规律 （第二对社会基本矛盾）</p>\n</div>\n<ul>\n<li>\n<p>经济基础的含义</p>\n<ul>\n<li>经济基础是指由社会一定发展阶段的生产力所决定的生产关系的总和。理解经济基础的内涵，要把握两点：</li>\n<li>第一，社会的一定发展阶段上往往存在多种生产关系，但决定一个社会性质的是其占支配地位的生产关系。</li>\n<li>第二，经济基础与经济体制具有内在联系</li>\n</ul>\n</li>\n<li>\n<p>上层建筑的含义</p>\n<ul>\n<li>\n<p>上层建筑是建立在一定经济基础之上的意识形态以及与之相适应的制度、组织和设施。自原始社会解体以来，上层建筑由意识形态以及政治法律制度及设施和政治组织两部分构成。意识形态又称为观念上层建筑，包括政治法律思想、道德、艺术、宗教、哲学等思想观点。政治法律制度及设施和政治组织又称为政治上层建筑，包括国家政治制度、立法司法制度和行政制度，以及国家政权机构、政党、军队、警察、法庭、监狱等政治组织形态和设施</p>\n</li>\n<li>\n<p>观念上层建筑和政治上层建筑的关系：</p>\n<ul>\n<li>首先，政治上层建筑是在一定意识形态指导下建立起来的，是统治阶级意志的体现。其次，政治上层建筑一旦形成，就成为一种现实的力员，影响并制约着人们的思想理论观点</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>经济基础与上层建筑的矛盾运动及其规律</p>\n<ul>\n<li>经济基础与上层建筑矛盾运动的规律，是人类社会发展的又一基本规律</li>\n</ul>\n</li>\n<li>\n<p>观念上层建筑和政治上层建筑的关系：</p>\n<ul>\n<li>首先，政治上层建筑是在一定意识形态指导下建立起来的，是统治阶级意志的体现。其次，政治上层建筑一旦形成，就成为一种现实的力员，影响并制约着人们的思想理论观点。</li>\n<li>在整个上层建筑中，政治上层建筑居主导地位，国家政权是核心。</li>\n<li><span class=\"rainbow\">国家的实质是一个阶级统治另一个阶级的工具</span>。</li>\n</ul>\n</li>\n<li>\n<p>经济基础和上层建筑的辩证关系：</p>\n<ul>\n<li>经济基础决定上层建筑</li>\n<li>上层建筑对经济基础具有反作用。</li>\n<li>经济基础与上层建筑的矛盾运动及其规律</li>\n<li>方法论的意义</li>\n</ul>\n</li>\n</ul>\n<div class=\"note warning no-icon\">\n<p>人类普遍交往与世界历史的形成和发展</p>\n</div>\n<ul>\n<li>\n<p>&quot;交往&quot; 是指：在一定历史条件下的显示的个人、群体、阶级、民族、国家之间在物质和精神上相互往来、相互作用、彼此联系的活动。</p>\n</li>\n<li>\n<p>&quot;交往&quot; 与 &quot;生产力&quot; 的关系：交往是生产力的发展相伴随的</p>\n</li>\n<li>\n<p>世界历史的形成和发展：</p>\n<ul>\n<li>生产方式的发展变革是世界历史形成和发展的基础。</li>\n<li>普通交往是世界历史的基本特征</li>\n<li>人类历史向世界历史的转变是资本主义生产方式出现和向世界扩张的结果。世界历史的形成又反过来促进了生产力的普遍发展和人类的普遍交往，推动了社会发展，为人的发展创造了条件。</li>\n</ul>\n</li>\n<li>\n<p>社会形态更替的一般规律及特殊形式</p>\n<ul>\n<li>社会形态的内涵\n<ul>\n<li>经济形态</li>\n<li>政治形态</li>\n<li>意识形态</li>\n</ul>\n</li>\n<li>社会形态更替的特点\n<ul>\n<li>统一性和多样性</li>\n<li>必然性与人们的历史选择性</li>\n<li>前进性和曲折性</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note warning no-icon\">\n<p>社会历史发展的动力</p>\n</div>\n<ul>\n<li>\n<p>社会基本矛盾是社会发展的根本动力 (第一动力)</p>\n<ul>\n<li>生产力和生产关系、经济基础和上层建筑的矛盾是社会基本矛盾</li>\n<li>社会基本矛盾作为历史发展的根本动力</li>\n</ul>\n</li>\n<li>\n<p>阶级斗争在阶级社会发展中的作用 (第二动力)</p>\n</li>\n<li>\n<p>社会革命在阶级社会发展中的作用 (第三动力)</p>\n</li>\n<li>\n<p>改革的性质 (第四动力)</p>\n</li>\n<li>\n<p>(第五动力)</p>\n</li>\n</ul>\n<h2 id=\"马克思政治经济学\"><a class=\"anchor\" href=\"#马克思政治经济学\">#</a> 马克思政治经济学</h2>\n<h3 id=\"资本主义的本质及规律\"><a class=\"anchor\" href=\"#资本主义的本质及规律\">#</a> 资本主义的本质及规律</h3>\n<h4 id=\"商品经济和价值规律\"><a class=\"anchor\" href=\"#商品经济和价值规律\">#</a> 商品经济和价值规律</h4>\n<ul>\n<li>\n<p>自然经济</p>\n<ul>\n<li>是一种以自给自足为特征的经济形式，以使用价值为生产目的。自然经济是原始社会、奴隶社会和封建社会的基本经济形式。</li>\n</ul>\n</li>\n<li>\n<p>商品经济产生的历史条件</p>\n<ul>\n<li>商品经济是以交换为目的而进行生产的经济形式，它不是从来就有的，而是一定社会历史条件下的产物【历史性】。商品经济得以产生的社会历史条件有两个：一是社会分工的存在，二是生产资料和劳动产品属于不同的所有者</li>\n</ul>\n</li>\n<li>\n<p>刷题总结</p>\n<ul>\n<li>自然经济以使用价值为生产目的， 商品经济以交换为生产目的。交换体现了商品经济的本质</li>\n</ul>\n</li>\n<li>\n<p>商品的二因素</p>\n<ul>\n<li>\n<p>商品的定义</p>\n<ul>\n<li>商品是用来交换的能满足人的某种需要的劳动产品，具有使用价值和价值两个因素，是使用价值和价值的矛盾统一体</li>\n</ul>\n</li>\n<li>\n<p>使用价值</p>\n<ul>\n<li>使用价值是指商品能满足人的某种需要的属性，即商品的有用性，反映的是人与自然之间的物质关系，是商品的自然属性。使用价值构成社会财富的物质内容。</li>\n</ul>\n</li>\n<li>\n<p>价值</p>\n<ul>\n<li>价值是凝结在商品中的无差别的一般人类劳动，即人类脑力和体力的耗费。价值是商品所特有的社会属性。【商品的价值是劳动创造的，其实体是凝结在商品中的无差别的人类劳动（抽象劳动），商品交换实际上是商品生产者之间相互交换劳动的关系，商品的价值在本质上体现了生产者之间的一定的社会关系】。任何有用物品都具有使用价值，但只有这种有用物品是劳动产品并作为商品时，它才具有价值。使用价值不同的商品之所以能按一定比例相交换，就是因为它们都具有价值。商品的价值在质的规定性上是相同的，因而它们可以相互比较</li>\n</ul>\n</li>\n<li>\n<p>交换价值</p>\n<ul>\n<li>交换价值首先表现为一种使用价值同另一种使用价值相交换的量的关系或比例。决定商品交换的比例的，不是商品的使用价值，而是价值。价值是交换价值的基础，交换价值是价值的表现形式\n<ul>\n<li>价值寓于使用价值之中</li>\n<li>劳动是使用价值的源泉之一，不是唯一源泉</li>\n<li>商品一定是劳动产品，但劳动产品不一定是商品</li>\n<li>使用价值是价值和交换价值的物质承担者，价值的存在要以使用价值的存在为前提</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p>商品的价值和使用价值的对立统一关系</p>\n<ul>\n<li>其对立性表现在：商品的使用价值和价值是相互排斥的，二者不可兼得。要获得商品的价值，就必须放弃商品的使用价值；要得到商品的使用价值，就不能得到商品的价值。</li>\n<li>其统一性表现在：作为商品，必须<span class=\"rainbow\">同时</span>具有使用价值和价值两个因素。使用价值是价值的物质承担者，价值寓于使用价值之中。一种物品如果没有使用价值，就是无用之物，即使人们为它付出了大量的劳动，也没有价值。一种物品尽管具有使用价值，但如果不是劳动产品，也没有价值。</li>\n</ul>\n</li>\n<li>\n<p>生产商品的劳动二重性</p>\n<ul>\n<li>具体劳动的概念：生产一定使用价值的具体形式的劳动</li>\n<li>抽象劳动的概念：无差别的一般人类劳动，即人的体力和脑力的消耗</li>\n</ul>\n</li>\n<li>\n<p>💖 劳动二重性决定了商品的二因素</p>\n<ul>\n<li>: 具体劳动形成商品的使用价值，抽象劳动形成商品的价值实体</li>\n</ul>\n</li>\n<li>\n<p>具体劳动和抽象劳动的关系</p>\n<ul>\n<li>都是同一劳动的两种规定。</li>\n<li>一方面是特殊的具体劳动，另一方面是一般的抽象劳动</li>\n<li>具体劳动反映的是人与自然的关系，属于劳动的<span class=\"rainbow\">自然属性</span>，抽象劳动所反映的是商品生产者之间的社会关系，属于劳动的<span class=\"rainbow\">社会属性</span></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"note warning no-icon\">\n<p>价值如何衡量</p>\n</div>\n<ul>\n<li>\n<p>商品价值量的决定</p>\n</li>\n<li>\n<p>商品价值量与劳动生产率的关系</p>\n</li>\n<li>\n<p>影响劳动生产率的因素主要包括</p>\n</li>\n<li>\n<p>简单劳动和复杂劳动</p>\n<ul>\n<li>简单劳动是指不需要经过专门训练和培养的一般劳动都能</li>\n<li>复杂劳动等于自乘的或多倍的简单劳动</li>\n<li></li>\n</ul>\n</li>\n</ul>\n<h3 id=\"资本主义的发展及其趋势\"><a class=\"anchor\" href=\"#资本主义的发展及其趋势\">#</a> 资本主义的发展及其趋势</h3>\n<h2 id=\"科学社会主义\"><a class=\"anchor\" href=\"#科学社会主义\">#</a> 科学社会主义</h2>\n<h3 id=\"社会主义的发展及其规律\"><a class=\"anchor\" href=\"#社会主义的发展及其规律\">#</a> 社会主义的发展及其规律</h3>\n<ul>\n<li></li>\n</ul>\n<h3 id=\"共产主义崇高理想及其最终实现\"><a class=\"anchor\" href=\"#共产主义崇高理想及其最终实现\">#</a> 共产主义崇高理想及其最终实现</h3>\n<h1 id=\"马原总结\"><a class=\"anchor\" href=\"#马原总结\">#</a> 马原总结</h1>\n<details class=\"primary\"><summary>运动和时空的关系</summary><div>\n<div class=\"note info\">\n<p>运动和时空的关系</p>\n</div>\n<ul>\n<li>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\">不同问法</th>\n<th style=\"text-align:center\">不同答案</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">物质的共同属性</td>\n<td style=\"text-align:center\">客观实在性</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">物质的根本属性 (固有属性)</td>\n<td style=\"text-align:center\">运动</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">物质的存在方式</td>\n<td style=\"text-align:center\">运动</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">运动着的物质的存在形式</td>\n<td style=\"text-align:center\">时空</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">人的存在方式</td>\n<td style=\"text-align:center\">实践</td>\n</tr>\n</tbody>\n</table>\n</li>\n</ul>\n</div></details>\n<details class=\"primary\"><summary>意识的错误论断</summary><div>\n<div class=\"note info\">\n<p>意识的错误论断</p>\n</div>\n<ul>\n<li>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\">错误论断</th>\n<th style=\"text-align:center\">分析讲解</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">意识是人脑主观自生的</td>\n<td style=\"text-align:center\">意识是外部世界在人脑中的反映，光有人脑没有外部世界，意识不可能产生</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">意识是人脑的分泌物</td>\n<td style=\"text-align:center\">人脑的分泌物说到底还是物质，这句话混淆了物质和意识的界限，把意识当作某种物质来看待了</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">意识是某种特殊的物质</td>\n<td style=\"text-align:center\">意识不是物质，物质不是意识，二者不能混淆</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">意识就是人脑对外部世界的模仿</td>\n<td style=\"text-align:center\">模范只能说明了意识来源于外部世界，但是没有把能动的含义表达出来。意识不只是对外部世界的模仿，而应该说是 “能动反映”</td>\n</tr>\n</tbody>\n</table>\n</li>\n</ul>\n</div></details>\n<details class=\"primary\"><summary>物质与意识的辩证关系</summary><div>\n<div class=\"note info\">\n<p>物质与意识的辩证关系</p>\n</div>\n<ul>\n<li>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\">相互区别</th>\n<th style=\"text-align:center\">相互联系</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">物质是本原，意识是派生</td>\n<td style=\"text-align:center\">物质可以转化为（变成）意识，意识可以转化为（变成）物质</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">物质不是意识，意识不是物质</td>\n<td style=\"text-align:center\">意识对物质既有依赖性，又有相对独立性</td>\n</tr>\n<tr>\n<td style=\"text-align:center\">物质不能代替意识，意识不能代替物质</td>\n<td style=\"text-align:center\">物质决定意识，意识反作用于物质</td>\n</tr>\n</tbody>\n</table>\n</li>\n</ul>\n</div></details>\n<details class=\"primary\"><summary>马克思主义哲学于其他哲学派别的联系与区别</summary><div>\n<div class=\"note info\">\n<p>物质与意马克思主义哲学于其他哲学派别的联系与区别识的辩证关系</p>\n</div>\n<ul>\n<li>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\"></th>\n<th style=\"text-align:center\">联系</th>\n<th style=\"text-align:center\">区别</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">马克思主义哲学与唯心主义哲学（唯心主义一元论）</td>\n<td style=\"text-align:center\">都是可知论</td>\n<td style=\"text-align:center\"><span class=\"label danger\">马克主义哲学认为物质是世界的本原，唯心主义认为意识是世界的本原</span>  <span class=\"label success\">马克主义哲学在认识论上坚持能动的反映论，唯心主义坚持先验论</span> <span class=\"label primary\">马克主义哲学彻底坚持辩证法，唯心主义部分坚持</span><span class=\"label info\">马克主义哲学在历史观上是唯物的，唯心主义在历史观上是唯心的</span></td>\n</tr>\n<tr>\n<td style=\"text-align:center\">马克思主义哲学与旧唯物主义哲学</td>\n<td style=\"text-align:center\">都是唯物主义，都认为物质是世界的本原</td>\n<td style=\"text-align:center\"><span class=\"label danger\">马克主义哲学在认识论上坚持能动的反映论，旧唯物主义坚持机械反映论</span><span class=\"label success\">马克主义哲学彻底坚持辩证法，旧唯物主义完全不认同辩证法，坚持形而上学</span> <span class=\"label primary\">马克主义哲学在历史观上是唯物的，旧唯物主义在历史观上是唯心的</span> <span class=\"label info\">马克主义哲学坚持实践的观点，旧唯物主义没有</span></td>\n</tr>\n</tbody>\n</table>\n</li>\n</ul>\n</div></details>\n",
            "tags": [
                "记录"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/08/30/math/integralCalculus/",
            "url": "https://hk2012.github.io/2023/08/30/math/integralCalculus/",
            "title": "高等数学积分学",
            "date_published": "2023-08-30T08:58:53.000Z",
            "content_html": "<h1 id=\"不定积分\"><a class=\"anchor\" href=\"#不定积分\">#</a> 不定积分</h1>\n<ol>\n<li>定义\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>F</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mspace width=\"1em\"/></mrow><annotation encoding=\"application/x-tex\">F&#x27;(x) = f(x) \\quad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:1em;\"></span></span></span></span> <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>F</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">F(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 是 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 的一个原函数</li>\n</ul>\n</li>\n<li>原函数存在定理\n<ul>\n<li>连续一定有原函数 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">[</mo><mi>F</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi><msup><mo stretchy=\"false\">]</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">[F(x) + C]&#x27; = f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span><span class=\"mclose\"><span class=\"mclose\">]</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n</li>\n<li>几何含义\n<ul>\n<li>一组平行的曲线簇</li>\n</ul>\n</li>\n<li>性质\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mo stretchy=\"false\">[</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>±</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo><mi>d</mi><mi>x</mi><mo>=</mo><mo>∫</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>±</mo><mo>∫</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">\\int [f(x) \\pm g(x)] dx = \\int f(x) dx \\pm \\int g(x) dx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">±</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">±</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>k</mi><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mi>k</mi><mo>∫</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">\\int kf(x) dx = k \\int f(x) dx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n</ul>\n</li>\n</ol>\n<h2 id=\"积分表\"><a class=\"anchor\" href=\"#积分表\">#</a> 积分表</h2>\n<ol start=\"0\">\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mn>0</mn><mi>d</mi><mi>x</mi><mo>=</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int 0 dx = C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">0</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>k</mi><mi>d</mi><mi>x</mi><mo>=</mo><mi>k</mi><mi>x</mi><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int k dx = kx + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.77777em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><msup><mi>x</mi><mi>μ</mi></msup><mi>d</mi><mi>x</mi><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><msup><mi>x</mi><mrow><mi>μ</mi><mo>+</mo><mn>1</mn></mrow></msup><mrow><mi>μ</mi><mo>+</mo><mn>1</mn></mrow></mfrac></mstyle><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int x^\\mu dx = \\dfrac{x^{\\mu + 1}}{\\mu + 1} + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">μ</span></span></span></span></span></span></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.371548em;vertical-align:-0.8804400000000001em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">μ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">1</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">μ</span><span class=\"mbin mtight\">+</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8804400000000001em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mi>x</mi></mfrac></mstyle><mi>d</mi><mi>x</mi><mo>=</mo><mi>ln</mi><mo>⁡</mo><mi mathvariant=\"normal\">∣</mi><mi>x</mi><mi mathvariant=\"normal\">∣</mi><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\dfrac{1}{x} dx = \\ln|x| + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">ln</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">x</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></mfrac></mstyle><mo>=</mo><mi>arctan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\dfrac{1}{1 + x^2} = \\arctan(x) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.09077em;vertical-align:-0.7693300000000001em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7693300000000001em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">arctan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><msqrt><mrow><mn>1</mn><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></msqrt></mfrac></mstyle><mi>d</mi><mi>x</mi><mo>=</mo><mi>arcsin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\dfrac{1}{\\sqrt{1 - x^2}} dx = \\arcsin(x) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.25144em;vertical-align:-0.93em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.196611em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.93em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">arcsin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\cos(x) dx = \\sin(x) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mo>−</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\sin(x) dx = -\\cos(x) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">−</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mrow><msup><mo><mi>cos</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mstyle><mi>d</mi><mi>x</mi><mo>=</mo><mo>∫</mo><msup><mo><mi>sec</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\dfrac{1}{\\cos^2(x)} dx =\\int \\sec^2(x) dx = \\tan(x) +C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.25744em;vertical-align:-0.936em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mop\"><span class=\"mop\">cos</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.120228em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">sec</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mrow><mi>s</mi><mi>i</mi><msup><mi>n</mi><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mstyle><mi>d</mi><mi>x</mi><mo>=</mo><mo>∫</mo><msup><mo><mi>csc</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mo>−</mo><mi>cot</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\dfrac{1}{sin^2(x)} dx = \\int \\csc^2(x) dx = -\\cot(x) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.25744em;vertical-align:-0.936em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">i</span><span class=\"mord\"><span class=\"mord mathnormal\">n</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.120228em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">csc</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">−</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cot</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>sec</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mi>sec</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\sec(x)\\tan(x) dx = \\sec(x) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sec</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sec</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>csc</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>cot</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mo>−</mo><mi>csc</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\csc(x)\\cot(x) dx = -\\csc(x) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">csc</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cot</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">−</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">csc</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><msup><mi>e</mi><mi>x</mi></msup><mi>d</mi><mi>x</mi><mo>=</mo><msup><mi>e</mi><mi>x</mi></msup><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int e^x dx = e^x + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.747722em;vertical-align:-0.08333em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><msup><mi>a</mi><mi>x</mi></msup><mi>d</mi><mi>x</mi><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><msup><mi>a</mi><mi>x</mi></msup><mrow><mi>ln</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>a</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mstyle><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int a^x dx = \\dfrac{a^x}{\\ln(a)} + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.277392em;vertical-align:-0.936em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.341392em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mop\">ln</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><msup><mo><mi>csc</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mo>−</mo><mi>cot</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\csc^2(x) = -\\cot(x) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.120228em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">csc</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">−</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cot</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><msup><mo><mi>sec</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><msup><mo><mi>tan</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\sec^2(x) = \\tan^2(x) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.120228em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">sec</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.0690879999999998em;vertical-align:-0.25em;\"></span><span class=\"mop\"><span class=\"mop\">tan</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8190879999999999em;\"><span style=\"top:-3.0679800000000004em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></msqrt></mfrac></mstyle><mi>d</mi><mi>x</mi><mo>=</mo><mi>arcsin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mi>x</mi><mi>a</mi></mfrac></mstyle><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\dfrac{1}{\\sqrt{a^2 - x^2}} dx = \\arcsin(\\dfrac{x}{a}) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.25144em;vertical-align:-0.93em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.196611em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.93em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.7935600000000003em;vertical-align:-0.686em;\"></span><span class=\"mop\">arcsin</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.10756em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></mfrac></mstyle><mi>d</mi><mi>x</mi><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mi>a</mi></mfrac></mstyle><mi>arctan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mi>x</mi><mi>a</mi></mfrac></mstyle><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\dfrac{1}{x^2 + a^2} dx = \\dfrac{1}{a}\\arctan(\\dfrac{x}{a}) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.09077em;vertical-align:-0.7693300000000001em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7693300000000001em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">arctan</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.10756em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></mfrac></mstyle><mi>d</mi><mi>x</mi><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mstyle><mi>ln</mi><mo>⁡</mo><mi mathvariant=\"normal\">∣</mi><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mi>x</mi><mo>−</mo><mi>a</mi></mrow><mrow><mi>x</mi><mo>+</mo><mi>a</mi></mrow></mfrac></mstyle><mi mathvariant=\"normal\">∣</mi><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\dfrac{1}{x^2 - a^2} dx = \\dfrac{1}{2a}\\ln|\\dfrac{x - a}{x + a}| + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.09077em;vertical-align:-0.7693300000000001em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7693300000000001em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.09077em;vertical-align:-0.7693300000000001em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">ln</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∣</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.2603300000000002em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord mathnormal\">a</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7693300000000001em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt></mfrac></mstyle><mi>d</mi><mi>x</mi><mo>=</mo><mi>ln</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\dfrac{1}{\\sqrt{x^2 + a^2}} dx = \\ln(x + \\sqrt{x^2 + a^2}) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.25144em;vertical-align:-0.93em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.196611em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.93em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">ln</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.163389em;vertical-align:-0.25em;\"></span><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt></mfrac></mstyle><mi>d</mi><mi>x</mi><mo>=</mo><mi>ln</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\dfrac{1}{\\sqrt{x^2 - a^2}} dx = \\ln(x + \\sqrt{x^2 - a^2}) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.25144em;vertical-align:-0.93em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.196611em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.93em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">ln</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.163389em;vertical-align:-0.25em;\"></span><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mo>−</mo><mi>ln</mi><mo>⁡</mo><mi mathvariant=\"normal\">∣</mi><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi mathvariant=\"normal\">∣</mi><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\tan(x) dx = -\\ln|\\cos(x)| + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">−</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">ln</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>cot</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mi>ln</mi><mo>⁡</mo><mi mathvariant=\"normal\">∣</mi><mi>s</mi><mi>i</mi><mi>n</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi mathvariant=\"normal\">∣</mi><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\cot(x) dx = \\ln|sin(x)| + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cot</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">ln</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">i</span><span class=\"mord mathnormal\">n</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>sec</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>ln</mi><mo>⁡</mo><mi mathvariant=\"normal\">∣</mi><mi>sec</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi mathvariant=\"normal\">∣</mi><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\sec(x) = \\ln|\\sec(x) + \\tan(x)| + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sec</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">ln</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sec</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n</ol>\n<h1 id=\"换元积分法\"><a class=\"anchor\" href=\"#换元积分法\">#</a> 换元积分法</h1>\n<ul>\n<li>核心思想 (凑), 把 d 前面的某一部分，求原函数拿到 d 的里面去\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mn>1</mn><mi>d</mi><mi>x</mi><mo>=</mo><mi>x</mi><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int 1 dx = x + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mn>1</mn><mi>d</mi><mi>u</mi><mo>=</mo><mi>u</mi><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int 1 du = u + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">u</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">u</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mn>1</mn><mi>d</mi><mi>F</mi><mo stretchy=\"false\">(</mo><mi>u</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>F</mi><mo stretchy=\"false\">(</mo><mi>u</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int 1 dF(u) = F(u) + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">u</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">u</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mn>1</mn><mi>d</mi><mo stretchy=\"false\">(</mo><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><mn>3</mn><mo stretchy=\"false\">)</mo><mo>=</mo><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><mn>3</mn><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int 1 d(x^2 - 3) = x^2 - 3 + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.120228em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mord mathnormal\">d</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">3</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.897438em;vertical-align:-0.08333em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">3</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n</ul>\n</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>=</mo><mi>ψ</mi><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">x = \\psi(t)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">ψ</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span></span>, 先积分出来，然后再换回 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span>\n<ul>\n<li>第二类换元思路 (常用是前三项)</li>\n</ul>\n<ol>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></msqrt><mspace width=\"2em\"/><mrow><mi>x</mi><mo>=</mo><mi>a</mi><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow><mo>→</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>−</mo><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>sin</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow></msqrt><mo>=</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>cos</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow></msqrt></mrow><annotation encoding=\"application/x-tex\">{\\sqrt{a^2 - x^2}} \\qquad {x = a\\sin(t)} \\rightarrow {\\sqrt{a^2 - a^2\\sin^2(t)}} = {\\sqrt{a^2\\cos^2(t)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.163389em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.84em;vertical-align:-0.5440659999999999em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.2959340000000001em;\"><span class=\"svg-align\" style=\"top:-3.8em;\"><span class=\"pstrut\" style=\"height:3.8em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">sin</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.871868em;\"><span style=\"top:-3.12076em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.255934em;\"><span class=\"pstrut\" style=\"height:3.8em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.8800000000000001em;\"><svg width='400em' height='1.8800000000000001em' viewBox='0 0 400000 1944' preserveAspectRatio='xMinYMin slice'><path d='M983 90\nl0 -0\nc4,-6.7,10,-10,18,-10 H400000v40\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.5440659999999999em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.24em;vertical-align:-0.30499999999999994em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.935em;\"><span class=\"svg-align\" style=\"top:-3.2em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">cos</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span><span style=\"top:-2.8950000000000005em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.28em;\"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl0 -0\nc4.7,-7.3,11,-11,19,-11\nH40000v40H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30499999999999994em;\"><span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt><mspace width=\"2em\"/><mrow><mi>x</mi><mo>=</mo><mi>a</mi><mi>sec</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow><mo>→</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>sec</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo><mo>−</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt><mo>=</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>tan</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow></msqrt></mrow><annotation encoding=\"application/x-tex\">{\\sqrt{x^2 - a^2}} \\qquad {x = a\\sec(t)} \\rightarrow {\\sqrt{a^2\\sec^2(t) - a^2}} = {\\sqrt{a^2\\tan^2(t)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.163389em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sec</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.24em;vertical-align:-0.30499999999999994em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.935em;\"><span class=\"svg-align\" style=\"top:-3.2em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">sec</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.8950000000000005em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.28em;\"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl0 -0\nc4.7,-7.3,11,-11,19,-11\nH40000v40H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30499999999999994em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.24em;vertical-align:-0.27045600000000025em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9695439999999997em;\"><span class=\"svg-align\" style=\"top:-3.2em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">tan</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8190879999999999em;\"><span style=\"top:-3.0679800000000004em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span><span style=\"top:-2.929544em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.28em;\"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl0 -0\nc4.7,-7.3,11,-11,19,-11\nH40000v40H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.27045600000000025em;\"><span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt><mspace width=\"2em\"/><mrow><mi>x</mi><mo>=</mo><mi>a</mi><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow><mo>→</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>tan</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo><mo>+</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt><mo>=</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>sec</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow></msqrt></mrow><annotation encoding=\"application/x-tex\">{\\sqrt{x^2 + a^2}} \\qquad {x = a\\tan(t)} \\rightarrow {\\sqrt{a^2\\tan^2(t) + a^2}} = {\\sqrt{a^2\\sec^2(t)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.163389em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.24em;vertical-align:-0.27045600000000025em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9695439999999997em;\"><span class=\"svg-align\" style=\"top:-3.2em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">tan</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8190879999999999em;\"><span style=\"top:-3.0679800000000004em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.929544em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.28em;\"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl0 -0\nc4.7,-7.3,11,-11,19,-11\nH40000v40H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.27045600000000025em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.24em;vertical-align:-0.30499999999999994em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.935em;\"><span class=\"svg-align\" style=\"top:-3.2em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">sec</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span><span style=\"top:-2.8950000000000005em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.28em;\"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl0 -0\nc4.7,-7.3,11,-11,19,-11\nH40000v40H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30499999999999994em;\"><span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></msqrt><mspace width=\"2em\"/><mrow><mi>x</mi><mo>=</mo><mi>a</mi><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow><mo>→</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>−</mo><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>cos</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow></msqrt><mo>=</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>sin</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow></msqrt></mrow><annotation encoding=\"application/x-tex\">{\\sqrt{a^2 - x^2}} \\qquad {x = a\\cos(t)} \\rightarrow {\\sqrt{a^2 - a^2\\cos^2(t)}} = {\\sqrt{a^2\\sin^2(t)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.163389em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.24em;vertical-align:-0.30499999999999994em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.935em;\"><span class=\"svg-align\" style=\"top:-3.2em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">cos</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span><span style=\"top:-2.8950000000000005em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.28em;\"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl0 -0\nc4.7,-7.3,11,-11,19,-11\nH40000v40H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30499999999999994em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.84em;vertical-align:-0.5440659999999999em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.2959340000000001em;\"><span class=\"svg-align\" style=\"top:-3.8em;\"><span class=\"pstrut\" style=\"height:3.8em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">sin</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.871868em;\"><span style=\"top:-3.12076em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.255934em;\"><span class=\"pstrut\" style=\"height:3.8em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.8800000000000001em;\"><svg width='400em' height='1.8800000000000001em' viewBox='0 0 400000 1944' preserveAspectRatio='xMinYMin slice'><path d='M983 90\nl0 -0\nc4,-6.7,10,-10,18,-10 H400000v40\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.5440659999999999em;\"><span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt><mspace width=\"2em\"/><mrow><mi>x</mi><mo>=</mo><mi>a</mi><mi>csc</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow><mo>→</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><msup><mo><mi>cos</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow><mrow><msup><mo><mi>sin</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mstyle></mrow></msqrt><mo>=</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>cot</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow></msqrt></mrow><annotation encoding=\"application/x-tex\">{\\sqrt{x^2 - a^2}} \\qquad {x = a\\csc(t)} \\rightarrow {\\sqrt{a^2\\dfrac{\\cos^2(t)}{\\sin^2(t)}}} = {\\sqrt{a^2\\cot^2(t)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.163389em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">csc</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:3.04em;vertical-align:-1.21538em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.8246200000000001em;\"><span class=\"svg-align\" style=\"top:-5em;\"><span class=\"pstrut\" style=\"height:5em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.2381320000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mop\"><span class=\"mop\">sin</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.871868em;\"><span style=\"top:-3.12076em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mop\"><span class=\"mop\">cos</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.011868em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span><span style=\"top:-3.7846200000000003em;\"><span class=\"pstrut\" style=\"height:5em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:3.08em;\"><svg width='400em' height='3.08em' viewBox='0 0 400000 3240' preserveAspectRatio='xMinYMin slice'><path d='M473,2793\nc339.3,-1799.3,509.3,-2700,510,-2702 l0 -0\nc3.3,-7.3,9.3,-11,18,-11 H400000v40H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM1001 80h400000v40H1017.7z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.21538em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.24em;vertical-align:-0.27045600000000025em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9695439999999997em;\"><span class=\"svg-align\" style=\"top:-3.2em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">cot</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8190879999999999em;\"><span style=\"top:-3.0679800000000004em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span><span style=\"top:-2.929544em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.28em;\"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl0 -0\nc4.7,-7.3,11,-11,19,-11\nH40000v40H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.27045600000000025em;\"><span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt><mspace width=\"2em\"/><mrow><mi>x</mi><mo>=</mo><mi>a</mi><mi>cot</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow><mo>→</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>cot</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo><mo>+</mo><msup><mi>a</mi><mn>2</mn></msup></mrow></msqrt><mo>=</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><msup><mo><mi>csc</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow></msqrt></mrow><annotation encoding=\"application/x-tex\">{\\sqrt{x^2 + a^2}} \\qquad {x = a\\cot(t)} \\rightarrow {\\sqrt{a^2\\cot^2(t) + a^2}} = {\\sqrt{a^2\\csc^2(t)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.163389em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.913389em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.873389em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.12661100000000003em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cot</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.24em;vertical-align:-0.27045600000000025em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9695439999999997em;\"><span class=\"svg-align\" style=\"top:-3.2em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">cot</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8190879999999999em;\"><span style=\"top:-3.0679800000000004em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.929544em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.28em;\"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl0 -0\nc4.7,-7.3,11,-11,19,-11\nH40000v40H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.27045600000000025em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.24em;vertical-align:-0.30499999999999994em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.935em;\"><span class=\"svg-align\" style=\"top:-3.2em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"mord\" style=\"padding-left:1em;\"><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop\">csc</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span><span style=\"top:-2.8950000000000005em;\"><span class=\"pstrut\" style=\"height:3.2em;\"></span><span class=\"hide-tail\" style=\"min-width:1.02em;height:1.28em;\"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl0 -0\nc4.7,-7.3,11,-11,19,-11\nH40000v40H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM1001 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30499999999999994em;\"><span></span></span></span></span></span></span></span></span></span></li>\n</ol>\n</li>\n</ul>\n<h1 id=\"分部积分法\"><a class=\"anchor\" href=\"#分部积分法\">#</a> 分部积分法</h1>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>x</mi><msup><mi>e</mi><mi>x</mi></msup><mi>d</mi><mi>x</mi><mo>=</mo><mo>∫</mo><mi>x</mi><mi>d</mi><msup><mi>e</mi><mi>x</mi></msup><mo>=</mo><mi>x</mi><msup><mi>e</mi><mi>x</mi></msup><mo>−</mo><mo>∫</mo><msup><mi>e</mi><mi>x</mi></msup><mi>d</mi><mi>x</mi><mo>=</mo><mi>x</mi><msup><mi>e</mi><mi>x</mi></msup><mo>−</mo><msup><mi>e</mi><mi>x</mi></msup><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int x e^x dx = \\int x de^x = xe^x - \\int e^x dx = xe^x - e^x + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mord mathnormal\">d</span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.747722em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.747722em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.747722em;vertical-align:-0.08333em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>∫</mo><mi>ln</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mi>x</mi><mi>ln</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>x</mi><mo>+</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">\\int \\ln(x) dx = x\\ln(x) - x + C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.11112em;vertical-align:-0.30612em;\"></span><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">ln</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">ln</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n</ul>\n<h2 id=\"往里拿的优先级\"><a class=\"anchor\" href=\"#往里拿的优先级\">#</a> 往里拿的优先级</h2>\n<ol>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>e</mi><mi>x</mi></msup></mrow><annotation encoding=\"application/x-tex\">e^x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.664392em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\sin(x) , \\cos(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>x</mi><mi>n</mi></msup></mrow><annotation encoding=\"application/x-tex\">x^n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.664392em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span></span></span></span></span></span></span></li>\n</ol>\n<h1 id=\"有理函数的积分\"><a class=\"anchor\" href=\"#有理函数的积分\">#</a> 有理函数的积分</h1>\n<ul>\n<li></li>\n<li>待定系数法</li>\n<li></li>\n</ul>\n<h1 id=\"定积分\"><a class=\"anchor\" href=\"#定积分\">#</a> 定积分</h1>\n<h2 id=\"概念与性质\"><a class=\"anchor\" href=\"#概念与性质\">#</a> 概念与性质</h2>\n<ul>\n<li>设函数<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 在区间 [a,b] 上有定义且有界，然后分割，求和，取极限。</li>\n<li>PS: 只与被积函数<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 被积区域<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">[</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">[a,b]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">[</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">]</span></span></span></span> 有关，与积分变量无关</li>\n<li>定理 1: 连续，可积</li>\n<li>定理 2: 有界、有限个间断点，可积</li>\n<li>几何意义:</li>\n</ul>\n<h2 id=\"定积分性质\"><a class=\"anchor\" href=\"#定积分性质\">#</a> 定积分性质</h2>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msubsup><mo>∫</mo><mi>a</mi><mi>a</mi></msubsup><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\int^a_a f(x) dx= 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.215112em;vertical-align:-0.35582em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8592920000000001em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li>性质一\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mo>−</mo><msubsup><mo>∫</mo><mi>b</mi><mi>a</mi></msubsup><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">\\int^b_a f(x) dx= -\\int^a_b f(x) dx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.215112em;vertical-align:-0.35582em;\"></span><span class=\"mord\">−</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8592920000000001em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n</ul>\n</li>\n<li>性质二\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mo stretchy=\"false\">(</mo><mi>α</mi><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>β</mi><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><mi>α</mi><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>+</mo><mi>β</mi><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">\\int^b_a (\\alpha f(x) + \\beta g(x)) dx = \\alpha \\int^b_a f(x) dx + \\beta \\int^b_a g(x) dx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n</ul>\n</li>\n<li>性质三\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>=</mo><msubsup><mo>∫</mo><mi>a</mi><mi>c</mi></msubsup><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>+</mo><msubsup><mo>∫</mo><mi>c</mi><mi>b</mi></msubsup><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">\\int^b_a f(x) dx = \\int^c_a f(x) dx +  \\int^b_c f(x) dx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.215112em;vertical-align:-0.35582em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8592920000000001em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">c</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">c</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n</ul>\n</li>\n<li>性质四\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≡</mo><mn>1</mn><mspace width=\"1em\"/><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mn>1</mn><mi>d</mi><mi>x</mi><mo>=</mo><mi>b</mi><mo>−</mo><mi>a</mi><mspace width=\"1em\"/><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mi>k</mi><mi>d</mi><mi>x</mi><mo>=</mo><mi>b</mi><mo>−</mo><mi>a</mi></mrow><annotation encoding=\"application/x-tex\">f(x) \\equiv 1 \\quad \\int^b_a 1 dx = b - a \\quad \\int^b_a k dx = b - a</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≡</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.77777em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.77777em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">a</span></span></span></span></li>\n</ul>\n</li>\n<li>性质五\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≥</mo><mn>0</mn><mspace width=\"2em\"/><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>≥</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f(x) \\geq 0 \\qquad \\int^b_a f(x) dx \\geq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≤</mo><mn>0</mn><mspace width=\"2em\"/><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>≤</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f(x) \\leq 0 \\qquad \\int^b_a f(x) dx \\leq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ul>\n</li>\n<li>推理一\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≥</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mspace width=\"2em\"/><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>≥</mo><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) \\geq g(x) \\qquad \\int^b_a f(x) dx \\geq \\int^b_a g(x) dx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≥</mo><mn>0</mn><mspace width=\"2em\"/><msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mo stretchy=\"false\">[</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo><mi>d</mi><mi>x</mi><mo>≥</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">g(x) - f(x) \\geq 0 \\qquad \\int^b_a [g(x) - f(x)] dx \\geq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.399828em;vertical-align:-0.35582em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;\">∫</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.044008em;\"><span style=\"top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span><span style=\"top:-3.2579000000000002em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.35582em;\"><span></span></span></span></span></span></span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ul>\n</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/08/27/math/MathImages/",
            "url": "https://hk2012.github.io/2023/08/27/math/MathImages/",
            "title": "高等数学数学图像作图",
            "date_published": "2023-08-27T07:48:53.000Z",
            "content_html": "<h1 id=\"函数图像\"><a class=\"anchor\" href=\"#函数图像\">#</a> 函数图像</h1>\n<h2 id=\"基本图像\"><a class=\"anchor\" href=\"#基本图像\">#</a> 基本图像</h2>\n<ol>\n<li>心形线</li>\n<li>玫瑰线</li>\n<li>阿基米德螺线</li>\n<li>摆线 （外摆线）</li>\n<li>星形线 （内摆线）</li>\n</ol>\n<h2 id=\"单调性\"><a class=\"anchor\" href=\"#单调性\">#</a> 单调性</h2>\n<ul>\n<li>单调增 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mspace width=\"2em\"/><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>&gt;</mo><mn>0</mn><mspace width=\"2em\"/><mo>↗</mo></mrow><annotation encoding=\"application/x-tex\">\\qquad f&#x27;(x) &gt; 0 \\qquad \\nearrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">↗</span></span></span></span></li>\n<li>单调减 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mspace width=\"2em\"/><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>&lt;</mo><mn>0</mn><mspace width=\"2em\"/><mo>↘</mo></mrow><annotation encoding=\"application/x-tex\">\\qquad f&#x27;(x) &lt; 0 \\qquad \\searrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">↘</span></span></span></span></li>\n<li>讨论单调性注意点\n<ul>\n<li>一阶导数为 0 的点 (驻点)</li>\n<li>一阶导数不存在的点</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"凹凸性\"><a class=\"anchor\" href=\"#凹凸性\">#</a> 凹凸性</h2>\n<ol>\n<li>凹曲线:  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mspace width=\"2em\"/><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\qquad f&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 递增 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mspace width=\"2em\"/><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>&gt;</mo><mn>0</mn><mspace width=\"2em\"/><mo>↑</mo></mrow><annotation encoding=\"application/x-tex\">\\qquad f&#x27;&#x27;(x) &gt; 0 \\qquad \\uparrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">↑</span></span></span></span></li>\n<li>凸曲线:  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mspace width=\"2em\"/><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\qquad f&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 递减 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mspace width=\"2em\"/><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>&lt;</mo><mn>0</mn><mspace width=\"2em\"/><mo>↓</mo></mrow><annotation encoding=\"application/x-tex\">\\qquad f&#x27;&#x27;(x) &lt; 0 \\qquad \\downarrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">↓</span></span></span></span></li>\n</ol>\n<h3 id=\"凹凸区间分界点\"><a class=\"anchor\" href=\"#凹凸区间分界点\">#</a> 凹凸区间分界点</h3>\n<ol>\n<li>二阶导数为零的点</li>\n<li>二阶导数不存在的点</li>\n</ol>\n<h2 id=\"间断点\"><a class=\"anchor\" href=\"#间断点\">#</a> 间断点</h2>\n<ul>\n<li>第一类间断点 (可去，跳跃)</li>\n<li>第二类间断点 (无穷，振荡)</li>\n</ul>\n<h2 id=\"极值\"><a class=\"anchor\" href=\"#极值\">#</a> 极值</h2>\n<h3 id=\"定义\"><a class=\"anchor\" href=\"#定义\">#</a> 定义</h3>\n<ul>\n<li>邻域内 (局部)，最大 (小) 值 (不唯一)</li>\n</ul>\n<h3 id=\"定理\"><a class=\"anchor\" href=\"#定理\">#</a> 定理</h3>\n<ol>\n<li>(必要条件) <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 可导，在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 处取极值，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li>(充分条件) <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 连续，左边 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>&gt;</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) &gt; 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> , 右边 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>&lt;</mo><mn>0</mn><mspace width=\"1em\"/></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) &lt; 0 \\quad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:1em;\"></span></span></span></span> 取极大值</li>\n<li>(充分条件) <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 连续，左边 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>&lt;</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) &lt; 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> , 右边 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>&gt;</mo><mn>0</mn><mspace width=\"1em\"/></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) &gt; 0 \\quad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:1em;\"></span></span></span></span> 取极大值</li>\n<li>(充分条件) <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>∈</mo><mover accent=\"true\"><mi>U</mi><mo>˚</mo></mover><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">x \\in \\mathring{U}(x_0)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.5782em;vertical-align:-0.0391em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">∈</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.19677em;vertical-align:-0.25em;\"></span><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9467699999999999em;\"><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">U</span></span></span><span style=\"top:-3.25233em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"accent-body\" style=\"left:-0.34722em;\"><span class=\"mord\">˚</span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span> 符号不变， <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 不是极值</li>\n</ol>\n<h3 id=\"判断方式\"><a class=\"anchor\" href=\"#判断方式\">#</a> 判断方式</h3>\n<ol>\n<li>求<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n<li>求驻点和不可导的点</li>\n<li>考察左右导数符号是否变化\n<ul>\n<li>左边 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>&gt;</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) &gt; 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> , 右边 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>&lt;</mo><mn>0</mn><mspace width=\"1em\"/></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) &lt; 0 \\quad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:1em;\"></span></span></span></span> 取极大值</li>\n<li>左边 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>&lt;</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) &lt; 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> , 右边 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>&gt;</mo><mn>0</mn><mspace width=\"1em\"/></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) &gt; 0 \\quad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:1em;\"></span></span></span></span> 取极大值</li>\n</ul>\n</li>\n<li>二阶可导 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn><mspace width=\"1em\"/><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\">≠</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) = 0 \\quad f&#x27;&#x27;(x_0) \\neq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>&lt;</mo><mn>0</mn><mspace width=\"1em\"/></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x_0) &lt; 0 \\quad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:1em;\"></span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 处取极大值</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>&gt;</mo><mn>0</mn><mspace width=\"1em\"/></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x_0) &gt; 0 \\quad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:1em;\"></span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 处取极小值</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"最值\"><a class=\"anchor\" href=\"#最值\">#</a> 最值</h2>\n<ul>\n<li>整个区域内 (全局)，最大 (小) 值 (唯一)</li>\n</ul>\n<h1 id=\"函数图形的描绘\"><a class=\"anchor\" href=\"#函数图形的描绘\">#</a> 函数图形的描绘</h1>\n<h2 id=\"步骤\"><a class=\"anchor\" href=\"#步骤\">#</a> 步骤</h2>\n<ol>\n<li>确定定义域，奇偶性，周期性 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x), f&#x27;&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn><mo separator=\"true\">,</mo><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = 0, f&#x27;&#x27;(x) = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> , <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 间断点，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 不存在的点，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 不存在的点，分开定义域。</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 确定增减性，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 确定凹凸拐点</li>\n<li>渐近线 (3 种)</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn><mo separator=\"true\">,</mo><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = 0, f&#x27;&#x27;(x) = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> , 以及不存在的点，函数值</li>\n<li>极值，最值</li>\n</ol>\n<h2 id=\"例题一作图\"><a class=\"anchor\" href=\"#例题一作图\">#</a> 例题一作图</h2>\n<ol>\n<li>原函数: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><msup><mi>x</mi><mn>3</mn></msup><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><mi>x</mi><mo>+</mo><mn>1</mn><mspace width=\"2em\"/><mi>x</mi><mo>∈</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mi mathvariant=\"normal\">∞</mi><mo separator=\"true\">,</mo><mo>+</mo><mi mathvariant=\"normal\">∞</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = x^3 - x^2 - x + 1 \\qquad  x \\in(-\\infty,+\\infty)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.897438em;vertical-align:-0.08333em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.897438em;vertical-align:-0.08333em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68354em;vertical-align:-0.0391em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">∈</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">∞</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">+</span><span class=\"mord\">∞</span><span class=\"mclose\">)</span></span></span></span></li>\n<li>一阶导数: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>3</mn><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><mn>2</mn><mi>x</mi><mo>−</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = 3x^2 - 2x - 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.897438em;vertical-align:-0.08333em;\"></span><span class=\"mord\">3</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">2</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></li>\n<li>二阶导数: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>6</mn><mi>x</mi><mo>−</mo><mn>2</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x) = 6x - 2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">6</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">2</span></span></span></span></li>\n<li>令 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn><mo>⇒</mo><mi>x</mi><mo>=</mo><mo>−</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>3</mn></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = 0 \\Rightarrow x = -{\\cfrac{1}{3}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.276em;vertical-align:-0.686em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5899999999999999em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.74em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span></span></span></span></span></span></span> 或 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">x = 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></li>\n<li>令 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn><mo>⇒</mo><mi>x</mi><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>3</mn></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x) = 0 \\Rightarrow x = {\\cfrac{1}{3}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.276em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5899999999999999em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.74em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span></span></span></span></span></span></span></li>\n<li>表格\n<ul>\n<li>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mo>−</mo><mi mathvariant=\"normal\">∞</mi><mo separator=\"true\">,</mo><mo>−</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>3</mn></mfrac></mstyle><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(-\\infty,-\\dfrac{1}{3})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">∞</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>3</mn></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">-{\\dfrac{1}{3}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mo>−</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>3</mn></mfrac></mstyle><mo separator=\"true\">,</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>3</mn></mfrac></mstyle><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(-\\dfrac{1}{3},\\dfrac{1}{3})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>3</mn></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">{\\dfrac{1}{3}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>3</mn></mfrac></mstyle><mo separator=\"true\">,</mo><mn>1</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(\\dfrac{1}{3},1)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mn>1</mn><mo separator=\"true\">,</mo><mo>+</mo><mi mathvariant=\"normal\">∞</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(1,+\\infty)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">+</span><span class=\"mord\">∞</span><span class=\"mclose\">)</span></span></span></span></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>+</mo></mrow><annotation encoding=\"application/x-tex\">+</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">+</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>+</mo></mrow><annotation encoding=\"application/x-tex\">+</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">+</span></span></span></span></td>\n</tr>\n<tr>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\">0</td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>+</mo></mrow><annotation encoding=\"application/x-tex\">+</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">+</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>+</mo></mrow><annotation encoding=\"application/x-tex\">+</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">+</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>+</mo></mrow><annotation encoding=\"application/x-tex\">+</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">+</span></span></span></span></td>\n</tr>\n<tr>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>↗</mo><mo>↑</mo></mrow><annotation encoding=\"application/x-tex\">\\nearrow \\uparrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↗</span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↑</span></span></span></span></td>\n<td style=\"text-align:center\">极大值</td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>↘</mo><mo>↑</mo></mrow><annotation encoding=\"application/x-tex\">\\searrow \\uparrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↘</span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↑</span></span></span></span></td>\n<td style=\"text-align:center\">拐点</td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>↘</mo><mo>↓</mo></mrow><annotation encoding=\"application/x-tex\">\\searrow \t\\downarrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↘</span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↓</span></span></span></span></td>\n<td style=\"text-align:center\">极小值</td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>↗</mo><mo>↓</mo></mrow><annotation encoding=\"application/x-tex\">\\nearrow \t\\downarrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↗</span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↓</span></span></span></span></td>\n</tr>\n</tbody>\n</table>\n</li>\n</ul>\n</li>\n<li>分析定义域\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mo>−</mo><mi mathvariant=\"normal\">∞</mi><mspace width=\"1em\"/><mi>y</mi><mo>→</mo><mo>−</mo><mi mathvariant=\"normal\">∞</mi></mrow><annotation encoding=\"application/x-tex\">x \\rightarrow -\\infty  \\quad y \\rightarrow -\\infty</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.7777700000000001em;vertical-align:-0.19444em;\"></span><span class=\"mord\">−</span><span class=\"mord\">∞</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span><span class=\"mord\">∞</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mo>+</mo><mi mathvariant=\"normal\">∞</mi><mspace width=\"1em\"/><mi>y</mi><mo>→</mo><mo>+</mo><mi mathvariant=\"normal\">∞</mi></mrow><annotation encoding=\"application/x-tex\">x \\rightarrow +\\infty  \\quad y \\rightarrow +\\infty</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.7777700000000001em;vertical-align:-0.19444em;\"></span><span class=\"mord\">+</span><span class=\"mord\">∞</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">+</span><span class=\"mord\">∞</span></span></span></span></li>\n</ul>\n</li>\n<li>计算特殊值\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mo>−</mo><mfrac><mn>1</mn><mn>3</mn></mfrac><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>32</mn><mn>27</mn></mfrac></mstyle><mspace width=\"2em\"/><mi>f</mi><mo stretchy=\"false\">(</mo><mfrac><mn>1</mn><mn>3</mn></mfrac><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>16</mn><mn>27</mn></mfrac></mstyle><mspace width=\"2em\"/><mi>f</mi><mo stretchy=\"false\">(</mo><mn>1</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f(-\\frac{1}{3}) = \\dfrac{32}{27} \\qquad f(\\frac{1}{3}) = \\dfrac{16}{27} \\qquad f(1) = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.190108em;vertical-align:-0.345em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord\">7</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span><span class=\"mord\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord\">7</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span><span class=\"mord\">6</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ul>\n</li>\n<li>该函数最终图像\n<ul>\n<li><img data-src=\"/img/math/%E5%87%BD%E6%95%B0%E5%9B%BE%E5%83%8F%E7%A4%BA%E4%BE%8B%E5%9B%BE1.png\" alt=\"函数图像示例图1\" /></li>\n</ul>\n</li>\n</ol>\n<h2 id=\"例题二作图\"><a class=\"anchor\" href=\"#例题二作图\">#</a> 例题二作图</h2>\n<ol>\n<li>原函数: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><msqrt><mrow><mn>2</mn><mi>π</mi></mrow></msqrt></mfrac></mstyle><msup><mi>e</mi><mrow><mo>−</mo><mfrac><msup><mi>x</mi><mn>2</mn></msup><mn>2</mn></mfrac></mrow></msup><mspace width=\"2em\"/><mi>x</mi><mo>∈</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mi mathvariant=\"normal\">∞</mi><mo separator=\"true\">,</mo><mo>+</mo><mi mathvariant=\"normal\">∞</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\dfrac{1}{\\sqrt{2\\pi}} e^{-\\frac{x^2}{2}}\\qquad  x \\in (-\\infty,+\\infty)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.25144em;vertical-align:-0.93em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.2027799999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.90722em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\">2</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">π</span></span></span><span style=\"top:-2.86722em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.13278em;\"><span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.93em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.15602em;\"><span style=\"top:-3.363em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\"><span class=\"mopen nulldelimiter sizing reset-size3 size6\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.1328857142857145em;\"><span style=\"top:-2.656em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.2255000000000003em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line mtight\" style=\"border-bottom-width:0.049em;\"></span></span><span style=\"top:-3.384em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.04844em;\"><span style=\"top:-3.04844em;margin-right:0.1em;\"><span class=\"pstrut\" style=\"height:2.64444em;\"></span><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.344em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter sizing reset-size3 size6\"></span></span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">∈</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">∞</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">+</span><span class=\"mord\">∞</span><span class=\"mclose\">)</span></span></span></span> 偶函数，只考虑 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>≥</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">x \\geq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7719400000000001em;vertical-align:-0.13597em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li>一阶导数: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mo>−</mo><mi>x</mi><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><msqrt><mrow><mn>2</mn><mi>π</mi></mrow></msqrt></mfrac></mstyle><msup><mi>e</mi><mrow><mo>−</mo><mfrac><msup><mi>x</mi><mn>2</mn></msup><mn>2</mn></mfrac></mrow></msup></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = -x\\dfrac{1}{\\sqrt{2\\pi}} e^{-\\frac{x^2}{2}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.25144em;vertical-align:-0.93em;\"></span><span class=\"mord\">−</span><span class=\"mord mathnormal\">x</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.2027799999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.90722em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\">2</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">π</span></span></span><span style=\"top:-2.86722em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.13278em;\"><span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.93em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.15602em;\"><span style=\"top:-3.363em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\"><span class=\"mopen nulldelimiter sizing reset-size3 size6\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.1328857142857145em;\"><span style=\"top:-2.656em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.2255000000000003em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line mtight\" style=\"border-bottom-width:0.049em;\"></span></span><span style=\"top:-3.384em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.04844em;\"><span style=\"top:-3.04844em;margin-right:0.1em;\"><span class=\"pstrut\" style=\"height:2.64444em;\"></span><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.344em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter sizing reset-size3 size6\"></span></span></span></span></span></span></span></span></span></span></span></span></span></li>\n<li>二阶导数: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><msqrt><mrow><mn>2</mn><mi>π</mi></mrow></msqrt></mfrac></mstyle><msup><mi>e</mi><mrow><mo>−</mo><mfrac><msup><mi>x</mi><mn>2</mn></msup><mn>2</mn></mfrac></mrow></msup><mo stretchy=\"false\">(</mo><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><mn>1</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x) = \\dfrac{1}{\\sqrt{2\\pi}} e^{-\\frac{x^2}{2}}(x^2 - 1)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.25144em;vertical-align:-0.93em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.2027799999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.90722em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\">2</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">π</span></span></span><span style=\"top:-2.86722em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.13278em;\"><span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.93em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.15602em;\"><span style=\"top:-3.363em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\"><span class=\"mopen nulldelimiter sizing reset-size3 size6\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.1328857142857145em;\"><span style=\"top:-2.656em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.2255000000000003em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line mtight\" style=\"border-bottom-width:0.049em;\"></span></span><span style=\"top:-3.384em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.04844em;\"><span style=\"top:-3.04844em;margin-right:0.1em;\"><span class=\"pstrut\" style=\"height:2.64444em;\"></span><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.344em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter sizing reset-size3 size6\"></span></span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span></span></span></span></li>\n<li>令 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn><mo>⇒</mo><mi>x</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = 0 \\Rightarrow x = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li>令 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn><mo>⇒</mo><mi>x</mi><mo>=</mo><mo>±</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x) = 0 \\Rightarrow x = \\pm 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">±</span><span class=\"mord\">1</span></span></span></span></li>\n<li>表格\n<ul>\n<li>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>1</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(0,1)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mn>1</mn><mo separator=\"true\">,</mo><mo>+</mo><mi mathvariant=\"normal\">∞</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(1,+\\infty)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">+</span><span class=\"mord\">∞</span><span class=\"mclose\">)</span></span></span></span></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n</tr>\n<tr>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\">0</td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>+</mo></mrow><annotation encoding=\"application/x-tex\">+</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">+</span></span></span></span></td>\n</tr>\n<tr>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></td>\n<td style=\"text-align:center\">极大值</td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>↘</mo><mo>↑</mo></mrow><annotation encoding=\"application/x-tex\">\\searrow \\uparrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↘</span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↑</span></span></span></span></td>\n<td style=\"text-align:center\">拐点</td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>↘</mo><mo>↓</mo></mrow><annotation encoding=\"application/x-tex\">\\searrow \t\\downarrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↘</span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↓</span></span></span></span></td>\n</tr>\n</tbody>\n</table>\n</li>\n</ul>\n</li>\n<li>分析定义域\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mo>+</mo><mi mathvariant=\"normal\">∞</mi><mspace width=\"1em\"/><mi>y</mi><mo>→</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">x \\rightarrow +\\infty  \\quad y \\rightarrow 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.7777700000000001em;vertical-align:-0.19444em;\"></span><span class=\"mord\">+</span><span class=\"mord\">∞</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> ，水平渐近线 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">y = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ul>\n</li>\n<li>计算特殊值\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mn>0</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><msqrt><mrow><mn>2</mn><mi>π</mi></mrow></msqrt></mfrac></mstyle><mspace width=\"2em\"/><mi>f</mi><mo stretchy=\"false\">(</mo><mn>1</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><msqrt><mrow><mn>2</mn><mi>π</mi></mrow></msqrt></mfrac></mstyle><msup><mi>e</mi><mrow><mo>−</mo><mfrac><mn>1</mn><mn>2</mn></mfrac></mrow></msup></mrow><annotation encoding=\"application/x-tex\">f(0) = \\dfrac{1}{\\sqrt{2\\pi}} \\qquad f(1) = \\dfrac{1}{\\sqrt{2\\pi}} e^{-\\frac{1}{2}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\">0</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.25144em;vertical-align:-0.93em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.2027799999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.90722em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\">2</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">π</span></span></span><span style=\"top:-2.86722em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.13278em;\"><span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.93em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.25144em;vertical-align:-0.93em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.2027799999999997em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.90722em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\">2</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">π</span></span></span><span style=\"top:-2.86722em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.13278em;\"><span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.93em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9540200000000001em;\"><span style=\"top:-3.363em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\"><span class=\"mopen nulldelimiter sizing reset-size3 size6\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8443142857142858em;\"><span style=\"top:-2.656em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.2255000000000003em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line mtight\" style=\"border-bottom-width:0.049em;\"></span></span><span style=\"top:-3.384em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.344em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter sizing reset-size3 size6\"></span></span></span></span></span></span></span></span></span></span></span></span></span></li>\n</ul>\n</li>\n<li>该函数最终图像\n<ul>\n<li><img data-src=\"/img/math/%E5%87%BD%E6%95%B0%E5%9B%BE%E5%83%8F%E7%A4%BA%E4%BE%8B%E5%9B%BE2.png\" alt=\"函数图像示例图2\" /></li>\n</ul>\n</li>\n</ol>\n<h2 id=\"例题三作图\"><a class=\"anchor\" href=\"#例题三作图\">#</a> 例题三作图</h2>\n<ol>\n<li>原函数: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mn>1</mn><mo>+</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mn>36</mn><mi>x</mi></mrow><mrow><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><mn>3</mn><msup><mo stretchy=\"false\">)</mo><mn>2</mn></msup></mrow></mfrac></mstyle><mspace width=\"2em\"/><mi>x</mi><mo>∈</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mi mathvariant=\"normal\">∞</mi><mo separator=\"true\">,</mo><mo>−</mo><mn>3</mn><mo stretchy=\"false\">)</mo><mo>∪</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>3</mn><mo separator=\"true\">,</mo><mo>+</mo><mi mathvariant=\"normal\">∞</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = 1 + \\dfrac{36x}{(x + 3)^2} \\qquad  x \\in(-\\infty,-3) \\cup (-3,+\\infty)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.25744em;vertical-align:-0.936em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">3</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span><span class=\"mord\">6</span><span class=\"mord mathnormal\">x</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">∈</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">∞</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">−</span><span class=\"mord\">3</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∪</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">3</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">+</span><span class=\"mord\">∞</span><span class=\"mclose\">)</span></span></span></span></li>\n<li>一阶导数: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mn>36</mn><mi>x</mi><mo stretchy=\"false\">(</mo><mn>3</mn><mo>−</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><mrow><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><mn>3</mn><msup><mo stretchy=\"false\">)</mo><mn>3</mn></msup></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = {\\dfrac{36x(3 - x)}{(x + 3)^3}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.363em;vertical-align:-0.936em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.427em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">3</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span><span class=\"mord\">6</span><span class=\"mord mathnormal\">x</span><span class=\"mopen\">(</span><span class=\"mord\">3</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n<li>二阶导数: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mn>72</mn><mo stretchy=\"false\">(</mo><mi>x</mi><mo>−</mo><mn>6</mn><mo stretchy=\"false\">)</mo></mrow><mrow><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><mn>3</mn><msup><mo stretchy=\"false\">)</mo><mn>4</mn></msup></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x) = {\\dfrac{72(x - 6)}{(x + 3)^4}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.363em;vertical-align:-0.936em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.427em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">3</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.740108em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">4</span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">7</span><span class=\"mord\">2</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">6</span><span class=\"mclose\">)</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n<li>令 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn><mo>⇒</mo><mi>x</mi><mo>=</mo><mn>3</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = 0 \\Rightarrow x = 3</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">3</span></span></span></span></li>\n<li>令 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn><mo>⇒</mo><mi>x</mi><mo>=</mo><mn>6</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x) = 0 \\Rightarrow x = 6</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">⇒</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">6</span></span></span></span></li>\n<li>表格\n<ul>\n<li>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mo>−</mo><mi mathvariant=\"normal\">∞</mi><mo separator=\"true\">,</mo><mo>−</mo><mn>3</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(-\\infty,-3)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">∞</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">−</span><span class=\"mord\">3</span><span class=\"mclose\">)</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mo>−</mo><mn>3</mn><mo separator=\"true\">,</mo><mn>3</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(-3,3)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">3</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">3</span><span class=\"mclose\">)</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>3</mn></mrow><annotation encoding=\"application/x-tex\">3</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">3</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mn>3</mn><mo separator=\"true\">,</mo><mn>6</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(3,6)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">3</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">6</span><span class=\"mclose\">)</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>6</mn></mrow><annotation encoding=\"application/x-tex\">6</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">6</span></span></span></span></th>\n<th style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mn>6</mn><mo separator=\"true\">,</mo><mo>+</mo><mi mathvariant=\"normal\">∞</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(6,+\\infty)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">6</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">+</span><span class=\"mord\">∞</span><span class=\"mclose\">)</span></span></span></span></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>+</mo></mrow><annotation encoding=\"application/x-tex\">+</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">+</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n</tr>\n<tr>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo></mrow><annotation encoding=\"application/x-tex\">-</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>+</mo></mrow><annotation encoding=\"application/x-tex\">+</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">+</span></span></span></span></td>\n</tr>\n<tr>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>↘</mo><mo>↑</mo></mrow><annotation encoding=\"application/x-tex\">\\searrow \\uparrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↘</span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↑</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>↗</mo><mo>↑</mo></mrow><annotation encoding=\"application/x-tex\">\\nearrow \\uparrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↗</span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↑</span></span></span></span></td>\n<td style=\"text-align:center\">极大值</td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>↘</mo><mo>↑</mo></mrow><annotation encoding=\"application/x-tex\">\\searrow \\uparrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↘</span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↑</span></span></span></span></td>\n<td style=\"text-align:center\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>↘</mo><mo>↓</mo></mrow><annotation encoding=\"application/x-tex\">\\searrow \\downarrow</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↘</span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mrel\">↓</span></span></span></span></td>\n<td style=\"text-align:center\">极小值</td>\n</tr>\n</tbody>\n</table>\n</li>\n</ul>\n</li>\n<li>分析定义域\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mo>−</mo><mn>3</mn><mspace width=\"1em\"/><mi>y</mi><mo>→</mo><mo>−</mo><mi mathvariant=\"normal\">∞</mi></mrow><annotation encoding=\"application/x-tex\">x \\rightarrow -3  \\quad y \\rightarrow -\\infty</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8388800000000001em;vertical-align:-0.19444em;\"></span><span class=\"mord\">−</span><span class=\"mord\">3</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span><span class=\"mord\">∞</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mi mathvariant=\"normal\">∞</mi><mspace width=\"1em\"/><mi>y</mi><mo>→</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">x \\rightarrow \\infty  \\quad y \\rightarrow 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\">∞</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></li>\n</ul>\n</li>\n<li>计算特殊值\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mn>3</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mn>4</mn><mspace width=\"2em\"/><mi>f</mi><mo stretchy=\"false\">(</mo><mn>6</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mfrac><mn>11</mn><mn>3</mn></mfrac><mspace width=\"2em\"/><mi>f</mi><mo stretchy=\"false\">(</mo><mn>0</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">f(3) = 4 \\qquad f(6) = \\frac{11}{3} \\qquad f(0) = 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\">3</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">4</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\">6</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.190108em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">3</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\">0</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></li>\n</ul>\n</li>\n<li>该函数最终图像\n<ul>\n<li><img data-src=\"/img/math/%E5%87%BD%E6%95%B0%E5%9B%BE%E5%83%8F%E7%A4%BA%E4%BE%8B%E5%9B%BE3.png\" alt=\"函数图像示例图3\" /></li>\n</ul>\n</li>\n</ol>\n<h1 id=\"曲率\"><a class=\"anchor\" href=\"#曲率\">#</a> 曲率</h1>\n<h2 id=\"概述\"><a class=\"anchor\" href=\"#概述\">#</a> 概述</h2>\n<ul>\n<li>定义：曲线弯曲的程度</li>\n</ul>\n<h2 id=\"常见曲率形式\"><a class=\"anchor\" href=\"#常见曲率形式\">#</a> 常见曲率形式</h2>\n<ul>\n<li>平均曲率\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mover accent=\"true\"><mi>k</mi><mo>ˉ</mo></mover><mo>=</mo><mi mathvariant=\"normal\">∣</mi><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mi>δ</mi><mi>α</mi></mrow><mrow><mi>δ</mi><mi>s</mi></mrow></mfrac></mstyle><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">\\bar k = |\\dfrac{\\delta \\alpha}{\\delta s}|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8312199999999998em;vertical-align:0em;\"></span><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8312199999999998em;\"><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span></span><span style=\"top:-3.26344em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"accent-body\" style=\"left:-0.25em;\"><span class=\"mord\">ˉ</span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.05744em;vertical-align:-0.686em;\"></span><span class=\"mord\">∣</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.37144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">s</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\">∣</span></span></span></span></li>\n</ul>\n</li>\n<li>在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>M</mi></mrow><annotation encoding=\"application/x-tex\">M</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">M</span></span></span></span> 处的曲率\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>δ</mi><mi>s</mi><mo>→</mo><mn>0</mn></mrow></munder><mi mathvariant=\"normal\">∣</mi><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mi>δ</mi><mi>α</mi></mrow><mrow><mi>δ</mi><mi>s</mi></mrow></mfrac></mstyle><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{\\delta s \\rightarrow{0}}|\\dfrac{\\delta \\alpha}{\\delta s}|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.123548em;vertical-align:-0.7521079999999999em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.347892em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal mtight\">s</span><span class=\"mrel mtight\">→</span><span class=\"mord mtight\"><span class=\"mord mtight\">0</span></span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7521079999999999em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∣</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.37144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">s</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\">∣</span></span></span></span></li>\n</ul>\n</li>\n<li>直线的曲率\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>δ</mi><mi>s</mi><mo>→</mo><mn>0</mn></mrow></munder><mi mathvariant=\"normal\">∣</mi><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mi>δ</mi><mi>α</mi></mrow><mrow><mi>δ</mi><mi>s</mi></mrow></mfrac></mstyle><mi mathvariant=\"normal\">∣</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{\\delta s \\rightarrow{0}}|\\dfrac{\\delta \\alpha}{\\delta s}| = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.123548em;vertical-align:-0.7521079999999999em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.347892em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal mtight\">s</span><span class=\"mrel mtight\">→</span><span class=\"mord mtight\"><span class=\"mord mtight\">0</span></span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7521079999999999em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∣</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.37144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">s</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ul>\n</li>\n<li>圆的曲率 (圆的半径为 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>r</mi></mrow><annotation encoding=\"application/x-tex\">r</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">r</span></span></span></span>)\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>δ</mi><mi>s</mi><mo>→</mo><mn>0</mn></mrow></munder><mi mathvariant=\"normal\">∣</mi><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mi>δ</mi><mi>α</mi></mrow><mrow><mi>δ</mi><mi>s</mi></mrow></mfrac></mstyle><mi mathvariant=\"normal\">∣</mi><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mi>r</mi></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{\\delta s \\rightarrow{0}}|\\dfrac{\\delta \\alpha}{\\delta s}| = {\\dfrac{1}{r}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.123548em;vertical-align:-0.7521079999999999em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.347892em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal mtight\">s</span><span class=\"mrel mtight\">→</span><span class=\"mord mtight\"><span class=\"mord mtight\">0</span></span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7521079999999999em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∣</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.37144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">s</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">r</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n</ul>\n</li>\n</ul>\n<h2 id=\"\"><a class=\"anchor\" href=\"#\">#</a> </h2>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/08/18/math/advancedMathematics/",
            "url": "https://hk2012.github.io/2023/08/18/math/advancedMathematics/",
            "title": "高等数学(数学二)",
            "date_published": "2023-08-18T07:48:53.000Z",
            "content_html": "<h1 id=\"概述\"><a class=\"anchor\" href=\"#概述\">#</a> 概述</h1>\n<h2 id=\"官方解释\"><a class=\"anchor\" href=\"#官方解释\">#</a> 官方解释</h2>\n<ul>\n<li>高等数学是指相对于初等数学和中等数学而言，数学的对象及方法较为繁杂的一部分，中学的代数、几何以及简单的集合论初步、逻辑初步称为中等数学，将其作为中小学阶段的初等数学与大学阶段的高等数学的过渡。</li>\n</ul>\n<h2 id=\"通俗解释\"><a class=\"anchor\" href=\"#通俗解释\">#</a> 通俗解释</h2>\n<ul>\n<li>通常认为，高等数学是由微积分学，较深入的代数学、几何学以及它们之间的交叉内容所形成的一门基础学科。主要内容包括：数列、极限、微积分、空间解析几何与线性代数、级数、常微分方程。工科、理科、财经类研究生考试的基础科目。</li>\n</ul>\n<h1 id=\"第一节-函数与极限\"><a class=\"anchor\" href=\"#第一节-函数与极限\">#</a> 第一节 函数与极限</h1>\n<ul>\n<li>大部分人都知道高等数学的第一章节就是函数与极限了，其实函数在中学时期就已经学过了，所以大部分人把重心放在了极限上面。但是数学是需要有他的完整性，而且之前学过了不代表现在的你还是记得的，至少在细节方面或者在做题方面和当时的自己是没法比的，接下来我们来一一介绍。</li>\n</ul>\n<h2 id=\"函数介绍\"><a class=\"anchor\" href=\"#函数介绍\">#</a> 函数介绍</h2>\n<h3 id=\"教材定义\"><a class=\"anchor\" href=\"#教材定义\">#</a> 教材定义</h3>\n<ul>\n<li>有两个变量 x 和 y , 当 x 取其变化范围中的每一个特定值时，相应地有唯一的 y 与它对应，则称 y 是 x 的函数。记为 y = f（ x ）, 其中 x 为自变量，y 为因变量。（之所以看不下去教材是有原因的）</li>\n</ul>\n<h3 id=\"通俗理解\"><a class=\"anchor\" href=\"#通俗理解\">#</a> 通俗理解</h3>\n<ul>\n<li>\n<p>其实函数本质上就是数学描述对应关系的一种特殊集合，用映射与函数的关系去解释再清晰不过了。</p>\n<ul>\n<li>有两个非空集合 分别为 X Y, 通过法则 f (function), 对 X 集合里的每个元素 x 都有唯一的 y 与之对应。</li>\n</ul>\n<p><img data-src=\"/img/math/1.%E6%98%A0%E5%B0%84.png\" alt=\"映射介绍图\" /></p>\n<ul>\n<li>X 集合实际上就是定义域 记作 D (Domain).</li>\n<li>Y 集合实际上就是值域，记作 R (Range).</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"函数特性\"><a class=\"anchor\" href=\"#函数特性\">#</a> 函数特性</h3>\n<ol>\n<li>有界性:\n<ul>\n<li>有上界：如果 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∃</mi><msub><mi>k</mi><mn>1</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\exists k_1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\">∃</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> , 使得 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≤</mo><msub><mi>k</mi><mn>1</mn></msub></mrow><annotation encoding=\"application/x-tex\">f(x) \\leq k_1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> , 则称<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>k</mi><mn>1</mn></msub></mrow><annotation encoding=\"application/x-tex\">k_1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 是 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 的一个上界</li>\n<li>有下界：如果 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∃</mi><msub><mi>k</mi><mn>2</mn></msub></mrow><annotation encoding=\"application/x-tex\">\\exists k_2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\">∃</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> , 使得 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≥</mo><msub><mi>k</mi><mn>2</mn></msub></mrow><annotation encoding=\"application/x-tex\">f(x) \\geq k_2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> , 则称<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>k</mi><mn>2</mn></msub></mrow><annotation encoding=\"application/x-tex\">k_2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03148em;\">k</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03148em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 是 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 的一个下界</li>\n<li>有界：如果 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∃</mi></mrow><annotation encoding=\"application/x-tex\">\\exists</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord\">∃</span></span></span></span> 正数 M , 使得 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">|f(x)|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord\">∣</span></span></span></span> <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>≤</mo><mi>M</mi></mrow><annotation encoding=\"application/x-tex\">\\leq M</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7719400000000001em;vertical-align:-0.13597em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">M</span></span></span></span> , 即 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo><mi>M</mi><mo>≤</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≤</mo><mi>M</mi></mrow><annotation encoding=\"application/x-tex\">-M \\leq f(x) \\leq M</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8193em;vertical-align:-0.13597em;\"></span><span class=\"mord\">−</span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">M</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">M</span></span></span></span></li>\n<li>无界  :  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∀</mi></mrow><annotation encoding=\"application/x-tex\">\\forall</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord\">∀</span></span></span></span> 正数 M. 如果 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∃</mi><msub><mi>x</mi><mn>1</mn></msub><mo>∈</mo><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">\\exists x_1 \\in x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.84444em;vertical-align:-0.15em;\"></span><span class=\"mord\">∃</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">∈</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span>, 使得 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi mathvariant=\"normal\">∣</mi><mo>≤</mo><mi>M</mi></mrow><annotation encoding=\"application/x-tex\">|f(x)| \\leq M</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">M</span></span></span></span></li>\n</ul>\n</li>\n<li>单调性:\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>≤</mo><msub><mi>x</mi><mn>2</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_1 \\leq x_2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7859700000000001em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> , 则<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>1</mn></msub><mo stretchy=\"false\">)</mo><mo>≤</mo><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>2</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x_1) \\leq f(x_2)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>≤</mo><msub><mi>x</mi><mn>2</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_1 \\leq x_2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7859700000000001em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> , 则<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>1</mn></msub><mo stretchy=\"false\">)</mo><mo>≥</mo><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>2</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x_1) \\geq f(x_2)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n</li>\n<li>奇偶性:\n<ul>\n<li>前提 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>D</mi><mi>f</mi></msub></mrow><annotation encoding=\"application/x-tex\">D_f</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.969438em;vertical-align:-0.286108em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361079999999999em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.02778em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.286108em;\"><span></span></span></span></span></span></span></span></span></span> (Domain) 定义域必须是关于原点对称的</li>\n<li>如果 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mo>−</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(-x) = f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span>, 则称为偶函数，该函数在直角坐标系中，所形成的图像是关于 Y 轴对称</li>\n<li>如果 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mo>−</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mo>−</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(-x) = -f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">−</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span>, 则称为奇函数，该函数在直角坐标系中，所形成的图像是关于原点对称</li>\n</ul>\n</li>\n<li>周期性:\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∃</mi></mrow><annotation encoding=\"application/x-tex\">\\exists</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord\">∃</span></span></span></span> 正数<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>l</mi></mrow><annotation encoding=\"application/x-tex\">l</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em;\">l</span></span></span></span> , <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><mi>l</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x + l) = f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em;\">l</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\sin(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 周期为 2 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>π</mi></mrow><annotation encoding=\"application/x-tex\">\\pi</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">π</span></span></span></span></li>\n<li>ps:\n<ul>\n<li>任何正有理数都是周期，(有理数 + 有理数 = 有理数，无理数 + 有理数 = 无理数)</li>\n<li>因为没有最小的正有理数 (0.000...1), 所以不存在最小的周期</li>\n<li>并非每个周期函数都有最小周期</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ol>\n<h3 id=\"反函数\"><a class=\"anchor\" href=\"#反函数\">#</a> 反函数</h3>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo>:</mo><mi>D</mi><mo>−</mo><mo>&gt;</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>D</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f: D -&gt; f(D)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">:</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.76666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"mord\">−</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"mclose\">)</span></span></span></span> 必须是单射，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo>−</mo><mn>1</mn></mrow></msup><mo>:</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>D</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mo>&gt;</mo><mi>D</mi></mrow><annotation encoding=\"application/x-tex\">f^{-1}:f(D) -&gt; D</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.008548em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">:</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"mclose\">)</span><span class=\"mord\">−</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi></mrow><annotation encoding=\"application/x-tex\">f</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span></span></span></span> 单调、单射，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo>−</mo><mn>1</mn></mrow></msup></mrow><annotation encoding=\"application/x-tex\">f^{-1}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.008548em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span></span></span></span> 单调、单射</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi></mrow><annotation encoding=\"application/x-tex\">f</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span></span></span></span> 单调增 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo>−</mo><mn>1</mn></mrow></msup></mrow><annotation encoding=\"application/x-tex\">f^{-1}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.008548em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span></span></span></span> 单调增，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi></mrow><annotation encoding=\"application/x-tex\">f</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span></span></span></span> 单调减 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo>−</mo><mn>1</mn></mrow></msup></mrow><annotation encoding=\"application/x-tex\">f^{-1}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.008548em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span></span></span></span> 单调减</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi></mrow><annotation encoding=\"application/x-tex\">f</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span></span></span></span> 与 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mrow><mo>−</mo><mn>1</mn></mrow></msup></mrow><annotation encoding=\"application/x-tex\">f^{-1}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.008548em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span></span></span></span>, 关于 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 对称</li>\n</ul>\n<h3 id=\"复合函数\"><a class=\"anchor\" href=\"#复合函数\">#</a> 复合函数</h3>\n<ul>\n<li>y = f(t) && t = g(x) ==&gt; <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = f(g(x))</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\">)</span></span></span></span> 其中 t 为中间变量</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">g(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 的值域<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>R</mi><mi>g</mi></msub></mrow><annotation encoding=\"application/x-tex\">R_g</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.969438em;vertical-align:-0.286108em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.00773em;\">R</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15139200000000003em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">g</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.286108em;\"><span></span></span></span></span></span></span></span></span></span> 必须落在<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>t</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(t)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">)</span></span></span></span> 的定义域<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>D</mi><mi>f</mi></msub></mrow><annotation encoding=\"application/x-tex\">D_f</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.969438em;vertical-align:-0.286108em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361079999999999em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.02778em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.286108em;\"><span></span></span></span></span></span></span></span></span></span> 里面</li>\n</ul>\n<h3 id=\"函数运算\"><a class=\"anchor\" href=\"#函数运算\">#</a> 函数运算</h3>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><mspace width=\"1em\"/><msub><mi>D</mi><mi>f</mi></msub><mo separator=\"true\">,</mo><msub><mi>D</mi><mi>g</mi></msub><mspace width=\"1em\"/><mi>D</mi><mo>=</mo><msub><mi>D</mi><mi>f</mi></msub><mo>∩</mo><msub><mi>D</mi><mi>g</mi></msub><mo mathvariant=\"normal\">≠</mo><mi mathvariant=\"normal\">∅</mi></mrow><annotation encoding=\"application/x-tex\">f(x),g(x),\\quad D_f,D_g \\quad D=D_f \\cap D_g \\neq \\emptyset</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.036108em;vertical-align:-0.286108em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361079999999999em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.02778em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.286108em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15139200000000003em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.02778em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">g</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.286108em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.969438em;vertical-align:-0.286108em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361079999999999em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.02778em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.286108em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∩</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.980548em;vertical-align:-0.286108em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">D</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15139200000000003em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.02778em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">g</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.286108em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.80556em;vertical-align:-0.05556em;\"></span><span class=\"mord\">∅</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>f</mi><mo>±</mo><mi>g</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>±</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(f \\pm g)(x) = f(x) \\pm g(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">±</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">±</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>f</mi><mo>∗</mo><mi>g</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>∗</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(f * g)(x) = f(x) * g(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">∗</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mfrac><mi>f</mi><mi>g</mi></mfrac><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mfrac><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><mrow><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow></mfrac><mspace width=\"1em\"/><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\">≠</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">(\\frac{f}{g})(x) = \\frac{f(x)}{g(x)} \\quad g(x) \\neq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.4133239999999998em;vertical-align:-0.481108em;\"></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9322159999999999em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">g</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.446108em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.481108em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.53em;vertical-align:-0.52em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.01em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ul>\n<h3 id=\"初等函数\"><a class=\"anchor\" href=\"#初等函数\">#</a> 初等函数</h3>\n<ul>\n<li>幂函数</li>\n<li>指数函数</li>\n<li>对数函数</li>\n<li>三角函数</li>\n<li>由基本初等函数经过有限次的运算、复合，都称为基本初等函数</li>\n</ul>\n<h1 id=\"常见三角函数公式\"><a class=\"anchor\" href=\"#常见三角函数公式\">#</a> 常见三角函数公式</h1>\n<h2 id=\"基本三角函数公式\"><a class=\"anchor\" href=\"#基本三角函数公式\">#</a> 基本三角函数公式</h2>\n<ul>\n<li>正割余割\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>sec</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mrow><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">\\sec(\\alpha) = {\\dfrac{1}{\\cos(\\alpha)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sec</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.25744em;vertical-align:-0.936em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>csc</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mrow><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">\\csc(\\alpha) = {\\dfrac{1}{\\sin(\\alpha)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">csc</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.25744em;vertical-align:-0.936em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n</ul>\n</li>\n<li>商数关系\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo></mrow><mrow><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">\\tan(\\alpha) = {\\dfrac{\\sin(\\alpha)}{\\cos(\\alpha)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.363em;vertical-align:-0.936em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.427em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>cot</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mrow><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo></mrow><mrow><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">\\cot(\\alpha) = {\\dfrac{\\cos(\\alpha)}{\\sin(\\alpha)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cot</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.363em;vertical-align:-0.936em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.427em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n</ul>\n</li>\n<li>倒数关系\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mi>cot</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">\\tan(\\alpha)\\cot(\\alpha) = 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cot</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>sec</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">\\sec(\\alpha)\\cos(\\alpha) = 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sec</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>csc</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">\\csc(\\alpha)\\sin(\\alpha) = 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">csc</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></li>\n</ul>\n</li>\n<li>平方关系\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mo><mi>sin</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>+</mo><msup><mo><mi>cos</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">\\sin^2(\\alpha) + \\cos^2(\\alpha) = 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.121868em;vertical-align:-0.25em;\"></span><span class=\"mop\"><span class=\"mop\">sin</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.871868em;\"><span style=\"top:-3.12076em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.064108em;vertical-align:-0.25em;\"></span><span class=\"mop\"><span class=\"mop\">cos</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mo><mi>sec</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn><mo>+</mo><msup><mo><mi>tan</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\sec^2(\\alpha) = 1 + \\tan^2(\\alpha)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.064108em;vertical-align:-0.25em;\"></span><span class=\"mop\"><span class=\"mop\">sec</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.0690879999999998em;vertical-align:-0.25em;\"></span><span class=\"mop\"><span class=\"mop\">tan</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8190879999999999em;\"><span style=\"top:-3.0679800000000004em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mo><mi>csc</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn><mo>+</mo><msup><mo><mi>cot</mi><mo>⁡</mo></mo><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\csc^2(\\alpha) = 1 + \\cot^2(\\alpha)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.064108em;vertical-align:-0.25em;\"></span><span class=\"mop\"><span class=\"mop\">csc</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.0690879999999998em;vertical-align:-0.25em;\"></span><span class=\"mop\"><span class=\"mop\">cot</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8190879999999999em;\"><span style=\"top:-3.0679800000000004em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n</li>\n</ul>\n<h2 id=\"倍角公式\"><a class=\"anchor\" href=\"#倍角公式\">#</a> 倍角公式</h2>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mn>2</mn><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>2</mn><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\sin(2x) = 2\\sin(x)\\cos(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord\">2</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">2</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mn>2</mn><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn><mo>−</mo><mn>2</mn><mi>s</mi><mi>i</mi><msup><mi>n</mi><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>2</mn><mi>c</mi><mi>o</mi><msup><mi>s</mi><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">\\cos(2x) = 1 - 2sin^2(x) = 2cos^2(x) - 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord\">2</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.064108em;vertical-align:-0.25em;\"></span><span class=\"mord\">2</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">i</span><span class=\"mord\"><span class=\"mord mathnormal\">n</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.064108em;vertical-align:-0.25em;\"></span><span class=\"mord\">2</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">o</span><span class=\"mord\"><span class=\"mord mathnormal\">s</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></li>\n</ul>\n<h2 id=\"半角公式\"><a class=\"anchor\" href=\"#半角公式\">#</a> 半角公式</h2>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mi>x</mi><mn>2</mn></mfrac></mstyle><mo stretchy=\"false\">)</mo><mo>=</mo><mi>csc</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>cot</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\tan(\\dfrac{x}{2}) = \\csc(x) - \\cot(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.7935600000000003em;vertical-align:-0.686em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.10756em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">csc</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cot</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n<h2 id=\"两角和差公式\"><a class=\"anchor\" href=\"#两角和差公式\">#</a> 两角和差公式</h2>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>+</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>cos</mi><mo>⁡</mo><mi>α</mi><mi>cos</mi><mo>⁡</mo><mi>β</mi><mo>−</mo><mi>sin</mi><mo>⁡</mo><mi>α</mi><mi>sin</mi><mo>⁡</mo><mi>β</mi></mrow><annotation encoding=\"application/x-tex\">\\cos(\\alpha + \\beta) = \\cos\\alpha\\cos\\beta - \\sin\\alpha\\sin\\beta</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>−</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>cos</mi><mo>⁡</mo><mi>α</mi><mi>cos</mi><mo>⁡</mo><mi>β</mi><mo>+</mo><mi>sin</mi><mo>⁡</mo><mi>α</mi><mi>sin</mi><mo>⁡</mo><mi>β</mi></mrow><annotation encoding=\"application/x-tex\">\\cos(\\alpha - \\beta) = \\cos\\alpha\\cos\\beta + \\sin\\alpha\\sin\\beta</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>±</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>sin</mi><mo>⁡</mo><mi>α</mi><mi>cos</mi><mo>⁡</mo><mi>β</mi><mo>±</mo><mi>cos</mi><mo>⁡</mo><mi>α</mi><mi>sin</mi><mo>⁡</mo><mi>β</mi></mrow><annotation encoding=\"application/x-tex\">\\sin(\\alpha \\pm \\beta) = \\sin\\alpha\\cos\\beta \\pm \\cos\\alpha\\sin\\beta</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">±</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">±</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span></span></span></span></li>\n</ul>\n<h2 id=\"积化和差公式\"><a class=\"anchor\" href=\"#积化和差公式\">#</a> 积化和差公式</h2>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>sin</mi><mo>⁡</mo><mi>α</mi><mi>cos</mi><mo>⁡</mo><mi>β</mi><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>2</mn></mfrac></mstyle><mo stretchy=\"false\">[</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>+</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>−</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">\\sin\\alpha\\cos\\beta = \\dfrac{1}{2} [\\sin(\\alpha + \\beta) + \\sin(\\alpha - \\beta)]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mopen\">[</span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>cos</mi><mo>⁡</mo><mi>α</mi><mi>sin</mi><mo>⁡</mo><mi>β</mi><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>2</mn></mfrac></mstyle><mo stretchy=\"false\">[</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>+</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>−</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">\\cos\\alpha\\sin\\beta = \\dfrac{1}{2} [\\sin(\\alpha + \\beta) - \\sin(\\alpha - \\beta)]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mopen\">[</span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>cos</mi><mo>⁡</mo><mi>α</mi><mi>cos</mi><mo>⁡</mo><mi>β</mi><mo>=</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>2</mn></mfrac></mstyle><mo stretchy=\"false\">[</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>+</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>−</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">\\cos\\alpha\\cos\\beta = \\dfrac{1}{2} [\\cos(\\alpha + \\beta) + \\cos(\\alpha - \\beta)]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mopen\">[</span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>sin</mi><mo>⁡</mo><mi>α</mi><mi>sin</mi><mo>⁡</mo><mi>β</mi><mo>=</mo><mo lspace=\"0em\" rspace=\"0em\">−</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>2</mn></mfrac></mstyle><mo stretchy=\"false\">[</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>+</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>α</mi><mo>−</mo><mi>β</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">\\sin\\alpha\\sin\\beta = {-}\\dfrac{1}{2} [\\cos(\\alpha + \\beta) - \\cos(\\alpha - \\beta)]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mord\">−</span></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mopen\">[</span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span></span></span></span></li>\n</ul>\n<h2 id=\"和差化积公式\"><a class=\"anchor\" href=\"#和差化积公式\">#</a> 和差化积公式</h2>\n<ul>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>sin</mi><mo>⁡</mo><mi>α</mi><mo>+</mo><mi>sin</mi><mo>⁡</mo><mi>β</mi><mo>=</mo><mn>2</mn><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mfrac><mrow><mi>α</mi><mo>+</mo><mi>β</mi></mrow><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mfrac><mrow><mi>α</mi><mo>−</mo><mi>β</mi></mrow><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\sin\\alpha + \\sin\\beta = {2}\\sin(\\frac{\\alpha+\\beta}{2})\\cos(\\frac{\\alpha - \\beta}{2})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.75119em;vertical-align:-0.08333em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.277216em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9322159999999999em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.446108em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.0037em;\">α</span><span class=\"mbin mtight\">+</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05278em;\">β</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9322159999999999em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.446108em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.0037em;\">α</span><span class=\"mbin mtight\">−</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05278em;\">β</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>sin</mi><mo>⁡</mo><mi>α</mi><mo>−</mo><mi>sin</mi><mo>⁡</mo><mi>β</mi><mo>=</mo><mn>2</mn><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mfrac><mrow><mi>α</mi><mo>−</mo><mi>β</mi></mrow><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mfrac><mrow><mi>α</mi><mo>+</mo><mi>β</mi></mrow><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\sin\\alpha - \\sin\\beta = {2}\\sin(\\frac{\\alpha-\\beta}{2})\\cos(\\frac{\\alpha + \\beta}{2})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.75119em;vertical-align:-0.08333em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">sin</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.277216em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9322159999999999em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.446108em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.0037em;\">α</span><span class=\"mbin mtight\">−</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05278em;\">β</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9322159999999999em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.446108em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.0037em;\">α</span><span class=\"mbin mtight\">+</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05278em;\">β</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>cos</mi><mo>⁡</mo><mi>α</mi><mo>+</mo><mi>cos</mi><mo>⁡</mo><mi>β</mi><mo>=</mo><mn>2</mn><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mfrac><mrow><mi>α</mi><mo>+</mo><mi>β</mi></mrow><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mfrac><mrow><mi>α</mi><mo>−</mo><mi>β</mi></mrow><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\cos\\alpha + \\cos\\beta = {2}\\cos(\\frac{\\alpha+\\beta}{2})\\cos(\\frac{\\alpha - \\beta}{2})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.277216em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9322159999999999em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.446108em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.0037em;\">α</span><span class=\"mbin mtight\">+</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05278em;\">β</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9322159999999999em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.446108em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.0037em;\">α</span><span class=\"mbin mtight\">−</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05278em;\">β</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>cos</mi><mo>⁡</mo><mi>α</mi><mo>−</mo><mi>cos</mi><mo>⁡</mo><mi>β</mi><mo>=</mo><mrow><mo>−</mo><mn>2</mn></mrow><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mfrac><mrow><mi>α</mi><mo>+</mo><mi>β</mi></mrow><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mfrac><mrow><mi>α</mi><mo>−</mo><mi>β</mi></mrow><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\cos\\alpha - \\cos\\beta = {-2}\\sin(\\frac{\\alpha+\\beta}{2})\\sin(\\frac{\\alpha - \\beta}{2})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mop\">cos</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.277216em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\">2</span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9322159999999999em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.446108em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.0037em;\">α</span><span class=\"mbin mtight\">+</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05278em;\">β</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9322159999999999em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.446108em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.0037em;\">α</span><span class=\"mbin mtight\">−</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05278em;\">β</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p>反三角函数</p>\n<ul>\n<li>正弦：<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\sin(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 的反函数 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>arcsin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\arcsin(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">arcsin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n<li>余弦：<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\cos(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 的反函数 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>arccos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\arccos(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">arccos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n<li>正切：<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\tan(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 的反函数 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>arctan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\arctan(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">arctan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n<li>余切：<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>cot</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\cot(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cot</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 的反函数 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>c</mi><mi>o</mi><mi>t</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = arccot(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">r</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">t</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n</li>\n</ul>\n<h1 id=\"第二节数列极限\"><a class=\"anchor\" href=\"#第二节数列极限\">#</a> 第二节数列极限</h1>\n<h2 id=\"数列的形式\"><a class=\"anchor\" href=\"#数列的形式\">#</a> 数列的形式</h2>\n<ul>\n<li>数列: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>2</mn></mfrac></mstyle><mo separator=\"true\">,</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>4</mn></mfrac></mstyle><mo separator=\"true\">,</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>8</mn></mfrac></mstyle><mo separator=\"true\">,</mo><mstyle displaystyle=\"true\" scriptlevel=\"0\"><mfrac><mn>1</mn><mn>16</mn></mfrac></mstyle><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi></mrow><annotation encoding=\"application/x-tex\">\\dfrac{1}{2},\\dfrac{1}{4},\\dfrac{1}{8},\\dfrac{1}{16}...</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">8</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span><span class=\"mord\">6</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\">.</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi>x</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><msub><mi>x</mi><mn>3</mn></msub><mo separator=\"true\">,</mo><msub><mi>x</mi><mn>4</mn></msub><mo separator=\"true\">,</mo><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><msub><mi>x</mi><mi>n</mi></msub><mo separator=\"true\">,</mo><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi></mrow><annotation encoding=\"application/x-tex\">x_1,x_2,x_3,x_4,....x_n,...</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">4</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\">.</span></span></span></span>{<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">x_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} 数列</li>\n<li>数列里的每个数称为项，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">x_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>: 一般项（通项）</li>\n</ul>\n<h2 id=\"数列极限\"><a class=\"anchor\" href=\"#数列极限\">#</a> 数列极限</h2>\n<ul>\n<li>{<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">x_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>} 是数列，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∀</mi><mi>ϵ</mi><mo>&gt;</mo><mn>0</mn><mo separator=\"true\">,</mo><mi mathvariant=\"normal\">∃</mi><mi>N</mi></mrow><annotation encoding=\"application/x-tex\">\\forall \\epsilon &gt; 0 , \\exists N</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.73354em;vertical-align:-0.0391em;\"></span><span class=\"mord\">∀</span><span class=\"mord mathnormal\">ϵ</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∃</span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">N</span></span></span></span> , 使得 n &gt; N , |<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">x_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> - a| &lt; <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>ϵ</mi></mrow><annotation encoding=\"application/x-tex\">\\epsilon</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">ϵ</span></span></span></span> , 其中 a 是极限</li>\n<li>任意小的距离 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>ϵ</mi></mrow><annotation encoding=\"application/x-tex\">\\epsilon</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">ϵ</span></span></span></span> , 都存在某一项 N , 这项后面的所有项，都落在小区间 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>ϵ</mi></mrow><annotation encoding=\"application/x-tex\">\\epsilon</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">ϵ</span></span></span></span> 的里面</li>\n<li>证明: |<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mi>n</mi></msub></mrow><annotation encoding=\"application/x-tex\">x_n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.151392em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> - 1| = |<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mfrac><mrow><mi>n</mi><mo>+</mo><msup><mrow><mo stretchy=\"false\">(</mo><mo>−</mo><mn>1</mn><mo stretchy=\"false\">)</mo></mrow><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msup></mrow><mi>n</mi></mfrac></mrow><annotation encoding=\"application/x-tex\">\\frac{n + {(-1)}^{n-1}}{n}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.4539199999999999em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.10892em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">+</span><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span><span class=\"mclose mtight\">)</span></span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8913142857142857em;\"><span style=\"top:-2.931em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> - 1| = |<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mfrac><mrow><mi>n</mi><mo>+</mo><msup><mrow><mo stretchy=\"false\">(</mo><mo>−</mo><mn>1</mn><mo stretchy=\"false\">)</mo></mrow><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msup></mrow><mi>n</mi></mfrac></mrow><annotation encoding=\"application/x-tex\">\\frac{n + {(-1)}^{n-1}}{n}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.4539199999999999em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.10892em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">+</span><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span><span class=\"mclose mtight\">)</span></span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8913142857142857em;\"><span style=\"top:-2.931em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span>| = <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mfrac><mn>1</mn><mi>n</mi></mfrac></mrow><annotation encoding=\"application/x-tex\">\\frac{1}{n}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.190108em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> &lt; <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>ϵ</mi></mrow><annotation encoding=\"application/x-tex\">\\epsilon</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">ϵ</span></span></span></span></li>\n<li>证明： |<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>q</mi><mo>&lt;</mo><mn>1</mn><mo separator=\"true\">,</mo><mn>1</mn><mo separator=\"true\">,</mo><mi>q</mi><mo separator=\"true\">,</mo><msup><mi>q</mi><mn>2</mn></msup><mo separator=\"true\">,</mo><msup><mi>q</mi><mn>3</mn></msup><mo separator=\"true\">,</mo><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><msup><mi>q</mi><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msup></mrow><annotation encoding=\"application/x-tex\">q &lt; 1, 1,q,q^2,q^3,...q^{n-1}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7335400000000001em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">q</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.008548em;vertical-align:-0.19444em;\"></span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">q</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">q</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">q</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">q</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span></span></span></span>|, 极限是 0</li>\n</ul>\n<h3 id=\"收敛数列的性质\"><a class=\"anchor\" href=\"#收敛数列的性质\">#</a> 收敛数列的性质</h3>\n<ul>\n<li>唯一性</li>\n<li>有界性</li>\n<li>保号性</li>\n<li>收敛数列的任一子数列收敛于同一极限</li>\n<li>若有两个子数列收敛于不同的极限，则原数列一定发散</li>\n</ul>\n<h1 id=\"第三节函数极限\"><a class=\"anchor\" href=\"#第三节函数极限\">#</a> 第三节函数极限</h1>\n<h2 id=\"函数极限定义\"><a class=\"anchor\" href=\"#函数极限定义\">#</a> 函数极限定义</h2>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 在<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 的去心邻域内有定义（在<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 处可以没有定义）</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><msub><mi>x</mi><mn>0</mn></msub><mo separator=\"true\">,</mo><mi mathvariant=\"normal\">∀</mi><mi>ϵ</mi><mo>&gt;</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">x\\rightarrow x_0 ,  \\forall \\epsilon &gt; 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∀</span><span class=\"mord mathnormal\">ϵ</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> , <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∃</mi><mi>δ</mi><mo>&gt;</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\exists \\delta &gt; 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.73354em;vertical-align:-0.0391em;\"></span><span class=\"mord\">∃</span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> , 使得 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>0</mn><mo>&lt;</mo><mi mathvariant=\"normal\">∣</mi><mi>x</mi><mo>−</mo><msub><mi>x</mi><mn>0</mn></msub><mi mathvariant=\"normal\">∣</mi><mo>&lt;</mo><mi>δ</mi></mrow><annotation encoding=\"application/x-tex\">0 &lt; |x - x_0| &lt; \\delta</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.68354em;vertical-align:-0.0391em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span></span></span></span> ,  有 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo>&lt;</mo><mi>ϵ</mi></mrow><annotation encoding=\"application/x-tex\">|f(x) - A| &lt; \\epsilon</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">ϵ</span></span></span></span></li>\n<li>左极限\n<ul>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><msubsup><mi>x</mi><mn>0</mn><mo>−</mo></msubsup></mrow></munder><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>A</mi></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{x\\rightarrow{x_0^-}}f(x) = A\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.8087499999999999em;vertical-align:-1.0587499999999999em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944400000000001em;\"><span style=\"top:-2.25931em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8209857142857142em;\"><span style=\"top:-2.188485714285714em;margin-left:0em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">0</span></span></span><span style=\"top:-2.904321428571429em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mbin mtight\">−</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.31151428571428574em;\"><span></span></span></span></span></span></span></span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.0587499999999999em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span></span></span></span></span></p>\n</li>\n</ul>\n</li>\n<li>右极限\n<ul>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><msubsup><mi>x</mi><mn>0</mn><mo>+</mo></msubsup></mrow></munder><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>A</mi></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{x\\rightarrow{x_0^+}}f(x) = A\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.8087499999999999em;vertical-align:-1.0587499999999999em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944400000000001em;\"><span style=\"top:-2.25931em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8209857142857142em;\"><span style=\"top:-2.188485714285714em;margin-left:0em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">0</span></span></span><span style=\"top:-2.904321428571429em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mbin mtight\">+</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.31151428571428574em;\"><span></span></span></span></span></span></span></span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.0587499999999999em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">A</span></span></span></span></span></p>\n</li>\n</ul>\n</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mi mathvariant=\"normal\">∞</mi><mo separator=\"true\">,</mo><mi mathvariant=\"normal\">∀</mi><mi>ϵ</mi><mo>&gt;</mo><mn>0</mn><mo separator=\"true\">,</mo><mi mathvariant=\"normal\">∃</mi><mi>X</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">∣</mi><mi>x</mi><mi mathvariant=\"normal\">∣</mi><mo>&gt;</mo><mi>X</mi><mo separator=\"true\">,</mo><mi mathvariant=\"normal\">∣</mi><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>A</mi><mi mathvariant=\"normal\">∣</mi><mo>&lt;</mo><mi>ϵ</mi></mrow><annotation encoding=\"application/x-tex\">x\\rightarrow\\infty , \\forall \\epsilon &gt; 0 , \\exists X . |x| &gt; X , |f(x) - A| &lt; \\epsilon</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord\">∞</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∀</span><span class=\"mord mathnormal\">ϵ</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∃</span><span class=\"mord mathnormal\" style=\"margin-right:0.07847em;\">X</span><span class=\"mord\">.</span><span class=\"mord\">∣</span><span class=\"mord mathnormal\">x</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07847em;\">X</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">ϵ</span></span></span></span></li>\n</ul>\n<h3 id=\"无穷小与无穷大\"><a class=\"anchor\" href=\"#无穷小与无穷大\">#</a> 无穷小与无穷大</h3>\n<ul>\n<li>无穷小\n<ul>\n<li>趋于 0</li>\n<li>无穷小 + 无穷小 (有限个无穷小的和是无穷小) , 无穷小 - 无穷小，无穷小 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>×</mo></mrow><annotation encoding=\"application/x-tex\">\\times</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">×</span></span></span></span> 无穷小 (有限个无穷小的乘积是无穷小), C <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>×</mo></mrow><annotation encoding=\"application/x-tex\">\\times</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">×</span></span></span></span> 无穷小 (C 为常数), (有界与无穷小的乘积是无穷小)</li>\n</ul>\n</li>\n<li>无穷大:\n<ul>\n<li>+<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∞</mi></mrow><annotation encoding=\"application/x-tex\">\\infty</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord\">∞</span></span></span></span> , -<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∞</mi></mrow><annotation encoding=\"application/x-tex\">\\infty</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord\">∞</span></span></span></span></li>\n<li>无穷大 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>×</mo></mrow><annotation encoding=\"application/x-tex\">\\times</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">×</span></span></span></span> 无穷大</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"函数极限性质\"><a class=\"anchor\" href=\"#函数极限性质\">#</a> 函数极限性质</h2>\n<ul>\n<li>唯一性</li>\n<li>局部有界性</li>\n<li>局部保号性</li>\n</ul>\n<h3 id=\"函数定理\"><a class=\"anchor\" href=\"#函数定理\">#</a> 函数定理</h3>\n<ul>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>lim</mi><mo>⁡</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>A</mi><mo separator=\"true\" lspace=\"0em\" rspace=\"0em\">,</mo><mi>lim</mi><mo>⁡</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>B</mi></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits f(x) = A { , } \\lim\\limits g(x) = B\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord\"><span class=\"mpunct\">,</span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span></span></span></span></span></p>\n</li>\n</ul>\n<ol>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>lim</mi><mo>⁡</mo><mo stretchy=\"false\">[</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>±</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo><mo>=</mo><mi>lim</mi><mo>⁡</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>±</mo><mi>lim</mi><mo>⁡</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits [f(x) \\pm g(x)] = \\lim\\limits f(x) \\pm \\lim\\limits g(x)\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">±</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">±</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>lim</mi><mo>⁡</mo><mo stretchy=\"false\">[</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>×</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo><mo>=</mo><mi>lim</mi><mo>⁡</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>×</mo><mi>lim</mi><mo>⁡</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits [f(x) \\times g(x)] = \\lim\\limits f(x) \\times \\lim\\limits g(x)\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>lim</mi><mo>⁡</mo><mo stretchy=\"false\">[</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>÷</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo><mo>=</mo><mi>lim</mi><mo>⁡</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>÷</mo><mi>lim</mi><mo>⁡</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>B</mi><mo>≠</mo><mn>0</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits [f(x) \\div g(x)] = \\lim\\limits f(x) \\div \\lim\\limits g(x) (B \t\\not= 0)\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">÷</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">÷</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em;\">B</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.36687em;vertical-align:0em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">0</span><span class=\"mclose\">)</span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>lim</mi><mo>⁡</mo><mo stretchy=\"false\">[</mo><mi>c</mi><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo><mo>=</mo><mi>c</mi><mi>lim</mi><mo>⁡</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits [cf(x)] = c\\lim\\limits f(x)\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mopen\">[</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>lim</mi><mo>⁡</mo><mo stretchy=\"false\">[</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><msup><mo stretchy=\"false\">]</mo><mi>n</mi></msup><mo>=</mo><mo stretchy=\"false\">[</mo><mi>lim</mi><mo>⁡</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><msup><mo stretchy=\"false\">]</mo><mi>n</mi></msup></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits [f(x)]^n = [\\lim\\limits f(x)]^n\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\"><span class=\"mclose\">]</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7143919999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">[</span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\"><span class=\"mclose\">]</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7143919999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≥</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><mi>lim</mi><mo>⁡</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≥</mo><mi>lim</mi><mo>⁡</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x) \\geq g(x) , \\lim\\limits f(x) \\geq \\lim\\limits g(x)\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">lim</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span></span></p>\n</li>\n</ol>\n<h3 id=\"两个准则-两个重要极限\"><a class=\"anchor\" href=\"#两个准则-两个重要极限\">#</a> 两个准则，两个重要极限</h3>\n<ul>\n<li>夹逼准则</li>\n<li>单调有界准则（单调有界数列必有极限）, 收敛必有界，有界不一定收敛</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mn>0</mn></mrow></munder><mfrac><mi>x</mi><mrow><mi>s</mi><mi>i</mi><mi>n</mi><mi>x</mi></mrow></mfrac><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{x\\rightarrow{0}}\\frac{x}{sinx} = 1\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.824668em;vertical-align:-0.717108em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.382892em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mtight\"><span class=\"mord mtight\">0</span></span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.717108em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.10756em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">i</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\">x</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mi mathvariant=\"normal\">∞</mi></mrow></munder><mo stretchy=\"false\">(</mo><mn>1</mn><mo>+</mo><mfrac><mn>1</mn><mi>x</mi></mfrac><msup><mo stretchy=\"false\">)</mo><mi>x</mi></msup><mo>=</mo><mi>e</mi></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{x\\rightarrow\\infty}(1 + \\frac{1}{x})^x = e\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.45em;vertical-align:-0.7em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.4em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mtight\">∞</span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7em;\"><span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7143919999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">e</span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mn>0</mn></mrow></munder><mo stretchy=\"false\">(</mo><mn>1</mn><mo>+</mo><mi>x</mi><msup><mo stretchy=\"false\">)</mo><mfrac><mn>1</mn><mi>x</mi></mfrac></msup><mo>=</mo><mi>e</mi></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{x\\rightarrow 0}(1+ {x})^\\frac{1}{x} = e\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.467108em;vertical-align:-0.717108em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.382892em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mtight\">0</span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.717108em;\"><span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.2540200000000001em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span></span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.0040200000000001em;\"><span style=\"top:-3.4130000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen nulldelimiter sizing reset-size3 size6\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8443142857142858em;\"><span style=\"top:-2.656em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span><span style=\"top:-3.2255000000000003em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line mtight\" style=\"border-bottom-width:0.049em;\"></span></span><span style=\"top:-3.384em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.344em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter sizing reset-size3 size6\"></span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">e</span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mn>0</mn></mrow></munder><mo stretchy=\"false\">(</mo><mfrac><mroot><mrow><mn>1</mn><mo>+</mo><mi>x</mi></mrow><mi>n</mi></mroot><mfrac><mi>x</mi><mi>n</mi></mfrac></mfrac><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{x\\rightarrow 0}(\\frac{\\sqrt[n]{1 + x}}{\\frac{x}{n}}) = 1\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.5735550000000003em;vertical-align:-1.0310000000000001em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.382892em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mtight\">0</span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.717108em;\"><span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.5425550000000001em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.695392em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord sqrt\"><span class=\"root\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.629946em;\"><span style=\"top:-2.914666em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size6 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span></span></span></span><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8655550000000001em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord mathnormal\">x</span></span></span><span style=\"top:-2.825555em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.17444499999999996em;\"><span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.0310000000000001em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span></span></p>\n</li>\n<li>若 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>α</mi></mrow><annotation encoding=\"application/x-tex\">\\alpha</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span></span></span></span> 与 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi></mrow><annotation encoding=\"application/x-tex\">\\beta</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span></span></span></span> 是等价无穷小 &lt;==&gt; <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi><mo>=</mo><mi>α</mi><mo>+</mo><mi>ο</mi><mo stretchy=\"false\">(</mo><mi>α</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\beta = \\alpha + \\omicron (\\alpha)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em;\">β</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">ο</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n<h3 id=\"函数的连续性\"><a class=\"anchor\" href=\"#函数的连续性\">#</a> 函数的连续性</h3>\n<ol>\n<li>有极限</li>\n<li>有定义</li>\n<li>极限 = 函数值</li>\n<li>左连续 = 右连续</li>\n</ol>\n<h3 id=\"函数间断点\"><a class=\"anchor\" href=\"#函数间断点\">#</a> 函数间断点</h3>\n<ul>\n<li>函数的间断实际上就是不连续</li>\n</ul>\n<ol>\n<li>在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 处无定义</li>\n<li>极限不存在</li>\n<li>极限 不等于 函数值</li>\n</ol>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\tan(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>=</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow><annotation encoding=\"application/x-tex\">x = \\frac{\\pi}{2}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.040392em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.695392em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">π</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> 时，无定义，无穷间断点、<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mfrac><mn>1</mn><mi>x</mi></mfrac></mrow><annotation encoding=\"application/x-tex\">y= \\frac{1}{x}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.190108em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">x = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span>, 无定义，无穷间断点</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mfrac><mn>1</mn><mi>x</mi></mfrac><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\sin(\\frac{1}{x})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.190108em;vertical-align:-0.345em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">x = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> 时，振荡间断点</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mfrac><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><mn>1</mn></mrow><mrow><mi>x</mi><mo>−</mo><mn>1</mn></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">y = \\frac{x^2-1}{x-1}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.4212509999999998em;vertical-align:-0.403331em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.01792em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8913142857142857em;\"><span style=\"top:-2.931em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.403331em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">x = 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">1</span></span></span></span> 时，可去间断点</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mtable width=\"100%\"><mtr><mtd width=\"50%\"></mtd><mtd><mrow><mi>y</mi><mo>=</mo><mrow><mo fence=\"true\">{</mo><mtable rowspacing=\"0.3599999999999999em\" columnalign=\"left left\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mi>x</mi><mo>=</mo><mi>x</mi><mo>+</mo><mn>1</mn><mspace width=\"1em\"/><mi>x</mi><mo>&gt;</mo><mn>0</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mi>x</mi><mo>=</mo><mn>0</mn><mspace width=\"1em\"/><mspace width=\"2em\"/><mi>x</mi><mo>=</mo><mn>0</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mi>x</mi><mo>=</mo><mi>x</mi><mo>−</mo><mn>1</mn><mspace width=\"1em\"/><mi>x</mi><mo>&lt;</mo><mn>0</mn></mrow></mstyle></mtd></mtr></mtable></mrow></mrow></mtd><mtd width=\"50%\"></mtd><mtd><mtext>(跳跃间断点)</mtext></mtd></mtr></mtable><annotation encoding=\"application/x-tex\">y = \n  \\begin{cases}\n  x = x + 1 \\quad x &gt; 0 \\\\\n  x = 0 \\quad\\qquad x = 0 \\\\\n  x = x -1 \\quad x &lt;   0\\\\\n  \\end{cases}\n  \\tag{跳跃间断点}\n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:4.32em;vertical-align:-1.9099999999999997em;\"></span><span class=\"minner\"><span class=\"mopen\"><span class=\"delimsizing mult\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.35002em;\"><span style=\"top:-2.19999em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎩</span></span></span><span style=\"top:-2.19499em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎪</span></span></span><span style=\"top:-2.20499em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎪</span></span></span><span style=\"top:-3.15001em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎨</span></span></span><span style=\"top:-4.2950099999999996em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎪</span></span></span><span style=\"top:-4.30501em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎪</span></span></span><span style=\"top:-4.60002em;\"><span class=\"pstrut\" style=\"height:3.15em;\"></span><span class=\"delimsizinginner delim-size4\"><span>⎧</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.8500199999999998em;\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-l\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:2.41em;\"><span style=\"top:-4.41em;\"><span class=\"pstrut\" style=\"height:3.008em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&gt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">0</span></span></span><span style=\"top:-2.97em;\"><span class=\"pstrut\" style=\"height:3.008em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">0</span></span></span><span style=\"top:-1.5300000000000002em;\"><span class=\"pstrut\" style=\"height:3.008em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.9099999999999997em;\"><span></span></span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span><span class=\"tag\"><span class=\"strut\" style=\"height:4.32em;vertical-align:-1.9099999999999997em;\"></span><span class=\"mord text\"><span class=\"mord\">(</span><span class=\"mord\"><span class=\"mord cjk_fallback\">跳</span><span class=\"mord cjk_fallback\">跃</span><span class=\"mord cjk_fallback\">间</span><span class=\"mord cjk_fallback\">断</span><span class=\"mord cjk_fallback\">点</span></span><span class=\"mord\">)</span></span></span></span></span></span></p>\n</li>\n<li>第一类间断点：左右极限都存在，(可去间断点，跳跃间断点)</li>\n<li>第二类间断点：左右极限至少有一个不存在 (振荡间断点，无穷间断点)</li>\n</ul>\n<h3 id=\"连续函数的定理\"><a class=\"anchor\" href=\"#连续函数的定理\">#</a> 连续函数的定理</h3>\n<ul>\n<li>零点定理</li>\n<li>令 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f(x) = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> ,(使用频率较高)</li>\n<li>介值定理</li>\n</ul>\n<h3 id=\"做题总结\"><a class=\"anchor\" href=\"#做题总结\">#</a> 做题总结</h3>\n<ul>\n<li>当 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mi mathvariant=\"normal\">∞</mi></mrow><annotation encoding=\"application/x-tex\">x\\rightarrow\\infty</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord\">∞</span></span></span></span> 时，取最高次数项的系数进行计算，(抓大放小)</li>\n<li>当 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">x\\rightarrow {0}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span></span> 时，取最高次数项的系数进行计算然后取倒数，(抓大放小)</li>\n<li>两个无穷小比的极限时，分子或分母用等价无穷小替换</li>\n<li>分子或分母是若干因子的乘积时，可对其中一个或多个因子做等价无穷小替换</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><msup><mi>a</mi><mi>b</mi></msup><mo>=</mo><msup><mi>e</mi><mrow><mo stretchy=\"false\">(</mo><mi>b</mi><mi>l</mi><mi>n</mi><mi>a</mi><mo stretchy=\"false\">)</mo></mrow></msup></mrow><annotation encoding=\"application/x-tex\">a^b = e^{(blna)} \n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8991079999999999em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.938em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.938em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">b</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em;\">l</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mord mathnormal mtight\">a</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>a</mi><mo>=</mo><msup><mi>e</mi><mrow><mo stretchy=\"false\">(</mo><mi>l</mi><mi>n</mi><mi>a</mi><mo stretchy=\"false\">)</mo></mrow></msup><mo>=</mo><mi>l</mi><mi>n</mi><msup><mi>e</mi><mi>a</mi></msup><mo>=</mo><mi>a</mi><mi>l</mi><mi>n</mi><mi>e</mi></mrow><annotation encoding=\"application/x-tex\">a = e^{(lna)} = lne^a = alne \n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.938em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.938em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em;\">l</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mord mathnormal mtight\">a</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.7143919999999999em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em;\">l</span><span class=\"mord mathnormal\">n</span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7143919999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em;\">l</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\">e</span></span></span></span></span></p>\n</li>\n</ul>\n<h1 id=\"导数与微分\"><a class=\"anchor\" href=\"#导数与微分\">#</a> 导数与微分</h1>\n<h2 id=\"导数定义\"><a class=\"anchor\" href=\"#导数定义\">#</a> 导数定义</h2>\n<ol>\n<li>速度：匀速、非匀速 计算 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>t</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">t_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.76508em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">t</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 到 t 的平均速度</li>\n<li>切线: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 变化量和 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span> 变化量的比值</li>\n<li>定义: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 的领域内有定义，<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 处取 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>δ</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">\\delta x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n</ol>\n<h3 id=\"常见导数公式\"><a class=\"anchor\" href=\"#常见导数公式\">#</a> 常见导数公式</h3>\n<ul>\n<li>\n<p>基本导数求导公式</p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>c</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = c</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">c</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>c</mi><msup><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">(c)&#x27; = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">c</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span> , C 为常数</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><msup><mi>x</mi><mi>n</mi></msup></mrow><annotation encoding=\"application/x-tex\">f(x) = x^n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.664392em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span></span></span></span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>n</mi><msup><mi>x</mi><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msup></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = n{x^{n-1}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8141079999999999em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">n</span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><msup><mi>a</mi><mi>x</mi></msup></mrow><annotation encoding=\"application/x-tex\">f(x) = a^x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.664392em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><msup><mi>a</mi><mi>x</mi></msup><mi>l</mi><mi>n</mi><mi>a</mi></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = a^xlna</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em;\">l</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\">a</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><msup><mi>e</mi><mi>x</mi></msup></mrow><annotation encoding=\"application/x-tex\">f(x) = e^x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.664392em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><msup><mi>e</mi><mi>x</mi></msup></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = e^x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.664392em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><msub><mo><mi>log</mi><mo>⁡</mo></mo><mi>a</mi></msub><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = \\log_{a}{x}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.93858em;vertical-align:-0.24414em;\"></span><span class=\"mop\"><span class=\"mop\">lo<span style=\"margin-right:0.01389em;\">g</span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.057252em;\"><span style=\"top:-2.4558600000000004em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">a</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.24414em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span></span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mfrac><mn>1</mn><mrow><mi>x</mi><mi>l</mi><mi>n</mi><mi>a</mi></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = {\\frac{1}{xlna}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.190108em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em;\">l</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mord mathnormal mtight\">a</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>ln</mi><mo>⁡</mo><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = \\ln{x}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mop\">ln</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span></span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mfrac><mn>1</mn><mi>x</mi></mfrac></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = {\\frac{1}{x}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.190108em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>三角函数求导公式</p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = sinx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.65952em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">i</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\">x</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = cosx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = cosx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">x</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mo>−</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = -sinx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.74285em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">i</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>t</mi><mi>a</mi><mi>n</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = tanx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.61508em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\">x</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>s</mi><mi>e</mi><msup><mi>c</mi><mn>2</mn></msup><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = sec^2x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8141079999999999em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">e</span><span class=\"mord\"><span class=\"mord mathnormal\">c</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>c</mi><mi>o</mi><mi>t</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = cotx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.61508em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">x</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mo>−</mo><mi>c</mi><mi>s</mi><msup><mi>c</mi><mn>2</mn></msup><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = -csc^2x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.897438em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">s</span><span class=\"mord\"><span class=\"mord mathnormal\">c</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>s</mi><mi>e</mi><mi>c</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = secx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">e</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">x</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>s</mi><mi>e</mi><mi>c</mi><mi>x</mi><mi>t</mi><mi>a</mi><mi>n</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = secxtanx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.61508em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">e</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">x</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>c</mi><mi>s</mi><mi>c</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = cscx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">x</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mo>−</mo><mi>c</mi><mi>s</mi><mi>c</mi><mi>x</mi><mi>c</mi><mi>o</mi><mi>t</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = -cscxcotx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.69841em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">x</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>反三角函数求导公式</p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>s</mi><mi>i</mi><mi>n</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = arcsinx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.65952em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">r</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">i</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\">x</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mfrac><mn>1</mn><msqrt><mrow><mn>1</mn><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></msqrt></mfrac></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = {\\frac{1}{\\sqrt{1 - x^2}}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.383108em;vertical-align:-0.538em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.5445179999999996em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord sqrt mtight\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9221171428571429em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord mtight\" style=\"padding-left:0.833em;\"><span class=\"mord mtight\">1</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7463142857142857em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.882117142857143em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail mtight\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.11788285714285718em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.538em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>c</mi><mi>o</mi><mi>s</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = arccosx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">r</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">x</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mo>−</mo><mfrac><mn>1</mn><msqrt><mrow><mn>1</mn><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></msqrt></mfrac></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = -{\\frac{1}{\\sqrt{1 - x^2}}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.383108em;vertical-align:-0.538em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.5445179999999996em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord sqrt mtight\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9221171428571429em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord mtight\" style=\"padding-left:0.833em;\"><span class=\"mord mtight\">1</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7463142857142857em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span><span style=\"top:-2.882117142857143em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail mtight\" style=\"min-width:0.853em;height:1.08em;\"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.11788285714285718em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.538em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>t</mi><mi>a</mi><mi>n</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = arctanx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.61508em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">r</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\">x</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = {\\frac{1}{1 + x^2}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.2484389999999999em;vertical-align:-0.403331em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mbin mtight\">+</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7463142857142857em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.403331em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>c</mi><mi>o</mi><mi>t</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = arccotx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.61508em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em;\">r</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">x</span></span></span></span>  ,  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mo>−</mo><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) = -{\\frac{1}{1 + x^2}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.2484389999999999em;vertical-align:-0.403331em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mbin mtight\">+</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7463142857142857em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.403331em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n</ul>\n</li>\n</ul>\n<h3 id=\"单侧导数\"><a class=\"anchor\" href=\"#单侧导数\">#</a> 单侧导数</h3>\n<ul>\n<li>在某点可导，左右导数存在且相等</li>\n</ul>\n<h2 id=\"导数的几何含义\"><a class=\"anchor\" href=\"#导数的几何含义\">#</a> 导数的几何含义</h2>\n<ul>\n<li>切线的斜率就是导数的几何含义 (图像是光滑的，且切线斜率不可垂直 X 轴)</li>\n<li>切线: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>−</mo><msub><mi>y</mi><mn>0</mn></msub><mo>=</mo><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo>−</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y - y_0 = f&#x27;(x_0)(x - x_0)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7777700000000001em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></li>\n<li>法线: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>−</mo><msub><mi>y</mi><mn>0</mn></msub><mo>=</mo><mo>−</mo><mfrac><mn>1</mn><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow></mfrac><mo stretchy=\"false\">(</mo><mi>x</mi><mo>−</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y - y_0 = -\\frac{1}{f&#x27;(x_0)}(x - x_0)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7777700000000001em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.365108em;vertical-align:-0.52em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.31731428571428577em;\"><span style=\"top:-2.357em;margin-left:0em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.143em;\"><span></span></span></span></span></span></span><span class=\"mclose mtight\">)</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n<h3 id=\"可导与连续的关系\"><a class=\"anchor\" href=\"#可导与连续的关系\">#</a> 可导与连续的关系</h3>\n<ul>\n<li>可导一定连续，但是连续不一定可导。(可导的图像是光滑的，连续的图像是不间断的)</li>\n</ul>\n<h3 id=\"求导法则\"><a class=\"anchor\" href=\"#求导法则\">#</a> 求导法则</h3>\n<ul>\n<li>\n<p>函数求导法则</p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>u</mi><mo>+</mo><mi>v</mi><msup><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><msup><mi>u</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>+</mo><msup><mi>v</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup></mrow><annotation encoding=\"application/x-tex\">(u + v)&#x27; = u&#x27; + v&#x27;</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">u</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.835222em;vertical-align:-0.08333em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">u</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.751892em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>u</mi><mo>−</mo><mi>v</mi><msup><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><msup><mi>u</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>−</mo><msup><mi>v</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup></mrow><annotation encoding=\"application/x-tex\">(u - v)&#x27; = u&#x27; - v&#x27;</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">u</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.835222em;vertical-align:-0.08333em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">u</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.751892em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>u</mi><mi>v</mi><msup><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><msup><mi>u</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mi>v</mi><mo>+</mo><mi>u</mi><msup><mi>v</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup></mrow><annotation encoding=\"application/x-tex\">(uv)&#x27; = u&#x27;v + uv&#x27;</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">u</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.835222em;vertical-align:-0.08333em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">u</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.751892em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">u</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>u</mi><mi>v</mi><mi>w</mi><msup><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><msup><mi>u</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mi>v</mi><mi>w</mi><mo>+</mo><mi>u</mi><msup><mi>v</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mi>w</mi><mo>+</mo><mi>u</mi><mi>v</mi><msup><mi>w</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup></mrow><annotation encoding=\"application/x-tex\">(uvw)&#x27; = u&#x27;vw + uv&#x27;w + uvw&#x27;</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">u</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mord mathnormal\" style=\"margin-right:0.02691em;\">w</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.835222em;vertical-align:-0.08333em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">u</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mord mathnormal\" style=\"margin-right:0.02691em;\">w</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.835222em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">u</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mord mathnormal\" style=\"margin-right:0.02691em;\">w</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.751892em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">u</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02691em;\">w</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>c</mi><mi>v</mi><msup><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mi>c</mi><msup><mi>v</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup></mrow><annotation encoding=\"application/x-tex\">(cv)&#x27; = cv&#x27;</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.751892em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span></span></span></span> (c 为常数)</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mfrac><mi>u</mi><mi>v</mi></mfrac><msup><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mfrac><mrow><msup><mi>u</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mi>v</mi><mo>−</mo><mi>u</mi><msup><mi>v</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup></mrow><msup><mi>v</mi><mn>2</mn></msup></mfrac></mrow><annotation encoding=\"application/x-tex\">(\\frac{u}{v})&#x27; = {\\frac{u&#x27;v - uv&#x27;}{v^2}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.096892em;vertical-align:-0.345em;\"></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.695392em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">v</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">u</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.31848em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.97348em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7463142857142857em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">u</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8278285714285715em;\"><span style=\"top:-2.931em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">v</span><span class=\"mbin mtight\">−</span><span class=\"mord mathnormal mtight\">u</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8278285714285715em;\"><span style=\"top:-2.931em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>反函数求导法则</p>\n<ul>\n<li>反函数的导数是原来导数的导数: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">[</mo><msup><mi>f</mi><mrow><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><msup><mo stretchy=\"false\">]</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mfrac><mn>1</mn><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>g</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">[f^{-1}(x)]&#x27; = {\\frac{1}{f&#x27;(g)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.064108em;vertical-align:-0.25em;\"></span><span class=\"mopen\">[</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\"><span class=\"mclose\">]</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.365108em;vertical-align:-0.52em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">g</span><span class=\"mclose mtight\">)</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>复合函数求导法则 (链式法则)</p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>f</mi><mo stretchy=\"false\">[</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo><mspace width=\"2em\"/><mspace width=\"2em\"/><mi>f</mi><mo stretchy=\"false\">[</mo><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><msup><mo stretchy=\"false\">]</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>u</mi><msup><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mi>g</mi><mo stretchy=\"false\">(</mo><mi>x</mi><msup><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup></mrow><annotation encoding=\"application/x-tex\">y = f[g(x)] \\qquad \\qquad f[g(x)]&#x27; = f(u)&#x27;g(x)&#x27;</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\">]</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mclose\"><span class=\"mclose\">]</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">u</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">g</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>隐函数求导法则</p>\n<ul>\n<li>两边对 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span> 求导，如果带着 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi></mrow><annotation encoding=\"application/x-tex\">y</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span></span></span></span> 也没关系</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"高阶导数\"><a class=\"anchor\" href=\"#高阶导数\">#</a> 高阶导数</h3>\n<ul>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>a</mi><mi>x</mi><mo>+</mo><mi>b</mi><mspace width=\"2em\"/><msup><mi>y</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mi>a</mi><mspace width=\"2em\"/><msup><mi>y</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">y = ax + b \\qquad y&#x27; = a \\qquad y&#x27;&#x27; = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.946332em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.946332em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>ω</mi><mi>x</mi><mspace width=\"2em\"/><msup><mi>y</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mi>w</mi><mi>c</mi><mi>o</mi><mi>s</mi><mi>ω</mi><mi>x</mi><mspace width=\"2em\"/><msup><mi>y</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo>=</mo><mo>−</mo><msup><mi>ω</mi><mn>2</mn></msup><mi>s</mi><mi>i</mi><mi>n</mi><mi>w</mi><mi>t</mi></mrow><annotation encoding=\"application/x-tex\">y = sin\\omega x \\qquad y&#x27; = wcos\\omega x \\qquad y&#x27;&#x27; = -\\omega^2sinwt</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.946332em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">i</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">ω</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.946332em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02691em;\">w</span><span class=\"mord mathnormal\">c</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">ω</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.897438em;vertical-align:-0.08333em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">ω</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">i</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\" style=\"margin-right:0.02691em;\">w</span><span class=\"mord mathnormal\">t</span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><msup><mi>e</mi><mi>x</mi></msup><mspace width=\"2em\"/><msup><mi>y</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><msup><mi>e</mi><mi>x</mi></msup><mspace width=\"2em\"/><msup><mi>y</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo>=</mo><msup><mi>e</mi><mi>x</mi></msup></mrow><annotation encoding=\"application/x-tex\">y = e^x \\qquad y&#x27; = e^x \\qquad y&#x27;&#x27; = e^x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.946332em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.946332em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.664392em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mspace width=\"2em\"/><msup><mi>y</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mspace width=\"2em\"/><msup><mi>y</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo>=</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><mfrac><mi>π</mi><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo><mo>=</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><mfrac><mi>π</mi><mn>2</mn></mfrac><mo>+</mo><mfrac><mi>π</mi><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo><mspace width=\"2em\"/><msup><mi>y</mi><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo stretchy=\"false\">)</mo></mrow></msup><mo>=</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><mi>n</mi><mfrac><mi>π</mi><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\sin(x) \\qquad y&#x27; = \\cos(x) \\qquad y&#x27;&#x27; = \\cos(x + \\frac{\\pi}{2}) = \\sin(x + \\frac{\\pi}{2} + \\frac{\\pi}{2}) \\qquad y^{(n)} = \\sin(x + n \\frac{\\pi}{2})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.095em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.695392em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">π</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.040392em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.695392em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">π</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.2329999999999999em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.695392em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">π</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8879999999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.095em;vertical-align:-0.345em;\"></span><span class=\"mord mathnormal\">n</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.695392em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">π</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mspace width=\"2em\"/><msup><mi>y</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mo>−</mo><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mspace width=\"2em\"/><msup><mi>y</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo>=</mo><mo>−</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><mfrac><mi>π</mi><mn>2</mn></mfrac><mo>+</mo><mfrac><mi>π</mi><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo><mspace width=\"2em\"/><msup><mi>y</mi><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo stretchy=\"false\">)</mo></mrow></msup><mo>=</mo><mi>cos</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo>+</mo><mi>n</mi><mfrac><mi>π</mi><mn>2</mn></mfrac><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = \\cos(x) \\qquad y&#x27; = - \\sin(x) \\qquad y&#x27;&#x27; = - \\cos(x) = \\cos(x + \\frac{\\pi}{2} + \\frac{\\pi}{2}) \\qquad y^{(n)} = \\cos(x + n \\frac{\\pi}{2})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\">−</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">−</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.040392em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.695392em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">π</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.2329999999999999em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.695392em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">π</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8879999999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">cos</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.095em;vertical-align:-0.345em;\"></span><span class=\"mord mathnormal\">n</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.695392em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em;\">π</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>ln</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mn>1</mn><mo>+</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mspace width=\"2em\"/></mrow><annotation encoding=\"application/x-tex\">y = \\ln(1 + x) \\qquad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">ln</span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:2em;\"></span></span></span></span>  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>y</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><mi>x</mi></mrow></mfrac><mspace width=\"2em\"/></mrow><annotation encoding=\"application/x-tex\">y&#x27; = {\\frac{1}{1 + x}} \\qquad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.946332em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.2484389999999999em;vertical-align:-0.403331em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mbin mtight\">+</span><span class=\"mord mathnormal mtight\">x</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.403331em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span></span></span></span>  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>y</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo>=</mo><mrow><mo>−</mo><mfrac><mn>1</mn><mrow><mo stretchy=\"false\">(</mo><mn>1</mn><mo>+</mo><mi>x</mi><msup><mo stretchy=\"false\">)</mo><mn>2</mn></msup></mrow></mfrac></mrow><mspace width=\"2em\"/></mrow><annotation encoding=\"application/x-tex\">y&#x27;&#x27; = {-\\frac{1}{(1 + x)^2}}\\qquad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.946332em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.365108em;vertical-align:-0.52em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.845108em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mtight\">1</span><span class=\"mbin mtight\">+</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\"><span class=\"mclose mtight\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7463142857142857em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span></span></span></span>  <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>y</mi><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo stretchy=\"false\">)</mo></mrow></msup><mo>=</mo><mrow><mo stretchy=\"false\">(</mo><mo>−</mo><mn>1</mn><msup><mo stretchy=\"false\">)</mo><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msup><mfrac><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">!</mo></mrow><mrow><mo stretchy=\"false\">(</mo><mn>1</mn><mo>+</mo><mi>x</mi><msup><mo stretchy=\"false\">)</mo><mi>n</mi></msup></mrow></mfrac></mrow></mrow><annotation encoding=\"application/x-tex\">y^{(n)} = {(-1)^{n-1} \\frac{(n - 1)!}{(1 + x)^n}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.0824399999999998em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8879999999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.53em;vertical-align:-0.52em;\"></span><span class=\"mord\"><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">1</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.01em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mtight\">1</span><span class=\"mbin mtight\">+</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\"><span class=\"mclose mtight\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.5935428571428571em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span><span class=\"mclose mtight\">)</span><span class=\"mclose mtight\">!</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><msup><mi>x</mi><mi>μ</mi></msup><mspace width=\"1em\"/></mrow><annotation encoding=\"application/x-tex\">y = {x^{\\mu}} \\quad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.664392em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">μ</span></span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:1em;\"></span></span></span></span> <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>y</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo>=</mo><mrow><mi>μ</mi><msup><mi>x</mi><mrow><mi>μ</mi><mo>−</mo><mn>1</mn></mrow></msup></mrow><mspace width=\"1em\"/></mrow><annotation encoding=\"application/x-tex\">y&#x27; = {\\mu x^{\\mu - 1}} \\quad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.946332em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.008548em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">μ</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">μ</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:1em;\"></span></span></span></span> <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>y</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo>=</mo><mrow><mo stretchy=\"false\">(</mo><mi>μ</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>μ</mi><mo>−</mo><mn>1</mn><mo stretchy=\"false\">)</mo><msup><mi>x</mi><mrow><mo stretchy=\"false\">(</mo><mi>μ</mi><mo>−</mo><mn>2</mn><mo stretchy=\"false\">)</mo></mrow></msup></mrow><mspace width=\"1em\"/></mrow><annotation encoding=\"application/x-tex\">y&#x27;&#x27; = {(\\mu)(\\mu - 1)x^{(\\mu - 2)}} \\quad</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.946332em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.138em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mopen\">(</span><span class=\"mord mathnormal\">μ</span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">μ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8879999999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">μ</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">2</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:1em;\"></span></span></span></span> <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>y</mi><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo stretchy=\"false\">)</mo></mrow></msup><mo>=</mo><mrow><mo stretchy=\"false\">(</mo><mi>μ</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>μ</mi><mo>−</mo><mn>1</mn><mo stretchy=\"false\">)</mo><mo>…</mo><mo stretchy=\"false\">(</mo><mi>μ</mi><mo>−</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy=\"false\">)</mo><msup><mi>x</mi><mrow><mo stretchy=\"false\">(</mo><mi>μ</mi><mo>−</mo><mi>n</mi><mo stretchy=\"false\">)</mo></mrow></msup></mrow></mrow><annotation encoding=\"application/x-tex\">y^{(n)} = {(\\mu)(\\mu - 1)…(\\mu - n + 1)x^{(\\mu - n)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.0824399999999998em;vertical-align:-0.19444em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8879999999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.138em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mopen\">(</span><span class=\"mord mathnormal\">μ</span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">μ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">μ</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord mathnormal\">n</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8879999999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">μ</span><span class=\"mbin mtight\">−</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>u</mi><mo>+</mo><mi>v</mi><msup><mo stretchy=\"false\">)</mo><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo stretchy=\"false\">)</mo></mrow></msup><mo>=</mo><mrow><msup><mi>u</mi><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo stretchy=\"false\">)</mo></mrow></msup><mo>+</mo><msup><mi>v</mi><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo stretchy=\"false\">)</mo></mrow></msup></mrow></mrow><annotation encoding=\"application/x-tex\">(u + v)^{(n)} = {u^{(n)} + v^{(n)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">u</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.138em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8879999999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.9713299999999999em;vertical-align:-0.08333em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">u</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8879999999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8879999999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>u</mi><mi>v</mi><msup><mo stretchy=\"false\">)</mo><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo stretchy=\"false\">)</mo></mrow></msup><mo>=</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mi>n</mi></munderover><msubsup><mi>C</mi><mi>n</mi><mi>k</mi></msubsup><msup><mi>u</mi><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo>−</mo><mi>k</mi><mo stretchy=\"false\">)</mo></mrow></msup><msup><mi>v</mi><mi>k</mi></msup></mstyle></mrow><annotation encoding=\"application/x-tex\">(uv)^{(n)} = {\\displaystyle\\sum_{k = 0}^n{C_n^k}u^{(n-k)}v^k}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.138em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">u</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8879999999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.9535100000000005em;vertical-align:-1.302113em;\"></span><span class=\"mord\"><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.6513970000000002em;\"><span style=\"top:-1.8478869999999998em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3.05em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em;\">k</span><span class=\"mrel mtight\">=</span><span class=\"mord mtight\">0</span></span></span></span><span style=\"top:-3.0500049999999996em;\"><span class=\"pstrut\" style=\"height:3.05em;\"></span><span><span class=\"mop op-symbol large-op\">∑</span></span></span><span style=\"top:-4.300005em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3.05em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.302113em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999998em;\"><span style=\"top:-2.4530000000000003em;margin-left:-0.07153em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em;\">k</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.247em;\"><span></span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">u</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.938em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em;\">k</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em;\">k</span></span></span></span></span></span></span></span></span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>u</mi><mo>+</mo><mi>v</mi><msup><mo stretchy=\"false\">)</mo><mi>n</mi></msup><mo>=</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mi>n</mi></munderover><msubsup><mi>C</mi><mi>n</mi><mi>k</mi></msubsup><msup><mi>u</mi><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo>−</mo><mi>k</mi><mo stretchy=\"false\">)</mo></mrow></msup><msup><mi>v</mi><mi>k</mi></msup></mstyle></mrow><annotation encoding=\"application/x-tex\">(u + v)^n = {\\displaystyle\\sum_{k = 0}^n{C_n^k}u^{(n-k)}v^k}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">u</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.9535100000000005em;vertical-align:-1.302113em;\"></span><span class=\"mord\"><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.6513970000000002em;\"><span style=\"top:-1.8478869999999998em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3.05em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em;\">k</span><span class=\"mrel mtight\">=</span><span class=\"mord mtight\">0</span></span></span></span><span style=\"top:-3.0500049999999996em;\"><span class=\"pstrut\" style=\"height:3.05em;\"></span><span><span class=\"mop op-symbol large-op\">∑</span></span></span><span style=\"top:-4.300005em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3.05em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.302113em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999998em;\"><span style=\"top:-2.4530000000000003em;margin-left:-0.07153em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em;\">k</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.247em;\"><span></span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\">u</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.938em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em;\">k</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em;\">k</span></span></span></span></span></span></span></span></span></span></span></span>    (这里 n 没有括号，表示次方，而不是导数次方)</p>\n</li>\n</ul>\n<h1 id=\"微分\"><a class=\"anchor\" href=\"#微分\">#</a> 微分</h1>\n<h2 id=\"微分的定义\"><a class=\"anchor\" href=\"#微分的定义\">#</a> 微分的定义</h2>\n<h3 id=\"定义\"><a class=\"anchor\" href=\"#定义\">#</a> 定义</h3>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>y</mi><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mspace width=\"2em\"/><msub><mi>x</mi><mn>0</mn></msub><mo>→</mo><msub><mi>x</mi><mn>0</mn></msub><mo>+</mo><mi>δ</mi><mi>x</mi><mspace width=\"2em\"/><mi>δ</mi><mi>y</mi><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>+</mo><mi>δ</mi><mi>x</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">y = f(x) \\qquad x_0 \\rightarrow x_0 + \\delta x \\qquad \\delta y = f(x_0 + \\delta x) - f(x_0)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.73333em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>δ</mi><mi>y</mi><mo>=</mo><mi>A</mi><mi>δ</mi><mi>x</mi><mo>+</mo><mi>o</mi><mo stretchy=\"false\">(</mo><mi>δ</mi><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\delta y = A\\delta x + o(\\delta x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.77777em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">o</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> (A 相对于 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>δ</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">\\delta x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">x</span></span></span></span> 是常数)</li>\n</ul>\n<h3 id=\"充要条件\"><a class=\"anchor\" href=\"#充要条件\">#</a> 充要条件</h3>\n<ul>\n<li>可微 &lt;==&gt; 可导</li>\n</ul>\n<h3 id=\"基本微分公式与法则\"><a class=\"anchor\" href=\"#基本微分公式与法则\">#</a> 基本微分公式与法则</h3>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>d</mi><mi>y</mi><mo>=</mo><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">dy = f&#x27;(x)dx</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">y</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>+</mo><mi>δ</mi><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mi>d</mi><mi>x</mi><mo>+</mo><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x_0 + \\delta x) = f&#x27;(x)dx + f(x_0)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n<h3 id=\"公式-x-rightarrow-0\"><a class=\"anchor\" href=\"#公式-x-rightarrow-0\">#</a> 公式 ( <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">{x \\rightarrow 0}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mord\">0</span></span></span></span></span> )</h3>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mn>1</mn><mo>+</mo><mi>x</mi><msup><mo stretchy=\"false\">)</mo><mi>α</mi></msup></mrow><annotation encoding=\"application/x-tex\">(1 + x)^\\alpha</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.0037em;\">α</span></span></span></span></span></span></span></span></span></span></span> ~ 1 + <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>α</mi><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">\\alpha x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>sin</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\sin(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">sin</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> ~ <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>tan</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\tan(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">tan</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> ~ <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>e</mi><mi>x</mi></msup></mrow><annotation encoding=\"application/x-tex\">e^x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.664392em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span></span></span></span> ~ 1 + <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>ln</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mn>1</mn><mo>+</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\ln(1 + x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">ln</span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> ~ <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span></li>\n</ul>\n<h2 id=\"微分中值定理\"><a class=\"anchor\" href=\"#微分中值定理\">#</a> 微分中值定理</h2>\n<h3 id=\"费马引理\"><a class=\"anchor\" href=\"#费马引理\">#</a> 费马引理</h3>\n<ul>\n<li>定义\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 邻域 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>U</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">U(x_0)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">U</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span> 有定义，在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding=\"application/x-tex\">x_0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.58056em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span> 处可导，如 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>≤</mo><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mspace width=\"1em\"/><mi mathvariant=\"normal\">∀</mi><mi>x</mi><mo>∈</mo><mi>U</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x) \\leq f(x_0) \\quad \\forall x \\in U(x_0)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:1em;\"></span><span class=\"mord\">∀</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">∈</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em;\">U</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span> , 则 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x_0) = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li>驻点：导数为 0 的点 (又称 稳定点，零界点)</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"罗尔定理\"><a class=\"anchor\" href=\"#罗尔定理\">#</a> 罗尔定理</h3>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 满足\n<ul>\n<li>在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">[</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">[a,b]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">[</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">]</span></span></span></span> 连续</li>\n<li>在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(a,b)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">)</span></span></span></span> 可导</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>a</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>b</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(a) = f(b)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">)</span></span></span></span><br />\n 则至少 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∃</mi></mrow><annotation encoding=\"application/x-tex\">\\exist</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.69444em;vertical-align:0em;\"></span><span class=\"mord\">∃</span></span></span></span> <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>ξ</mi><mo>∈</mo><mo stretchy=\"false\">(</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\xi \\in (a,b)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.04601em;\">ξ</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">∈</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">)</span></span></span></span> <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>ξ</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">f&#x27;(\\xi) = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.04601em;\">ξ</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n</ul>\n</li>\n</ul>\n<h3 id=\"拉格朗日中值定理\"><a class=\"anchor\" href=\"#拉格朗日中值定理\">#</a> 拉格朗日中值定理</h3>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 满足\n<ul>\n<li>在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">[</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">[a,b]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">[</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">]</span></span></span></span> 连续</li>\n<li>在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(a,b)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">)</span></span></span></span> 可导<br />\n<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(a , b)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">)</span></span></span></span> 至少有一点 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>ξ</mi></mrow><annotation encoding=\"application/x-tex\">\\xi</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.04601em;\">ξ</span></span></span></span> <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>b</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>a</mi><mo stretchy=\"false\">)</mo><mo>=</mo><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>ξ</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>b</mi><mo>−</mo><mi>a</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(b) - f(a) = f&#x27;(\\xi)(b -a)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.04601em;\">ξ</span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">b</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 在区间 I 连续 I 内可导且导数恒为 0 , <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">f(x) = C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.68333em;vertical-align:0em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em;\">C</span></span></span></span></li>\n</ul>\n<h3 id=\"柯西中值定理\"><a class=\"anchor\" href=\"#柯西中值定理\">#</a> 柯西中值定理</h3>\n<ul>\n<li>若 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 和 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>F</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">F(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span>\n<ul>\n<li>在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">[</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">[a,b]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">[</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">]</span></span></span></span> 连续</li>\n<li>在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(a,b)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">)</span></span></span></span> 可导</li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∀</mi><mi>x</mi><mo>∈</mo><mo stretchy=\"false\">(</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo stretchy=\"false\">)</mo><msup><mi>F</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\">≠</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\forall x \\in (a , b) F&#x27;(x) \\neq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.73354em;vertical-align:-0.0391em;\"></span><span class=\"mord\">∀</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">∈</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">)</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span><br />\n 至少有一点 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>b</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>a</mi><mo stretchy=\"false\">)</mo></mrow><mrow><mi>F</mi><mo stretchy=\"false\">(</mo><mi>b</mi><mo stretchy=\"false\">)</mo><mo>−</mo><mi>F</mi><mo stretchy=\"false\">(</mo><mi>a</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">\\displaystyle\\frac{f(b)- f(a)}{F(b)- F(a)}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.363em;vertical-align:-0.936em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.427em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mclose\">)</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> = <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>ξ</mi><mo stretchy=\"false\">)</mo></mrow><mrow><msup><mi>F</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>ξ</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">{\\displaystyle\\frac{f&#x27;(\\xi)}{F&#x27;(\\xi)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.364892em;vertical-align:-0.936em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.428892em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6778919999999999em;\"><span style=\"top:-2.9890000000000003em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.04601em;\">ξ</span><span class=\"mclose\">)</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.04601em;\">ξ</span><span class=\"mclose\">)</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.936em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n</ul>\n</li>\n</ul>\n<h3 id=\"洛必达法则\"><a class=\"anchor\" href=\"#洛必达法则\">#</a> 洛必达法则</h3>\n<ul>\n<li>\n<p>形式</p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><mn>0</mn><mn>0</mn></mfrac></mstyle><mspace width=\"2em\"/><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><mi mathvariant=\"normal\">∞</mi><mi mathvariant=\"normal\">∞</mi></mfrac></mstyle><mspace width=\"2em\"/><mn>0</mn><mo lspace=\"0em\" rspace=\"0em\">⋅</mo><mi mathvariant=\"normal\">∞</mi><mspace width=\"2em\"/><mi mathvariant=\"normal\">∞</mi><mo>−</mo><mi mathvariant=\"normal\">∞</mi><mspace width=\"2em\"/><msup><mn>0</mn><mn>0</mn></msup><mspace width=\"2em\"/><msup><mn>1</mn><mi mathvariant=\"normal\">∞</mi></msup><mspace width=\"2em\"/><msup><mi mathvariant=\"normal\">∞</mi><mn>0</mn></msup></mrow><annotation encoding=\"application/x-tex\">{\\displaystyle\\frac{0}{0}} \\qquad {\\displaystyle\\frac{\\infty}{\\infty}} \\qquad 0 {\\cdot} \\infty \\qquad \\infty - \\infty \\qquad 0^0 \\qquad 1^\\infty \\qquad \\infty^0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.00744em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.10756em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">∞</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">∞</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\">0</span><span class=\"mord\"><span class=\"mord\">⋅</span></span><span class=\"mord\">∞</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\">∞</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8141079999999999em;vertical-align:0em;\"></span><span class=\"mord\">∞</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord\">0</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord\">1</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">∞</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord\"><span class=\"mord\">∞</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span></span></span></span></span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>定理 1</p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mi>a</mi></mrow><annotation encoding=\"application/x-tex\">x \\to a</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">a</span></span></span></span> 时 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mspace width=\"2em\"/><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>→</mo><mn>0</mn><mspace width=\"2em\"/><mi>F</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>→</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\qquad f(x) \\to 0 \\qquad  F(x) \\to 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li>在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi></mrow><annotation encoding=\"application/x-tex\">a</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">a</span></span></span></span> 的去心邻域内 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><msup><mi>F</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) F&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 存在，且 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>F</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\">≠</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">F&#x27;(x) \\neq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mi>a</mi></mrow></munder><mfrac><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><mrow><mi>F</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{x \\to a}\\frac{f(x)}{F(x)}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.71em;vertical-align:-0.7em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.4em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mathnormal mtight\">a</span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.01em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> 存在 或 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∞</mi></mrow><annotation encoding=\"application/x-tex\">\\infty</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord\">∞</span></span></span></span><br />\n 则 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mi>a</mi></mrow></munder><mfrac><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><mrow><mi>F</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mrow><mo>=</mo><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mi>a</mi></mrow></munder><mfrac><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><mrow><msup><mi>F</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mrow></mrow><annotation encoding=\"application/x-tex\">{\\lim\\limits_{x \\to a}\\frac{f(x)}{F(x)}} = {\\lim\\limits_{x \\to a}\\frac{f&#x27;(x)}{F&#x27;(x)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.71em;vertical-align:-0.7em;\"></span><span class=\"mord\"><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.4em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mathnormal mtight\">a</span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.01em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.76448em;vertical-align:-0.7em;\"></span><span class=\"mord\"><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.4em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mathnormal mtight\">a</span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.06448em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em;\">F</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8278285714285715em;\"><span style=\"top:-2.931em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n</ul>\n</li>\n<li>\n<p>定理 2</p>\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>→</mo><mi mathvariant=\"normal\">∞</mi></mrow><annotation encoding=\"application/x-tex\">x \\to \\infty</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord\">∞</span></span></span></span> 时 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mspace width=\"2em\"/><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>→</mo><mn>0</mn><mspace width=\"2em\"/><mi>F</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>→</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\qquad f(x) \\to 0 \\qquad  F(x) \\to 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">0</span><span class=\"mspace\" style=\"margin-right:2em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">→</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li>在 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi></mrow><annotation encoding=\"application/x-tex\">a</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">a</span></span></span></span> 的去心邻域内 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><msup><mi>F</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f&#x27;(x) F&#x27;(x)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span></span></span></span> 存在，且 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>F</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo mathvariant=\"normal\">≠</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">F&#x27;(x) \\neq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em;\">F</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8888799999999999em;vertical-align:-0.19444em;\"></span><span class=\"inner\"><span class=\"mrel\"></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.64444em;vertical-align:0em;\"></span><span class=\"mord\">0</span></span></span></span></li>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mi>a</mi></mrow></munder><mfrac><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><mrow><mi>F</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">\\lim\\limits_{x \\to a}\\frac{f(x)}{F(x)}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.71em;vertical-align:-0.7em;\"></span><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.4em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mathnormal mtight\">a</span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.01em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> 存在 或 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∞</mi></mrow><annotation encoding=\"application/x-tex\">\\infty</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.43056em;vertical-align:0em;\"></span><span class=\"mord\">∞</span></span></span></span><br />\n 则 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mi mathvariant=\"normal\">∞</mi></mrow></munder><mfrac><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><mrow><mi>F</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mrow><mo>=</mo><mrow><munder><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mi>a</mi></mrow></munder><mfrac><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow><mrow><msup><mi>F</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></mrow></mfrac></mrow></mrow><annotation encoding=\"application/x-tex\">{\\lim\\limits_{x \\to \\infty}\\frac{f(x)}{F(x)}} = {\\lim\\limits_{x \\to a}\\frac{f&#x27;(x)}{F&#x27;(x)}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.71em;vertical-align:-0.7em;\"></span><span class=\"mord\"><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.4em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mtight\">∞</span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.01em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em;\">F</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.76448em;vertical-align:-0.7em;\"></span><span class=\"mord\"><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.69444em;\"><span style=\"top:-2.4em;margin-left:0em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"mrel mtight\">→</span><span class=\"mord mathnormal mtight\">a</span></span></span></span><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mop\">lim</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7em;\"><span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.06448em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em;\">F</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em;\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8278285714285715em;\"><span style=\"top:-2.931em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span></li>\n</ul>\n</li>\n</ul>\n<h2 id=\"泰勒公式\"><a class=\"anchor\" href=\"#泰勒公式\">#</a> 泰勒公式</h2>\n<ul>\n<li>通用\n<ul>\n<li>一次性表达\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>+</mo><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo>−</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">f(x) = f(x_0) + f&#x27;(x_0)(x - x_0)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.001892em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.751892em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n</li>\n<li>多次求导\n<ul>\n<li><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>+</mo><mfrac><mrow><msup><mi>f</mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">′</mo></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><mrow><mn>1</mn><mo stretchy=\"false\">!</mo></mrow></mfrac><mo stretchy=\"false\">(</mo><mi>x</mi><mo>−</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo><mo>+</mo><mfrac><mrow><msup><mi>f</mi><mrow><mo mathvariant=\"normal\">′</mo><mo mathvariant=\"normal\">′</mo></mrow></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><mrow><mn>2</mn><mo stretchy=\"false\">!</mo></mrow></mfrac><mo stretchy=\"false\">(</mo><mi>x</mi><mo>−</mo><msub><mi>x</mi><mn>0</mn></msub><msup><mo stretchy=\"false\">)</mo><mn>2</mn></msup><mo>+</mo><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mo>+</mo><mfrac><mrow><msup><mi>f</mi><mrow><mo stretchy=\"false\">(</mo><mi>n</mi><mo stretchy=\"false\">)</mo></mrow></msup><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mn>0</mn></msub><mo stretchy=\"false\">)</mo></mrow><mrow><mi>n</mi><mo stretchy=\"false\">!</mo></mrow></mfrac><mo stretchy=\"false\">(</mo><mi>x</mi><mo>−</mo><msub><mi>x</mi><mn>0</mn></msub><msup><mo stretchy=\"false\">)</mo><mi>n</mi></msup></mrow><annotation encoding=\"application/x-tex\">f(x) = f(x_0) + \\frac{f&#x27;(x_0)}{1!}(x - x_0) + \\frac{f&#x27;&#x27;(x_0)}{2!}(x - x_0)^2+ ... + \\frac{f^{(n)}(x_0)}{n!}(x - x_0)^n</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em;\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.40948em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.06448em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span><span class=\"mclose mtight\">!</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8278285714285715em;\"><span style=\"top:-2.931em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.31731428571428577em;\"><span style=\"top:-2.357em;margin-left:0em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.143em;\"><span></span></span></span></span></span></span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.40948em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.06448em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mclose mtight\">!</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8278285714285715em;\"><span style=\"top:-2.931em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">′</span><span class=\"mord mtight\">′</span></span></span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.31731428571428577em;\"><span style=\"top:-2.357em;margin-left:0em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.143em;\"><span></span></span></span></span></span></span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.064108em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mord\">.</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.5067em;vertical-align:-0.345em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.1617em;\"><span style=\"top:-2.6550000000000002em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">!</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.485em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10764em;\">f</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9667142857142857em;\"><span style=\"top:-2.966714285714285em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5357142857142856em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mopen mtight\">(</span><span class=\"mord mathnormal mtight\">n</span><span class=\"mclose mtight\">)</span></span></span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.31731428571428577em;\"><span style=\"top:-2.357em;margin-left:0em;margin-right:0.07142857142857144em;\"><span class=\"pstrut\" style=\"height:2.5em;\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.143em;\"><span></span></span></span></span></span></span><span class=\"mclose mtight\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span></span></span></span></span></span></span> + o<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mo stretchy=\"false\">(</mo><mi>x</mi><mo>−</mo><msub><mi>x</mi><mn>0</mn></msub><msup><mo stretchy=\"false\">)</mo><mi>n</mi></msup><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">((x - x_0)^n)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em;\"><span style=\"top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">0</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<ol>\n<li>\n<p>sinx = <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>−</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>3</mn></msup><mrow><mn>3</mn><mo stretchy=\"false\">!</mo></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">x -\\displaystyle\\frac{x^3}{3!}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span><span class=\"mclose\">!</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> + o(x<sup>3</sup>)</p>\n</li>\n<li>\n<p>cosx = 1 - <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>2</mn></msup><mrow><mn>2</mn><mo stretchy=\"false\">!</mo></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">\\displaystyle\\frac{x^2}{2!}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mclose\">!</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> + <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>4</mn></msup><mrow><mn>4</mn><mo stretchy=\"false\">!</mo></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">\\displaystyle\\frac{x^4}{4!}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span><span class=\"mclose\">!</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">4</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> + o(x<sup>4</sup>)</p>\n</li>\n<li>\n<p>tanx = x + <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>3</mn></msup><mn>3</mn></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">\\displaystyle\\frac{x^3}{3}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> + o(x<sup>3</sup>)</p>\n</li>\n<li>\n<p>arcsinx = x + <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>3</mn></msup><mrow><mn>3</mn><mo stretchy=\"false\">!</mo></mrow></mfrac></mstyle></mrow><annotation encoding=\"application/x-tex\">\\displaystyle\\frac{x^3}{3!}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span><span class=\"mclose\">!</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span> + o(x^3)</p>\n</li>\n<li>\n<p>arcsinx = x + <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><mn>1</mn><mn>2</mn></mfrac><mo lspace=\"0em\" rspace=\"0em\">∗</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>3</mn></msup><mn>3</mn></mfrac><mo lspace=\"0em\" rspace=\"0em\">+</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><mn>1</mn><mn>2</mn></mfrac><mo lspace=\"0em\" rspace=\"0em\">∗</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><mn>3</mn><mn>4</mn></mfrac><mo lspace=\"0em\" rspace=\"0em\">∗</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>5</mn></msup><mn>5</mn></mfrac><mo>+</mo><mi>o</mi><mo stretchy=\"false\">(</mo><msup><mi>x</mi><mn>5</mn></msup><mo stretchy=\"false\">)</mo></mstyle></mstyle></mstyle></mstyle></mstyle></mrow><annotation encoding=\"application/x-tex\">\\displaystyle\\frac{1}{2} {*} \\displaystyle\\frac{x^3}{3} {+} \\displaystyle\\frac{1}{2} {*} \\displaystyle\\frac{3}{4} {*} \\displaystyle\\frac{x^5}{5} + o(x^5)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord\">∗</span></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord\">+</span></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord\">∗</span></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.32144em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">4</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord\">∗</span></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">5</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">5</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.1141079999999999em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">o</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641079999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">5</span></span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p>arctanx = <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>−</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>3</mn></msup><mn>3</mn></mfrac><mo>+</mo><mi>o</mi><mo stretchy=\"false\">(</mo><msup><mi>x</mi><mn>3</mn></msup><mo stretchy=\"false\">)</mo></mstyle></mrow><annotation encoding=\"application/x-tex\">x - \\displaystyle\\frac{x^3}{3} + o(x^3)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.1141079999999999em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">o</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641079999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>ln</mi><mo>⁡</mo><mo stretchy=\"false\">(</mo><mn>1</mn><mo>+</mo><mi>x</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>x</mi><mo>−</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>2</mn></msup><mn>2</mn></mfrac><mo>+</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>3</mn></msup><mn>3</mn></mfrac><mo>+</mo><mi>o</mi><mo stretchy=\"false\">(</mo><msup><mi>x</mi><mn>3</mn></msup><mo stretchy=\"false\">)</mo></mstyle></mstyle></mrow><annotation encoding=\"application/x-tex\">\\ln(1 + x) = x - \\displaystyle\\frac{x^2}{2} + \\displaystyle\\frac{x^3}{3} + o(x^3)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">ln</span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">3</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.1141079999999999em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">o</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641079999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">3</span></span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>=</mo><mn>1</mn><mo>+</mo><mi>x</mi><mo>+</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><msup><mi>x</mi><mn>2</mn></msup><mrow><mn>2</mn><mo stretchy=\"false\">!</mo></mrow></mfrac><mo>+</mo><msup><mi>x</mi><mi>o</mi></msup><mo stretchy=\"false\">(</mo><msup><mi>x</mi><mn>2</mn></msup><mo stretchy=\"false\">)</mo></mstyle></mrow><annotation encoding=\"application/x-tex\">e^x = 1 + x + \\displaystyle\\frac{x^2}{2!} + x^ o(x^2)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.664392em;vertical-align:0em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">e</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">x</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mclose\">!</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.1141079999999999em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7143919999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">o</span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641079999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n<li>\n<p><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mn>1</mn><mo>+</mo><mi>x</mi><msup><mo stretchy=\"false\">)</mo><mi>α</mi></msup><mo>=</mo><mn>1</mn><mo>+</mo><mi>α</mi><mi>x</mi><mo>+</mo><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><mrow><mi>α</mi><mo stretchy=\"false\">(</mo><mi>α</mi><mo>−</mo><mn>1</mn><mo stretchy=\"false\">)</mo><msup><mi>x</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mo stretchy=\"false\">!</mo></mrow></mfrac><mo>+</mo><mi>o</mi><mo stretchy=\"false\">(</mo><msup><mi>x</mi><mn>2</mn></msup><mo stretchy=\"false\">)</mo></mstyle></mrow><annotation encoding=\"application/x-tex\">(1 + x)^α = 1 + αx + \\displaystyle\\frac{α(α -1)x^2}{2!} + o(x^2)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.664392em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.0037em;\">α</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.72777em;vertical-align:-0.08333em;\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.66666em;vertical-align:-0.08333em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.177108em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.491108em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mclose\">!</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em;\">α</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141079999999999em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.1141079999999999em;vertical-align:-0.25em;\"></span><span class=\"mord mathnormal\">o</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641079999999999em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></p>\n</li>\n</ol>\n",
            "tags": []
        },
        {
            "id": "https://hk2012.github.io/2023/01/24/java/jvm%E9%9D%A2%E8%AF%95%E9%A2%98/",
            "url": "https://hk2012.github.io/2023/01/24/java/jvm%E9%9D%A2%E8%AF%95%E9%A2%98/",
            "title": "jvm面试题整理",
            "date_published": "2023-01-24T07:48:53.000Z",
            "content_html": "<h2 id=\"jvm底层面试题\"><a class=\"anchor\" href=\"#jvm底层面试题\">#</a> JVM 底层面试题</h2>\n<ol>\n<li>\n<p>说一说 JVM 主要组成部分及其作用<br />\n 1.1. class loader: 类加载器，加载类文件到内存，class loader 只管加载，只要符合文件结构就加载，至于能否运行，它不负责（由 execution engine 负责）<br />\n1.2. execution engine: 执行引擎或解释器，负责解释命令，交由操作系统执行<br />\n 1.3. native interface：本地接口，本地接口的作用是融合不同的语言为 java 所用。<br />\n1.4. runtimeDate area: 运行数据区，这是 jvm 的重点，我们所写的程序都被加载到这里，之后才开始运行。<br />\n- 1.4.1. java virtual machine stacks: 栈也叫栈内存，是 java 程序的运行区，是在线程创建时创建，他的生命周期跟随线程的生命周期，线程结束时，栈内存释放；<br />\n- 1.4.2. 堆内存：一个 JVM 实例只存在一个堆内存，堆内存的大小是可以调节的<br />\n - 1.4.3. program counter register: 程序计数器 当前线程所执行的字节码的行号指示器，字节码解析器的工作是通过改变这个计数器的值，来选取下一条需要执行的字节码指令，</p>\n<p>1.5. 组件作用：通过 class loader 将 java 代码转换成字节码，（runtime data area）再把字节码加载到内存中，而字节码文件只是 JVM 的一套指令集规范，并不能直接交给操作系统执行，因此还需要特定命令的执行引擎（execution engine）, 将字节码翻译成底层系统指令，再交由 CPU 执行，而这个过程中需要调用其他语言的本地库接口（Native Interface）来实现整个程序的功能。</p>\n</li>\n<li>\n<p>说一下 JVM 运行时数据区<br />\n程序计数器（Program Counter Register）：当前线程所执行的字节码的行号指示器，字节码解析器的工作是通过改变这个计数器的值，来选取下一条需要执行的字节码指令，分支、循环、跳转、异常处理、线程恢复等基础功能，都需要依赖这个计数器来完成；<br />\nJava 虚拟机栈（Java Virtual Machine Stacks）：用于存储局部变量表、操作数栈、动态链接、方法出口等信息；<br />\n本地方法栈（Native Method Stack）：与虚拟机栈的作用是一样的，只不过虚拟机栈是服务 Java 方法的，而本地方法栈是为虚拟机调用 Native 方法服务的；<br />\nJava 堆（Java Heap）：Java 虚拟机中内存最大的一块，是被所有线程共享的，几乎所有的对象实例都在这里分配内存；<br />\n方法区（Methed Area）：用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据。</p>\n</li>\n</ol>\n<p>总结下来</p>\n<ul>\n<li>spring 是核心，提供了基础功能</li>\n<li>springmvc 是基于 spring mvc 框架</li>\n<li>springboot 是为了简化 spring 配置的快速开发整合包</li>\n<li>spring cloud 是构建在 spring boot 之上的服务治理框架</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/01/13/note/hexoUseReport/",
            "url": "https://hk2012.github.io/2023/01/13/note/hexoUseReport/",
            "title": "hexo使用问题记录",
            "date_published": "2023-01-13T03:04:53.000Z",
            "content_html": "<h2 id=\"hexo-d-timeout\"><a class=\"anchor\" href=\"#hexo-d-timeout\">#</a> hexo d timeout</h2>\n<ul>\n<li>hexo d 部署到 github 仓库，经常超时，科学上网也用！</li>\n</ul>\n<p>效果图</p>\n<p><img data-src=\"/img/hexoPushTimeOut.png\" alt=\"提交代码超时问题\" /></p>\n<ul>\n<li>解决方法\n<ul>\n<li>找到项目的 _config.yml 文件</li>\n</ul>\n</li>\n</ul>\n<figure class=\"highlight shell\"><figcaption data-lang=\"Bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token comment\"># Deployment</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">## Docs: https://hexo.io/docs/one-command-deployment</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>deploy:</pre></td></tr><tr><td data-num=\"4\"></td><td><pre>  type: <span class=\"token function\">git</span></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>  <span class=\"token comment\"># 1. 问题： 仓库地址 repository 设置成 https 开头，会经常超时</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>  <span class=\"token comment\"># repo: https://github.com/hk2012/hk2012.github.io.git</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>  <span class=\"token comment\"># 2. 解决方法   </span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>  repo: git@github.com:hk2012/hk2012.github.io.git</pre></td></tr><tr><td data-num=\"10\"></td><td><pre>  </pre></td></tr><tr><td data-num=\"11\"></td><td><pre>  branch: master</pre></td></tr></table></figure>",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/01/12/note/npmUse/",
            "url": "https://hk2012.github.io/2023/01/12/note/npmUse/",
            "title": "npm 使用记录",
            "date_published": "2023-01-12T08:36:53.000Z",
            "content_html": "<h2 id=\"npm-使用记录\"><a class=\"anchor\" href=\"#npm-使用记录\">#</a> npm 使用记录</h2>\n<ul>\n<li>npm 版本升级</li>\n</ul>\n<figure class=\"highlight shell\"><figcaption data-lang=\"Bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token function\">npm</span> <span class=\"token function\">install</span> <span class=\"token parameter variable\">-g</span> <span class=\"token function\">npm</span></pre></td></tr></table></figure><ul>\n<li>npm 版本降级  （6.14 就是你想要降的版本）</li>\n</ul>\n<figure class=\"highlight shell\"><figcaption data-lang=\"Bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token function\">npm</span> <span class=\"token function\">install</span> npm@6.14 <span class=\"token parameter variable\">-g</span></pre></td></tr></table></figure><ul>\n<li>npm 清理缓存</li>\n</ul>\n<figure class=\"highlight shell\"><figcaption data-lang=\"Bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token function\">npm</span> cache clean <span class=\"token parameter variable\">-f</span></pre></td></tr></table></figure><h2 id=\"vue-通过-nginx-部署-404-问题\"><a class=\"anchor\" href=\"#vue-通过-nginx-部署-404-问题\">#</a> vue 通过 nginx 部署 404 问题</h2>\n<p>效果图<br />\n<img data-src=\"/img/nginx_404_route.png\" alt=\"vue history模式 404\" /></p>\n<ul>\n<li>PS : 之所以出现上面的现象，是因为在 nginx 配置的文件下面压根没有 'build/index' 这个真实资源存在，这些访问<br />\n资源都是在 js 里渲染的。</li>\n</ul>\n<ol>\n<li>问题： 出现 404 的原因是由于在这个域名根目录 /data/irs/irs-caster/frontend 文件下面压根没有 'build/index' 这个真实资源存在</li>\n</ol>\n<figure class=\"highlight shell\"><figcaption data-lang=\"Bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>server <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>        listen       <span class=\"token number\">2643</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>        server_name  <span class=\"token number\">43.192</span>.4.68<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>        index index.php index.html index.htm default.php default.htm default.html<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>        root /data/irs/irs-caster/frontend<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ol start=\"2\">\n<li>解决问题</li>\n</ol>\n<figure class=\"highlight shell\"><figcaption data-lang=\"Bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>server <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>    listen       <span class=\"token number\">2643</span><span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre>    server_name  <span class=\"token number\">43.192</span>.4.68<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>    index index.php index.html index.htm default.php default.htm default.html<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre>    root /data/irs/irs-caster/frontend<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre>    <span class=\"token comment\">#vue-router 配置</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>    location / <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>    try_files <span class=\"token variable\">$uri</span> <span class=\"token variable\">$uri</span>/ @router<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>    index index.html<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre>    location @router <span class=\"token punctuation\">&#123;</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre>    rewrite ^.*$ /index.html last<span class=\"token punctuation\">;</span></pre></td></tr><tr><td data-num=\"14\"></td><td><pre>    <span class=\"token punctuation\">&#125;</span></pre></td></tr><tr><td data-num=\"15\"></td><td><pre><span class=\"token punctuation\">&#125;</span></pre></td></tr></table></figure><ol start=\"3\">\n<li>\n<p>重启 nginx 后，问题就迎刃而解了。</p>\n</li>\n<li>\n<p>测试</p>\n</li>\n</ol>\n",
            "tags": [
                "总结"
            ]
        },
        {
            "id": "https://hk2012.github.io/2023/01/11/note/messageQueue/",
            "url": "https://hk2012.github.io/2023/01/11/note/messageQueue/",
            "title": "消息队列 知识总结",
            "date_published": "2023-01-11T07:25:53.000Z",
            "content_html": "<h3 id=\"定义\"><a class=\"anchor\" href=\"#定义\">#</a> 定义</h3>\n<ul>\n<li>\n<p>消息队列：消息是进程或是系统之间通讯的一种方式。系统之间通讯还有另一种方式：RPC（目前的 gRPC）.</p>\n</li>\n<li>\n<p>组成部分：</p>\n<ol>\n<li>Broker (消息服务器，核心部分)</li>\n<li>producer (消息生产者)</li>\n<li>consumer (消息消费者)</li>\n<li>Topic (主题)</li>\n<li>Queue (队列)</li>\n<li>Message (消息体)</li>\n</ol>\n</li>\n<li>\n<p>消息队列</p>\n<ol>\n<li>应用解耦</li>\n<li>流量削峰</li>\n<li>异步通信</li>\n<li>日志收集</li>\n<li>事务最终一致性 ：定义全局事务管理器，和局部资源管理器</li>\n</ol>\n</li>\n</ul>\n",
            "tags": [
                "总结"
            ]
        }
    ]
}