<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>期末速通 on RunicDolphin806</title>
        <link>https://rd806.github.io/categories/exam/</link>
        <description>Recent content in 期末速通 on RunicDolphin806</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sun, 15 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://rd806.github.io/categories/exam/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>形式化方法</title>
            <link>https://rd806.github.io/passage/software/formal_methods/</link>
            <pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate>
            <guid>https://rd806.github.io/passage/software/formal_methods/</guid>
            <description>&lt;img src=&#34;https://rd806.github.io/passage/software/formal_methods/cover.png&#34; alt=&#34;Featured image of post 形式化方法&#34; /&gt;&lt;p&gt;感谢 superpung 的&lt;a class=&#34;link&#34; href=&#34;https://superpung.notion.site/a234e03327a5483d9bb38b16d84bbc80&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;notion&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;课程目标&#34;&gt;课程目标&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;学习最广泛使用的形式化规格说明的基础&lt;/li&gt;&#xA;&lt;li&gt;掌握形式化规格说明语言&lt;/li&gt;&#xA;&lt;li&gt;有形式化方法的基础知识&lt;/li&gt;&#xA;&lt;li&gt;有一个整体的想法关于什么类型的问题可以被有效地利用形式化方法解决&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;内容&#34;&gt;内容&#xA;&lt;/h2&gt;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/software/formal_methods/specification &gt;形式化方法：规格描述语言&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/software/formal_methods/logic &gt;形式化方法：逻辑与证明&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/software/formal_methods/system &gt;形式化方法：动态系统&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/software/formal_methods/model_checker &gt;形式化方法：模式检查&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;</description>
        </item><item>
            <title>数据库系统</title>
            <link>https://rd806.github.io/passage/cs/database/</link>
            <pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate>
            <guid>https://rd806.github.io/passage/cs/database/</guid>
            <description>&lt;img src=&#34;https://rd806.github.io/passage/cs/database/mysql.jpg&#34; alt=&#34;Featured image of post 数据库系统&#34; /&gt;&lt;p&gt;数据库系统研究的是：&lt;strong&gt;如何用计算机有效地组织和管理数据&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;数据库与dbms&#34;&gt;数据库与DBMS&#xA;&lt;/h2&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;概念&lt;/th&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;数据（Data）&lt;/td&gt;&#xA;          &lt;td&gt;数据库存储的基本对象，数字、文本、图形、音频、视频等均可看作数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;语义&lt;/td&gt;&#xA;          &lt;td&gt;数据的标签，具备语义的数据才可成为信息&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;数据库（Database）&lt;/td&gt;&#xA;          &lt;td&gt;长期存储在计算机内的、有组织的、可共享的数据的集合&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;数据库管理系统（DBMS）&lt;/td&gt;&#xA;          &lt;td&gt;位于用户与操作系统之间的一层数据管理软件，通过调用系统资源操作和管理数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;目录&#34;&gt;目录&#xA;&lt;/h2&gt;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/database/model &gt;关系数据模型&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/database/design &gt;关系数据库程序设计&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/database/recovery &gt;故障恢复&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/database/concurrency &gt;并发控制&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;h2 id=&#34;常见数据库应用&#34;&gt;常见数据库应用&#xA;&lt;/h2&gt;&lt;h3 id=&#34;mysql&#34;&gt;MySQL&#xA;&lt;/h3&gt;&lt;p&gt;MySQL是目前流行的数据库管理系统，使用SQL语法操作和管理。&lt;/p&gt;&#xA;&lt;h4 id=&#34;准备工作&#34;&gt;准备工作&#xA;&lt;/h4&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 安装MYSQL&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install mysql-server&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 启动MySQL服务&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo service mysql start&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 登录MySQL&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mysql -u &lt;span class=&#34;s1&#34;&gt;&amp;#39;用户名&amp;#39;&lt;/span&gt; -p &lt;span class=&#34;s1&#34;&gt;&amp;#39;密码&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h4 id=&#34;配置mysql&#34;&gt;配置MySQL&#xA;&lt;/h4&gt;&lt;p&gt;首先使用命令&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mysql -u root&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;进入MySQL界面，然后操作&lt;/p&gt;&#xA;&lt;h5 id=&#34;设置用户密码&#34;&gt;设置用户密码&#xA;&lt;/h5&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;USER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;root&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IDENTIFIED&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WITH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mysql_native_password&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;你的新密码&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;FLUSH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIVILEGES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;EXIT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;退出后以新的密码即可登录MySQL。&lt;/p&gt;&#xA;&lt;h5 id=&#34;允许远程访问&#34;&gt;允许远程访问&#xA;&lt;/h5&gt;&lt;p&gt;在Shell中输入：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;找到&lt;code&gt;bind-address&lt;/code&gt;，将其修改为&lt;code&gt;0.0.0.0&lt;/code&gt;或注释掉该行。&lt;/p&gt;&#xA;&lt;p&gt;保存后重启服务：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo service mysql restart&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h5 id=&#34;创建新用户&#34;&gt;创建新用户&#xA;&lt;/h5&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;USER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;新用户名&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;%&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IDENTIFIED&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;新密码&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;GRANT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ALL&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIVILEGES&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ON&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;新用户名&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;%&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WITH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;GRANT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;OPTION&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;FLUSH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIVILEGES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;退出后以新的用户名和密码即可登录MySQL。&lt;/p&gt;&#xA;&lt;h4 id=&#34;通用语法&#34;&gt;通用语法&#xA;&lt;/h4&gt;&lt;ol&gt;&#xA;&lt;li&gt;单行或多行书写，&lt;strong&gt;以分号结尾&lt;/strong&gt;。&lt;/li&gt;&#xA;&lt;li&gt;可以使用空格/缩进。&lt;/li&gt;&#xA;&lt;li&gt;SQL语句不区分大小写，关键字建议大写。&lt;/li&gt;&#xA;&lt;li&gt;单行注释：&lt;code&gt;--注释内容&lt;/code&gt;或&lt;code&gt;# 注释内容&lt;/code&gt;；多行注释：&lt;code&gt;/* 注释内容 */&lt;/code&gt;。&lt;/li&gt;&#xA;&lt;li&gt;其他参照&lt;a class=&#34;link&#34; href=&#34;#sql%e8%af%ad%e8%a8%80&#34; &gt;SQL语言&lt;/a&gt;。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;opengauss&#34;&gt;openGauss&#xA;&lt;/h3&gt;&lt;h3 id=&#34;数据库管理可视化&#34;&gt;数据库管理可视化&#xA;&lt;/h3&gt;&lt;p&gt;面对单调的SQL代码是非常无聊的，因此通过软件可视化管理数据库是不错的选择。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;软件&lt;/th&gt;&#xA;          &lt;th&gt;介绍&lt;/th&gt;&#xA;          &lt;th&gt;版本&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.navicat.com.cn/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Navicat&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Navicat是一款综合性的数据库管理软件，允许通过一个界面连接和管理多个数据库（其实这个功能大多数类似软件都有）。&lt;/td&gt;&#xA;          &lt;td&gt;Navicat提供多个版本，其中只有Navicat Premium Lite可免费使用（貌似还要注册一个账号）。&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://dbeaver.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;DBeaver&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;功能与Navicat类似&lt;/td&gt;&#xA;          &lt;td&gt;它提供免费的社区版下载，而且不用注册账号，就像JetBrain全家桶&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.mysql.com/products/workbench/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MySQL Workbench&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;MySQL的官方提供的可视化管理工具&lt;/td&gt;&#xA;          &lt;td&gt;免费，但是没有中文支持。&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;</description>
        </item><item>
            <title>并行计算</title>
            <link>https://rd806.github.io/passage/cs/parallel_computing/</link>
            <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>
            <guid>https://rd806.github.io/passage/cs/parallel_computing/</guid>
            <description>&lt;h2 id=&#34;并行计算概述&#34;&gt;并行计算概述&#xA;&lt;/h2&gt;&lt;h3 id=&#34;并行计算基本概念&#34;&gt;并行计算基本概念&#xA;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;基本概念&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;计算&lt;/td&gt;&#xA;          &lt;td&gt;数学计算、数据处理、IT服务&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;性能&lt;/td&gt;&#xA;          &lt;td&gt;FLOPS（浮点计算数/秒）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;浮点计算能力&lt;/td&gt;&#xA;          &lt;td&gt;计算机主频每时钟周期的浮点指令数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;产生原因&lt;/td&gt;&#xA;          &lt;td&gt;满足不断增长的计算力需求：用多个处理器同时解决一个问题 &lt;br&gt; 计算机硬件与网络技术的发展 &lt;br&gt; 单处理器性能提升受限 &lt;br&gt; 存储、I/O速率远低于处理器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;并行化方法&#34;&gt;并行化方法&#xA;&lt;/h3&gt;&lt;h4 id=&#34;域分解&#34;&gt;域分解&#xA;&lt;/h4&gt;&lt;p&gt;首先确定数据如何划分到各个处理器，然后确定每个处理器所需要做的事情。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;域分解&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;181px&#34; data-flex-grow=&#34;75&#34; height=&#34;1094&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E5%9F%9F%E5%88%86%E8%A7%A3.png&#34; srcset=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E5%9F%9F%E5%88%86%E8%A7%A3_hu_a16ac2907441d7a1.png 800w, https://rd806.github.io/passage/cs/parallel_computing/images/%E5%9F%9F%E5%88%86%E8%A7%A3.png 828w&#34; width=&#34;828&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;任务分解&#34;&gt;任务分解&#xA;&lt;/h4&gt;&lt;p&gt;首先将任务划分到各个处理器，然后确定各个处理器需要处理的数据。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;任务分解&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;298px&#34; data-flex-grow=&#34;124&#34; height=&#34;612&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E4%BB%BB%E5%8A%A1%E5%88%86%E8%A7%A3.png&#34; width=&#34;762&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;流水线&#34;&gt;流水线&#xA;&lt;/h4&gt;&lt;p&gt;将一个任务拆分成多个步骤，通过不同步骤在时间上的重叠达到“并行”的效果。&lt;/p&gt;&#xA;&lt;h2 id=&#34;并行计算的硬件环境&#34;&gt;并行计算的硬件环境&#xA;&lt;/h2&gt;&lt;h3 id=&#34;pram模型&#34;&gt;PRAM模型&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;PRAM&lt;/strong&gt;全称为Parallel Random Access Machine，它具备以下特点：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;每个处理器可同时从共享的内存中读取数据到自己的寄存器&lt;/li&gt;&#xA;&lt;li&gt;每个处理器执行计算过程，数据存储在本地寄存器&lt;/li&gt;&#xA;&lt;li&gt;每个处理器可同时将数据写入到共享的内存（存在潜在冲突）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/PRAM%E6%A8%A1%E5%9E%8B.png&#34; width=&#34;900&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;h4&gt;PRAM模型&lt;/h4&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;PRAM模型可以衍生出以下模型：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;模型&lt;/th&gt;&#xA;          &lt;th&gt;特点&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;EREW&lt;/td&gt;&#xA;          &lt;td&gt;任意两个处理器不能并发读，也不能并发写&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;CREW&lt;/td&gt;&#xA;          &lt;td&gt;可以并发读，但不能并发写&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;CRCW&lt;/td&gt;&#xA;          &lt;td&gt;可以并发读，也可以并发写&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;根据PRAM模型，可以对&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/p/algorithm/#%e5%89%8d%e7%bc%80%e5%92%8c&#34; &gt;前缀求和&lt;/a&gt;作出并行算法设计：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;前缀求和&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;445px&#34; data-flex-grow=&#34;185&#34; height=&#34;409&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://rd806.github.io/passage/cs/parallel_computing/images/%E5%89%8D%E7%BC%80%E6%B1%82%E5%92%8C.png&#34; width=&#34;760&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;处理器&#34;&gt;处理器&#xA;&lt;/h3&gt;&lt;h4 id=&#34;simd体系&#34;&gt;SIMD体系&#xA;&lt;/h4&gt;&lt;p&gt;SIMD是一条指令同时操作多个数据，适合数据级并行的计算机体系结构。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Flynn分类法（Flynn&amp;rsquo;s Taxonomy）是计算机体系结构领域最经典的分类方法之一。它根据指令流（Instruction Stream）——机器执行的指令序列，和数据流（Data Stream）——由指令流调用的数据序列两个维度的&amp;quot;单&amp;quot;（Single）或&amp;quot;多&amp;quot;（Multiple）组合，将计算机体系结构分为四类：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;类型&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;全称&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;指令流&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;数据流&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;典型代表&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;特征&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;SISD&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Single Instruction Single Data&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;单&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;单&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;早期单核CPU（如Intel 8086）、传统冯·诺依曼架构&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;顺序执行，一次处理一个任务的一&amp;gt; 份数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;SIMD&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Single Instruction Multiple Data&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;单&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;多&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;GPU、向量处理器、Intel SSE/AVX指令集&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;一条指令同时操作多个数据，适合数据级并行&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;MISD&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Multiple Instruction Single Data&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;多&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;单&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;极少见，主要用于容错系统（如航天器冗余控制）&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;多个指令同时处理同一数据，理论意义大于实际&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;MIMD&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Multiple Instruction Multiple Data&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;多&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;多&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;多核CPU、分布式计算集群、高性能服务器&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;多个独立指令流处理多个数据流，实现任务级并行&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;多核处理器&#34;&gt;多核处理器&#xA;&lt;/h4&gt;&lt;p&gt;进入21世纪，曾预言“CPU主频18个月翻一番”的摩尔定律不再适用于当下处理器的发展方向。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;限制单核性能主要有以下几个方面：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;功耗墙：CPU越小，单位面积产生的热量越多，散热越困难。&lt;/li&gt;&#xA;&lt;li&gt;存储墙：CPU缓存占据了70%以上的芯片面积，限制了性能的进一步提升。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;多核处理器的特点：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;多个复杂度适中，相对低功耗的处理核心并行工作。&lt;/li&gt;&#xA;&lt;li&gt;CPU时钟频率基本不变、&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;gpu&#34;&gt;GPU&#xA;&lt;/h4&gt;&lt;p&gt;GPU将更多元件用于数据处理，而非控制和存储。&lt;/p&gt;&#xA;&lt;p&gt;可以将GPU视作超大规模并行协处理器和SPMD（单程序多数据）模式，实现了数据并行。&lt;/p&gt;&#xA;&lt;h3 id=&#34;互连网络&#34;&gt;互连网络&#xA;&lt;/h3&gt;&lt;p&gt;静态互连网络：处理单元之间有固定连接的一类网络，在程序执行期间这种点到点的链接保持不变：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;分类&lt;/th&gt;&#xA;          &lt;th&gt;特点&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;一维线性阵列&lt;/td&gt;&#xA;          &lt;td&gt;每个节点只与其左右近邻相连（$N$个节点用$N-1$条边串接）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;二维网孔&lt;/td&gt;&#xA;          &lt;td&gt;每个节点只与其上、下、左、右的近邻相连（边界结点除外）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;二叉树&lt;/td&gt;&#xA;          &lt;td&gt;与完全二叉树的结构类似&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;超立方&lt;/td&gt;&#xA;          &lt;td&gt;更为复杂的空间结构&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;动态网络：用交换开关构成的，可按应用程序的要求动态地改变连接组态。包括总线、交叉开关等&lt;/p&gt;&#xA;&lt;h3 id=&#34;内存访问模式&#34;&gt;内存访问模式&#xA;&lt;/h3&gt;&lt;h3 id=&#34;并行计算系统的体系结构&#34;&gt;并行计算系统的体系结构&#xA;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;体系结构&lt;/th&gt;&#xA;          &lt;th&gt;特点&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;PVP（Parallel Vector Processor）&lt;/td&gt;&#xA;          &lt;td&gt;含有为数不多、功能强大的定制向量处理器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SMP（Symmetric Multiprocessor）&lt;/td&gt;&#xA;          &lt;td&gt;多个处理器通过总线或交叉开关连接到共享存储器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;MMP（Massively Parallel Processor）&lt;/td&gt;&#xA;          &lt;td&gt;处理节点采用微处理器，系统中有物理上的分布式存储器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;并行计算的性能评测&#34;&gt;并行计算的性能评测&#xA;&lt;/h2&gt;&lt;h3 id=&#34;并行计算的性能&#34;&gt;并行计算的性能&#xA;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;指标&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Performance&lt;/td&gt;&#xA;          &lt;td&gt;通常是指机器的速度，定义为程序执行时间的倒数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;程序执行时间&lt;/td&gt;&#xA;          &lt;td&gt;用户的相应时间（访问存储器的时间、CPU时间、I/O时间以及操作系统的开销）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;CPU时间&lt;/td&gt;&#xA;          &lt;td&gt;表示CPU的工作时间，不包括I/O等待时间和运行其他任务的时间&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;计算量的度量&#34;&gt;计算量的度量&#xA;&lt;/h4&gt;&lt;p&gt;工作负载：计算量/任务量&lt;/p&gt;&#xA;&lt;p&gt;并行计算执行时间：$t_p = t_{comp} + t_{paro} + t_{comm}$&lt;/p&gt;&#xA;&lt;p&gt;其中 $t_{comp}$ 为计算时间，$t_{paro}$ 为并行开销时间，$t_{comm}$ 为相互通信时间&lt;/p&gt;&#xA;&lt;h4 id=&#34;性能指标&#34;&gt;性能指标&#xA;&lt;/h4&gt;&lt;p&gt;加速比：串行执行时间与并行执行时间的比值 &lt;/p&gt;&#xA;$$S(n) = \frac{t_s}{t_p}$$&lt;p&gt;计算/通信比：&lt;/p&gt;&#xA;$$\frac{t_{comp}}{t_{comm}}$$&lt;p&gt;效率：&lt;/p&gt;&#xA;$$E = \frac{t_s}{t_p \times n} = \frac{S(n)}{n}$$&lt;p&gt;代价：&lt;/p&gt;&#xA;$$\frac{t_s}{E}$$&lt;h3 id=&#34;内存系统对性能的影响&#34;&gt;内存系统对性能的影响&#xA;&lt;/h3&gt;&lt;p&gt;对很多应用而言，瓶颈在于内存系统，而不是CPU。它包括两个方面：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;延迟：处理器向内存发起访问直至获取数据所需要的时间。&lt;/li&gt;&#xA;&lt;li&gt;带宽：内存系统向处理器传输数据的速率。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;将内存想象为水龙头，则延迟可视为打开水龙头到水流出之间的时间；带宽可视为水开始流出后每秒流出的水量。&lt;/p&gt;&#xA;&lt;p&gt;如果想尽可能快地出水，应当减少延迟；如果想尽快地获得更多的水，应当提升带宽。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;考虑利用时间局部性和空间局部性原理减少延迟&lt;/p&gt;&#xA;&lt;h3 id=&#34;加速比定律&#34;&gt;加速比定律&#xA;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;参数&lt;/th&gt;&#xA;          &lt;th&gt;定义&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$P$&lt;/td&gt;&#xA;          &lt;td&gt;处理器数目&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$W$&lt;/td&gt;&#xA;          &lt;td&gt;问题规模，$W_s$ 表示串行部分，$W_p$ 表示可以并行的部分，则有 $W_s + W_p = W$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$T_s$&lt;/td&gt;&#xA;          &lt;td&gt;串行执行时间&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$T_p$&lt;/td&gt;&#xA;          &lt;td&gt;并行执行时间&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$S$&lt;/td&gt;&#xA;          &lt;td&gt;加速比&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$E$&lt;/td&gt;&#xA;          &lt;td&gt;效率&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;amdahl-定律&#34;&gt;Amdahl 定律&#xA;&lt;/h4&gt;&lt;p&gt;在&lt;strong&gt;计算负载不变&lt;/strong&gt;、通过增加处理器的执行速度达到加速目的的条件下，不断增加并行计算机和处理器的数目，&lt;strong&gt;不可以&lt;/strong&gt;无限制地提升加速比。&lt;/p&gt;&#xA;&lt;p&gt;固定负载的加速公式：&lt;/p&gt;&#xA;$$S = \frac{W_s + W_p}{W_s + \displaystyle \frac{W_p}{P}} = \frac{f+(1-f)}{f+\displaystyle \frac{1-f}{P}} = \frac{P}{1+f(P-1)}$$&lt;p&gt;当 $P \rightarrow \infty$ 时，$\displaystyle S = \frac{1}{f}$&lt;/p&gt;&#xA;&lt;p&gt;若有额外开销 $W_o$&lt;/p&gt;&#xA;$$S = \frac{W_s + W_p}{W_s + \displaystyle \frac{W_p}{P} + W_o} = \frac{P}{1+f(P-1)+W_o \cdot \displaystyle \frac{P}{W}}$$&lt;h4 id=&#34;gustafson-定律&#34;&gt;Gustafson 定律&#xA;&lt;/h4&gt;&lt;p&gt;在提升并行计算机数目的同时增加计算量，&lt;strong&gt;可以&lt;/strong&gt;无限制地提升加速比。&lt;/p&gt;&#xA;$$S = \frac{W_s + P \cdot W_p}{W_s + P \cdot \displaystyle \frac{W_p}{P}} = \frac{W_s + P \cdot W_p}{W_s + W_p} = f+P(1-f) = P - f(P-1)$$&lt;p&gt;加入额外开销：&lt;/p&gt;&#xA;$$S = \frac{W_s + P \cdot W_p}{W_s + W_p + W_o} = \frac{f + P(1-f)}{1+\displaystyle \frac{W_o}{W}}$$&lt;h4 id=&#34;sun-and-ni-定律&#34;&gt;Sun and Ni 定律&#xA;&lt;/h4&gt;&lt;p&gt;令因子 $G(p)$ 表示存储容量增加到 $P$ 倍时工作负载的增加量，所以扩大后的工作负载 $W = fW + (1-f) \cdot G(p) \cdot W$&lt;/p&gt;&#xA;$$S = \frac{f W + (1-f) \cdot G(p) \cdot W}{fW + (1-f) \cdot G(p) \cdot \displaystyle \frac{W}{p}} = \frac{f+(1-f) \cdot G(p)}{f+(1-f) \cdot \displaystyle \frac{G(p)}{p}}$$&#xA;    &lt;blockquote&gt;&#xA;        &lt;ol&gt;&#xA;&lt;li&gt;$G(p) = 1$，就是Amadahl定律&lt;/li&gt;&#xA;&lt;li&gt;$G(p) = p$，就是Gustafson定律&lt;/li&gt;&#xA;&lt;li&gt;$G(p) &amp;gt; p$，相当于计算机负载比存储要求增加得快，此时Sun and Ni加速比更快&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;可扩放性评测&#34;&gt;可扩放性评测&#xA;&lt;/h3&gt;&lt;p&gt;可扩放性反映了计算机系统性能随处理器数的增加而按比例提高的能力。&lt;/p&gt;&#xA;&lt;p&gt;增加规模有利于提高加速比的因素&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;较大的问题可以提高较高的并发度&lt;/li&gt;&#xA;&lt;li&gt;额外开销的增加可能慢于有效计算的增加&lt;/li&gt;&#xA;&lt;li&gt;算法中的串行分量比例不是固定不变的，随问题规模的增加而减小&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;并行程序设计方法&#34;&gt;并行程序设计方法&#xA;&lt;/h2&gt;&lt;p&gt;以下提供一些并行计算的程序设计方法。请注意，这些方法通常不会单一出现，而是综合使用。&lt;/p&gt;&#xA;&lt;p&gt;并行设计方法大体上分为两类：共享内存型（Pthread、OpenMP，CUDA）和分布式计算型（MPI、MapReduce）。&lt;/p&gt;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/parallel_computing/thread &gt;多线程与Pthread&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/parallel_computing/openmp &gt;OpenMP编程&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/parallel_computing/mpi &gt;MPI编程&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/parallel_computing/cuda &gt;GPU编程&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/parallel_computing/multiple &gt;MPI多级混合编程&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/parallel_computing/mapreduce &gt;MapReduce编程&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;h2 id=&#34;并行算法设计&#34;&gt;并行算法设计&#xA;&lt;/h2&gt;&lt;p&gt;算法：计算指令序列（逻辑）&lt;/p&gt;&#xA;&lt;p&gt;串行算法：只有一组计算指令&lt;/p&gt;&#xA;&lt;p&gt;并行算法：一些可同时执行的计算任务的集合，这些计算任务分工合作获得给定问题的求解。&lt;/p&gt;&#xA;&lt;h3 id=&#34;设计思想&#34;&gt;设计思想&#xA;&lt;/h3&gt;&lt;ol&gt;&#xA;&lt;li&gt;并行算法设计并不是串行算法设计的进阶：串行算法的设计思想，一般都基于冯式架构，指令逻辑顺序清晰；并行计算硬件环境没有统一的体系结构。&lt;/li&gt;&#xA;&lt;li&gt;并行算法中部分计算过程可以是串行算法，串行算法中的部分计算过程也可以并行化&lt;/li&gt;&#xA;&lt;li&gt;并行算法的设计，与问题本身以及硬件平台均相关：问题类型与硬件平台类型的组合，能够形成并行算法（程序）设计的模式&lt;/li&gt;&#xA;&lt;li&gt;并行算法的类型：计算密集or数据密集&lt;/li&gt;&#xA;&lt;li&gt;数据结构与算法密不可分&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;一般策略&#34;&gt;一般策略&#xA;&lt;/h3&gt;&lt;h4 id=&#34;串行算法的直接并行化&#34;&gt;串行算法的直接并行化&#xA;&lt;/h4&gt;&lt;p&gt;分析现有串行算法中固有的并行性，直接将其并行化：该方法并不是对所有问题都可行，但对很多应用问题仍不失为一种有效的方法。&lt;/p&gt;&#xA;&lt;p&gt;由串行算法直接并行化的方法是并行算法设计的最常用方法之一，但需要注意以下方面：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;不是所有的串行算法都可以直接并行化；&lt;/li&gt;&#xA;&lt;li&gt;一个好的串行算法未必能并行化为一个好的并行算法；&lt;/li&gt;&#xA;&lt;li&gt;许多数值串行算法可以并行化为有效的数值并行算法。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;重新设计并行算法&#34;&gt;重新设计并行算法&#xA;&lt;/h4&gt;&lt;p&gt;从问题本身的描述出发，根据问题的固有属性，从头设计一个全新的并行算法：这种方法有一定难度，但所设计的并行算法通常更高效。&lt;/p&gt;&#xA;&lt;h4 id=&#34;利用已有的并行算法&#34;&gt;利用已有的并行算法&#xA;&lt;/h4&gt;&lt;p&gt;借助已有的并行算法求解新问题。&lt;/p&gt;&#xA;&lt;h2 id=&#34;pcam方法学&#34;&gt;PCAM方法学&#xA;&lt;/h2&gt;&lt;p&gt;设计并行程序的四个阶段&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;阶段&lt;/th&gt;&#xA;          &lt;th&gt;任务&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;划分（Partitioning）&lt;/td&gt;&#xA;          &lt;td&gt;分解成小的任务，开拓并发性&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;通讯（Communication）&lt;/td&gt;&#xA;          &lt;td&gt;确定诸任务间的数据交换，监测划分的合理性&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;组合 （Agglomeration）&lt;/td&gt;&#xA;          &lt;td&gt;依据任务的局部性，组合成更大的任务&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;映射 （Mapping）&lt;/td&gt;&#xA;          &lt;td&gt;将每个任务分配到处理器上，提高算法的性能&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;划分&#34;&gt;划分&#xA;&lt;/h3&gt;&lt;p&gt;充分开拓算法的并发性和可扩放性；&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;先进行数据分解（域分解），再进行计算功能的分解（功能分解）；&lt;/li&gt;&#xA;&lt;li&gt;使数据集和计算集互不相交；&lt;/li&gt;&#xA;&lt;li&gt;划分阶段忽略处理器数目和目标机器的体系结构；&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;通讯&#34;&gt;通讯&#xA;&lt;/h3&gt;&lt;p&gt;通讯是PCAM设计过程的重要阶段；&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;划分产生的诸任务，一般不能完全独立执行，需要在任务间进行数据交流，从而产生了通讯；&lt;/li&gt;&#xA;&lt;li&gt;功能分解确定了诸任务之间的数据流；&lt;/li&gt;&#xA;&lt;li&gt;诸任务是并发执行的，通讯则限制了这种并发性；&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;通讯模式：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;局部/全局通讯&lt;/li&gt;&#xA;&lt;li&gt;结构化/非结构化通讯&lt;/li&gt;&#xA;&lt;li&gt;静态/动态通讯&lt;/li&gt;&#xA;&lt;li&gt;同步/异步通讯&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;组合&#34;&gt;组合&#xA;&lt;/h3&gt;&lt;p&gt;组合是由抽象到具体的过程，将组合的任务能在一类并行机上有效的执行&lt;/p&gt;&#xA;&lt;p&gt;合并小尺寸任务，减少任务数。如果任务数恰好等于处理器数，则也完成了映射过程。&lt;/p&gt;&#xA;&lt;p&gt;增加任务的粒度和重复计算，可以减少通讯成本。保持映射和扩展的灵活性，降低软件工程成本&lt;/p&gt;&#xA;&lt;h3 id=&#34;映射&#34;&gt;映射&#xA;&lt;/h3&gt;&lt;p&gt;每个任务要映射到具体的处理器（计算资源），定位到运行机器上；&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;任务数大于处理器数时，存在负载平衡和任务调度问题；&lt;/li&gt;&#xA;&lt;li&gt;映射的目标：减少算法的执行时间&lt;/li&gt;&#xA;&lt;li&gt;并发的任务分配到不同的处理器，任务之间存在高通讯的分配到同一处理器&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;映射实际是一种权衡，属于NP完全问题&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;静态映射模式&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;基于数据划分的映射&lt;/li&gt;&#xA;&lt;li&gt;基于任务图划分的映射&lt;/li&gt;&#xA;&lt;li&gt;复合的映射&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;动态映射模式（也称为动态负载均衡，因为负载均衡是动态调度的主要动机）可以是集中式的和分布式的。&lt;/p&gt;&#xA;&lt;p&gt;映射的原则：最小化交互开销&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;最大化数据局部性：只要可能就复用中间数据，重建计算以使数据在较小的窗口内得到重用&lt;/li&gt;&#xA;&lt;li&gt;最小化数据交换量&lt;/li&gt;&#xA;&lt;li&gt;最小化交互的频度&lt;/li&gt;&#xA;&lt;li&gt;最小化竞争和热点&lt;/li&gt;&#xA;&lt;li&gt;计算与通信重叠：使用非阻塞式通信；多线程；预取以隐藏时延&lt;/li&gt;&#xA;&lt;li&gt;使用成组通信而非点对点通信&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;</description>
        </item><item>
            <title>算法设计与分析</title>
            <link>https://rd806.github.io/passage/cs/algorithm/</link>
            <pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate>
            <guid>https://rd806.github.io/passage/cs/algorithm/</guid>
            <description>&lt;img src=&#34;https://rd806.github.io/passage/cs/algorithm/daniil-komov-7lzjMwexxnU-unsplash.jpg&#34; alt=&#34;Featured image of post 算法设计与分析&#34; /&gt;&lt;center&gt;&lt;strong&gt;&lt;p style=&#34;font-size:32px;&#34;&gt;程序 = &lt;a href=&#34;https://rd806.github.io/passage/cs/data-structure/&#34;&gt;数据结构&lt;/a&gt; + 算法&lt;/p&gt;&lt;/strong&gt;&lt;/center&gt;&#xA;&lt;blockquote&gt;&#xA;    &lt;p&gt;计算机科学并不只是关于计算机，就像天文学并不只关于望远镜一样。&lt;/p&gt;&lt;span class=&#34;cite&#34;&gt;&lt;span&gt;― &lt;/span&gt;&lt;span&gt;Edsger Dijkstra&lt;/span&gt;&lt;cite&gt;&lt;/cite&gt;&lt;/span&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;参考资料：&lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1QV4y1m7oo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;点击此处&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;特别感谢由 NoviaMiller 提供的&lt;a class=&#34;link&#34; href=&#34;https://github.com/NoviaMiller/TJU-algorithm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;AI总结&lt;/a&gt;！&lt;/p&gt;&#xA;&lt;h2 id=&#34;算法的基本概念&#34;&gt;算法的基本概念&#xA;&lt;/h2&gt;&lt;p&gt;算法是对特定问题求解的一种描述，是指令的有限序列。&lt;/p&gt;&#xA;&lt;h3 id=&#34;算法的特点&#34;&gt;算法的特点&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;有穷性：在有限步骤内结束，有限时间内完成。&lt;/li&gt;&#xA;&lt;li&gt;确定性：每条指令都是明确的、无二义的。&lt;/li&gt;&#xA;&lt;li&gt;可行性：每条指令都能够被执行。&lt;/li&gt;&#xA;&lt;li&gt;输入：有0个或多个输入变量。&lt;/li&gt;&#xA;&lt;li&gt;输出：有1个或多个输出变量、&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;算法的正确性&#34;&gt;算法的正确性&#xA;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;算法&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;正确算法&lt;/td&gt;&#xA;          &lt;td&gt;对于每一个输入都最终停止，而且产生了正确的输出&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;不正确算法&lt;/td&gt;&#xA;          &lt;td&gt;在某个输入上不停止；对所有输入都停止但对某输入产生不正确的结构&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;近似算法&lt;/td&gt;&#xA;          &lt;td&gt;对所有输入都停止，产生近似正确的解或不多的不正确解&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;调试程序 $\ne$ 程序正确性的证明。程序调试只能证明程序是否有错，不能证明程序正确（无错误）。&lt;/p&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;算法的优劣&#34;&gt;算法的优劣&#xA;&lt;/h3&gt;&lt;p&gt;单纯使用程序执行时间衡量算法的优劣缺乏客观性，因此需要使用独立于具体计算机的客观衡量标准。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;问题的规模：一个或多个整数，作为输入数据量的测度。&lt;/li&gt;&#xA;&lt;li&gt;复杂度：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;时间复杂度：基本运算（原子操作）的执行次数。&lt;/li&gt;&#xA;&lt;li&gt;空间复杂度：算法所需存储空间的大小。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;基本运算：解决给定问题时占支配地位的运算。讨论一个算法的优劣通常只考虑基本运算。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;算法分析的数学基础&#34;&gt;算法分析的数学基础&#xA;&lt;/h2&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;记号&lt;/th&gt;&#xA;          &lt;th&gt;含义&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\lfloor x \rfloor$&lt;/td&gt;&#xA;          &lt;td&gt;小于等于 $x$ 的最大整数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\lceil x \rceil$&lt;/td&gt;&#xA;          &lt;td&gt;大于等于 $x$ 的最小整数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\log n$&lt;/td&gt;&#xA;          &lt;td&gt;$\log n = \log_{2} n$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\lg n$&lt;/td&gt;&#xA;          &lt;td&gt;$\lg n = \log_{10} n$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\ln n$&lt;/td&gt;&#xA;          &lt;td&gt;$\ln n = \log_{\mathrm{e}} n$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;复杂性函数的阶&#34;&gt;复杂性函数的阶&#xA;&lt;/h3&gt;&lt;h4 id=&#34;渐进复杂性&#34;&gt;渐进复杂性&#xA;&lt;/h4&gt;&lt;p&gt;渐进复杂性表达了当输入规模 $n$ 趋近于极限（相当大）时的复杂性 $T(n)$ 。&lt;/p&gt;&#xA;&lt;h4 id=&#34;复杂性阶的三个记号&#34;&gt;复杂性阶的三个记号&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;含义&lt;/th&gt;&#xA;          &lt;th&gt;记号&lt;/th&gt;&#xA;          &lt;th&gt;定义&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;最坏时间复杂度&lt;/td&gt;&#xA;          &lt;td&gt;$\Omega(f(n))$&lt;/td&gt;&#xA;          &lt;td&gt;如果存在 $c&amp;gt;0$ 与正整数 $n_0 \geqslant 1$，当 $n \geqslant n_0$ 时，都有 $T(n) \geqslant c \cdot f(n)$ 成立，则称 $T(n)$ 是 $f(n)$ 的高阶，它给出了算法复杂度的下界&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;最好时间复杂度&lt;/td&gt;&#xA;          &lt;td&gt;$\mathrm{O}(f(n))$&lt;/td&gt;&#xA;          &lt;td&gt;如果存在 $c&amp;gt;0$ 与正整数 $n_0 \geqslant 1$，当 $n \geqslant n_0$ 时，都有 $T(n) \leqslant c \cdot f(n)$ 成立，则称 $T(n)$ 是 $f(n)$ 的低阶，它给出了算法复杂度的上界&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;平均时间复杂度&lt;/td&gt;&#xA;          &lt;td&gt;$\Theta(f(n))$&lt;/td&gt;&#xA;          &lt;td&gt;如果存在 $c_1, c_2 &amp;gt; 0$ 与正整数 $n_0 \geqslant 1$，当 $n \geqslant n_0$ 时，都有 $c_2 f(n) \leqslant T(n) \leqslant c_1 f(n)$ 恒成立，则称 $T(n)$ 与 $f(n)$ 同阶&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;例如，对于 $f(n) = 3n^3+2n^2$，取 $n_0 = 1$，当 $n \geqslant n_0 = 1$ 时：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;取 $c_1 = 5$，有 $T(n) \leqslant 5n^3$ 成立，即有 $T(n) = \Omega(n^3)$&lt;/li&gt;&#xA;&lt;li&gt;取 $c_2 = 3$，有 $T(n) \geqslant 3n^3$ 成立，即有 $T(n) = \mathrm{O}(n^3)$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;综上，$T(n) = \Omega(n^3)$&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;定理：对于任意的 $f(n)$ 和 $g(n)$，$f(n) = \Theta(g(n))$ 当且仅当 $f(n) = \mathrm{O}(g(n))$ 且 $f(n) = \Omega(g(n))$。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;证明：先证明必要性：若 $f(n) = \Theta(g(n))$，则存在 $c_1, c_2 &amp;gt; 0$，$n_0 &amp;gt; 0$，使得当 $n \geqslant n_0$ 时都有 $c_1 g(n) \leqslant f(n) \leqslant c_2 g(n)$，则 $f(n) = \mathrm{O}(g(n))$ 且 $f(n) = \Omega(g(n))$&lt;/p&gt;&#xA;&lt;p&gt;再证明充分性：若 $f(n) = \mathrm{O}(g(n))$ 且 $f(n) = \Omega(g(n))$，&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;由 $f(n) = \mathrm{O}(g(n))$ 可知存在 $c_1, n_1 &amp;gt; 0$，使得当 $n \geqslant n_1$ 时有 $f(n) \leqslant c_1 g(n)$；&lt;/li&gt;&#xA;&lt;li&gt;由 $f(n) = \Omega(g(n))$ 可知存在 $c_2, n_2 &amp;gt; 0$，使得当 $n \geqslant n_2$ 时有 $f(n) \geqslant c_2 g(n)$。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;令 $n_0 = \max \{n_1, n_2\}$，则当 $n&amp;gt;n_0$时，有 $c_2 g(n) \leqslant f(n) \leqslant c_1 f(n)$，即 $f(n) = \Theta(g(n))$&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;严格函数&#34;&gt;严格函数&#xA;&lt;/h4&gt;&lt;p&gt;严格低阶函数集合 &lt;/p&gt;&#xA;$$o(g(n)) = \{ f(n) \mid \forall c&gt;0，\exist n_0 \in \mathbb{N}^*，使得当 n&gt;n_0 时都有 0 \leqslant f(n) \leqslant c \cdot g(n) \}$$&lt;p&gt;严格高阶函数集合 &lt;/p&gt;&#xA;$$\omega(g(n)) = \{ f(n) \mid \forall c&gt;0，\exist n_0 \in \mathbb{N}^*，使得当 n&gt;n_0 时都有 0 \leqslant c \cdot g(n) \leqslant f(n) \}$$&lt;p&gt;严格上界：若 $f(n) \in o(g(n))$，称 $g(n)$ 是 $f(n)$ 的严格上界，记作 $f(n) = o(g(n))$&lt;/p&gt;&#xA;&lt;p&gt;严格下界：若 $f(n) \in \omega(g(n))$，称 $g(n)$ 是 $f(n)$ 的严格下界，记作 $f(n) = \omega(g(n))$&lt;/p&gt;&#xA;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;严格函数的性质：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;若 $f(n) = o(g(n))$，则有 $\displaystyle \lim_{n \to \infty} \frac{f(n)}{g(n)} = 0$&lt;/li&gt;&#xA;&lt;li&gt;若 $f(n) = \omega(g(n))$，当且仅当 $g(n) \in o(f(n))$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;函数阶的性质&#34;&gt;函数阶的性质&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;性质&lt;/th&gt;&#xA;          &lt;th&gt;表达式&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;传递性&lt;/td&gt;&#xA;          &lt;td&gt;$f(n) = \Theta(g(n))$ 且 $g(n) = \Theta(h(n))$，则有 $f(n) = \Theta(h(n))$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;自反性&lt;/td&gt;&#xA;          &lt;td&gt;$f(n) = \Theta(f(n))$，$f(n) = \Omega(f(n))$，$f(n) = O(f(n))$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;对称性&lt;/td&gt;&#xA;          &lt;td&gt;若 $f(n) = \Omega(g(n))$，则有 $g(n) = O(f(n))$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;反对称性&lt;/td&gt;&#xA;          &lt;td&gt;$f(n) = O(g(n))$，当且仅当 $g(n) \in \Omega(f(n))$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;并非所有函数都是可比的，例如 $f(n) = n$ 与 $g(n) = n^{1+\sin n}$ 之间就找不到符合要求的 $n_0$ 和 $c$。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;定义了函数的阶之后，就可以量化程序运行的时间了。例如，对于一台每秒可执行某基本运算 $10^9$ 次的机器，当输入规模为 $60$ 时：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;          &lt;th&gt;复杂度&lt;/th&gt;&#xA;          &lt;th&gt;运行时间&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;算法1&lt;/td&gt;&#xA;          &lt;td&gt;$n$&lt;/td&gt;&#xA;          &lt;td&gt;$6 \times 10^{-8}$ 秒&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;算法2&lt;/td&gt;&#xA;          &lt;td&gt;$n^2$&lt;/td&gt;&#xA;          &lt;td&gt;$3.6 \times 10^{-6}$ 秒&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;算法3&lt;/td&gt;&#xA;          &lt;td&gt;$n^3$&lt;/td&gt;&#xA;          &lt;td&gt;$2.16 \times 10^{-4}$ 秒&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;算法4&lt;/td&gt;&#xA;          &lt;td&gt;$n^5$&lt;/td&gt;&#xA;          &lt;td&gt;$0.013$ 分&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;算法5&lt;/td&gt;&#xA;          &lt;td&gt;$2^n$&lt;/td&gt;&#xA;          &lt;td&gt;$3.66$ 世纪&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;算法6&lt;/td&gt;&#xA;          &lt;td&gt;$3^n$&lt;/td&gt;&#xA;          &lt;td&gt;$1.3 \times 10^{13}$ 世纪&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;由此可得出两个结论：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;多项式时间的算法之间有差距，但一般可接受。&lt;/li&gt;&#xA;&lt;li&gt;指数量级的算法对于较大的 $n$ 无使用价值。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;和的估计与界限&#34;&gt;和的估计与界限&#xA;&lt;/h3&gt;&lt;h4 id=&#34;直接求和&#34;&gt;直接求和&#xA;&lt;/h4&gt;$$\sum_{k=1}^{n} a_k \leqslant n \cdot \max_{1 \leqslant k \leqslant n} a_k$$&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;特别地：$\displaystyle \sum_{k=1}^{n} k \leqslant \sum_{k=1}^{n} n \leqslant n^2$&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;对于所有 $k&amp;gt;0$，若都有 $\displaystyle \frac{a_{k+1}}{a_k} \leqslant r &amp;lt; 1$，则 &lt;/p&gt;&#xA;$$\sum_{k=1}^{n} a_k \leqslant \sum_{k=1}^{n} a_0 r^k \leqslant \frac{a_0}{1-r}$$&lt;h4 id=&#34;求和转换为积分&#34;&gt;求和转换为积分&#xA;&lt;/h4&gt;&lt;p&gt;当 $f(x)$ 单调递增时，有 $\displaystyle \int_{m-1}^{n} f(x) \mathrm{d}x \leqslant \sum_{k=m}^{n} f(x) \leqslant \int_{m}^{n+1} f(x) \mathrm{d}x $&lt;/p&gt;&#xA;&lt;p&gt;当 $f(x)$ 单调递减时，有 $\displaystyle \int_{m}^{n+1} f(x) \mathrm{d}x \leqslant \sum_{k=m}^{n} f(x) \leqslant \int_{m-1}^{n} f(x) \mathrm{d}x $&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;例如，在算法分析中经常出现的 $\log n!$ 可作如下分析：&lt;/p&gt;&#xA;&lt;p&gt;由对数运算性质可知，&lt;/p&gt;&#xA;$$ \log n! = \sum_{k=1}^{n} \log k $$&lt;p&gt; 则有上界：&lt;/p&gt;&#xA;$$ \sum_{k=1}^{n} \log k \leqslant \int_{1}^{n} \log x \mathrm{d}x $$&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/algorithm/images/%E7%A7%AF%E5%88%86%E6%B1%82%E5%92%8C%E7%9A%84%E4%B8%8A%E7%95%8C.png&#34; width=&#34;900&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;h4&gt;积分求和的上界&lt;/h4&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;同理，可知下界：&lt;/p&gt;&#xA;$$ \sum_{k=1}^{n} \log k \geqslant \int_{2}^{n+1} \log (x-1) \mathrm{d}x \xlongequal{t = x-1} \int_{1}^{n} \log t \mathrm{d}t = \int_{1}^{n} \log x \mathrm{d}x$$&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/algorithm/images/%E7%A7%AF%E5%88%86%E6%B1%82%E5%92%8C%E7%9A%84%E4%B8%8B%E7%95%8C.png&#34; width=&#34;900&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;h4&gt;积分求和的下界&lt;/h4&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;综合两式可得：$\log n! = \Theta(n\log n)$，该求和公式在 &lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/sort#%e5%bf%ab%e9%80%9f%e6%8e%92%e5%ba%8f&#34; &gt;快速排序&lt;/a&gt; 等算法中有重要作用。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;递归方程&#34;&gt;递归方程&#xA;&lt;/h3&gt;&lt;p&gt;递归方程是用递归形式描述算法时间复杂度的有效工具，通过求解递归方程可以快速得知算法的时间复杂度信息。&lt;/p&gt;&#xA;&lt;p&gt;例如：归并排序的递归方程&lt;/p&gt;&#xA;$$T(n) = \left\{\begin{align*} &amp;\Theta(1), &amp; n=1 \\ &amp;2T\displaystyle \left(\frac{n}{2}\right) + \Theta(n), &amp; n \geqslant 1 \end{align*}\right.$$&lt;h4 id=&#34;逐层展开法&#34;&gt;逐层展开法&#xA;&lt;/h4&gt;&lt;p&gt;对于递归方程 &lt;/p&gt;&#xA;$$T(n) = n + 3T\left(\left\lfloor \frac{n}{4} \right\rfloor\right)$$&lt;p&gt;将其展开可得：&lt;/p&gt;&#xA;$$\begin{align*} T(n) &amp;= n + 3T\left(\left\lfloor \frac{n}{4} \right\rfloor\right) \\\\ &amp;= n + 3\left(\left\lfloor \frac{n}{4} \right\rfloor + 3T\left( \left\lfloor \frac{n}{16} \right\rfloor \right)\right) \\\\ &amp;= n + 3\left\lfloor \frac{n}{4} \right\rfloor + 3^2 \left\lfloor \frac{n}{4^2} \right\rfloor + 3^3 \left\lfloor \frac{n}{4^3} \right\rfloor + \cdots + 3^k T \left(\left\lfloor \frac{n}{4^k} \right\rfloor \right) \end{align*}$$&lt;p&gt;深度 $k = \log_{4}n$，最底层有 $3^k = 3^{\log_{4}n} = n^{\log_{4}3}$ 个，则有&lt;/p&gt;&#xA;$$T(n) = \sum_{i=0}^{(\log_{4}n) - 1} 3^i \cdot \frac{n}{4^i} + \Theta(n^{\log_{4}3}) \leqslant 4n + \Theta(n^{\log_{4}3}) = \mathrm{O}(n)$$&lt;h4 id=&#34;变量替换法&#34;&gt;变量替换法&#xA;&lt;/h4&gt;&lt;p&gt;设递归方程为：&lt;/p&gt;&#xA;$$T(n) = 2T(\sqrt{n}) + \log n$$&lt;p&gt;令 $m = \log n$，则 $n = 2^m$，$\displaystyle T(2^m) = 2T\left(2^{\frac{m}{2}}\right) + m$。再令 $S(m) = T(2^m)$，则 $\displaystyle S\left(\frac{m}{2}\right) = T\left(2^{\frac{m}{2}}\right)$&lt;/p&gt;&#xA;&lt;p&gt;于是 &lt;/p&gt;&#xA;$$S(m) = 2S\left(\frac{m}{2}\right) + m = \Theta(m \log m)$$&lt;p&gt;回代可得 $T(n) = \Theta(\log n (\log (\log n)))$&lt;/p&gt;&#xA;&lt;h4 id=&#34;master定理&#34;&gt;Master定理&#xA;&lt;/h4&gt;&lt;p&gt;对于形如 $\displaystyle T(n) = a \cdot T\left(\frac{n}{b}\right) + f(n)$ 的递归方程（其中 $a \geqslant 1$，$b \geqslant 1$ 是常数，$f(n)$ 是正函数）：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;若 $f(n) = \mathrm{O} (n^{(\log_{b} a)-\varepsilon})$，常数 $\varepsilon &amp;gt; 0$，则有 $T(n) = \Theta(n^{\log_{b}a})$&lt;/li&gt;&#xA;&lt;li&gt;若 $f(n) = \Theta(n^{\log_{b} a})$，则有 $T(n) = \Theta(n^{\log_b a} \log n)$&lt;/li&gt;&#xA;&lt;li&gt;若 $f(n) = \Omega(n^{(\log_{b} a) + \varepsilon})$，常数 $\varepsilon &amp;gt; 0$，且对所有 $n$，都有 $\displaystyle af\left(\frac{n}{b}\right) \leqslant c \cdot f(n)$ （$c&amp;gt;1$ 且为常数），则有 $T(n) = \Theta(f(n))$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;直观理解：用 $f(n)$ 与 $n^{\log_b a}$ 的阶比较&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;若 $n^{\log_b a}$ 的阶更大，即 $f(n)$ 的阶不仅小于 $n^{\log_b a}$，而且还小于 $n^{\log_b a}/n^{\varepsilon}$，则 $T(n) = \Theta(n^{\log_b a})$&lt;/li&gt;&#xA;&lt;li&gt;若 $f(n) = \Theta(n^{\log_b a})$，即 $f(n)$ 与 $n^{\log_b a}$ 同阶，则有 $T(n) = \Theta(n^{\log_b a} \log n) = \Theta(f(n)\log n)$&lt;/li&gt;&#xA;&lt;li&gt;若 $f(n)$ 的阶更大，即 $f(n)$ 的阶不仅大于 $n^{\log_b a}$，而且还大于 $n^{\log_b a} \cdot n^{\varepsilon}$，则 $T(n) = \Theta(f(n))$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;details&gt;&#xA;    &lt;summary&gt;Master定理的证明（点击展开）&lt;/summary&gt;&#xA;&lt;p&gt;对 $\displaystyle T(n) = a T\left(\frac{n}{b}\right) + f(n)$ 展开可得 &lt;/p&gt;&#xA;$$ T(n) = \Theta(n^{\log_b a}) + \sum_{i=0}^{k-1} a^i \cdot f(\frac{n}{b^i}) $$&lt;p&gt; 其中 $n = b^k$，$k = \log_b n$，$a^k = a^{\log_b n} = n^{\log_b a}$&lt;/p&gt;&#xA;&lt;p&gt;令 $\displaystyle g(n) = \sum_{i=0}^{k-1} a^i f\left( \frac{n}{b^i} \right)$， 则有 $T(n) = \Theta(n^{\log_b a}) + g(n)$&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;若 $f(n) = \mathrm{O} (n^{(\log_b a) - \varepsilon})$，则有&#xA;&lt;/p&gt;&#xA;$$\begin{align*} g(n) &amp;= \mathrm{O} \left(\sum_{i=0}^{k-1} a^i \left(\frac{n}{b^i}\right)^{(\log_b a)-\varepsilon} \right) = \mathrm{O} \left( n^{(\log_b a)-\varepsilon} \sum_{i=0}^{k-1} \left(\frac{ab^{\varepsilon}}{b^{\log_b a}}\right)^i \right) \\ &amp;= \mathrm{O} \left( n^{(\log_b a)-\varepsilon} \frac{n^{\varepsilon} - 1}{b^{\varepsilon} - 1} \right) = \mathrm{O} (n^{\log_b a}) \end{align*}$$&lt;p&gt;&#xA;故 $T(n) = \Theta(n^{\log_b a}) + g(n) = \Theta(n^{\log_b a})$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;若 $f(n) = \Theta(n^{\log_b a})$，则有&#xA;&lt;/p&gt;&#xA;$$\begin{align*} g(n) &amp;= \Theta \left( \sum_{i=0}^{k-1} a^i \frac{n}{b^i}^{\log_b a} \right) = \Theta \left( n^{\log_b a} \sum_{i=0}^{k-1} 1 \right) \\ &amp;= \Theta(n^{\log_b a} k) = \Theta(n^{\log_b a} \log_b n) = \Theta(n^{\log_b a} \log n) \end{align*}$$&lt;p&gt;&#xA;故 $T(n) = \Theta(n^{\log_b a}) + g(n) = \Theta(n^{\log_b a} \log n)$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;若 $f(n) = \Omega(n^{(\log_b a) + \varepsilon})$，且对所有充分大的 $n$ 有&#xA;&lt;/p&gt;&#xA;$$\begin{align*} a f\left(\frac{n}{b}\right) &amp;\leqslant c f(n) \\ a f\left(\frac{n}{b^2}\right) &amp;\leqslant c f\left(\frac{n}{b}\right) \\ &amp;\cdots \\ a f\left(\frac{n}{b^i}\right) &amp;\leqslant c f\left(\frac{n}{b^{i-1}}\right) \end{align*}$$&lt;p&gt;&#xA;两边分别相乘得 $\displaystyle a^i f\left(\frac{n}{b^i}\right) \leqslant c^i f(n)$，则有 &lt;/p&gt;&#xA;$$g(n) = \sum_{i=0}^{k-1} a^i f\left(\frac{n}{b^i}\right) \leqslant \sum_{i=0}^{k-1} c^i f(n) = f(n) \sum_{i=0}^{k-1} c^i \leqslant f(n) \cdot \frac{1}{1-c} = \Theta(f(n))$$&lt;p&gt; 故 $T(n) = \Theta(n^{\log_b a}) + g(n) = \Theta(f(n))$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/details&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;推广形式：若 $f(n) = \Theta(n^{\log_b a} \log^{k} n)$，其中 $k \geqslant 0$，则有 &lt;/p&gt;&#xA;$$T(n) = \Theta(n^{\log_b a} \log^{k+1} n)$$&#xA;    &lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;算法实例&#34;&gt;算法实例&#xA;&lt;/h2&gt;&lt;p&gt;这里仅给出一些算法的案例。&lt;/p&gt;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/algorithm/recurrence &gt;算法：递归法&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/algorithm/divide_and_conquer &gt;算法：分治法&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/algorithm/greedy &gt;算法：贪心法&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/algorithm/dynamic &gt;算法：动态规划&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/algorithm/backtrack &gt;算法：回溯法&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/algorithm/bnb &gt;算法：分支限界法&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/algorithm/other &gt;其他算法&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;h2 id=&#34;np问题分析&#34;&gt;NP问题分析&#xA;&lt;/h2&gt;&lt;p&gt;本部分我们不再研究具体的算法，而是抽象地研究算法解决的这些计算问题。即对于给定的问题，我们关注于：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;是否可以计算？&lt;/li&gt;&#xA;&lt;li&gt;如果可以计算，如何判断是计算易解的还是难解的？&lt;/li&gt;&#xA;&lt;li&gt;如果是难解的，如何判断与哪些已知难解问题是等价的？&lt;/li&gt;&#xA;&lt;li&gt;如果不可以计算，如何证明？&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;抽象问题 $Q$ 定义为问题实例空间 $I$ 和问题解空间 $S$ 上的二元关系：$Q = (I, S)$。&lt;/p&gt;&#xA;&lt;h3 id=&#34;决策问题与优化问题&#34;&gt;决策问题与优化问题&#xA;&lt;/h3&gt;&lt;p&gt;决策问题（Decision problem）：只要求回答“Yes”或“No”的问题，它的解空间只含有两个元素 $\{\text{yes}, \text{no}\}$，也称为判定问题。如判断图中两点之间是否存在长度不超过 $k$ 的路径。&lt;/p&gt;&#xA;&lt;p&gt;优化问题（Optimization problem）：要求在所有的可行解里找出使得目标函数最大或最小的解。如找出图中两点之间的最短路径。&lt;/p&gt;&#xA;&lt;p&gt;任何优化问题，都可以转化为相应的决策问题。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;定义决策问题的阈值：转化为一个“是否存在满足该约束的解”的问题。&lt;/li&gt;&#xA;&lt;li&gt;利用&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/algorithm/other#%e4%ba%8c%e5%88%86%e7%ad%94%e6%a1%88&#34; &gt;二分法算法&lt;/a&gt;逼近优化解：通过决策问题解决原优化问题。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;例如，对于旅行商问题（TSP）：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;优化问题描述：找出图中长度最小的汉密尔顿回路。&lt;/li&gt;&#xA;&lt;li&gt;决策问题描述：是否存在一条长度 $\leqslant k$ 的汉密尔顿回路。&lt;/li&gt;&#xA;&lt;li&gt;二分搜索：首先确定目标函数的下界 $L = 0$ 和上界 $U = \Sigma e_i$ ，然后在区间 $[L,U]$ 内进行二分搜索，取中点 $\displaystyle k = \frac{L+U}{2}$，调用决策问题算法：若答案为“yes”，说明最优值 $\leqslant k$ ，更新 $U = k$；若答案为“No”，说明最优值 $&amp;gt; k$，更新 $L=k+1$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;优化问题转化为决策问题的复杂度分析：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;设二分搜索算法的时间复杂度为 $T_b$，解决对应决策问题的算法的时间复杂度为 $T_d$，则通过二分搜索结合决策问题的解法求解优化问题时，总的时间复杂度为&#xA;$$T_o = \mathrm{O} (T_b \cdot T_d)$$&lt;/li&gt;&#xA;&lt;li&gt;二分搜索的时间复杂度 $T_b$ 取决于参数 $k$ 的取值范围（长度）。若 $k$ 的取值上限（长度）是输入实例规模 $n$ 的多项式函数，则 $T_b$ 是 $\mathrm{O} (\log 𝑛)$，即具有多项式对数时间复杂度。此时，整体时间复杂度 $T_o$ 与 $T_d$ 属于同一复杂度量级。&lt;/li&gt;&#xA;&lt;li&gt;因而求解决策问题可以近似求解优化问题，这表明优化问题至少与相应的决策问题一样难。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;问题的难易&#34;&gt;问题的难易&#xA;&lt;/h3&gt;&lt;p&gt;易解问题（Tractable problems）: 如果问题 $Q$ 存在一个多项式界的求解算法，则称问题 $Q$ 为易解（计算）问题（computationally tractable）。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;易解问题算法的上界是多项式界，例如 $\log n$，$n\log n$，$n^2$ 等。这类问题复杂性的上界约束只适用于合理的输入实例尺寸。&lt;/p&gt;&#xA;&lt;p&gt;当前不是易解的问题，将来可能会变为易解问题。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;难解问题（Intractable problems）：不存在多项式界求解算法的问题，即求解该问题算法的复杂性至少是指数级的。&lt;/p&gt;&#xA;&lt;p&gt;不可解问题（unsolvable problem）：不能被确定型图灵机求解的计算问题，即不存在任何算法能够求解的计算问题，通常也称为不可判定问题（Undecidable）。例如停机问题。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;停机问题可以描述为：是否存在一个程序 $P$，对于任意输入的程序 $w$，能够判断 $w$ 会在有限时间内结束或者死循环。&lt;/p&gt;&#xA;&lt;p&gt;假设停机问题有解，则存在算法&lt;code&gt;halt(P,I)&lt;/code&gt;可以判断对于输入&lt;code&gt;I&lt;/code&gt;时程序&lt;code&gt;P&lt;/code&gt;是否停机，即：&lt;/p&gt;&#xA;$$\text{halt}(P,I) = \left\{ \begin{matrix} \begin{align*} &amp; \text{Yes} &amp; \text{if输入I, P停机} \\ &amp; \text{No} &amp; \text{if输入I, P进入死循环} \end{align*} \end{matrix} \right.$$&lt;p&gt;构造下面的程序 $Z(P)$，它实现了当程序 $P$ 读入其本身 $P$ 时，如果&lt;code&gt;halt&lt;/code&gt;算法判定其停机，则 $Z$ 进入死循环，否则 $Z$ 停机：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-c&#34; data-lang=&#34;c&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;Z&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;P&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nl&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;halt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;P&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;P&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;k&#34;&gt;goto&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;halt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ol&gt;&#xA;&lt;li&gt;Case 1：程序 $Z$ 关于输入 $Z$ 停机：&lt;code&gt;halt&lt;/code&gt;判定其停机，而程序 $Z$ 判定其进入死循环。&lt;/li&gt;&#xA;&lt;li&gt;Case 2：程序 $Z$ 关于输入 $Z$ 进入死循环：&lt;code&gt;halt&lt;/code&gt;判定其进入死循环，而程序 $Z$ 判定其停机&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;因而&lt;code&gt;halt(P,I)&lt;/code&gt;不存在，停机问题是不可解（计算）的！&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;合理的输入尺寸&#34;&gt;合理的输入尺寸&#xA;&lt;/h4&gt;&lt;p&gt;满足以下两个条件的输入为合理的输入尺寸：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;期望的输出与输入密切相关。&lt;/li&gt;&#xA;&lt;li&gt;输入可以被确定编码。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;ul&gt;&#xA;&lt;li&gt;在《算法》教材里，查找含有“NP 问题” 的段落：合理；&lt;/li&gt;&#xA;&lt;li&gt;在整个互联网里，查找含有“NP 问题”的网页：不合理；&lt;/li&gt;&#xA;&lt;li&gt;在人类基因组里，查找某个基因：合理；&lt;/li&gt;&#xA;&lt;li&gt;在所有物种里，查找某个基因：不合理。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;难解问题的时效性&#34;&gt;难解问题的时效性&#xA;&lt;/h4&gt;&lt;p&gt;难解问题不一定永远不能转变为易解问题。&lt;/p&gt;&#xA;&lt;p&gt;案例：素数检验问题（给定任意正整数 $n$，检验 $n$ 是否存在大于 $1$ 的整数因子）&lt;/p&gt;&#xA;&lt;p&gt;直到 2004 年，AKS（M. Agrawal, N. Kayal, and N. Saxena）在美国数学年报上提出了复杂性是 $n$ 位数的多项式函数的算法。&lt;/p&gt;&#xA;&lt;h3 id=&#34;问题难的原因&#34;&gt;问题难的原因&#xA;&lt;/h3&gt;&lt;h4 id=&#34;输入实例的长度&#34;&gt;输入实例的长度&#xA;&lt;/h4&gt;&lt;p&gt;在算法复杂性理论中，输入实例的长度是度量一个计算问题规模的基本单位，是分析算法时间复杂度和空间复杂度的基础。&lt;/p&gt;&#xA;&lt;p&gt;输入实例长度通常是指描述该输入所需的比特数，即用某种固定编码方式将输入表示为二进制字符串时的长度。&lt;/p&gt;&#xA;&lt;p&gt;设有一个计算问题，其输入是一个字符串 $x \in \Sigma$，其中 $\Sigma$ 是某个有限字符集（如 $\{0, 1\}$）。那么输入实例 $x$ 的长度可以形式化地表示为 $|x|$，即表示这个字符串所需字符的个数。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;注意：算法复杂性研究的是输入实例长度与复杂性之间的关系，而非输入特征。当我们用近似符号表示算法复杂性时，需要判断输入特征与输入长度是否满足多项式关系：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;是：可以使用近似符号表示输入特征与复杂性的关系。&lt;/li&gt;&#xA;&lt;li&gt;否：不能直接使用，需要推导输入长度与复杂性的关系。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;例如对于0/1背包问题，输入实例 $n$，$c$，$w=(w_1, w_2, \cdots, w_n)$，$p=(p_1, p_2, \cdots, p_n)$。则输入实例长度可表示为&#xA;&lt;/p&gt;&#xA;$$\begin{align*} m &amp;= \log n + \log c + \sum \log p_i + \sum\log w_i \\ &amp;&lt; \log n + \log c + n \log c + n \log c \\ &amp;= \log n + \log c + 2n\log c \\ &amp;= \Theta(n \log c)\end{align*}$$&lt;p&gt;&#xA;所以 $T = \Theta(nc) = \Theta(n2^m)$ 是伪多项式界。&lt;/p&gt;&#xA;&lt;h4 id=&#34;非确定性算法&#34;&gt;非确定性算法&#xA;&lt;/h4&gt;&lt;p&gt;非确定性算法指的是算法多次运行同样的输入实例时，可能表现出不同的行为（例如某个时刻有多个动作可供选择），从而导致不同的运行结果。&lt;/p&gt;&#xA;&lt;p&gt;导致不确定的原因:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;概率算法：动作（指令）的执行依赖于随机数的产生。&lt;/li&gt;&#xA;&lt;li&gt;并发算法：动作（指令）的执行结果依赖于竞态条件。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;问题难的等价性&#34;&gt;问题难的等价性&#xA;&lt;/h3&gt;&lt;h4 id=&#34;p类问题&#34;&gt;P类问题&#xA;&lt;/h4&gt;&lt;p&gt;$\text{P}$ 类问题：能够被确定性图灵机在多项式时间内求解的决策问题集合。&lt;/p&gt;&#xA;&lt;p&gt;$\text{P}$ 类问题的性质：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;高效性：多项式时间复杂性意味着算法的运行时间增长率是温和的、可控的，不会随输入规模 $n$ 的增加而呈指数级爆炸。&lt;/li&gt;&#xA;&lt;li&gt;多项式时间可解：任何在图灵机上多项式时间可解的问题，在任何合理的计算模型（包括现代计算机）上，也是多项式时间可解的。&lt;/li&gt;&#xA;&lt;li&gt;封闭性： $\text{P}$ 类对多项式时间的加法、乘法及复合运算是封闭的。这意味着多个 $\text{P}$ 类算法的组合运算结果仍属于 $\text{P}$ 类。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;np类问题&#34;&gt;NP类问题&#xA;&lt;/h4&gt;&lt;p&gt;当且仅当存在一个验证算法 $V$（Verifier）和一个多项式 $p$，满足：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;多项式时间验证：对于任意输入实例 $w$ 和证书 $c$，验证算法 $V$ 的运行时间是输入规模 $|w|$ 的多项式函数，即&#xA;$$T(V(w,c)) = \mathrm{O}(p(|w| + |c|))$$&lt;/li&gt;&#xA;&lt;li&gt;证书存在性：对于任意实例 $w$&#xA;&lt;ul&gt;&#xA;&lt;li&gt;如果 $w$ 是 $Q$ 的一个 $\text{YES}$ 实例（即 $w \in Q$），则存在一个证书 $c$ 使得验证通过，即&#xA;$$V(w, c) = \text{YES}$$&lt;/li&gt;&#xA;&lt;li&gt;所有满足条件的证书 $c$ 的长度 $|c|$ 具有关于输入大小的多项式界，即&#xA;$$|c| = \mathrm{O}(p(|w|))$$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;npc类问题&#34;&gt;NPC类问题&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;当且仅当存在一个多项式界的确定性算法 $T$ 满足：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;对于 $X$ 的每个输入实例 $x$，$T$ 生成一个实例 $T(x)$；&lt;/li&gt;&#xA;&lt;li&gt;$x$ 是 $X$ 的一个合法输入实例且对应 $\text{YES}$ 答案当且仅当 $T(x)$ 是 $Y$ 的一个合法输入实例且对应 $\text{YES}$ 答案。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;此时称问题 $X$ 可以&lt;strong&gt;多项式地规约&lt;/strong&gt;到问题 $Y$，记做 $X \leqslant_P Y$。&lt;/p&gt;&#xA;&lt;p&gt;$X \leqslant_P Y$ 意味着 $X$ 至多与 $Y$ 一样难。&lt;/p&gt;&#xA;&lt;p&gt;如果 $X \leqslant_P Y$ 且 $Y$ 属于 $\text{P}$ 类问题，那么 $X$ 也属于 $\text{P}$ 类问题。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;如果所有的 $\text{NP}$ 类问题都可以多项式地规约到问题 $Q$，那么称 $Q$ 为 $\text{NP-hard}$ 问题（$\text{NPH}$）。&lt;/p&gt;&#xA;&lt;p&gt;$\text{NP-hard}$ 至少和所有 $\text{NP}$ 问题一样难，但它的解可能无法在多项式时间内被验证。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;常见的 $\text{NP-hard}$ 问题：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;3-SAT（布尔可满足性问题）：最万能的起点。&lt;/li&gt;&#xA;&lt;li&gt;旅行商问题（TSP）：常用于路径、网络、图论类问题。&lt;/li&gt;&#xA;&lt;li&gt;背包问题：常用于资源分配、调度类问题。&lt;/li&gt;&#xA;&lt;li&gt;顶点覆盖/团问题：常用于社交网络、图匹配类问题。&lt;/li&gt;&#xA;&lt;li&gt;集合覆盖：常用于选点、选址、广告投放类问题。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;如果问题 $Q$ 是 $\text{NP-hard}$ 问题并且也属于 $\text{NP}$ 类问题，那么称 $Q$ 为 NP Complete（$\text{NPC}$）问题。&lt;/p&gt;&#xA;&lt;p&gt;$\text{NPC}$ 是 $\text{NP}$ 和 $\text{NP-hard}$ 的交集，即 $\text{NPC} = \text{NP} \cap \text{NP-hard}$。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;NP问题之间的关系&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;675px&#34; data-flex-grow=&#34;281&#34; height=&#34;322&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://rd806.github.io/passage/cs/algorithm/images/NP%E9%97%AE%E9%A2%98%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB.png&#34; srcset=&#34;https://rd806.github.io/passage/cs/algorithm/images/NP%E9%97%AE%E9%A2%98%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB_hu_786bf14e8af47055.png 800w, https://rd806.github.io/passage/cs/algorithm/images/NP%E9%97%AE%E9%A2%98%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB.png 906w&#34; width=&#34;906&#34;&gt;&lt;/p&gt;&#xA;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;问题属于 $\text{NP-hard}$ 但不属于 $\text{NP}$ 的核心特征就是：问题极难求解，且即使给你一个答案，你也几乎无法在多项式时间内验证它是否正确。&lt;/p&gt;&#xA;&lt;p&gt;通常，不可解问题（如停机问题）、无法“判定”的最优化问题、需要“找最优解”的搜索问题、非“多项式界限”的验证问题等问题即属于 $\text{NP-hard}$ 但不是 $\text{NP}$ 问题。&lt;/p&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;$\text{NPC}$ 问题的性质：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;封闭性：所有的 $\text{NPC}$ 问题关于多项式规约是封闭的；&lt;/li&gt;&#xA;&lt;li&gt;自反性：任何问题 $Q$ 可规约到自身；&lt;/li&gt;&#xA;&lt;li&gt;传递性：如果 $A$ 规约到 $B$，$B$ 规约到 $C$，则 $A$ 规约到 $C$。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;如果能够找到一个 $\text{NPC}$ 问题的多项式算法，那么 $\text{P} = \text{NP}$。&lt;/p&gt;&#xA;&lt;p&gt;$\text{P} = \text{NP}$ 问题位于七个“千僖年数学难题”之首，迄今无解。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;</description>
        </item><item>
            <title>计算机网络</title>
            <link>https://rd806.github.io/passage/cs/network/</link>
            <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
            <guid>https://rd806.github.io/passage/cs/network/</guid>
            <description>&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;本文较多地参考了 &lt;a class=&#34;link&#34; href=&#34;https://www.csgraduates.com/computer_network/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;计算机考研杂货铺&lt;/a&gt; 的相关内容，在此感谢这位大佬！&lt;/p&gt;&#xA;&lt;p&gt;图片基本来自《计算机网络：自顶向下方法（第8版）》（&lt;em&gt;Computer Networking: A Top-Down Approach 8th edition&lt;/em&gt;）的官方英文课件。&lt;/p&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;概述&#34;&gt;概述&#xA;&lt;/h2&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;概念&lt;/th&gt;&#xA;          &lt;th&gt;定义&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;网络&lt;/td&gt;&#xA;          &lt;td&gt;节点和边之间的无向关系&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;计算机网络&lt;/td&gt;&#xA;          &lt;td&gt;联网的计算机构成的系统，包括主机节点（Web应用）和数据交换节点 （路由器）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;互联网&lt;/td&gt;&#xA;          &lt;td&gt;许多网络通过互联方式联系在一起。&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;互联网是设备和协议的集合体。&lt;/p&gt;&#xA;&lt;p&gt;从“组成结构”看互联网：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;组成结构&lt;/th&gt;&#xA;          &lt;th&gt;定义&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;网络边缘（Internet edge）&lt;/td&gt;&#xA;          &lt;td&gt;包括客户端和服务器，接入网和物理介质&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;网络核心（Internet core）&lt;/td&gt;&#xA;          &lt;td&gt;互相连接的路由器，也称作“网络之网络”&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;从“提供服务”看互联网：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;提供服务&lt;/th&gt;&#xA;          &lt;th&gt;定义&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;协议（protocol）&lt;/td&gt;&#xA;          &lt;td&gt;定义了网络实体之间发送和接收消息的格式、顺序以及在消息传输、接收时采取的动作&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;标准（RFC）&lt;/td&gt;&#xA;          &lt;td&gt;由IETF制定，定义消息的格式、信息发送的顺序等内容&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;网络边缘&#34;&gt;网络边缘&#xA;&lt;/h3&gt;&lt;h4 id=&#34;主机&#34;&gt;主机&#xA;&lt;/h4&gt;&lt;p&gt;包括客户端和服务器，任务是发送数据包。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;数据包：将应用程序产生的消息分解成的较小的块称为数据包，长度通常记作 $L$，单位为比特。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;记互联网的传输速率为 $R$（也称为链路容量或带宽，单位 $\text{bits/s}$），则可定义数据包传输延迟为将 $L$ 比特数据包传送到链路所需的时间 &lt;/p&gt;&#xA;$$D = \frac{L}{R}$$&lt;h4 id=&#34;接入网&#34;&gt;接入网&#xA;&lt;/h4&gt;&lt;p&gt;接入网连接主机与边缘路由，包括以下几类：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;类型&lt;/th&gt;&#xA;          &lt;th&gt;特点&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;线缆接入&lt;/td&gt;&#xA;          &lt;td&gt;HFC（光纤/同轴电缆混合）连接。下行40Mbps-1.2Gbps，上行30-100Mbps&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;数字接入&lt;/td&gt;&#xA;          &lt;td&gt;利用现有的有线电话线路连接。下行24-52Mbps，上行3.5-16Mbps&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;无线接入&lt;/td&gt;&#xA;          &lt;td&gt;无线局域网（WLAN），范围不超过一个建筑物，速率在450Mbps &lt;br&gt; 蜂窝网络：由运营商提供，范围在10km数量级，速率在10Mbps&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;物理介质&#34;&gt;物理介质&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;概念&lt;/th&gt;&#xA;          &lt;th&gt;含义&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;物理链路&lt;/td&gt;&#xA;          &lt;td&gt;数据发送和接收端之间的物理连接&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;导向性介质&lt;/td&gt;&#xA;          &lt;td&gt;信号在固体介质中传播，如铜、光纤、同轴电缆&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;非导向性介质&lt;/td&gt;&#xA;          &lt;td&gt;信号自由传播，如无线电磁波&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;常用的物理介质&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;介质&lt;/th&gt;&#xA;          &lt;th&gt;特点&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;双绞线（TP）&lt;/td&gt;&#xA;          &lt;td&gt;由两根绝缘铜线组成，之间呈螺旋形地绞在一起。五类线可达100Mbps-1Gbps，六类线可达10Gbps&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;同轴电缆&lt;/td&gt;&#xA;          &lt;td&gt;由两个同心铜导体组成，可双向传输，拥有多个通道，每个通道可达100Mbps&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;光纤&lt;/td&gt;&#xA;          &lt;td&gt;由玻璃纤维组成，利用光的反射来传递光信号。高速点对点传输速率可达10-100Gbps，且不受电磁干扰&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;电磁波&lt;/td&gt;&#xA;          &lt;td&gt;信号分布在电磁波的各个频段，受反射、遮挡、干扰的影响较大。常见的有WiFi、蜂窝网络、蓝牙、卫星信号等&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;网络核心&#34;&gt;网络核心&#xA;&lt;/h3&gt;&lt;p&gt;网络核心可以看作一系列互相连接的路由器，每个路由器都有多个输入端和输出端。网络核心不运行应用程序，只转发数据包。它包含两大基本功能：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;转发（交换）：将到达的数据包从路由器的输入链路移动到输出链路。&lt;/li&gt;&#xA;&lt;li&gt;路由：规划数据包传输所需要经过的路径。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;路由器工作的基本过程&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;485px&#34; data-flex-grow=&#34;202&#34; height=&#34;326&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://rd806.github.io/passage/cs/network/images/%E8%B7%AF%E7%94%B1%E5%99%A8%E5%B7%A5%E4%BD%9C%E7%9A%84%E5%9F%BA%E6%9C%AC%E8%BF%87%E7%A8%8B.png&#34; width=&#34;660&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;电路交换&#34;&gt;电路交换&#xA;&lt;/h4&gt;&lt;p&gt;电路交换为源到目的地的“呼叫”分配并预留端到端的资源，即为收发两端分配专用的、独占的资源。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;电路交换&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;260px&#34; data-flex-grow=&#34;108&#34; height=&#34;713&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://rd806.github.io/passage/cs/network/images/%E7%94%B5%E8%B7%AF%E4%BA%A4%E6%8D%A2.png&#34; width=&#34;773&#34;&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;电路交换常用于传统的电话中。通话时，两台电话之间分配了专用的通信资源，即使没有数据传输，在挂断之前资源不会被释放。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;电路交换中，为了更好地利用资源，出现了FDM（频分）和TDM（时分）技术。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;FDM：将电磁频率划分为多个窄频段，并为每个呼叫分配专用频段，交换时以该频段的最大速率传输。&lt;/li&gt;&#xA;&lt;li&gt;TDM：将时间划分为多个时段，并为每个呼叫周期性地分配时段，在其所属时段可以电磁波的最大速率传输。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;FDM&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;785px&#34; data-flex-grow=&#34;327&#34; height=&#34;206&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://rd806.github.io/passage/cs/network/images/FDM.png&#34; width=&#34;674&#34;&gt; &lt;img alt=&#34;TDM&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;723px&#34; data-flex-grow=&#34;301&#34; height=&#34;227&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://rd806.github.io/passage/cs/network/images/TDM.png&#34; width=&#34;684&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;报文交换&#34;&gt;报文交换&#xA;&lt;/h4&gt;&lt;p&gt;报文交换与分组交换类似，只不过把整个报文作为一个单元传输，节点存储并转发整个报文：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;报文发送：发送方将完整的数据消息（大小可变，可能包含文本、文件等）发送到网络中的第一个节点（通常是交换机或路由器）。&lt;/li&gt;&#xA;&lt;li&gt;存储转发：每个节点接收整个报文，存储在缓冲区，检查目标地址后，选择下一跳节点转发。报文在网络中逐跳传输，直到到达接收方。&lt;/li&gt;&#xA;&lt;li&gt;接收与处理：接收方收到完整报文后，进行处理或存储。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;报文交换主要用于早期的电报和一些数据网络中。&lt;/p&gt;&#xA;&lt;h4 id=&#34;分组交换&#34;&gt;分组交换&#xA;&lt;/h4&gt;&lt;p&gt;分组交换是对电路交换的改进，它的基本原理和过程如下：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;数据分割：主机将应用数据拆分成数据包。&lt;/li&gt;&#xA;&lt;li&gt;路由转发：数据包通过源到目标路径的一条链路，从一个路由器转发到下一个路由器。&lt;/li&gt;&#xA;&lt;li&gt;分组传输：每个数据包在链路上的传输互相独立。&lt;/li&gt;&#xA;&lt;li&gt;存储转发：整个数据包必须完整到达路由器后才能转发到下一条链路上。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;传输延迟：以 $R$ $\text{bps}$ 在链路上传输 $L$ $\text{bit}$ 需要时间 $\displaystyle \frac{L}{R}$ 秒，这段时间称为传输延迟。一般地，若端到端之间有 $n$ 条链路，每条链路的传输速率为 $R_{i}$ $\text{bps}$，则传输大小为 $L$ $\text{bit}$ 的数据包需要的总延迟为 $\displaystyle \sum_{i=1}^{n} \frac{L}{R_i}$ 秒&lt;/p&gt;&#xA;&lt;p&gt;排队与丢包：如果一段时间内到达链路的速率超过链路的传输速率，则数据包将会在路由器上的缓冲区排队。若缓冲区已满，多余的数据包则可能被丢弃，称为丢包。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;发生丢包时，对于丢失的数据包可能进行如下操作，具体则与使用的网络协议有关：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;由上一个节点重传。&lt;/li&gt;&#xA;&lt;li&gt;由源主机重新发送。&lt;/li&gt;&#xA;&lt;li&gt;完全不进行响应。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/network/images/%E6%8E%92%E9%98%9F%E4%B8%8E%E4%B8%A2%E5%8C%85.png&#34; width=&#34;700&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;h4&gt;排队与丢包&lt;/h4&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;假设 $n$ 名用户共享一条带宽为 $10 \text{Mbps}$ 的链路，每一名用户需要 $200 \text{kbps}$ 的带宽传输数据，并且每个用户仅有 $10\%$ 的时间用于传输数据，其他时间空闲。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;若使用电路交换，最多同时支持的用户数为&#xA;$$\frac{10 \text{Mbps}}{200 \text{kbps}} = \frac{10 \times 10^6}{200 \times 10^3} = 50$$&lt;/li&gt;&#xA;&lt;li&gt;若使用分组交换，对于任意一个用户，他在这段时间内任意一个时刻传输数据的概率为 $p$。则有 $m$ 名用户同时使用这条链路的概率为&#xA;$$\mathrm{C}_n^m p^n (1-p)^{n-m}$$故有多于 $m$ 名用户同时使用这条链路的概率为&#xA;$$1- \sum_{i=0}^n \mathrm{C}_m^i p^i (1-p)^{m-i}$$当 $n$ 足够大时，二项分布可近似为正态分布。则同时使用链路的用户数目服从正态分布&#xA;$$X \sim N(np, np(1-p))$$在上例中，若 $n = 120$，则 $np = 120 \times 0.1 = 12$，$np(1-p) = 10.8$，则有 50 名及以上用户同时转发数据的概率为&#xA;$$1 - P\left(X \leqslant 50\right) = 1 - \varPhi\left(\frac{X - \mu}{\sigma} \leqslant \frac{50 - 12}{\sqrt{10.8}}\right) = 1 - \varPhi(11.87) \approx 0$$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;因此使用分组交换，最多支持的用户数可远大于 $50$。因为用户数峰值比 $50$ 更多的情况几乎不存在。分组交换能够在容纳更多用户的同时达到和电路交换差不多的性能。&lt;/p&gt;&#xA;&lt;h4 id=&#34;isp与互联网&#34;&gt;ISP与互联网&#xA;&lt;/h4&gt;&lt;p&gt;主机通过接入互联网服务提供商（ISP）连接到互联网，不同的ISP必须互相连接。由此形成复杂的网络结构。&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://rd806.github.io/passage/cs/network/images/ISP%E4%B8%8E%E4%BA%92%E8%81%94%E7%BD%91.png&#34; width=&#34;700&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;h4&gt;ISP与互联网&lt;/h4&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h3 id=&#34;网络协议&#34;&gt;网络协议&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;为什么采用分层结构？&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;有利于识别系统各组成部分及其相互关系。&lt;/li&gt;&#xA;&lt;li&gt;分层结构有利于系统维护和更新。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;协议栈&lt;/th&gt;&#xA;          &lt;th&gt;概念&lt;/th&gt;&#xA;          &lt;th&gt;协议数据单元（PDU）&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;应用层（application）&lt;/td&gt;&#xA;          &lt;td&gt;支持网络应用&lt;/td&gt;&#xA;          &lt;td&gt;消息&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;传输层（transport）&lt;/td&gt;&#xA;          &lt;td&gt;进程间的数据传输&lt;/td&gt;&#xA;          &lt;td&gt;TCP 段 / UDP 数据报&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;网络层（network）&lt;/td&gt;&#xA;          &lt;td&gt;规划数据从源到目的地的路线&lt;/td&gt;&#xA;          &lt;td&gt;分组&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;链路层（link）&lt;/td&gt;&#xA;          &lt;td&gt;相邻网络结点之间的数据传输&lt;/td&gt;&#xA;          &lt;td&gt;帧&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;物理层（physical）&lt;/td&gt;&#xA;          &lt;td&gt;传输字节信息&lt;/td&gt;&#xA;          &lt;td&gt;比特&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;网络评价指标&#34;&gt;网络评价指标&#xA;&lt;/h3&gt;&lt;h4 id=&#34;速率与带宽&#34;&gt;速率与带宽&#xA;&lt;/h4&gt;&lt;p&gt;速率（Rate）：连接到计算机网络上的节点在数字信道上传送数据的速率，也称数据传输速率、数据率或比特率，单位为 $\text{b/s}$ 或 $\text{bit/s}$（有时也写为 $\text{bps}$ ）。&lt;/p&gt;&#xA;&lt;p&gt;当数据率较高时，可用 $\text{kb/s}$、$\text{Mb/s}$ 或 $\text{Gb/s}$ 表示。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;通常 $1 \text{Gbps} = 10^{3} \text{Mbps} = 10^{6} \text{kbps} = 10^{9} \text{bps}$。&lt;/p&gt;&#xA;&lt;p&gt;同时需要特别注意 “比特（$\text{bit}$）” 和 “字节（$\text{B}$）”的区别。$1 \text{B} = 8 \text{bit}$，常出现在文件大小和传输速率的单位换算中。&lt;/p&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;通常把最高数据传输速率称为带宽。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;例如，如果家用宽带的带宽是 $100\text{Mb/s}$，表示网络在理想情况下，每秒最多可以传输 $\text{100 Mb}$ 的数据，相当于大约 $12.5 \text{MB/s}$ 的下载速度。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;延迟&#34;&gt;延迟&#xA;&lt;/h4&gt;&lt;p&gt;延迟（Delay）指数据（一个报文或分组）从网络（或链路）的一端传送到另一端所需要的总时间。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;延迟来源&lt;/th&gt;&#xA;          &lt;th&gt;记号&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;处理延迟&lt;/td&gt;&#xA;          &lt;td&gt;$d_{\text{proc}}$&lt;/td&gt;&#xA;          &lt;td&gt;检查字节错误、确定输出链路带来的延迟&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;排队延迟&lt;/td&gt;&#xA;          &lt;td&gt;$d_{\text{queue}}$&lt;/td&gt;&#xA;          &lt;td&gt;数据包在队列中等待传输带来的延迟&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;传输延迟&lt;/td&gt;&#xA;          &lt;td&gt;$d_{\text{trans}}$&lt;/td&gt;&#xA;          &lt;td&gt;数据包转发（将分组的所有字节推向链路）带来的延迟，通常为 $\displaystyle \frac{L}{R}$。也可表示为从发送分组的第一个比特到该分组的最后一个比特发送完毕所需的时间 $\Delta t$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;传播延迟&lt;/td&gt;&#xA;          &lt;td&gt;$d_{\text{prop}}$&lt;/td&gt;&#xA;          &lt;td&gt;数据包在链路上传输带来的延迟，通常为 $\displaystyle \frac{d}{s}$。也可表示为一个比特从链路的一端传播到另一端所需的时间 $\Delta t$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;ul&gt;&#xA;&lt;li&gt;传输延迟是路由器将分组推出所需的时间，等于分组长度 / 链路传输速率。&lt;/li&gt;&#xA;&lt;li&gt;传播延迟是一个比特从一台路由器传播至另一台路由器所需的时间，等于两台路由器之间距离 / 电磁波在信道上的传播速率。与分组长度或链路传输速率无关。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;总延迟（端到端延迟）为以上4个延迟来源之和，即：&lt;/p&gt;&#xA;$$d_{\text{nobal}} = d_{\text{proc}} + d_{\text{queue}} + d_{\text{trans}} + d_{\text{prop}}$$&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;对于传输延迟，每两个节点之间都需要 $\displaystyle \frac{L}{R}$ 的时间。若中间节点不存储而直接转发，则只需要考虑首尾节点即可。&lt;/p&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;延迟带宽积（Bandwidth-Delay Product，BDP）：发送端发送的第一个比特即将到达终点时，发送端已经发出的字节数量，因此又称以比特为单位的链路长度，即&lt;/p&gt;&#xA;$$\text{BDP} = \text{传播延迟} \times \text{信道带宽}$$&lt;p&gt;考虑一个代表链路的圆柱形管道，其长度表示链路的传播时延，横截面积表示链路带宽，则 延迟带宽积表示该管道可以容纳的比特数量。&lt;/p&gt;&#xA;&lt;p&gt;例如，下图中两段链路的数据传输速率均为 $100\text{Mbps}$，延迟带宽积均为 $1000\text{bit}$，路由器 $R$ 需要进行存储转发。若 $H_1$ 向 $H_2$ 发送一个大小为 $1 \text{MB}$、分组长度为 $1000\text{B}$ 的文件，则从 $H_1$ 开始发送时刻起到 $H_2$ 收到文件全部数据时刻止，所需的时间可以这样考虑：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;文件传输示例&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;884px&#34; data-flex-grow=&#34;368&#34; height=&#34;283&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://rd806.github.io/passage/cs/network/images/%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93%E7%A4%BA%E4%BE%8B.png&#34; srcset=&#34;https://rd806.github.io/passage/cs/network/images/%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93%E7%A4%BA%E4%BE%8B_hu_35203c9f9589ac56.png 800w, https://rd806.github.io/passage/cs/network/images/%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93%E7%A4%BA%E4%BE%8B.png 1043w&#34; width=&#34;1043&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;以该文件的最后一个 $\text{bit}$ 为参照点。当这个比特到达 $B$ 时，则可认为文件发送完毕。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;$H_1$ 推送一个比特用时（传输延迟）：&#xA;$$t_{\text{trans}} = \frac{L}{R} = \frac{1000 \text{B}}{100 \text{Mbps}} = 0.08 \text{ms}$$将所有数据推向链路的时间：&#xA;$$t = \frac{1 \times 8\text{Mb}}{100 \text{Mbps}} = 80 \text{ms}$$因此最后一个 $\text{bit}$ 在 $80 \text{ms}$ 时离开 $H_1$。&lt;/li&gt;&#xA;&lt;li&gt;由延迟带宽积为 $1000\text{bit}$ 可知传播延迟&#xA;$$t_{\text{proc}} = \frac{1000 \text{bit}}{100 \text{Mbps}} = 0.01 \text{ms}$$因此最后一个 $\text{bit}$ 经过了 $0.01 \text{ms}$ 到达 $R$，即用时 $80.01 \text{ms}$。&lt;/li&gt;&#xA;&lt;li&gt;$R$ 对该文件进行存储转发，需要用时 $t_{\text{trans}}$，故最后一个 $\text{bit}$ 在 $80.09 \text{ms}$ 离开 $R$。&lt;/li&gt;&#xA;&lt;li&gt;最后从 $R$ 到 $H_2$ 仍需要一个 $t_{\text{proc}}$。因此最后一个 $\text{bit}$ 在 $80.10 \text{ms}$ 到达 $B$，文件传输完成。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;综上，文件传输用时 $80.10 \text{ms}$。&lt;/p&gt;&#xA;&lt;h4 id=&#34;吞吐量&#34;&gt;吞吐量&#xA;&lt;/h4&gt;&lt;p&gt;发送端向接收端发送比特的速率，通常记作 $R$，单位为 $\text{bit/s}$&lt;/p&gt;&#xA;&lt;p&gt;若发送端到接收端有多段链路，则称限制吞吐量的链路为瓶颈链路（即吞吐量最小的链路）。&lt;/p&gt;&#xA;&lt;h2 id=&#34;分层结构&#34;&gt;分层结构&#xA;&lt;/h2&gt;&lt;p&gt;在 ISO/OSI 参考模型中，网络一共分为7层，自下而上依次为：物理层、数据链路层、网络层、传输层、会话层、表示层、应用层：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;分层&lt;/th&gt;&#xA;          &lt;th&gt;功能&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;物理层&lt;/td&gt;&#xA;          &lt;td&gt;在物理媒介上为数据端设备透明地传输原始比特流&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;数据链路层&lt;/td&gt;&#xA;          &lt;td&gt;传输单位是帧，将物理层提供的可能出错的物理连接改造为尽可能可靠的数据链路。&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;网络层&lt;/td&gt;&#xA;          &lt;td&gt;对数据报进行路由选择&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;传输层&lt;/td&gt;&#xA;          &lt;td&gt;为端到端连接提供可靠的传输服务，包括流量控制（端到端）、差错控制、服务质量、数据传输管理等服务&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;应用层&lt;/td&gt;&#xA;          &lt;td&gt;应用层为特定类型的网络应用提供访问 OSI 参考模型环境的手段。应用层采用不同的协议解决不同类型的需求，因此应用层是最复杂的一层，使用的协议也最多&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;上表为互联网使用的协议层级，实际上参考模型还包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;会话层：负责管理主机间的会话进程，包括建立、管理及终止进程间的检查点机制来维持可靠会话。&lt;/li&gt;&#xA;&lt;li&gt;表示层：采用抽象的标准方法定义数据结构，并采用标准的编码形式使不同表示方法的数据和信息之间能互相交换。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;各层协议的具体内容如下：&lt;/p&gt;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/network/application-layer &gt;应用层&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/network/transport-layer &gt;传输层&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/network/network-layer &gt;网络层&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/network/link-layer &gt;数据链路层&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;h2 id=&#34;各层协议总结&#34;&gt;各层协议总结&#xA;&lt;/h2&gt;&lt;p&gt;Internet中，各层的协议整体上呈现“两头粗，中间细”的特点。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Internet各层协议&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;287px&#34; data-flex-grow=&#34;119&#34; height=&#34;452&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://rd806.github.io/passage/cs/network/images/Internet%E5%90%84%E5%B1%82%E5%8D%8F%E8%AE%AE.png&#34; width=&#34;541&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;应用层协议最多，常见的有以下内容：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/network/application-layer#web%e4%b8%8ehttp&#34; &gt;HTTP/HTTPS&lt;/a&gt;：超文本传输协议，用于网页浏览。通常使用端口 80/443，依赖TCP协议（HTTP/3 使用UDP）。&lt;/li&gt;&#xA;&lt;li&gt;FTP：文件传输协议，用于文件上传与下载。依赖 TCP。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/network/application-layer#dns%e7%b3%bb%e7%bb%9f&#34; &gt;DNS&lt;/a&gt;：域名系统，将域名解析为 IP 地址。主要依赖 UDP。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/network/network-layer/#dhcp&#34; &gt;DHCP&lt;/a&gt;：动态主机配置协议，用于自动分配 IP 地址及其他网络参数。依赖 UDP 协议。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;传输层协议只有两个，分别为 TCP 和 UDP：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/network/transport-layer#tcp%e4%bc%a0%e8%be%93%e5%8d%8f%e8%ae%ae&#34; &gt;TCP&lt;/a&gt;：面向连接，提供可靠的字节流服务，适用于要求高可靠性的应用。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/network/transport-layer#udp%e4%bc%a0%e8%be%93%e5%8d%8f%e8%ae%ae&#34; &gt;UDP&lt;/a&gt;：无连接，不保证可靠性，但开销小、速度快，适用于实时性要求高的场景。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;网络层协议主要为与 IP 相关的协议：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/network/network-layer/#ip%e5%8d%8f%e8%ae%ae&#34; &gt;IP&lt;/a&gt;：不可靠的无连接协议，提供数据报服务，是整个互联网的核心协议。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/network/network-layer/#nat&#34; &gt;NAT&lt;/a&gt;：网络地址转换，用于在私网和公网之间转换 IP 地址。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/network/network-layer/#%e8%b7%af%e7%94%b1%e5%8d%8f%e8%ae%ae&#34; &gt;RIP/OSPF/BGP&lt;/a&gt;：路由选择协议，主要用于自治系统内部（RIP、OSPF）或之间（BGP）的路由计算。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;数据链路层协议：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/passage/cs/network/link-layer/#arp%e5%8d%8f%e8%ae%ae&#34; &gt;ARP&lt;/a&gt;：地址解析协议，用于将 IP 地址解析为对应的 MAC 地址。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item><item>
            <title>概率论与数理统计</title>
            <link>https://rd806.github.io/passage/math/probability/</link>
            <pubDate>Fri, 07 Nov 2025 00:00:00 +0000</pubDate>
            <guid>https://rd806.github.io/passage/math/probability/</guid>
            <description>&lt;img src=&#34;https://rd806.github.io/passage/math/probability/rohit-choudhari-JS3RDAnRUB8-unsplash.jpg&#34; alt=&#34;Featured image of post 概率论与数理统计&#34; /&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;依旧期末速通……&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;随机事件与概率&#34;&gt;随机事件与概率&#xA;&lt;/h2&gt;&lt;h3 id=&#34;随机事件的关系与运算&#34;&gt;随机事件的关系与运算&#xA;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;关系&lt;/th&gt;&#xA;          &lt;th&gt;表示&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;包含&lt;/td&gt;&#xA;          &lt;td&gt;$B \subset A$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;相等&lt;/td&gt;&#xA;          &lt;td&gt;$B = A$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;并&lt;/td&gt;&#xA;          &lt;td&gt;$A \cup B$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;交&lt;/td&gt;&#xA;          &lt;td&gt;$A \cap B = AB$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;互斥&lt;/td&gt;&#xA;          &lt;td&gt;$AB = \varnothing$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;对立&lt;/td&gt;&#xA;          &lt;td&gt;$\overline{A}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;差&lt;/td&gt;&#xA;          &lt;td&gt;$A-B$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;运算&lt;/th&gt;&#xA;          &lt;th&gt;表示&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;交换律&lt;/td&gt;&#xA;          &lt;td&gt;$A \cap B = AB$，$AB = BA$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;结合律&lt;/td&gt;&#xA;          &lt;td&gt;$(A \cap B) \cap C = A \cap (B \cap C)$，$AB = BA$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;分配律&lt;/td&gt;&#xA;          &lt;td&gt;$(A \cap B) \cup C = (AC) \cup (BC)$，$(A \cup B) \cup C = (A \cup C) \cap (B \cup C)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;对偶律&lt;/td&gt;&#xA;          &lt;td&gt;$\overline{A \cup B} = \overline{A}\overline{B}$，$\overline{AB} = \overline{A} \cup \overline{B}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;概率及其性质&#34;&gt;概率及其性质&#xA;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;性质&lt;/th&gt;&#xA;          &lt;th&gt;表示&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;有限可加性&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle P\left(\bigcup_{i=1}^{n} A_i \right)= \sum_{i=1}^{n} P(A_i)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;对立事件&lt;/td&gt;&#xA;          &lt;td&gt;$P\left(\overline{A}\right) = 1-P(A)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;减法公式&lt;/td&gt;&#xA;          &lt;td&gt;$P(A-B) = P(A\overline{B}) = P(A) - P(AB)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;单调性&lt;/td&gt;&#xA;          &lt;td&gt;若 $A \subset B$，则 $P(A) \leqslant P(B)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;容斥原理&lt;/td&gt;&#xA;          &lt;td&gt;对任意两个事件 $A，B$，有 $P(A \cup B) = P(A) + P(B) - P(AB)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;一般的，对于 $n$ 个事件 $A_i$，有&#xA;&lt;/p&gt;&#xA;$$\begin{align*} P\left(\bigcup_{i=1}^{n} A_i \right) = \sum_{i=1}^{n} P(A_i) &amp;- \sum_{1 \leqslant i &lt; j \leqslant n} P(A_i A_j) \\ &amp;+ \sum_{1 \leqslant i &lt; j &lt; k \leqslant n} P(A_i A_j A_k) - \cdots + (-1)^{n-1} P(A_1 A_2 \cdots A_n) \end{align*}$$&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;古典概型与几何概型&#34;&gt;古典概型与几何概型&#xA;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;概型&lt;/th&gt;&#xA;          &lt;th&gt;计算&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;古典概型&lt;/td&gt;&#xA;          &lt;td&gt;$$P(A) = \frac{k}{n} = \frac{\text{事件}A\text{中所含样本点的个数}}{\text{样本空间}\varOmega\text{中所含样本点总数}}$$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;几何概型&lt;/td&gt;&#xA;          &lt;td&gt;$$P(A) = \frac{A \text{的度量}}{\varOmega \text{的度量}}$$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;条件概率与乘法公式&#34;&gt;条件概率与乘法公式&#xA;&lt;/h3&gt;&lt;h4 id=&#34;条件概率&#34;&gt;条件概率&#xA;&lt;/h4&gt;$$P(B|A) = \frac{P(AB)}{P(A)}$$&lt;p&gt;性质：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;$P(\overline{B} |A) = 1 - P(B|A) $&lt;/li&gt;&#xA;&lt;li&gt;$P(B_1 \cup B_2 | A) = P(B_1 | A) + P(B_2 | A) - P(B_1 B_2 | A) $&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;乘法公式&#34;&gt;乘法公式&#xA;&lt;/h4&gt;$$ P(AB) = P(A) P(B|A) $$&lt;p&gt;&#xA;&lt;/p&gt;&#xA;$$P(A_1 A_2 \cdots A_n) = P(A_1) P(A_2|A_1) P(A_3|A_1 A_2) \cdots P(A_n|A_1 A_2 \cdots A_{n-1})$$&lt;h4 id=&#34;全概率公式&#34;&gt;全概率公式&#xA;&lt;/h4&gt;&lt;p&gt;若 $A_1，A_2，\cdots A_n，B$ 是 $E$ 中的事件，且满足 $A_1 \cup A_2 \cup \cdots \cup A_n = \varOmega$，则 &lt;/p&gt;&#xA;$$P(B) = \sum_{i=1}^{n} P(A_i) P(B|A_i)$$&lt;p&gt;案例：敏感性问题调查&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;步骤&lt;/th&gt;&#xA;          &lt;th&gt;要求&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;设计问题&lt;/td&gt;&#xA;          &lt;td&gt;&lt;ol&gt; &lt;li&gt; 你的生日是否在7月1日之前 &lt;/li&gt; &lt;li&gt; &lt;em&gt;要调查的问题&lt;/em&gt; &lt;/li&gt; &lt;/ol&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;操作&lt;/td&gt;&#xA;          &lt;td&gt;&lt;ol&gt; &lt;li&gt; 被调查者在没有旁人的情况下，独自一人回答问题 &lt;/li&gt; &lt;li&gt; 在一个袋子中放入若干个红球和白球，被调查者从袋子中随机抽一个球，看过颜色后放回. 若抽到白球则回答问题1；若抽到红球则回答问题2 &lt;/li&gt; &lt;li&gt; 被调查者只回答“是”或“否” &lt;/li&gt; &lt;/ol&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;分析结果&lt;/td&gt;&#xA;          &lt;td&gt;设共收到 $n$ 张答卷，其中有 $k$ 张答卷回答“是”；同时，在人数较多的场合中，任选一人其生日在7月1日之前的概率为 $0.5$；袋子中红球的比率为 $\alpha$，则有等式 $$\frac{k}{n} = p \cdot \alpha + 0.5 \cdot (1-\alpha)$$ 可知问题2回答“是”的概率 $$p=\frac{\dfrac{k}{n}-0.5(1-\alpha)}{\alpha}$$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;贝叶斯公式&#34;&gt;贝叶斯公式&#xA;&lt;/h4&gt;$$P(A_i |B) = \frac{P(A_i B)}{P(B)} = \frac{P(A_i)P(B|A_i)}{\displaystyle \sum_{i=1}^{n} P(A_i)P(B|A_i)}$$&lt;h3 id=&#34;事件的独立性&#34;&gt;事件的独立性&#xA;&lt;/h3&gt;&lt;p&gt;设 $n$ 个事件 $A_1，A_2，\cdots，A_n$，若对任意 $k=2，3，\cdots，n$ 和任意一组 $1 \leqslant i_1 &amp;lt; i_2 &amp;lt; \cdots &amp;lt; i_k \leqslant n$，都有&#xA;&lt;/p&gt;&#xA;$$P(A_{i_1} A_{i_2} \cdots A_{i_k}) = P(A_{i_1}) P(A_{i_2}) \cdots P(A_{i_k})$$&lt;p&gt; 则称事件 $A_1，A_2，\cdots，A_n$ 相互独立.&lt;/p&gt;&#xA;&lt;h2 id=&#34;随机变量及其分布&#34;&gt;随机变量及其分布&#xA;&lt;/h2&gt;&lt;h3 id=&#34;概率分布函数&#34;&gt;概率分布函数&#xA;&lt;/h3&gt;&lt;p&gt;设 $X$ 是随机变量，对任意给定实数 $x \in (-\infty, +\infty)$，令 &lt;/p&gt;&#xA;$$F(x) = P\{X \leqslant x\}$$&lt;p&gt; 则称 $F(x)$ 为随机变量 $X$ 的概率分布函数.&lt;/p&gt;&#xA;&lt;p&gt;分布函数 $F(x)$ 具有以下性质：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;性质&lt;/th&gt;&#xA;          &lt;th&gt;表示&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;非负性&lt;/td&gt;&#xA;          &lt;td&gt;对任意实数 $x$，都有 $0 \leqslant F(x) \leqslant 1$，且 $\displaystyle F(-\infty) = \lim_{x \to -\infty} F(x) = 0$，$\displaystyle F(+\infty) = \lim_{x \to +\infty} F(x) = 1$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;单调不减性&lt;/td&gt;&#xA;          &lt;td&gt;$\forall x_1 &amp;lt; x_2$，有 $F(x_1) \leqslant F(x_2)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;右连续性&lt;/td&gt;&#xA;          &lt;td&gt;$\forall a \in \textbf{R}$，有 $\displaystyle \lim_{x \to a^+} F(x) = F(a+0) = F(a)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;区间概率：$P\{x_1 &amp;lt; X \leqslant x_2\} = P\{X \leqslant x_2\} - P\{X \leqslant x_1\} = F(x_2) - F(x_1)$&lt;/li&gt;&#xA;&lt;li&gt;样本点概率：$P\{X = a\} = F(a+0) - F(a-0)$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;离散型随机变量的分布&#34;&gt;离散型随机变量的分布&#xA;&lt;/h3&gt;&lt;h4 id=&#34;概率分布律&#34;&gt;概率分布律&#xA;&lt;/h4&gt;&lt;p&gt;设离散型随机变量所有可能取值为 $x_k，k=1,2,\cdots$，则称 $X$ 取各个可能值的概率 &lt;/p&gt;&#xA;$$P\{X = x_k\} = p_k$$&lt;p&gt; 为随机变量 $X$ 的概率分布律. 可用表格表示为&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$X$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_1$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_2$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_k$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$P_X$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_1$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_2$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_k$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;且有：$\displaystyle \sum_{i=0}^{\infty} p_k = 1$&lt;/p&gt;&#xA;&lt;h4 id=&#34;常用分布&#34;&gt;常用分布&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;类型&lt;/th&gt;&#xA;          &lt;th&gt;概率分布律&lt;/th&gt;&#xA;          &lt;th&gt;记法&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;两点分布&lt;/td&gt;&#xA;          &lt;td&gt;$P\{X = 0\} = 1-p，P\{X = 1\} = p$&lt;/td&gt;&#xA;          &lt;td&gt;$X \sim B(1,p)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;二项分布&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle P\{X=k\} = \mathrm{C}_{n}^{k} p^k (1-p)^{n-k}，k=0,1,2,\cdots,n \quad (0&amp;lt;p&amp;lt;1)$&lt;/td&gt;&#xA;          &lt;td&gt;$X \sim B(n,p)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;泊松分布&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle P\{X=k\} = \frac{\lambda^k \mathrm{e}^{-\lambda}}{k!}，k=0,1,2,\cdots,n$&lt;/td&gt;&#xA;          &lt;td&gt;$X \sim P(\lambda)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;超几何分布&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle P\{X=k\} = \frac{\mathrm{C}_M^k \mathrm{C}_{N-M}^{n-k}}{\mathrm{C}_{N}^{n}}，k=0,1,2,\cdots,\text{min}\{n,M\}$&lt;/td&gt;&#xA;          &lt;td&gt;$X \sim H(N,M,n)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;几何分布&lt;/td&gt;&#xA;          &lt;td&gt;$P\{X=k\} = (1-p)^{k-1}p，k=0,1,2,\cdots$&lt;/td&gt;&#xA;          &lt;td&gt;$X \sim G(p)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;泊松定理&#34;&gt;泊松定理&#xA;&lt;/h4&gt;&lt;p&gt;设 $\displaystyle p_n = \frac{\lambda}{n}$，$\lambda &amp;gt; 0$ 是常数，则对任一非负整数 $k$，有 &lt;/p&gt;&#xA;$$\lim_{n \to \infty} \mathrm{C}_n^k p_n^k(1-p_n)^{n-k} = \frac{\lambda^k \mathrm{e}^{-\lambda}}{k!}$$&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;根据泊松定理，当 $n$ 很大且 $p$ 很小时，二项分布可以近似为泊松分布，此时有 $\lambda = np$，且 &lt;/p&gt;&#xA;$$\mathrm{C}_n^k p_n^k(1-p_n)^{n-k} = \frac{\lambda^k \mathrm{e}^{-\lambda}}{k!}$$&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;几何分布的无记忆性&#34;&gt;几何分布的无记忆性&#xA;&lt;/h4&gt;&lt;p&gt;如果 $X \sim G(p)$，则对任意正整数 $m$，$n$，都有 &lt;/p&gt;&#xA;$$P\{X&gt;m+n \ |\  X&gt;m\} = P\{X&gt;n\}$$&lt;h3 id=&#34;连续型随机变量的分布&#34;&gt;连续型随机变量的分布&#xA;&lt;/h3&gt;&lt;h4 id=&#34;概率密度函数&#34;&gt;概率密度函数&#xA;&lt;/h4&gt;&lt;p&gt;设随机变量 $X$ 的分布函数为 $F(x)$，若存在非负函数 $f(x)$，使得对任意实数 $x \in \textbf{R}$，均有 &lt;/p&gt;&#xA;$$F(x) = \int_{-\infty}^{x} f(t) \mathrm{d}t$$&lt;p&gt; 则称随机变量 $X$ 为连续型随机变量，称 $f(x)$ 为概率密度函数.&lt;/p&gt;&#xA;&lt;h4 id=&#34;常用分布-1&#34;&gt;常用分布&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;类型&lt;/th&gt;&#xA;          &lt;th&gt;概率密度函数&lt;/th&gt;&#xA;          &lt;th&gt;记法&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;均匀分布&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle f(x) = \left\{ \begin{matrix} \displaystyle \frac{1}{b-a}，&amp;amp; a \leqslant x \leqslant b \\ \\ 0，&amp;amp; 其他 \end{matrix} \right.$&lt;/td&gt;&#xA;          &lt;td&gt;$X \sim U(a,b)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;指数分布&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle f(x) = \left\{ \begin{matrix} \lambda\mathrm{e}^{-\lambda x}，&amp;amp; x \geqslant b \\ \\ 0，&amp;amp; 其他 \end{matrix} \right.$&lt;/td&gt;&#xA;          &lt;td&gt;$X \sim Exp(\lambda)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;正态分布&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle f(x) = \frac{1}{\sqrt{2\pi} \sigma} \mathrm{e}^{-\frac{(x-\mu)^2}{2\sigma^2}}，-\infty &amp;lt; x &amp;lt; \infty$&lt;/td&gt;&#xA;          &lt;td&gt;$X \sim N(\mu,\sigma^2)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;指数分布的性质&#34;&gt;指数分布的性质&#xA;&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;无记忆性&lt;/strong&gt;：如果 $X \sim Exp(\lambda)$，则对任意 $s&amp;gt;0$，$t&amp;gt;0$，都有 &lt;/p&gt;&#xA;$$P\{X&gt;s+t \ |\  X&gt;s\} = P\{X&gt;t\}$$&lt;h4 id=&#34;正态分布的性质&#34;&gt;正态分布的性质&#xA;&lt;/h4&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;正态分布的概率密度函数 $f(x)$ 以 $x=\mu$ 为对称轴，因此 $\displaystyle F(\mu) = \frac{1}{2}，F(\mu-x) = 1-F(\mu+x)$.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;特别地，称 $\mu=0，\sigma=1$ 的正态分布为标准正态分布，其概率密度函数记作 $\varphi(x)$，分布函数记作 $\varPhi(x)$. 则对任意正态分布 $N(\mu,\sigma^2)$，有 &lt;/p&gt;&#xA;$$P\{x_1 &lt; X \leqslant x_2\} = F(x_2) - F(x_1) = \varPhi\left(\frac{x_2-\mu}{\sigma}\right) - \varPhi\left(\frac{x_1-\mu}{\sigma}\right) $$&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;若 $X \sim N(\mu, \sigma^2)$，令 $Y=aX+b$，则随机变量 $Y \sim N(a\mu+b,(a\sigma)^2)$.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;随机变量函数的分布&#34;&gt;随机变量函数的分布&#xA;&lt;/h3&gt;&lt;h4 id=&#34;离散型随机变量函数的分布&#34;&gt;离散型随机变量函数的分布&#xA;&lt;/h4&gt;&lt;p&gt;若 $y_k = g(x_k)$，且已知&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$X$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_1$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_2$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_k$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$P_X$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_1$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_2$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_k$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;则可直接写出 $Y$ 的概率分布律：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$Y$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$y_1=g(x_1)$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$y_2=g(x_2)$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$y_k=g(x_k)$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$P_Y$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_1$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_2$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_k$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;连续型随机变量函数的分布&#34;&gt;连续型随机变量函数的分布&#xA;&lt;/h4&gt;&lt;p&gt;若 $X$ 是连续型随机变量，$y=g(x)$ 是单值实函数，则先求 $Y$ 的分布函数 $F_Y(y)$，再对 $F_Y(y)$ 求导得随机变量 $Y$ 的概率密度函数 $f_Y(y)$.&lt;/p&gt;&#xA;&lt;p&gt;随机变量 $X$ 对应的概率密度函数为 $f(x)$，随机变量 $Y$ 满足 $Y = g(X)$，则可得 &lt;/p&gt;&#xA;$$F_Y(y) = P\{Y \leqslant y\} = P\{g(X) \leqslant y\} = P\{a &lt; X &lt; b\}$$&lt;p&gt; 其中 $a$，$b$ 是关于 $y$ 的函数.&lt;/p&gt;&#xA;&lt;h2 id=&#34;多维随机变量及其分布&#34;&gt;多维随机变量及其分布&#xA;&lt;/h2&gt;&lt;h3 id=&#34;联合分布函数与边缘分布函数&#34;&gt;联合分布函数与边缘分布函数&#xA;&lt;/h3&gt;&lt;h4 id=&#34;联合分布函数&#34;&gt;联合分布函数&#xA;&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 是二维随机变量，对于任意实数 $x,y \in \textbf{R}$，称二元函数 &lt;/p&gt;&#xA;$$F(x,y) = P\{X \leqslant x,Y\leqslant y\}$$&lt;p&gt; 为 $(X,Y)$ 的联合分布函数.&lt;/p&gt;&#xA;&lt;p&gt;联合分布函数具有以下性质：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;性质&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;非负性&lt;/td&gt;&#xA;          &lt;td&gt;对任意 $(x,y) \in \textbf{R}^2$，有 $0 \leqslant F(x,y) \leqslant 1$；$F(-\infty,-\infty) = 0$，$F(+\infty,+\infty) = 1$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;单调不减性&lt;/td&gt;&#xA;          &lt;td&gt;$F(x,y)$ 分别关于 $x$ 和 $y$ 单调不减&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;右连续性&lt;/td&gt;&#xA;          &lt;td&gt;$F(x,y)$ 分别关于 $x$ 和 $y$ 右连续&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;恒等式&lt;/td&gt;&#xA;          &lt;td&gt;$\forall x_1 &amp;lt; x_2，y_1 &amp;lt; y_2$，有 $$P\{ x_1 &lt; X \leqslant x_2,y_1 &lt; Y \leqslant y_2 \} = F(x_2,y_2) - F(x_1,y_2) - F(x_2,y_1) + F(x_1,y_1) \geqslant 0$$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;边缘分布函数&#34;&gt;边缘分布函数&#xA;&lt;/h4&gt;&lt;ol&gt;&#xA;&lt;li&gt;$X$ 的边缘分布函数 $\displaystyle F_X(x) = P\{X \leqslant x\} = F(x,+\infty) = \lim_{y \to +\infty} F(x,y)$&lt;/li&gt;&#xA;&lt;li&gt;$Y$ 的边缘分布函数 $\displaystyle F_Y(x) = P\{Y \leqslant y\} = F(+\infty,y) = \lim_{x \to +\infty} F(x,y)$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;二维随机变量的独立性&#34;&gt;二维随机变量的独立性&#xA;&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 是二维随机变量，联合分布函数为 $F(x,y)$，边缘分布函数分别为 $F_X(x)，F_Y(y)$. 若对于任意 $(x,y) \in \textbf{R}^2$，都有 &lt;/p&gt;&#xA;$$F(x,y)  = F_X(x) F_Y(y)$$&lt;p&gt; 则称随机变量 $X$ 和 $Y$ 相互独立.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;两个随机变量相互独立等价于由 $X$ 表示的任一事件与由 $Y$ 表示的任一事件都相互独立.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;二维离散型随机变量及其分布&#34;&gt;二维离散型随机变量及其分布&#xA;&lt;/h3&gt;&lt;h4 id=&#34;联合概率分布律&#34;&gt;联合概率分布律&#xA;&lt;/h4&gt;&lt;p&gt;设二维离散型随机变量 $(X,Y)$ 的所有可能取值为 $(x_i,y_j)$，则称 &lt;/p&gt;&#xA;$$P\{X=x,\ Y=y\}=p_{ij}$$&lt;p&gt; 为随机变量 $(X,Y)$ 的联合概率分布律，可用表格表示为：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$Y$ \ $X$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_1$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_2$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_i$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$y_1$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{11}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{21}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{i1}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$y_2$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{12}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{22}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{i2}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$y_j$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{1j}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{2j}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{ij}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;边缘概率分布律&#34;&gt;边缘概率分布律&#xA;&lt;/h4&gt;&lt;p&gt;随机变量 $X$ 的边缘概率分布律：$\displaystyle P\{X=x_i\} = \sum_{i=1}^{+\infty} p_{ij} = p_{i \cdot}$&lt;/p&gt;&#xA;&lt;p&gt;随机变量 $Y$ 的边缘概率分布律：$\displaystyle P\{Y=y_j\} = \sum_{j=1}^{+\infty} p_{ij} = p_{\cdot j}$&lt;/p&gt;&#xA;&lt;p&gt;可以表示在表格中：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$Y$ \ $X$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_1$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_2$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$x_i$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;$p_Y$&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$y_1$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{11}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{21}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{i1}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{\cdot 1}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$y_2$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{12}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{22}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{i2}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{\cdot 2}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$y_j$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{1j}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{2j}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{ij}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{\cdot j}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\vdots$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_X$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{1 \cdot}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{2 \cdot}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$p_{i \cdot}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$\cdots$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;条件概率分布律&#34;&gt;条件概率分布律&#xA;&lt;/h4&gt;$$P\{X=x_i \ |\ Y=y_j\} = \frac{p_{ij}}{p_{\cdot j}}$$&lt;h4 id=&#34;独立性&#34;&gt;独立性&#xA;&lt;/h4&gt;&lt;p&gt;对于二元离散型随机变量 $(X,Y)$，则 $X$ 与 $Y$ 相互独立等价于对任意的 $i,j = 1,2,\cdots,$ 都有 &lt;/p&gt;&#xA;$$P\{X=x_i \ |\ Y=y_j\} = p_{i \cdot} p_{\cdot j}$$&lt;h3 id=&#34;二维连续型随机变量及其分布&#34;&gt;二维连续型随机变量及其分布&#xA;&lt;/h3&gt;&lt;h4 id=&#34;联合概率密度函数&#34;&gt;联合概率密度函数&#xA;&lt;/h4&gt;&lt;p&gt;设二维随机变量 $(X,Y)$ 的联合分布函数为 $F(x,y)$，若存在非负实函数 $f(x,y)$，使得对于任意 $(x,y) \in \textbf{R}^2$，都有 &lt;/p&gt;&#xA;$$F(x,y) = \int_{-\infty}^{x} \mathrm{d}s \int_{-\infty}^{y} f(s,t) \mathrm{d}t$$&lt;p&gt; 则称 $(X,Y)$ 为二维连续型随机变量，并称 $f(x,y)$ 为 $(X,Y)$ 的联合概率密度函数.&lt;/p&gt;&#xA;&lt;p&gt;联合概率密度函数具有以下性质：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;非负性：对任意 $(x,y) \in \textbf{R}^2$，有 $f(x,y) \geqslant 0$&lt;/li&gt;&#xA;&lt;li&gt;规范性：$\displaystyle F(x,y) = \int_{-\infty}^{+\infty} \mathrm{d}s \int_{-\infty}^{+\infty} f(s,t) \mathrm{d}t = 1$&lt;/li&gt;&#xA;&lt;li&gt;可导性：$\displaystyle \frac{\partial^2 F(x,y)}{\partial x \partial y} = f(x,y)$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;边缘概率密度函数&#34;&gt;边缘概率密度函数&#xA;&lt;/h4&gt;&lt;p&gt;对于二维连续型随机变量 $(X,Y)$，联合概率密度函数 $f(x,y)$，边缘概率密度函数分别为 $f_X(x)$ 和 $f_Y(y)$，则有 &lt;/p&gt;&#xA;$$f_X(x) = \int_{-\infty}^{+\infty} f(x,y) \mathrm{d}y $$&lt;p&gt; &lt;/p&gt;&#xA;$$ f_Y(y) = \int_{-\infty}^{+\infty} f(x,y) \mathrm{d}x$$&lt;h4 id=&#34;常用分布-2&#34;&gt;常用分布&#xA;&lt;/h4&gt;&lt;h5 id=&#34;二维均匀分布&#34;&gt;二维均匀分布&#xA;&lt;/h5&gt;&lt;p&gt;设 $(X,Y)$ 是二维连续型随机变量，$G$ 是平面上一有界区域，且联合概率密度函数满足 &lt;/p&gt;&#xA;$$f(x,y) = \left\{ \begin{matrix} \displaystyle \frac{1}{S_G} &amp; (x,y) \in G \\\\ 0 &amp; 其他 \end{matrix} \right.$$&lt;p&gt; 其中 $S_G$ 表示区域 $G$ 的面积.&lt;/p&gt;&#xA;&lt;h5 id=&#34;二维正态分布&#34;&gt;二维正态分布&#xA;&lt;/h5&gt;&lt;p&gt;设 $(X,Y)$ 是二维连续型随机变量，且联合概率密度函数满足 &lt;/p&gt;&#xA;$$f(x,y) = \frac{1}{2\pi \sigma_{1} \sigma_{2} \sqrt{1-\rho^2} } \cdot \mathrm{exp}\left\{ \frac{1}{2(1-\rho^2)} \left[ \left( \frac{x-\mu_{1}}{\sigma_{1}} \right)^2 - \frac{2\rho(x-\mu_{1})(y-\mu_{2})}{\sigma_{1}\sigma_{2}} + \left( \frac{y-\mu_{2}}{\sigma_{2}} \right)^2 \right] \right\}$$&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;二维正态分布的性质&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;二维正态分布的边缘分布仍是正态分布，反之未必成立.&lt;/li&gt;&#xA;&lt;li&gt;二维正态随机变量的条件分布仍是正态分布.&lt;/li&gt;&#xA;&lt;li&gt;二维随机变量 $(X,Y) \sim N(\mu_{1},\mu_{2}; \sigma_{1}^{2}, \sigma_{2}^{2}; \rho)$，则 $(X,Y)$ 相互独立的充要条件是 $\rho = 0$.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;条件概率密度函数&#34;&gt;条件概率密度函数&#xA;&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 为二维连续型随机变量，在条件 $Y=y$ 下，随机变量 $X$ 的条件分布函数为 $F_{X\ |\ Y} (x\ |\ y)$，条件概率密度函数为 $f_{X\ |\ Y} (x\ |\ y)$&lt;/p&gt;&#xA;$$f_{X\ |\ Y} = \frac{f(x,y)}{f_Y(y)} $$&lt;p&gt; &lt;/p&gt;&#xA;$$ f_{Y\ |\ X} = \frac{f(x,y)}{f_X(x)}$$&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;随机变量的边缘密度函数只与该随机变量有关，而与另一个变量无关.&lt;/p&gt;&#xA;&lt;p&gt;条件密度通常情况下与两个随机变量都有关系.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;独立性-1&#34;&gt;独立性&#xA;&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 是二维连续型随机变量，联合概率密度函数为 $f(x,y)$，边缘密度函数分别为 $f_X(x)$ 和 $f_Y(y)$，则 $X$ 和 $Y$ 相互独立的等价于对任意的 $(x,y) \in \textbf{R}^2$，在平面上几乎处处成立 &lt;/p&gt;&#xA;$$f(x,y) = f_X(x) f_Y(y)$$&lt;p&gt;易知，连续型随机变量 $(X,Y)$ 相互独立还等价于 &lt;/p&gt;&#xA;$$f_{X\ |\ Y}(x\ |\ y) = f_X(x)，x \in \textbf{R} \quad 或 \quad f_{Y\ |\ X}(y\ |\ x) = f_Y(y)，y \in \textbf{R}$$&lt;h3 id=&#34;二维随机变量函数的分布&#34;&gt;二维随机变量函数的分布&#xA;&lt;/h3&gt;&lt;h4 id=&#34;二维离散型随机变量函数的分布&#34;&gt;二维离散型随机变量函数的分布&#xA;&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 为二维离散型随机变量，则由函数 $Z=g(X,Y)$ 确定的随机变量也是离散型随机变量.&lt;/p&gt;&#xA;&lt;p&gt;求随机变量 $Z$ 的分布：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;确定 $Z$ 的所有可能值.&lt;/li&gt;&#xA;&lt;li&gt;逐个计算 $Z$ 取每个可能值的概率.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;二维连续型随机变量函数的分布&#34;&gt;二维连续型随机变量函数的分布&#xA;&lt;/h4&gt;&lt;p&gt;常见的二维连续型随机变量函数&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;$Z=X+Y$ &lt;br&gt;&#xA;设 $(X,Y)$ 的联合概率密度函数为 $f(x,y)$，$(x,y) \in \textbf{R}^2$，边缘密度函数分别为 $f_X(x)$，$f_Y(y)$. 对任意实数 $z$，随机变量 $Z$ 的概率密度函数&#xA;$$f_Z(z) = \int_{-\infty}^{+\infty} f(x,z-x) \mathrm{d}x $$&#xA;$$f_Z(z) = \int_{-\infty}^{+\infty} f(z-y,y) \mathrm{d}y $$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;称上述两式为 $X$ 与 $Y$ 的卷积公式，记作 $f_Z = f_X * f_Y$&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;$M=\mathrm{max}\{X,Y\}$&#xA;&lt;/p&gt;&#xA;$$F_M(z) = P\{\mathrm{max}\{X,Y\} \leqslant z\} = P\{X \leqslant z, Y \leqslant z\} = F(z,z)$$&lt;p&gt;&#xA;若 $X$ 与 $Y$ 相互独立，则 $F_M(z) = F_X(z) F_Y(z)$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;$N=\mathrm{min}\{X,Y\}$&#xA;&lt;/p&gt;&#xA;$$F_N(z) = P\{\mathrm{min}\{X,Y\} \leqslant z\} = 1-P\{X&gt;z, Y&gt;z\}$$&lt;p&gt;&#xA;若 $X$ 与 $Y$ 相互独立，则 $F_M(z) = 1-[1-F_X(z)] \cdot [1-F_Y(z)]$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;随机变量的数字特征&#34;&gt;随机变量的数字特征&#xA;&lt;/h2&gt;&lt;h3 id=&#34;数学期望&#34;&gt;数学期望&#xA;&lt;/h3&gt;&lt;h4 id=&#34;随机变量的数学期望&#34;&gt;随机变量的数学期望&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;类型&lt;/th&gt;&#xA;          &lt;th&gt;概率分布&lt;/th&gt;&#xA;          &lt;th&gt;数学期望&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;离散型随机变量&lt;/td&gt;&#xA;          &lt;td&gt;概率分布律：$P\{X=x_k\}=p_k$，$k=1,2,\cdots$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle E(X) = \sum_{k=1}^{\infty} x_k p_k$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;连续型随机变量&lt;/td&gt;&#xA;          &lt;td&gt;概率分布函数：$f(x)$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle E(X) = \int_{-\infty}^{+\infty} xf(x) \mathrm{d}x$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;随机变量函数的数学期望&#34;&gt;随机变量函数的数学期望&#xA;&lt;/h4&gt;&lt;ul&gt;&#xA;&lt;li&gt;设 $X$ 是随机变量，令 $Y=g(X)$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;类型&lt;/th&gt;&#xA;          &lt;th&gt;概率分布&lt;/th&gt;&#xA;          &lt;th&gt;$E(Y)$&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;离散型随机变量&lt;/td&gt;&#xA;          &lt;td&gt;概率分布律：$P\{X=x_k\} = p_k$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle E(Y) = E[g(X)] = \sum_{k=1}^{\infty} g(x_k) P\{X=x_k\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;连续型随机变量&lt;/td&gt;&#xA;          &lt;td&gt;概率密度函数：$f(x)$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle E(Y) = E[g(X)] = \int_{-\infty}^{+\infty} g(x)f(x) \mathrm{d}x$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;设 $(X,Y)$ 是二维随机变量，令 $Z=g(X,Y)$.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;类型&lt;/th&gt;&#xA;          &lt;th&gt;概率分布&lt;/th&gt;&#xA;          &lt;th&gt;$E(Z)$&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;离散型随机变量&lt;/td&gt;&#xA;          &lt;td&gt;联合概率分布律：$P\{X=x_i,\ Y=y_j\} = p_{ij}$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle E(Z) = \sum_{i=1}^{\infty} \sum_{j=1}^{\infty} g(x_i,y_i) p_{ij}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;连续型随机变量&lt;/td&gt;&#xA;          &lt;td&gt;联合概率密度函数：$f(x,y)$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle E(Z) = \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} g(x,y) f(x,y) \mathrm{d}x\mathrm{d}y$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;数学期望的性质&#34;&gt;数学期望的性质&#xA;&lt;/h4&gt;&lt;ol&gt;&#xA;&lt;li&gt;设 $c$ 是常数，则 $E(c) = c$&lt;/li&gt;&#xA;&lt;li&gt;若 $a$，$b$ 是常数，则 $E(aX+b) = aE(X)+b$&lt;/li&gt;&#xA;&lt;li&gt;$E(X+Y) = E(X)+E(Y)$&lt;/li&gt;&#xA;&lt;li&gt;设 $X$，$Y$ 相互独立，则 $E(XY) = E(X)E(Y)$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;方差&#34;&gt;方差&#xA;&lt;/h3&gt;&lt;h4 id=&#34;方差的定义&#34;&gt;方差的定义&#xA;&lt;/h4&gt;&lt;p&gt;设随机变量 $X$ 的数学期望 $E(X)$ 存在，若随机变量 $[X-E(X)]^2$ 的数学期望 $E[X-E(X)]^2$ 存在，则记随机变量 $X$ 的方差 &lt;/p&gt;&#xA;$$D(X) = \mathrm{Var}(X) = E[X-E(X)]^2 $$&lt;p&gt; 方差的算术平方根记作标准差 &lt;/p&gt;&#xA;$$\sigma(X) = \sqrt{D(X)}$$&lt;p&gt;将方差的定义式展开，可得：&lt;/p&gt;&#xA;$$D(X) = E(X^2)-[E(X)]^2$$&lt;h4 id=&#34;基本性质&#34;&gt;基本性质&#xA;&lt;/h4&gt;&lt;ol&gt;&#xA;&lt;li&gt;$D(c) = 0$&lt;/li&gt;&#xA;&lt;li&gt;$D(aX+b) = a^2 D(X)$&lt;/li&gt;&#xA;&lt;li&gt;若随机变量 $X$ 与 $Y$ 独立，则 $D(X+Y) = D(X) + D(Y)$&lt;/li&gt;&#xA;&lt;li&gt;$D(X) = 0$ 的充要条件是 $P\{X=c\} = 1$&lt;/li&gt;&#xA;&lt;li&gt;设实函数 $f(x) = E(X-x)^2$，即当 $x=E(X)$ 时，$f(x)$ 取最小值 $D(X)$，即 $D(X) \leqslant E(X-x)^2$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;常用分布的数学期望与方差&#34;&gt;常用分布的数学期望与方差&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;分布&lt;/th&gt;&#xA;          &lt;th&gt;表示&lt;/th&gt;&#xA;          &lt;th&gt;期望&lt;/th&gt;&#xA;          &lt;th&gt;方差&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$0-1$ 分布&lt;/td&gt;&#xA;          &lt;td&gt;$B(1,p)$&lt;/td&gt;&#xA;          &lt;td&gt;$p$&lt;/td&gt;&#xA;          &lt;td&gt;$p(1-p)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;二项分布&lt;/td&gt;&#xA;          &lt;td&gt;$B(n,p)$&lt;/td&gt;&#xA;          &lt;td&gt;$np$&lt;/td&gt;&#xA;          &lt;td&gt;$np(1-p)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;泊松分布&lt;/td&gt;&#xA;          &lt;td&gt;$P(\lambda)$&lt;/td&gt;&#xA;          &lt;td&gt;$\lambda$&lt;/td&gt;&#xA;          &lt;td&gt;$\lambda$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;几何分布&lt;/td&gt;&#xA;          &lt;td&gt;$G(p)$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \frac{1}{p}$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \frac{1-p}{p^2}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;分布&lt;/th&gt;&#xA;          &lt;th&gt;表示&lt;/th&gt;&#xA;          &lt;th&gt;期望&lt;/th&gt;&#xA;          &lt;th&gt;方差&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;均匀分布&lt;/td&gt;&#xA;          &lt;td&gt;$U(a,b)$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \frac{a+b}{2}$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \frac{(b-a)^2}{12}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;指数分布&lt;/td&gt;&#xA;          &lt;td&gt;$Exp(\lambda)$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \frac{1}{\lambda}$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \frac{1}{\lambda^2}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;正态分布&lt;/td&gt;&#xA;          &lt;td&gt;$N(\mu,\sigma^2)$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;协方差与相关系数&#34;&gt;协方差与相关系数&#xA;&lt;/h3&gt;&lt;h4 id=&#34;协方差&#34;&gt;协方差&#xA;&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 是二维随机变量，则称 &lt;/p&gt;&#xA;$$\mathrm{Cov}(X,Y) = E\{[X-E(X)] [Y-E(Y)]\}$$&lt;p&gt; 为随机变量 $X$ 与 $Y$ 的协方差.&lt;/p&gt;&#xA;&lt;p&gt;性质：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;$\mathrm{Cov}(X,Y) = E(XY)-E(X)E(Y)$&lt;/li&gt;&#xA;&lt;li&gt;$\mathrm{Cov}(X,X) = D(X)$&lt;/li&gt;&#xA;&lt;li&gt;$\mathrm{Cov}(X,Y) = \mathrm{Cov}(Y,X)$&lt;/li&gt;&#xA;&lt;li&gt;$\mathrm{Cov}(X+Y,Z) = \mathrm{Cov}(X,Z) + \mathrm{Cov}(Y,Z)$&lt;/li&gt;&#xA;&lt;li&gt;$\mathrm{Cov}(aX+b,cY+d) = ac\mathrm{Cov}(X,Y)$&lt;/li&gt;&#xA;&lt;li&gt;$D(X \pm Y) = D(X) + D(Y) \pm 2 \mathrm{Cov}(X,Y)$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;相关系数&#34;&gt;相关系数&#xA;&lt;/h4&gt;&lt;p&gt;设 $(X,Y)$ 是二维随机变量，则称 &lt;/p&gt;&#xA;$$\rho_{X,Y} = \frac{\mathrm{Cov}(X,Y)}{\sqrt{D(X)} \sqrt{D(Y)}}$$&lt;p&gt; 为随机变量 $X$ 与 $Y$ 的相关系数.&lt;/p&gt;&#xA;&lt;p&gt;性质：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;$ | \rho_{X,Y} \leqslant 1 |$&lt;/li&gt;&#xA;&lt;li&gt;$ | \rho_{X,Y} | = 1 $ 等价于 $X$ 与 $Y$ 以概率 $1$ 有线性关系&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;大数定律与中心极限定理&#34;&gt;大数定律与中心极限定理&#xA;&lt;/h2&gt;&lt;h3 id=&#34;切比雪夫不等式&#34;&gt;切比雪夫不等式&#xA;&lt;/h3&gt;&lt;p&gt;设随机变量 $X$ 具有数学期望 $E(X) = \mu$，方差 $D(X) = \sigma^2$，则对于任意正数 $\varepsilon$，有 &lt;/p&gt;&#xA;$$P\{ |X - E(X)| \geqslant \varepsilon\} \leqslant \frac{D(X)}{\varepsilon^2}$$&lt;h3 id=&#34;大数定律&#34;&gt;大数定律&#xA;&lt;/h3&gt;&lt;h4 id=&#34;依概率收敛&#34;&gt;依概率收敛&#xA;&lt;/h4&gt;&lt;p&gt;设随机变量序列 $X_1, X_2 \cdots, X_n, \cdots$，若存在随机变量 $X$，使得对任意 $\varepsilon &amp;gt; 0$，恒有 &lt;/p&gt;&#xA;$$\lim_{n \to \infty} P\{ |X_n -X| &lt; \varepsilon \} = 1$$&lt;p&gt; 则称序列 $X_1, X_2 \cdots, X_n, \cdots$ 依概率收敛于 $X$，记为 $X_n \xrightarrow{P} X$&lt;/p&gt;&#xA;&lt;h4 id=&#34;大数定律-1&#34;&gt;大数定律&#xA;&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;切比雪夫大数定律&lt;/strong&gt;：设 $X_1, X_2 \cdots, X_n, \cdots$ 是一列两两不相关的随机变量序列，且方差有界（即存在常数 $C&amp;gt;0$，使得对于任意 $i$，都有 $D(X_i) \leqslant C$）. 令 $\displaystyle Y_n = \frac{1}{n} \sum_{i=1}^{n} X_i$，则有 &lt;/p&gt;&#xA;$$Y_n \xrightarrow{P} E(Y_n)$$&lt;p&gt;&lt;strong&gt;伯努利大数定律&lt;/strong&gt;：在 $n$ 重伯努利试验中，设在每次试验中事件 $A$ 发生的概率均为 $p(0&amp;lt;p&amp;lt;1)$，$\mu_n$ 为 $n$ 重伯努利试验中事件 $A$ 发生的次数，则 &lt;/p&gt;&#xA;$$ \frac{\mu_n}{n} \xrightarrow{P} p$$&lt;p&gt;&lt;strong&gt;辛钦大数定律&lt;/strong&gt;：设 $X_1, X_2 \cdots, X_n, \cdots$ 是独立同分布的随机变量序列，且数学期望存在，即 $E(X_i) = \mu (i = 1,2,\cdots,n,\cdots)$，则 &lt;/p&gt;&#xA;$$ \frac{1}{n} \sum_{i=1}^{n} X_i \xrightarrow{P} \mu $$&lt;h3 id=&#34;中心极限定理&#34;&gt;中心极限定理&#xA;&lt;/h3&gt;&lt;p&gt;设随机变量序列 $X_1, X_2 \cdots, X_n, \cdots$ 独立同分布，且 $E(X_i) = \mu$，$D(X_i) = \sigma^2 &amp;gt; 0$，则随机变量 &lt;/p&gt;&#xA;$$Y_i = \frac{\displaystyle \sum_{i=0}^{n} X_i - n\mu}{\sqrt{n}\sigma}$$&lt;p&gt; 的分布函数 $F_n(x)$ 满足 &lt;/p&gt;&#xA;$$\lim_{n \to \infty} F_n(x) = \lim_{n \to \infty} P\{Y_n \leqslant x\} = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{x} \mathrm{e}^{-\frac{y^2}{2}} \mathrm{d}y，x \in \textbf{R}$$&lt;p&gt;该定理表明，当 $n \to \infty$ 时，随机变量 $Y_n$ 的分布将趋近于标准正态分布 $N(0,1)$. 即：当 $n$ 充分大时，独立同分布的 $n$ 个随机变量 $X_1, X_2 \cdots, X_n$ 之和 $\displaystyle S_n = \sum_{i=1}^{n} X_i$ 将近似地服从正态分布 $N(n\mu, n\sigma^2)$&lt;/p&gt;&#xA;&lt;p&gt;设在独立重复试验序列中，事件 $A$ 发生的概率为 $p$，随机变量 $Y_n$ 表示事件 $A$ 在 $n$ 次试验中发生的次数，则对于任意实数 $x$，有 &lt;/p&gt;&#xA;$$\lim_{n \to \infty} \left\{  \frac{Y_n - np}{\sqrt{np(1-p)}} \leqslant x \right\} = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{x} \mathrm{e}^{-\frac{y^2}{2}} \mathrm{d}y$$&lt;p&gt;或者表示为：&lt;/p&gt;&#xA;$$P\{ a &lt; X &lt; b \} = \varPhi\left( \frac{b-np}{\sqrt{np(1-p)}} \right) - \varPhi\left( \frac{a-np}{\sqrt{np(1-p)}} \right)$$&lt;h2 id=&#34;数理统计的基本概念与抽样分布&#34;&gt;数理统计的基本概念与抽样分布&#xA;&lt;/h2&gt;&lt;h3 id=&#34;基本概念&#34;&gt;基本概念&#xA;&lt;/h3&gt;&lt;h4 id=&#34;总体与样本&#34;&gt;总体与样本&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;概念&lt;/th&gt;&#xA;          &lt;th&gt;定义&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;总体&lt;/td&gt;&#xA;          &lt;td&gt;研究对象的某项数量指标的值的全体称为总体&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;个体&lt;/td&gt;&#xA;          &lt;td&gt;总体中的每个元素称为个体&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;样本&lt;/td&gt;&#xA;          &lt;td&gt;从一个总体 $X$ 中随机地抽取 $n$ 个个体组成的向量 $(X_1,X_2,\cdots,X_n)$ 称为总体 $X$ 的一个样本&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;随机样本的要求&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;独立性：$X_1,X_2,\cdots,X_n$ 是相互独立的随机变量；&lt;/li&gt;&#xA;&lt;li&gt;代表性：样本的每个个体 $X_i$ 与总体 $X$ 具有相同的分布.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;经验分布函数&#34;&gt;经验分布函数&#xA;&lt;/h4&gt;&lt;p&gt;设 $(X_1,X_2,\cdots,X_n)$ 是从总体 $X$ 中抽取的容量为 $n$ 的样本，$(x_1,x_2,\cdots,x_n)$ 是样本的观测值，将样本观测值从小到大排列得到 $x_{(1)} \leqslant x_{(2)} \leqslant \cdots \leqslant x_{(n)}$，对任意实数 $x$，称 &lt;/p&gt;&#xA;$$F_n(x) = \frac{1}{n} \sum_{i=0}^{n} I_{\{x_{(i)} \leqslant x\}}$$&lt;p&gt; 为总体 $X$ 的经验分布函数.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;当样本容量 $n$ 足够大时，经验分布函数 $F_n(x)$ 是总体分布函数的一个良好近似.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;统计量及其分布&#34;&gt;统计量及其分布&#xA;&lt;/h3&gt;&lt;h4 id=&#34;统计量&#34;&gt;统计量&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;样本矩&lt;/th&gt;&#xA;          &lt;th&gt;表示&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;样本均值&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \overline{X} = \frac{1}{n} \sum_{i=0}^{n} X_i$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;样本方差&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle S^2 = \frac{1}{n-1} \sum_{i=1}^{n} (X_i - \overline{X})^2$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;样本标准差&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle S = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n} (X_i - \overline{X})^2 }$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;样本的 $k$ 阶原点矩&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle A_k = \frac{1}{n} \sum_{i=1}^{n} X_i^k$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;样本的 $k$ 阶中心矩&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle M_k = \frac{1}{n} \sum_{i=1}^{n} (X_i - \overline{X})^k$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;统计中的常用分布&#34;&gt;统计中的常用分布&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;$\chi^2$ 分布&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;定义&lt;/td&gt;&#xA;          &lt;td&gt;设随机变量 $X_1, X_2 \cdots, X_n, \cdots$ 相互独立，且均服从 $N(0,1)$ 分布，则随机变量 $$Y = X_1^2 + X_2^2 + \cdots + X_n^2$$ 服从自由度是 $n$ 的 $\chi^2$ 分布，记为 $Y \sim \chi_n^2$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;性质&lt;/td&gt;&#xA;          &lt;td&gt;设随机变量 $ Y \sim \chi_n^2$，则 $E(Y) = n$，$D(Y) = 2n$ &lt;br&gt; 设随机变量 $Y_1 \sim \chi_m^2$，$Y_2 \sim \chi_n^2$，且 $Y_1$ 和 $Y_2$ 相互独立，则 $Y_1 + Y_2 \sim \chi_{m+n}^2$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;$t$ 分布&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;定义&lt;/td&gt;&#xA;          &lt;td&gt;设随机变量 $X \sim N(0,1)$，$Y \sim \chi_n^2$，且 $X$ 和 $Y$ 相互独立，则称随机变量 $$T = \frac{X}{\sqrt{Y/n}}$$ 服从自由度是 $n$ 的 $t$ 分布，记为 $T \sim t_n$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;性质&lt;/td&gt;&#xA;          &lt;td&gt;$t$ 的概率密度函数 $f(x;n)$ 关于 $y$ 轴对称，且当 $n \to \infty$ 时，$t$ 分布趋于标准正态分布&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;$F$ 分布&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;定义&lt;/td&gt;&#xA;          &lt;td&gt;设随机变量 $X \sim \chi_m^2$，$Y \sim \chi_n^2$，且 $X$ 和 $Y$ 相互独立，则称随机变量 $$F = \frac{X/m}{Y/n}$$ 服从第一自由度是 $m$，第二自由度是 $n$ 的 $F$ 分布，记作 $F \sim F_{m,n}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;性质&lt;/td&gt;&#xA;          &lt;td&gt;若 $F \sim F_{m,n}$，则 $\displaystyle \frac{1}{F} \sim F_{m,n}$ &lt;br&gt; 若 $T \sim t_n$，则 $T^2 \sim F_{1,n}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;抽样分布定理&#34;&gt;抽样分布定理&#xA;&lt;/h4&gt;&lt;p&gt;设 $(X_1,X_2,\cdots,X_n)$ 是来自正态总体 $X \sim N(\mu,\sigma^2)$ 的样本，样本均值为 $\displaystyle \overline{X} = \frac{1}{n} \sum_{i=1}^{n} X_i$，样本方差为 $\displaystyle S^2=\frac{1}{n-1} \sum_{i=1}^{n} (X_i-\overline{X})^2$，则&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;$\displaystyle \overline{X} \sim N(\mu,\frac{\sigma^2}{n})$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;$\displaystyle \frac{\sqrt{n}(\overline{X}-\mu)}{S} \sim t_{n-1}$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;$\displaystyle \frac{(n-1)S^2}{\sigma^2} \sim \chi_{n-1}^2$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;${X}$ 与 $S^2$ 相互独立&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;抽样分布定理常用来构造一些已知分布的统计量.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;参数估计&#34;&gt;参数估计&#xA;&lt;/h2&gt;&lt;p&gt;通过样本来估计总体的参数，称为参数估计.&lt;/p&gt;&#xA;&lt;h3 id=&#34;参数的点估计&#34;&gt;参数的点估计&#xA;&lt;/h3&gt;&lt;p&gt;设总体 $X$ 的分布类型已知，但其中含有未知数 $\theta = (\theta_1, \cdots, \theta_k)$. 从样本出发构造适当的统计量 $\hat{\theta}_i = \hat{\theta}_i(X_1,X_2,\cdots,X_n)$ 作为参数 $\theta_i$ 的估计量，当取得样本观测值 $(x_1,x_2,\cdots,x_n)$ 后，就用 $\hat{\theta}_i = \hat{\theta}_i(x_1,x_2,\cdots,x_n)$ 作为未知参数 $\theta_i$ 的估计值.&lt;/p&gt;&#xA;&lt;h4 id=&#34;矩估计法&#34;&gt;矩估计法&#xA;&lt;/h4&gt;&lt;p&gt;设总体 $X$ 含有 $k$ 个未知参数 $\theta_1, \theta_2, \cdots, \theta_k$，且 $X$ 的 $m$ 阶原点矩 $\alpha_m = E(X^m)$ 存在，$m=1,2,\cdots,k$，，令 &lt;/p&gt;&#xA;$$\left \{\begin{array}{c}  \alpha_1(\theta_1, \cdots, \theta_k) = A_1 \\ \\ \alpha_2(\theta_1, \cdots, \theta_k) = A_2 \\\\ \cdots \ \cdots \ \cdots \ \cdots \\\\ \alpha_k(\theta_1, \cdots, \theta_k) = A_k \\ \end{array} \right. $$&lt;p&gt; 解这个方程组，其解都是样本的函数，记为 &lt;/p&gt;&#xA;$$\hat{\theta_i} = \hat{\theta_i}(X_1, X_2, \cdots, X_n)，i=1,2,\cdots,k$$&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;当总体含有两个未知参数时，通常我们使用 &lt;/p&gt;&#xA;$$\left \{ \begin{array}{c} \begin{align*} &amp; E(\theta_1, \cdots, \theta_k) = \overline{X} \\ \\ &amp; D(\theta_1, \cdots, \theta_k) = \frac{(n-1)S^2}{n}  \end{align*} \end{array} \right. $$&lt;p&gt; 求出参数.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;最大似然估计法&#34;&gt;最大似然估计法&#xA;&lt;/h4&gt;&lt;p&gt;设总体 $X$ 的概率分布为 $f(x;\theta)$，$\theta = (\theta_1,\theta_2,\cdots,\theta_k)$ 为未知参数，$(X_1,X_2,\cdots,X_n)$ 是从该总体中抽取的样本，则它们的联合概率分布为 &lt;/p&gt;&#xA;$$L(x_1, x_2, \cdots, x_n;\theta) = \prod_{i=1}^{n} f(x_i,\theta)$$&lt;p&gt; 将其设作 $\theta$ 的函数 $L(\theta)$ 称其为 $\theta$ 的似然函数.&lt;/p&gt;&#xA;&lt;p&gt;对给定的样本值 $(x_1,x_2,\cdots,x_n)$，若存在 $\hat{\theta}$ 使得 &lt;/p&gt;&#xA;$$L(\hat{\theta}) = \underset{\theta \in \mathrm{H}}{\mathrm{max}} L(\theta)$$&lt;p&gt; 则称 $\hat{\theta}$ 是参数 $\theta$ 的最大似然估计值.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;若 $L(\hat{\theta})$ 不单调，则可取 $l(\theta) = \ln L(\theta)$，对 $l(\theta)$ 求导可得到最大值点 $\hat{\theta}$.&lt;/li&gt;&#xA;&lt;li&gt;若 $L(\hat{\theta})$ 单调递增，则 $\hat{\theta}$ 取端点处的值.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;估计量的优良性准则&#34;&gt;估计量的优良性准则&#xA;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;准则&lt;/th&gt;&#xA;          &lt;th&gt;定义&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;无偏性&lt;/td&gt;&#xA;          &lt;td&gt;设 $\hat{\theta}$ 是参数 $\theta$ 的估计量，若 $E(\hat{\theta}) = \theta$ 对一切 $\theta$ 均成立，则称 $\hat{\theta}$ 为 $\theta$ 的无偏估计量，记为 $\mathrm{UE}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;有效性&lt;/td&gt;&#xA;          &lt;td&gt;设 $\hat{\theta_1}$ 和 $\hat{\theta_2}$ 均为 $\theta$ 的无偏估计量，若 $D(\hat{\theta_1}) &amp;lt; D(\hat{\theta_2})$，则称 $\hat{\theta_1}$ 比 $\hat{\theta_2}$ 有效&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;相合估计&lt;/td&gt;&#xA;          &lt;td&gt;设 $\hat{\theta}_n = \hat{\theta}_n(X_1,X_2,\cdots,X_n)$ 是未知参数 $\theta$ 的估计序列，若 $\hat{\theta}_n$ &lt;a class=&#34;link&#34; href=&#34;#%e4%be%9d%e6%a6%82%e7%8e%87%e6%94%b6%e6%95%9b&#34; &gt;依概率收敛&lt;/a&gt;于 $\theta$，则称 $\hat{\theta}_n$ 是 $\theta$ 的相合估计量或一致估计量&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;区间估计&#34;&gt;区间估计&#xA;&lt;/h3&gt;&lt;h4 id=&#34;基本概念-1&#34;&gt;基本概念&#xA;&lt;/h4&gt;&lt;p&gt;设 $\theta$ 为总体中的未知参数，$(X_1,X_2,\cdots,X_n)$ 是从总体中抽取的样本. 如果存在两个估计量 $\hat{\theta_1} = \hat{\theta}_1(X_1,X_2,\cdots,X_n)$ 和 $\hat{\theta}_2 = \hat{\theta_2}(X_1,X_2,\cdots,X_n)$，对于给定的 $\alpha (0&amp;lt;\alpha&amp;lt;1)$ 有 &lt;/p&gt;&#xA;$$P\{\hat{\theta}_1 &lt; \theta &lt; \hat{\theta}_2\} \geqslant 1-\alpha$$&lt;p&gt; 则称：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;基本概念&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;置信区间&lt;/td&gt;&#xA;          &lt;td&gt;区间 $(\hat{\theta}_1,\hat{\theta}_2)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;置信度&lt;/td&gt;&#xA;          &lt;td&gt;$1-\alpha$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;置信下界&lt;/td&gt;&#xA;          &lt;td&gt;$\hat{\theta}_1$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;置信上界&lt;/td&gt;&#xA;          &lt;td&gt;$\hat{\theta}_2$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;构造置信区间的一般步骤：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;构造样本 $(X_1,X_2,\cdots,X_n)$ 和待估参数 $\theta$ 的函数 $g(X_1,X_2,\cdots,X_n)$，要求除 $\theta$ 外，$g$ 不含任何其他未知参数，并且 $g$ 的分布完全已知（通常为标准正态分布、$\chi^2$ 分布、$t$ 分布、$F$ 分布等）且与 $\theta$ 无关；&lt;/li&gt;&#xA;&lt;li&gt;对于给定的置信度 $1-\alpha$，由关系式&#xA;$$P\{a &lt; g(X_1,X_2,\cdots,X_n,\theta) &lt; b\} \geqslant 1-\alpha$$确定适当的常数 $a$，$b$；&lt;/li&gt;&#xA;&lt;li&gt;上式等价于&#xA;$$P\{\hat{\theta}_1(X_1,X_2,\cdots,X_n) &lt; g(X_1,X_2,\cdots,X_n,\theta) &lt; \hat{\theta}_2(X_1,X_2,\cdots,X_n)\} \geqslant 1-\alpha$$于是 $(\theta_1,\theta_2)$ 就是 $\theta$ 的置信度至少为 $1-\alpha$ 的置信区间.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;设 $X$ 是随机变量，$\alpha(0&amp;lt;\alpha&amp;lt;1)$ 是任意给定的正数，若存在 $x_{\alpha}$ 使得 $P\{X \geqslant x_{\alpha}\} = \alpha$，则称 $x_{\alpha}$ 为 $X$ （或它的概率分布）的 $\alpha$ 上侧分位数.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;分布&lt;/th&gt;&#xA;          &lt;th&gt;上侧分位数的性质&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;正态分布&lt;/td&gt;&#xA;          &lt;td&gt;若 $X \sim N(0,1)$，若 $\alpha \leqslant 0.5$，则 $P\{X \leqslant x_{1-\alpha}\} = P\{X \geqslant x_{\alpha}\} = \alpha$，所以 $x_{\alpha} = -x_{\alpha}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$t$ 分布&lt;/td&gt;&#xA;          &lt;td&gt;若 $T \sim t_{n}$，则有 $t_n(1-\alpha) = t_n(\alpha)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$F$ 分布&lt;/td&gt;&#xA;          &lt;td&gt;若 $F \sim F_{m,n}$，则有 $\displaystyle F_{n,m}(1-\alpha)= \frac{1}{F_{m,n}(\alpha)}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;单个正态总体参数的置信区间&#34;&gt;单个正态总体参数的置信区间&#xA;&lt;/h4&gt;&lt;p&gt;设总体 $X \sim N(\mu,\sigma^2)$，$(X_1,X_2,\cdots,X_n)$ 是取自总体 $X$ 的样本，对给定的置信度 $1-\alpha$，分别求参数 $\mu$ 和 $\sigma^2$ 的区间估计.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;估计量&lt;/th&gt;&#xA;          &lt;th&gt;条件&lt;/th&gt;&#xA;          &lt;th&gt;枢轴量&lt;/th&gt;&#xA;          &lt;th&gt;置信区间&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\mu$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2$ 已知&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle Z=\frac{\overline{X}-\mu}{\sigma /\sqrt{n}} \sim N(0,1) $&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \left(\overline{X} - z_{\frac{\alpha}{2}} \frac{\sigma}{\sqrt{n}},\ \overline{X} + z_{\frac{\alpha}{2}} \frac{\sigma}{\sqrt{n}} \right)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\mu$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2$ 未知&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle T=\frac{\overline{X}-\mu}{S/\sqrt{n}} \sim t_{n-1}$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \left(\overline{X}-t_{n-1}\left(\frac{\alpha}{2}\right) \frac{S}{\sqrt{n}},\ \overline{X}+t_{n-1}\left(\frac{\alpha}{2}\right) \frac{S}{\sqrt{n}} \right) $&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\sigma^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu$ 未知&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \chi^2 = \frac{(n-1)S^2}{\sigma^2} \sim \chi_{n-1}^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \left(\frac{(n-1)S^2}{\displaystyle \chi_{n-1}^2 \left(\frac{\alpha}{2}\right)}, \ \frac{(n-1)S^2}{\displaystyle \chi_{n-1}^2 \left(1-\frac{\alpha}{2}\right)} \right)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;两个正态总体参数的置信区间&#34;&gt;两个正态总体参数的置信区间&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;估计量&lt;/th&gt;&#xA;          &lt;th&gt;条件&lt;/th&gt;&#xA;          &lt;th&gt;枢轴量&lt;/th&gt;&#xA;          &lt;th&gt;置信区间&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\mu_1 - \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;方差已知&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle Z = \frac{\overline{X}-\overline{Y}-(\mu_1-\mu_2)}{\displaystyle \sqrt{\frac{1}{m} \sigma_1^2 + \frac{1}{n} \sigma_2^2}} \sim N(0,1)$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \left(\overline{X}-\overline{Y}-z_{\frac{\alpha}{2}} \sqrt{\frac{1}{m}\sigma_1^2 + \frac{1}{n}\sigma_2^2}, \ \overline{X}-\overline{Y}+z_{\frac{\alpha}{2}} \sqrt{\frac{1}{m}\sigma_1^2 + \frac{1}{n}\sigma_2^2} \right)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\mu_1 - \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;方差未知但相等&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle T = \frac{\overline{X}-\overline{Y}-(\mu_1-\mu_2)}{\displaystyle S_w\sqrt{\frac{1}{m} + \frac{1}{n}}} \sim t_{m+n-2}$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \left(\overline{X}-\overline{Y}-\lambda, \ \overline{X}-\overline{Y}+\lambda\right)$ &lt;br&gt; 其中 $\displaystyle \lambda = t_{m+n-2}\left(\frac{\alpha}{2}\right)S_w \sqrt{\frac{1}{m}+\frac{1}{n}}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\displaystyle \frac{\sigma_1^2}{\sigma_2^2}$&lt;/td&gt;&#xA;          &lt;td&gt;均值未知&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle F = \frac{S_2^2}{S_1^2} \cdot \frac{\sigma_1^2}{\sigma_2^2}\sim F_{n-1,m-1}$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \left(F_{n-1,m-1}\left(1-\frac{\alpha}{2}\right)\frac{S_1^2}{S_2^2}, \ F_{n-1,m-1}\left(\frac{\alpha}{2}\right)\frac{S_1^2}{S_2^2} \right)$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;假设检验&#34;&gt;假设检验&#xA;&lt;/h2&gt;&lt;p&gt;假设检验是对总体的分布类型或分布类型中的未知参数提出假设，然后根据抽取的样本构造适当的统计量，对假设的真伪作出具有一定可靠性的判断.&lt;/p&gt;&#xA;&lt;h3 id=&#34;基本概念-2&#34;&gt;基本概念&#xA;&lt;/h3&gt;&lt;p&gt;提出假设时，称：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;定义&lt;/th&gt;&#xA;          &lt;th&gt;含义&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$H_0$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;strong&gt;原假设&lt;/strong&gt;或&lt;strong&gt;零假设&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$H_1$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;strong&gt;备择假设&lt;/strong&gt;或&lt;strong&gt;对立假设&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;小概率原理&lt;/td&gt;&#xA;          &lt;td&gt;小概率事件在一次试验中几乎不可能发生&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;检验统计量&lt;/td&gt;&#xA;          &lt;td&gt;检验假设的统计量&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;拒绝域&lt;/td&gt;&#xA;          &lt;td&gt;$W = \{|Z| \geqslant z_{\alpha/2}\}$：拒绝原假设 $H_0$ 的区间&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;接受域&lt;/td&gt;&#xA;          &lt;td&gt;$W = \{|Z| &amp;lt; z_{\alpha/2}\}$：接受原假设 $H_0$ 的区间&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;一般步骤&#34;&gt;一般步骤&#xA;&lt;/h4&gt;&lt;ol&gt;&#xA;&lt;li&gt;根据实际问题的需求，提出原假设 $H_0$ 和备择假设 $H_1$；&lt;/li&gt;&#xA;&lt;li&gt;根据 $H_0$ 内容，选取合适的检验统计量；&lt;/li&gt;&#xA;&lt;li&gt;对给定的显著性水平 $\alpha$，确定小概率事件（即拒绝域）$W$；&lt;/li&gt;&#xA;&lt;li&gt;判断：若样本观测值落入拒绝域 $W$，则拒绝原假设 $H_0$，否则不拒绝原假设 $H_0$.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;两类错误&#34;&gt;两类错误&#xA;&lt;/h4&gt;&lt;p&gt;第一类错误：当原假设 $H_0$ 为真时，样本观测值却落在了拒绝域，犯了“弃真”的错误. 可知犯第一类错误的最大概率为 &lt;/p&gt;&#xA;$$P\{拒绝 H_0 \ |\ H_0 为真\} = \alpha$$&lt;p&gt;第二类错误：当原假设 $H_0$ 不真时，样本观测值却落在了接受域，犯了“采伪”的错误，记犯第二类错误的概率 &lt;/p&gt;&#xA;$$P\{不拒绝 H_0 \ |\ H_0 不真\} = \beta$$&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;注意：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;对检验结果来说，拒绝 $H_0$ 是有说服力的，接受 $H_0$ 是没有说服力的.&lt;/li&gt;&#xA;&lt;li&gt;原假设 $H_0$ 和备择假设 $H_1$ 不是平等的.&lt;/li&gt;&#xA;&lt;li&gt;在提出假设时，应当尽量使后果更严重的错误成为第一类错误.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;正态总体的假设检验&#34;&gt;正态总体的假设检验&#xA;&lt;/h3&gt;&lt;h4 id=&#34;单个正态总体&#34;&gt;单个正态总体&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;检验法&lt;/th&gt;&#xA;          &lt;th&gt;条件&lt;/th&gt;&#xA;          &lt;th&gt;原假设&lt;/th&gt;&#xA;          &lt;th&gt;备择假设&lt;/th&gt;&#xA;          &lt;th&gt;检验统计量&lt;/th&gt;&#xA;          &lt;th&gt;拒绝条件&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$Z$ 检验&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 = \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu = \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu \ne \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle Z = \frac{\overline{X}-\mu_0}{\sigma_0 / \sqrt{n}}$&lt;/td&gt;&#xA;          &lt;td&gt;$\{|Z| \geqslant z_{\alpha / 2}\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\mu \leqslant \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu &amp;gt; \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{Z \geqslant z_{\alpha}\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\mu \geqslant \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu &amp;lt; \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{Z \leqslant -z_{\alpha}\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$t$ 检验&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma$ 未知&lt;/td&gt;&#xA;          &lt;td&gt;$\mu = \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu \ne \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle T = \frac{\overline{X}-\mu_0}{S/\sqrt{n}}$&lt;/td&gt;&#xA;          &lt;td&gt;$\{|T| \geqslant t_{n-1}(\alpha / 2)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\mu \leqslant \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu &amp;gt; \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{T \geqslant t_{n-1}(\alpha)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\mu \geqslant \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu &amp;lt; \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{T \leqslant -t_{n-1}(\alpha)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\chi^2$ 检验&lt;/td&gt;&#xA;          &lt;td&gt;$\mu = \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 = \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 \ne \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \chi^2 = \frac{\displaystyle \sum_{i=1}^n(X_i-\mu_0)^2}{\sigma_0^2}$&lt;/td&gt;&#xA;          &lt;td&gt;$\{\chi^2 \leqslant \chi_n^2\left(1-\alpha/2\right) \ 或\  \chi^2 \geqslant \chi_n^2(\alpha/2)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 \leqslant \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 &amp;gt; \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{\chi^2 \geqslant \chi_n^2(\alpha)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 \geqslant \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 &amp;lt; \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{\chi^2 \leqslant \chi_n^2(1-\alpha)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$\chi^2$ 检验&lt;/td&gt;&#xA;          &lt;td&gt;$\mu$ 未知&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 = \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 \ne \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle \chi^2 = \frac{(n-1)S^2}{\sigma_0^2}$&lt;/td&gt;&#xA;          &lt;td&gt;$\{\chi^2 \leqslant \chi_{n-1}^2\left(1-\alpha/2\right) \ 或\  \chi^2 \geqslant \chi_{n-1}^2(\alpha/2)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 \leqslant \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 &amp;gt; \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{\chi^2 \geqslant \chi_{n-1}^2(\alpha)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 \geqslant \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma^2 &amp;lt; \sigma_0^2$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{\chi^2 \leqslant \chi_{n-1}^2(1-\alpha)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h4 id=&#34;两个正态总体&#34;&gt;两个正态总体&#xA;&lt;/h4&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;检验法&lt;/th&gt;&#xA;          &lt;th&gt;条件&lt;/th&gt;&#xA;          &lt;th&gt;原假设&lt;/th&gt;&#xA;          &lt;th&gt;备择假设&lt;/th&gt;&#xA;          &lt;th&gt;检验统计量&lt;/th&gt;&#xA;          &lt;th&gt;拒绝条件&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$Z$ 检验&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma_1^2$，$\sigma_2^2$ 已知&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 = \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 \ne \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle Z = \frac{\overline{X}-\overline{Y}}{\displaystyle \sqrt{\frac{\sigma_1^2}{m} + \frac{\sigma_2^2}{n}}}$&lt;/td&gt;&#xA;          &lt;td&gt;$\{|Z| \geqslant z_{\alpha / 2}\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma_1^2$，$\sigma_2^2$ 未知&lt;/td&gt;&#xA;          &lt;td&gt;$\mu \leqslant \mu_0$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 &amp;gt; \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{Z \geqslant z_{\alpha}\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$t$ 检验&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma_1^2$，$\sigma_2^2$ 未知且$\sigma_1^2 = \sigma_2^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 = \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 \ne \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle T = \frac{\overline{X}-\overline{Y}}{\displaystyle S_w\sqrt{\frac{1}{m} + \frac{1}{n}}}$&lt;/td&gt;&#xA;          &lt;td&gt;$\{|T| \geqslant t_{m+n-2}(\alpha / 2)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 \leqslant \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 &amp;gt; \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{T \geqslant t_{m+n-2}(\alpha)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$t$ 检验&lt;/td&gt;&#xA;          &lt;td&gt;成对数据&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 = \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 \ne \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle T = \frac{\overline{D}}{S_d/\sqrt{n}}$&lt;/td&gt;&#xA;          &lt;td&gt;$\{|T| \geqslant t_{n-1}(\alpha / 2)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 \leqslant \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1 &amp;gt; \mu_2$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{T \geqslant t_{n-1}(\alpha)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$F$ 检验&lt;/td&gt;&#xA;          &lt;td&gt;$\mu_1$。$\mu_2$ 未知&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma_1^2 = \sigma_2^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma_1^2 \ne \sigma_2^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\displaystyle F = \frac{S_1^2}{S_2^2}$&lt;/td&gt;&#xA;          &lt;td&gt;$\{F \leqslant F_{m-1,n-1}(1-\alpha/2) \\ 或\ F \geqslant F_{m-1,n-1}(\alpha/2)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma_1^2 \leqslant \sigma_2^2$&lt;/td&gt;&#xA;          &lt;td&gt;$\sigma_1^2 &amp;gt; \sigma_2^2$&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;$\{F \geqslant F_{m-1,n-1}(\alpha)\}$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;</description>
        </item><item>
            <title>SQL语言</title>
            <link>https://rd806.github.io/passage/cs/database/sql/</link>
            <pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate>
            <guid>https://rd806.github.io/passage/cs/database/sql/</guid>
            <description>&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;SQL的功能远低于C语言和Java，为什么使用它？&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;关系代数的用途十分广泛。&lt;/li&gt;&#xA;&lt;li&gt;SQL的编译十分便捷，易于优化。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;SQL语句分类：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;分类&lt;/th&gt;&#xA;          &lt;th&gt;全称&lt;/th&gt;&#xA;          &lt;th&gt;说明&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;DDL&lt;/td&gt;&#xA;          &lt;td&gt;Data Definition Language&lt;/td&gt;&#xA;          &lt;td&gt;数据定义语言，用于定义数据库对象&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;DML&lt;/td&gt;&#xA;          &lt;td&gt;Data Manipulation Language&lt;/td&gt;&#xA;          &lt;td&gt;数据操作语言，用于数据库中数据的增删改&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;DQL&lt;/td&gt;&#xA;          &lt;td&gt;Data Query Language&lt;/td&gt;&#xA;          &lt;td&gt;数据查询语言，用于查询数据库中表的记录&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;DCL&lt;/td&gt;&#xA;          &lt;td&gt;Data Control Language&lt;/td&gt;&#xA;          &lt;td&gt;数据控制语言，用于创建数据库用户、控制数据库访问权限&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;sql的数据类型&#34;&gt;SQL的数据类型&#xA;&lt;/h2&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;数字类型&lt;/th&gt;&#xA;          &lt;th&gt;大小&lt;/th&gt;&#xA;          &lt;th&gt;描述&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;TINYINT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;1 byte&lt;/td&gt;&#xA;          &lt;td&gt;小整数集&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;SMALLINT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;2 bytes&lt;/td&gt;&#xA;          &lt;td&gt;大整数集&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;MEDIUMINT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;3 bytes&lt;/td&gt;&#xA;          &lt;td&gt;大整数集&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;INT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;4 bytes&lt;/td&gt;&#xA;          &lt;td&gt;大整数集&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;BIGINT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;8 bytes&lt;/td&gt;&#xA;          &lt;td&gt;极大整数集&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;FLOAT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;4 bytes&lt;/td&gt;&#xA;          &lt;td&gt;单精度浮点数集&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;DOUBLE&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;8 bytes&lt;/td&gt;&#xA;          &lt;td&gt;双精度浮点数集&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;DECIMAL&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;依赖精度值（总数位）和标度值（小数位）&lt;/td&gt;&#xA;          &lt;td&gt;精确定点数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;字符串类型&lt;/th&gt;&#xA;          &lt;th&gt;大小&lt;/th&gt;&#xA;          &lt;th&gt;描述&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;CHAR()&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0-255 bytes&lt;/td&gt;&#xA;          &lt;td&gt;定长字符串&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;VARCHAR()&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0-65,535 bytes&lt;/td&gt;&#xA;          &lt;td&gt;变长字符串&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;TINYBLOB&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0-255 bytes&lt;/td&gt;&#xA;          &lt;td&gt;二进制数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;TINYTEXT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0-255 bytes&lt;/td&gt;&#xA;          &lt;td&gt;短文本字符串&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;BLOB&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0-65,535 bytes&lt;/td&gt;&#xA;          &lt;td&gt;二进制长文本数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;TEXT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0-65,535 bytes&lt;/td&gt;&#xA;          &lt;td&gt;长文本数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;MEDIUMBLOB&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0-16,777,215 bytes&lt;/td&gt;&#xA;          &lt;td&gt;二进制中等长度文本数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;MEDIUMTEXT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0-16,777,215 bytes&lt;/td&gt;&#xA;          &lt;td&gt;中等长度文本数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;LONGBLOB&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0-4,294,967,295 bytes&lt;/td&gt;&#xA;          &lt;td&gt;二进制极大文本数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;LONGTEXT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0-4,294,967,295 bytes&lt;/td&gt;&#xA;          &lt;td&gt;极大文本数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;日期类型&lt;/th&gt;&#xA;          &lt;th&gt;大小&lt;/th&gt;&#xA;          &lt;th&gt;格式&lt;/th&gt;&#xA;          &lt;th&gt;描述&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;DATA&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;3&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;YYYY-MM-DD&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;日期值&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;TIME&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;3&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;HH:MM:SS&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;时间值或持续时间&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;TEAR&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;1&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;YYYY&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;年份值&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;DATETIME&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;8&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;混合日期和时间值&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;TIMESTAMP&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;4&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;时间戳&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;特别地，空值&lt;code&gt;NULL&lt;/code&gt;值出现在值本身未知、值不适用于目标对象、用作保留值等情况下。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;对&lt;code&gt;NULL&lt;/code&gt;进行算术操作，结果仍为&lt;code&gt;NULL&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;对&lt;code&gt;NULL&lt;/code&gt;进行逻辑操作，结果为&lt;code&gt;UNKNOWN&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;空值&lt;code&gt;NULL&lt;/code&gt;不是常量，不可将其用作操作数。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;布尔类型&lt;/th&gt;&#xA;          &lt;th&gt;约定值&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;TRUE&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;1&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;FALSE&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;UNKNOWN&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;1/2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;布尔操作的法则：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;AND&lt;/code&gt;操作符返回两者约定值&lt;strong&gt;较小&lt;/strong&gt;的那个。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;OR&lt;/code&gt;操作符返回两者约定值&lt;strong&gt;较大&lt;/strong&gt;的那个。&lt;/li&gt;&#xA;&lt;li&gt;布尔变量&lt;code&gt;v&lt;/code&gt;反转后为&lt;code&gt;1-v&lt;/code&gt;。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;例如，执行SQL语句：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Movies&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;120&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;120&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;若某些元组的&lt;code&gt;length&lt;/code&gt;值为&lt;code&gt;NULL&lt;/code&gt;，条件的返回值则为&lt;code&gt;UNKNOWN&lt;/code&gt;，将不会出现在结果中。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;ddl&#34;&gt;DDL&#xA;&lt;/h2&gt;&lt;p&gt;数据定义语言，用于定义数据库对象&lt;/p&gt;&#xA;&lt;h3 id=&#34;查询&#34;&gt;查询&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* -- 数据库操作 -- */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查询所有数据库&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SHOW&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DATABASES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查询当前数据库&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DATABASE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查询当前数据库中所有表&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SHOW&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* -- 表操作 -- */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查询表结构&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;DESC&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查询指定表的建表语句&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SHOW&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;创建&#34;&gt;创建&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* -- 数据库操作 -- */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 创建数据库&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DATABASE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;IF&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;NOT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;EXISTS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;数据库名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DEFAULT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CHARSET&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字符集&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COLLATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;排序规则&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 使用数据库&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;USE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;数据库名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* -- 表操作 -- */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 创建表&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;类型&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIMARY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;这是主键&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;类型&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;字段2注释&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;类型&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;字段3注释&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;...&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;表注释&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 示例&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movie&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;CHAR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;address&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;VARCHAR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;255&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;INT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIMARY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;主键&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;networth&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;INT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;studio&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;CHAR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PRIMARY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;address&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;VARCHAR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;255&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;presc&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;INT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FOREIGN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;presc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;REFERENCES&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movie&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;外键&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;MySQL中建议使用字符集&lt;code&gt;UTF8mb4&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;参见：&lt;a class=&#34;link&#34; href=&#34;https://rd806.github.io/p/mysql/#mysql%e7%9a%84%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b&#34; &gt;MySQL的数据类型&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;修改&#34;&gt;修改&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 添加字段&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ADD&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;类型&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;长度&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;注释&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;约束&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 修改数据类型&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;MODIFY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;新数据类型&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;长度&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 修改字段名和字段类型&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CHANGE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;旧字段名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;新字段名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;类型&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;长度&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COMMENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;注释&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;约束&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 修改表名&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;RENAME&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;新表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;删除&#34;&gt;删除&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 删除字段&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DROP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 删除表&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;DROP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;IF&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;EXISTS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 删除指定表，并重新创建该表&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;TRUNCATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;--- 删除数据库&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;DROP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DATABASE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;IF&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;EXISTS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;数据库名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;dml&#34;&gt;DML&#xA;&lt;/h2&gt;&lt;p&gt;数据操作语言，用于数据库中数据的增删改。&lt;/p&gt;&#xA;&lt;h3 id=&#34;添加数据&#34;&gt;添加数据&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 给指定字段添加数据&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;INSERT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;...)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALUES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 给全部字段添加数据&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;INSERT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALUES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* -- 批量添加数据 -- */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 指定字段名添加&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;INSERT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALUES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...),(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...),(...);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 全部添加&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;INSERT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INTO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALUES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...),(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...),(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;注意：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;插入数据时，指定的字段顺序需要与值的顺序相对应。&lt;/li&gt;&#xA;&lt;li&gt;字符串和日期型数据应包含在引号中。&lt;/li&gt;&#xA;&lt;li&gt;插入数据的大小应该在字段的指定范围内。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;修改数据&#34;&gt;修改数据&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;UPDATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SET&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段名&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;值&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,...&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;条件&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 作用是修改满足条件的一行数据对应字段的值，不是修改字段名&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 如果没有修改条件，则会修改整张表中所有数据&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;删除数据&#34;&gt;删除数据&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;DELETE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;条件&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 如果没有修改条件，则会修改整张表中所有数据&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- DELETE语句不能删除某一个字段的值，可以使用UPDATE将该字段值设为NONE&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;dql&#34;&gt;DQL&#xA;&lt;/h2&gt;&lt;p&gt;数据查询语言，用于查询数据库中表的记录。它完整的参数可包含如下内容：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;字段列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;表名列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;条件列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;GROUP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;分组字段列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;HAVING&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;分组后筛选列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ORDER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;排序字段列表&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;LIMIT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;分页参数&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;基本条件查询&#34;&gt;基本条件查询&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;L&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;C&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ORDER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;排序规则&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;它与关系代数 $\pi_{L}(\sigma_{C}(R))$ 对应。&lt;/p&gt;&#xA;&lt;p&gt;特别的，查询语句：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;C&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;表示在这里不关心返回的具体数值，只关心满足条件的行是否存在。&lt;/p&gt;&#xA;&lt;p&gt;常用运算符总结：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;运算符&lt;/th&gt;&#xA;          &lt;th&gt;功能&lt;/th&gt;&#xA;          &lt;th&gt;运算符&lt;/th&gt;&#xA;          &lt;th&gt;功能&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&amp;gt;&lt;/td&gt;&#xA;          &lt;td&gt;大于&lt;/td&gt;&#xA;          &lt;td&gt;&amp;gt;=&lt;/td&gt;&#xA;          &lt;td&gt;大于等于&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&amp;lt;&lt;/td&gt;&#xA;          &lt;td&gt;小于&lt;/td&gt;&#xA;          &lt;td&gt;&amp;lt;=&lt;/td&gt;&#xA;          &lt;td&gt;小于等于&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;=&lt;/td&gt;&#xA;          &lt;td&gt;等于&lt;/td&gt;&#xA;          &lt;td&gt;&amp;lt;&amp;gt; 或 !=&lt;/td&gt;&#xA;          &lt;td&gt;不等于&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;IS NULL&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;数据为空&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;NOT&lt;/code&gt; 或 &lt;code&gt;!&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;逻辑非&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;AND&lt;/code&gt; 或 &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;逻辑与&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;OR&lt;/code&gt; 或 &lt;code&gt;||&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;逻辑或&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;IN(...)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;在&lt;code&gt;in&lt;/code&gt;之后的列表中的值（多选一）&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;LIKE &#39; &#39;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;模糊匹配&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;BETWEEN...AND...&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;在某个范围之间（含端点）&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;code&gt;LIKE&lt;/code&gt;后可接一个通配符，用于模糊匹配字段：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;quot;Star ____&amp;quot;&lt;/code&gt;将匹配字段中含有一个&lt;code&gt;Star&lt;/code&gt;和4个字符的字符串。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;%&amp;quot;s%&lt;/code&gt;将匹配包含&lt;code&gt;&#39;s&lt;/code&gt;的字符串。&lt;/li&gt;&#xA;&lt;li&gt;SQL允许使用&lt;code&gt;ESCAPE&lt;/code&gt;命令来排除特定的字符，例如&lt;code&gt;&#39;x%%x%&#39; ESCAPE &#39;x&#39;&lt;/code&gt;将匹配以&lt;code&gt;%&lt;/code&gt;开头和结尾的字符串。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;查询结果可通过参数&lt;code&gt;ORDER BY&lt;/code&gt;排序，默认为升序排列。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ORDER BY DESC&lt;/code&gt;指定为降序排列。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;ORDER BY ASC&lt;/code&gt;为升序排列。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;连接查询&#34;&gt;连接查询&#xA;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;FROM&lt;/code&gt;后可接多个表，例如&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Movies&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MovieExec&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Star Wars&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AND&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;producerC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;其中&lt;code&gt;title&lt;/code&gt;和&lt;code&gt;producerC#&lt;/code&gt;位于表&lt;code&gt;Movies&lt;/code&gt;中、&lt;code&gt;cert#&lt;/code&gt;位于表&lt;code&gt;MovieExec&lt;/code&gt;中，则查询结果将返回&lt;code&gt;producerC#&lt;/code&gt;与&lt;code&gt;cert#&lt;/code&gt;字段相同，且&lt;code&gt;title&lt;/code&gt;为&lt;code&gt;&amp;quot;Star Wars&amp;quot;&lt;/code&gt;的内容。&lt;/p&gt;&#xA;&lt;p&gt;除了可以使用&lt;code&gt;WHERE&lt;/code&gt;语句外，还可以使用&lt;code&gt;INNER JOIN&lt;/code&gt;（&lt;code&gt;INNER&lt;/code&gt;可省略）：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sno&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sdept&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;student&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INNER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;JOIN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sc&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ON&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sno&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sno&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;INNER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;JOIN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;course&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ON&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cno&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cno&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;使用&lt;code&gt;INNER JOIN&lt;/code&gt;必须保证待连接的多个表具有相同的属性名。&lt;/p&gt;&#xA;&lt;h3 id=&#34;反身查询&#34;&gt;反身查询&#xA;&lt;/h3&gt;&lt;p&gt;若要在同一张表中查询元组内部元素之间的关系，则需对该表设置两个副本再进行查询。&lt;/p&gt;&#xA;&lt;p&gt;例如，查询哪两个&lt;code&gt;Star&lt;/code&gt;有相同的&lt;code&gt;address&lt;/code&gt;，则输入：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MovieStar&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MovieStar&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;address&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;address&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AND&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Star2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;必须设置两个副本&lt;code&gt;Star1&lt;/code&gt;和&lt;code&gt;Star2&lt;/code&gt;，否则条件判断将始终为&lt;code&gt;TRUE&lt;/code&gt;。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;对应的关系代数为：&lt;/p&gt;&#xA;$$\pi_{A_1, A_5}(\sigma_{A_2 = A_6 \ \mathrm{AND}\ A_1 &lt; A_5}(\rho_{M(A_1, A_2, A_3, A_4)}(\mathrm{MovieStar}) \times \rho_{N(A_5, A_6, A_7, A_8)}(\mathrm{MovieStar})))$$&lt;h3 id=&#34;子查询&#34;&gt;子查询&#xA;&lt;/h3&gt;&lt;p&gt;查询也可成为其他查询的一部分，像这样嵌套在查询内部的查询称作子查询。&lt;/p&gt;&#xA;&lt;p&gt;子查询可返回单个常量，用于&lt;code&gt;WHERE&lt;/code&gt;语句；也可以返回一个关系；还可以在&lt;code&gt;FROM&lt;/code&gt;语句中后接元组变量。&lt;/p&gt;&#xA;&lt;p&gt;这里主要展示返回标量值的子查询。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;标量值（Scalar）：元组的一个组成部分。例如元组 &lt;code&gt;Movies(title, year, length, genre, studioName, producerC#)&lt;/code&gt;中，若使用SQL查询：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;producerC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Movies&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Star Wars&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;返回值即为一个标量值。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;示例：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-SQL&#34; data-lang=&#34;SQL&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MovieExec&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;producerC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Movies&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Star Wars&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;分组与聚合&#34;&gt;分组与聚合&#xA;&lt;/h3&gt;&lt;p&gt;聚合：将关系中的某些列合并。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;聚合操作符&lt;/th&gt;&#xA;          &lt;th&gt;作用&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;SUM&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;对数值列求和&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;AVG&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;对数值列求平均值&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;MIN&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;数值列的最小值&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;MAX&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;数值列的最大值&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;COUNT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;列中值的数量&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;分组：将元组的值分为若干组。&lt;code&gt;GROUP BY&lt;/code&gt;后接一组分组属性，元组根据分组属性的值进行分组。&lt;/p&gt;&#xA;&lt;p&gt;分组后筛选：&lt;code&gt;HAVING&lt;/code&gt;后接关于组的条件。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;使用分组后，不能直接用&lt;code&gt;WHERE&lt;/code&gt;替代&lt;code&gt;HAVING&lt;/code&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;WHERE&lt;/code&gt;是在分组之前对单个行记录进行筛选。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;HAVING&lt;/code&gt;是在分组之后对聚合结果（如 &lt;code&gt;MAX(score)&lt;/code&gt;）进行筛选。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;设关系&lt;code&gt;StarsIn&lt;/code&gt;表示演员出演电影的情况，则若要查询出演过两部及以上电影的影星，则可以使用&lt;code&gt;GROUP BY + HAVING&lt;/code&gt;：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;starName&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;StarsIn&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;GROUP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;starName&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;HAVING&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;COUNT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;等价于下列的&lt;code&gt;WHERE&lt;/code&gt;语句：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DISTINCT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;starName&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;StarsIn&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;StarsIn&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 同一个影星但电影不同&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;starName&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;starName&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AND&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movieTitle&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movieTitle&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movieYear&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;S2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movieYear&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;存在查询&#34;&gt;存在查询&#xA;&lt;/h3&gt;&lt;p&gt;SQL语句中，&lt;code&gt;EXISTS&lt;/code&gt;语句可用来判断是否存在满足特定条件的行。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;有返回值（不管是什么）：TRUE&lt;/li&gt;&#xA;&lt;li&gt;无返回值：FALSE&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;常与&lt;code&gt;WHERE&lt;/code&gt;联合使用，作为查询条件：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;EXISTS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;C&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;实际上，&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;EXISTS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;R&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;C&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;与上式的效果一致，但更推荐使用前者。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;</description>
        </item><item>
            <title>熟练掌握数据结构</title>
            <link>https://rd806.github.io/passage/cs/data-structure/</link>
            <pubDate>Sun, 06 Jul 2025 00:00:00 +0000</pubDate>
            <guid>https://rd806.github.io/passage/cs/data-structure/</guid>
            <description>&lt;img src=&#34;https://rd806.github.io/passage/cs/data-structure/guerrillabuzz-7hA2wqBcSF8-unsplash.jpg&#34; alt=&#34;Featured image of post 熟练掌握数据结构&#34; /&gt;&lt;center&gt;&lt;strong&gt;&lt;p style=&#34;font-size:32px;&#34;&gt;程序 = 数据结构 + &lt;a href=&#34;https://rd806.github.io/passage/cs/algorithm/&#34;&gt;算法&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/center&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;本文主要用来应付我的数据结构课程期末考试，所以写得比较粗糙，很多细节都忽略掉了，还请各位 dalao 谅解 🥰。&lt;/p&gt;&#xA;&lt;p&gt;以后如果有时间我可能会新建页面具体分析相关内容，所以可以把本文看作一篇索引（一个页表？）。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;索引&#34;&gt;索引&#xA;&lt;/h2&gt;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;当前已更新索引，原内容拆分为五个部分&lt;/p&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/data-structure/linearlist &gt;数据结构：线性表&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/data-structure/tree &gt;数据结构：树与二叉树&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/data-structure/graph &gt;数据结构：图&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/data-structure/search &gt;查找&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&#xA;&lt;div class=&#34;catalogue&#34;&gt;&#xD;&#xA;    &lt;div class=&#34;logo&#34;&gt;&#xD;&#xA;        &lt;a class=&#34;name&#34; href=https://rd806.github.io/passage/cs/sort &gt;排序&lt;/a&gt;&#xD;&#xA;    &lt;/div&gt;&#xD;&#xA;    &lt;div class=&#34;description&#34;&gt;&lt;/div&gt;&#xD;&#xA;&lt;/div&gt;&#xD;&#xA;&#xD;&#xA;&lt;style&gt;&#xD;&#xA;    .catalogue {&#xD;&#xA;        border: 1px solid var(--card-text-color-main);&#xD;&#xA;        border-radius: var(--card-border-radius);&#xD;&#xA;        margin: 0 auto;&#xD;&#xA;        margin-bottom: 1em;&#xD;&#xA;        padding: 1em;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .name {&#xD;&#xA;        font-weight: bold;&#xD;&#xA;        margin-left: 0.5em;&#xD;&#xA;        position: relative;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    .description {&#xD;&#xA;        margin-top: 0.5em;&#xD;&#xA;        margin-bottom: 0.5em;&#xD;&#xA;        color: var(--card-text-color-main);&#xD;&#xA;        text-align: justify;&#xD;&#xA;        font-size: 90%;&#xD;&#xA;        transition: all 0.5s;&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;    :root[data-scheme=&#34;light&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #07639c;&#xD;&#xA;        }   &#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    :root[data-scheme=&#34;dark&#34;] {&#xD;&#xA;        .name {&#xD;&#xA;            color: #cebef4;&#xD;&#xA;        }&#xD;&#xA;    }&#xD;&#xA;&lt;/style&gt;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;c语言补充知识&#34;&gt;C语言补充知识&#xA;&lt;/h2&gt;&lt;h3 id=&#34;typedef&#34;&gt;typedef&#xA;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;typedef&lt;/code&gt;可以给变量起一个别名，例如：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;typedef&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ElemType&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;此后可以用&lt;code&gt;ElemType&lt;/code&gt;代替&lt;code&gt;int&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;h3 id=&#34;输入输出函数&#34;&gt;输入输出函数&#xA;&lt;/h3&gt;&lt;p&gt;一般而言，C语言的输入输出函数比&lt;code&gt;cin&lt;/code&gt;，&lt;code&gt;cout&lt;/code&gt;更高效。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-c&#34; data-lang=&#34;c&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;float&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fnum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;double&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dnum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;char&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// 输入&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;scanf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%d&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;      &lt;span class=&#34;c1&#34;&gt;// 整数&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;scanf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%f&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fnum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;     &lt;span class=&#34;c1&#34;&gt;// float类型浮点数&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;scanf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%lf&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dnum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// double类型浮点数&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;scanf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%s&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;       &lt;span class=&#34;c1&#34;&gt;// 字符串&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;//输出&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%d&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;num&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%f&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fnum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;C语言的格式符：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;格式符&lt;/th&gt;&#xA;          &lt;th&gt;含义&lt;/th&gt;&#xA;          &lt;th&gt;示例代码&lt;/th&gt;&#xA;          &lt;th&gt;输出示例&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%d&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;十进制整数&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%d&amp;quot;, 123);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;123&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%f&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;浮点数&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%f&amp;quot;, 3.14);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;3.140000&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%c&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;字符&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%c&amp;quot;, &#39;A&#39;);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;A&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%s&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;字符串&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%s&amp;quot;, &amp;quot;hello&amp;quot;);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;hello&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%x&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;十六进制整数（小写）&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%x&amp;quot;, 255);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;ff&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%X&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;十六进制整数（大写）&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%X&amp;quot;, 255);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;FF&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%o&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;八进制整数&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%o&amp;quot;, 8);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%p&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;指针地址&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%p&amp;quot;, ptr);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;0x7ffeefbff5a0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%e&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;科学计数法（小写e）&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%e&amp;quot;, 1234.5);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;1.234500e+03&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%E&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;科学计数法（大写E）&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%E&amp;quot;, 1234.5);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;1.234500E+03&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%g&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;自动选 &lt;code&gt;%f&lt;/code&gt; 或 &lt;code&gt;%e&lt;/code&gt;（更短）&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%g&amp;quot;, 0.00001);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;1e-05&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;%u&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;无符号十进制整数&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;printf(&amp;quot;%u&amp;quot;, -1);&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;4294967295&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;动态内存分配&#34;&gt;动态内存分配&#xA;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;函数&lt;/th&gt;&#xA;          &lt;th&gt;作用&lt;/th&gt;&#xA;          &lt;th&gt;返回&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;malloc&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;申请&lt;strong&gt;未初始化&lt;/strong&gt;的连续字节&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;void *&lt;/code&gt;（成功）或 &lt;code&gt;NULL&lt;/code&gt;（失败）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;calloc&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;申请&lt;strong&gt;已清零&lt;/strong&gt;的连续元素&lt;/td&gt;&#xA;          &lt;td&gt;同上&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;realloc&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;strong&gt;扩容/缩容&lt;/strong&gt;已申请的块&lt;/td&gt;&#xA;          &lt;td&gt;同上&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;free&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;strong&gt;归还&lt;/strong&gt;内存&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;void&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;申请要判空，用完必释放，扩容用临时，释放后置 NULL。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;</description>
        </item></channel>
</rss>
