From 09af271b67333551e210f27534388a0b05c044bc Mon Sep 17 00:00:00 2001 From: <> Date: Mon, 22 Jan 2024 13:20:00 +0000 Subject: [PATCH] Deployed 44580c0 with MkDocs version: 1.5.3 --- .../index.html" | 14 +- search/search_index.json | 2 +- sitemap.xml | 168 +++++++++--------- sitemap.xml.gz | Bin 1301 -> 1301 bytes 4 files changed, 92 insertions(+), 92 deletions(-) diff --git "a/blog/arch-linux--hyprland-\345\256\211\350\243\205\345\205\250\346\265\201\347\250\213/index.html" "b/blog/arch-linux--hyprland-\345\256\211\350\243\205\345\205\250\346\265\201\347\250\213/index.html" index 04f7d3c..ad6c842 100644 --- "a/blog/arch-linux--hyprland-\345\256\211\350\243\205\345\205\250\346\265\201\347\250\213/index.html" +++ "b/blog/arch-linux--hyprland-\345\256\211\350\243\205\345\205\250\346\265\201\347\250\213/index.html" @@ -1988,7 +1988,7 @@
  • - Pacman设置 + Pacman 设置 @@ -2261,10 +2261,10 @@

    联网Pacman设置

    -

    其实需要改得不多,之前提到的并行下载,还有Color也可以像开启

    -

    还可以加入一行ILOveCandy来把进度条切换成pacman特有的吃豆子样式

    -

    接下来是换源,首先安装reflector(1)

    +

    Pacman 设置

    +

    其实需要改得不多,之前提到的并行下载,还有 Color 也可以像开启

    +

    还可以加入一行 ILOveCandy 来把进度条切换成 pacman 特有的吃豆子样式

    +

    接下来是换源,首先安装 reflector(1)

    1. extra/reflector 2023-1 A Python 3 module and script to retrieve and filter the latest Pacman mirror list.
    2. @@ -2277,7 +2277,7 @@

      Pacman设置
      sudo reflector --verbose --latest 10 --country China --protocol http --sort rate --save /etc/pacman.d/mirrorlist
       
      -

      最后更新一下pacman

      +

      最后更新一下 pacman

      sudo pacman -Sy
       

      shell 切换

      @@ -2431,7 +2431,7 @@

      其他 - January 21, 2024 + January 22, 2024 diff --git a/search/search_index.json b/search/search_index.json index 9f1bdab..b1546b4 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Index","text":""},{"location":"#hi","title":"\uff08 \u0e51> \u0602 < \uff09 Hi!","text":"

      \u200b\u6b22\u8fce\u200b\u6765\u5230\u200b\u6211\u200b\u7684\u200b\u4e3b\u9875\u200b\uff01\u200b\u968f\u4fbf\u200b\u901b\u901b\u200b\u5427\u200b

      \u200b\u66f4\u65b0\u200b\u65e5\u5fd7\u200b | \u200b\u6837\u5f0f\u200b\u4e00\u89c8\u200b | \u200b\u5efa\u200b\u7ad9\u200b\u6307\u5357\u200b

      "},{"location":"Build_this_website/","title":"\u5982\u4f55\u200b\u6784\u5efa\u200b\u4e00\u4e2a\u200b\u50cf\u200b\u8fd9\u6837\u200b\u7684\u200b\u7f51\u7ad9\u200b\uff01","text":"

      \u200b\u7ea6\u200b 1315 \u200b\u4e2a\u200b\u5b57\u200b 210 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 7 \u200b\u5206\u949f\u200b

      \u200b\u7f51\u7ad9\u200b\u642d\u5efa\u200b\u6559\u7a0b\u200b

      \u200b\u672c\u200b\u7ad9\u70b9\u200b\u4f7f\u7528\u200b mkdocs \u200b\u642d\u5efa\u200b\uff0c\u200b\u90e8\u7f72\u200b\u4e8e\u200b Github Pages\uff0c\u200b\u4f7f\u7528\u200b\u4e86\u200bmaterial\u200b\u4e3b\u9898\u200b

      "},{"location":"Build_this_website/#1","title":"1.\u200b\u73af\u5883\u200b\u51c6\u5907","text":"

      \u200b\u5b89\u88c5\u200b python

      sudo apt install python3 python3-pip\n

      pip \u200b\u6362\u6e90\u200b

      pip install pip -U\npip config set global.index-url https://mirrors.zju.edu.cn/pypi/web/simple\n

      \u200b\u542f\u7528\u200b\u865a\u62df\u73af\u5883\u200b\uff1a

      sudo apt install python3.8-venv\npip install virtualenv\npython -m venv webenv\nsource webenv/bin/activate\n

      \u200b\u5b89\u88c5\u200b mkdocs

      pip install mkdocs-material\n

      \u200b\u51fa\u73b0\u200b\u62a5\u9519\u200b\uff1a

      ERROR: mkdocs 1.4.3 has requirement markdown<3.4\uff0c>=3.2.1\uff0c but you'll have markdown 3.4.3 which is incompatible.\n

      \u200b\u4fee\u6539\u200b markdown \u200b\u7248\u672c\u200b\uff0c\u200b\u7136\u540e\u200b\u91cd\u65b0\u5b89\u88c5\u200b mkdocs\uff1a

      pip install markdown==3.2.1\npip install mkdocs-material\n

      \u200b\u56fe\u7247\u200b\u5904\u7406\u200b\u7684\u200b\u4f9d\u8d56\u200b\u5e93\u200b\uff1a

      pip install pillow cairosvg\n

      \u200b\u53ef\u200b\u9009\u200b\u4f18\u5316\u200b\uff1ayaml \u200b\u8865\u5168\u200b
      1. \u200b\u5b89\u88c5\u200b VSCode-yaml
      2. \u200b\u628a\u200b\u4e0b\u9762\u200b\u8bbe\u7f6e\u200b\u5199\u5165\u200b settings.json:
        {\n\"yaml.schemas\": {\n    \"https://squidfunk.github.io/mkdocs-material/schema.json\": \"mkdocs.yml\"\n}\uff0c\n\"yaml.customTags\": [\n    \"!ENV scalar\"\uff0c\n    \"!ENV sequence\"\uff0c\n    \"tag:yaml.org\uff0c2002:python/name:materialx.emoji.to_svg\"\uff0c\n    \"tag:yaml.org\uff0c2002:python/name:materialx.emoji.twemoji\"\uff0c\n    \"tag:yaml.org\uff0c2002:python/name:pymdownx.superfences.fence_code_format\"\n]\n}\n
      "},{"location":"Build_this_website/#2-github-pages","title":"2.\u200b\u90e8\u7f72\u200b\u5230\u200b Github Pages","text":"

      \u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u7a7a\u200b\u7684\u200b\u516c\u5f00\u200b\u4ed3\u5e93\u200b\uff0c\u200b\u5e76\u4e14\u200b\u514b\u9686\u200b\u5230\u200b\u672c\u5730\u200b\uff0c\u200b\u5728\u200b\u5176\u4e2d\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b mkdocs site\uff1a

      git clone repo\ncd repo\nmkdocs new .\n

      \u200b\u5728\u200b mkdocs.yml \u200b\u4e2d\u200b\u542f\u7528\u200b\u4e3b\u9898\u200b\uff1a

      theme:\n  name: material\n

      \u200b\u5982\u679c\u200b\u4f60\u200b\u5e0c\u671b\u200b\u5c06\u200b markdown \u200b\u6e90\u6587\u4ef6\u200b\u4e5f\u200b\u4fdd\u5b58\u200b\u5728\u200b\u540c\u4e00\u4e2a\u200b\u4ed3\u5e93\u200b\u91cc\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5148\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u5ffd\u7565\u200bsite/\u200b\u7684\u200b.gitignore\u200b\u6587\u4ef6\u200b\uff0c\u200b\u7136\u540e\u200b\u63d0\u4ea4\u200b\uff0c\u200b\u63a8\u9001\u200b\uff1a

      echo \"site/\" > .gitignore\ngit add .\ngit commit -m \"init\"\ngit push -u origin master\n

      \u200b\u7136\u540e\u200b\u7528\u200bgh-deploy\u200b\u547d\u4ee4\u200b\u4e00\u952e\u200b\u90e8\u7f72\u200b\u5230\u200b Github Pages:

      mkdocs gh-deploy\n
      \u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u7684\u200b\u4ed3\u5e93\u200b\u6709\u200b\u4e24\u4e2a\u200b\u5206\u652f\u200b\u4e86\u200b\uff0cmaster \u200b\u5206\u652f\u200b\u50a8\u5b58\u200b markdown \u200b\u6e90\u6587\u4ef6\u200b\uff0cgh-pages \u200b\u5206\u652f\u200b\u50a8\u5b58\u200b\u7f16\u8bd1\u200b\u540e\u200b\u7684\u200b\u7f51\u7ad9\u200b

      \u200b\u5728\u200b settings-pages \u200b\u4e2d\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u7f51\u7ad9\u200b\u7684\u200b\u7f51\u5740\u200b\u4e86\u200b\uff0c\u200b\u4e00\u822c\u200b\u4e3a\u200busername.github.io/repo\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u521b\u5efa\u200b\u7684\u200b\u4ed3\u5e93\u200b\u662f\u200b\u7279\u6b8a\u200b\u7684\u200b\uff0c\u200b\u540d\u4e3a\u200busername.github.io\uff0c\u200b\u90a3\u4e48\u200b\u7f51\u5740\u200b\u5c31\u662f\u200busername.github.io\u200b\u4e86\u200b \u200b\u5f53\u524d\u200b\u7684\u200b\u7f51\u7ad9\u200b\u4e3a\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\uff1a

      \u200b\u53ef\u200b\u9009\u200b\u4f18\u5316\u200b\uff1a\u200b\u81ea\u52a8\u200b\u7f16\u8bd1\u200b\u90e8\u7f72\u200b

      \u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b GitHub action \u200b\u6765\u200b\u5e2e\u52a9\u200b\u6211\u4eec\u200b\u6bcf\u6b21\u200b\u66f4\u65b0\u200b master \u200b\u5206\u652f\u200b\u540e\u200b\u81ea\u52a8\u200b\u7f16\u8bd1\u200b\u7f51\u7ad9\u200b\u5e76\u200b\u63a8\u9001\u200b\u5230\u200b gh-pages \u200b\u5206\u652f\u200b\uff0c\u200b\u8fd9\u6837\u200b\u6211\u4eec\u200b\u5c31\u200b\u4e0d\u7528\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u624b\u52a8\u200b\u6267\u884c\u200bmkdocs gh-deploy\u200b\u4e86\u200b\uff0c\u200b\u800c\u200b\u53ea\u200b\u9700\u8981\u200b\u5c06\u200b\u65b0\u200b\u5199\u200b\u7684\u200b markdown \u200b\u63a8\u9001\u200b\u81f3\u200b\u4ed3\u5e93\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002 \u200b\u8fd9\u6837\u200b\u505a\u200b\u7684\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u597d\u5904\u200b\u662f\u200b\u5176\u4ed6\u4eba\u200b\u5e0c\u671b\u200b\u5bf9\u200b\u4ed3\u5e93\u200b\u505a\u200b\u8d21\u732e\u200b\u7684\u200b\u65f6\u5019\u200b\u53ef\u4ee5\u200b\u53ea\u200b\u5bf9\u200b\u6587\u672c\u200b\u5185\u5bb9\u200b\u8fdb\u884c\u200b\u4fee\u6539\u200b\uff0c\u200b\u800c\u200b\u4e0d\u5fc5\u200b\u5728\u4e4e\u200b\u4fbf\u200b\u5df2\u200b\u90e8\u7f72\u200b\u7684\u200b\u95ee\u9898\u200b\u3002\u200b\u53ea\u6709\u200b\u5f53\u200b\u8d21\u732e\u8005\u200b\u5e0c\u671b\u200b\u9884\u89c8\u200b\u7684\u200b\u65f6\u5019\u200b\u9700\u8981\u200b\u5b8c\u6574\u200b\u7684\u200b\u5b89\u88c5\u200b\u73af\u5883\u200b\u3002 1. \u200b\u5728\u200b\u4ed3\u5e93\u200b\u4e2d\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b.github/workflows/auto-deploy.yml\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5185\u5bb9\u200b\u5982\u4e0b\u200b\uff1a

      name: ci\non:\npush:\n    branches:\n    - master\n    - main\npermissions:\ncontents: write\njobs:\ndeploy:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v3\n        with:\n        fetch-depth: '0'\n    - uses: actions/setup-python@v4\n        with:\n        python-version: 3.x\n    - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV\n    - uses: actions/cache@v3\n        with:\n        key: mkdocs-material-${{ env.cache_id }}\n        path: .cache\n        restore-keys: |\n            mkdocs-material-\n    - run: pip install  mkdocs-material mkdocs-changelog-plugin mkdocs-glightbox jieba pillow cairosvg mkdocs-tooltips mkdocs-statistics-plugin mkdocs-table-reader-plugin mkdocs-git-revision-date-localized-plugin mkdocs-meta-manager mkdocs-macros-plugin\n    - run: mkdocs gh-deploy --force\n
      \u200b\u6ce8\u610f\u200b\uff0c\u200b\u63a8\u9001\u200b\u5230\u200b Github \u200b\u7684\u8bdd\u200b\u9700\u8981\u200b\u4f60\u200b\u7684\u200b token \u200b\u6709\u200b workflow \u200b\u6743\u9650\u200b \u200b\u6b64\u200b Action \u200b\u5df2\u7ecf\u200b\u662f\u200b\u6839\u636e\u200b\u672c\u7ad9\u200b\u5b89\u88c5\u200b\u7684\u200b\u63d2\u4ef6\u200b\u7b49\u200b\u8fdb\u884c\u200b\u4e86\u200b\u989d\u5916\u200b\u5b89\u88c5\u200b\u7684\u200b\uff0c\u200b\u8bf7\u200b\u6309\u200b\u9700\u200b\u4f7f\u7528\u200b\u3002\u200b\u5982\u679c\u200b\u4f60\u200b\u4f9d\u8d56\u200b\u4e86\u200b\u989d\u5916\u200b\u7684\u200b\u5e93\u200b\uff0c\u200b\u9700\u8981\u200b\u4fee\u6539\u200b Action

      "},{"location":"Build_this_website/#3","title":"3.\u200b\u5e38\u89c4\u200b\u7279\u6027","text":""},{"location":"Build_this_website/#31-css","title":"3.1 \u200b\u4fee\u6539\u200b\u7f51\u7ad9\u200b\u7684\u200b css \u200b\u6837\u5f0f","text":"

      \u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u65b0\u589e\u200b\u7684\u200b\u6837\u5f0f\u200b\u5747\u200b\u653e\u7f6e\u200b\u4e8e\u200bdocs/css/\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u6bcf\u4e2a\u200b css \u200b\u6587\u4ef6\u200b\u90fd\u200b\u8981\u200b\u5728\u200bmkdocs.yml\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a

      extra_css:\n  - css/extra.css\n
      \u200b\u6211\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b\u6837\u5f0f\u200b
      [data-md-color-primary=P] {\n    --md-primary-fg-color:  #FFACA6;\n}\n[data-md-color-accent=P] {\n--md-accent-fg-color: #FFACA6;\n}\n[data-md-color-scheme=default] {\n    --md-typeset-a-color: #000000;\n    --my-changlog-color: #EFEFEF;\n}\n[data-md-color-scheme=slate] {\n    --md-typeset-a-color: #FFFFFF;\n    --my-changlog-color: #161616;\n}\n.md-grid {\nmax-width: 1400px;\n}/* make the page wider */\n/* changelog config*/\n.timeline-card{\nbackground-color: var(--my-changlog-color);\n}\n.timeline-content::before{\nbackground-color: var(--my-changlog-color);\n}\n.changelog-type{\nbackground-color: #CC9052;\n}\n.changelog-type-newpage{\nbackground-color: #FF9C80;\n}\n.changelog-type-refactor::before {\ncontent: \"\u200b\u6587\u6863\u200b\u66f4\u65b0\u200b\";\n}\n\n/* \u200b\u56fe\u7247\u200b\u653e\u5927\u200b start */\n/* .shadow {\nbox-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n.zoom {\ntransition: transform ease-in-out 0.5s;\ncursor: zoom-in;\n}\n\n.image-zoom-large {\ntransform: scale(1.9);\ncursor: zoom-out;\nbox-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\nz-index: 100;\nposition: relative;\n} */\n/* \u200b\u56fe\u7247\u200b\u653e\u5927\u200b end */\n\n\n\n/*\u200b\u56fe\u7247\u683c\u5f0f\u200b\u8bbe\u7f6e\u200b*/\n/*\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b*/\nimg[src*=\"pic\"] {\nbox-shadow: 2px 2px 10px #666;\nborder-radius: 4px;\nwidth: 98%;\ndisplay: block;\nmargin: 10px auto;\n}\n/*\u200b\u6837\u5f0f\u200b 1 \u200b\u540c\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b*/\nimg[src*=\"pic1\"] {\nbox-shadow: 4px 4px 15px #666;\nborder-radius: 10px;\n}\n\n/* beat like a heart */\n@keyframes heart {\n0%, 40%, 80%, 100% {\n    transform: scale(1);\n}\n20%, 60% {\n    transform: scale(1.15);\n}\n}\n.heart {\nanimation: heart 1000ms infinite;\n}\n\n/* new admonitions */\n:root {\n--md-admonition-icon--definition: url('../icons/define.svg')\n}\n.md-typeset .admonition.definition,\n.md-typeset details.definition {\nborder-color: rgb(43, 155, 70);\n}\n.md-typeset .definition > .admonition-title,\n.md-typeset .definition > summary {\nbackground-color: rgba(43, 155, 70, 0.1);\n}\n.md-typeset .definition > .admonition-title::before,\n.md-typeset .definition > summary::before {\nbackground-color: rgb(43, 155, 70);\n-webkit-mask-image: var(--md-admonition-icon--definition);\n        mask-image: var(--md-admonition-icon--definition);\n}\n\n:root {\n--md-admonition-icon--reference: url('../icons/reference.svg')\n}\n.md-typeset .admonition.reference,\n.md-typeset details.reference {\nborder-color: rgb(223, 251, 13);\n}\n.md-typeset .reference > .admonition-title,\n.md-typeset .reference > summary {\nbackground-color: rgba(249, 249, 90, 0.1);\n}\n.md-typeset .reference > .admonition-title::before,\n.md-typeset .reference > summary::before {\nbackground-color: rgb(223, 251, 13);\n-webkit-mask-image: var(--md-admonition-icon--reference);\n        mask-image: var(--md-admonition-icon--reference);\n}\n/* new code highlight lines*/\nspan.hll {\nwidth: 150%;\n}\n\n/*see https://xuan-insr.github.io/%E6%9D%82%E9%A1%B9/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA%E8%AE%B0%E5%BD%95/#%E8%A7%A3%E5%86%B3%E5%85%AC%E5%BC%8F%E5%B8%A6%E7%BA%B5%E5%90%91%E6%BB%9A%E5%8A%A8%E6%9D%A1%E7%9A%84%E9%97%AE%E9%A2%98*/\n.md-typeset div.arithmatex {\noverflow-y: hidden;\n}\n
      \u200b\u81ea\u5df1\u200b\u5b9a\u4e49\u200b\u6837\u5f0f\u200b

      \u200b\u6211\u4eec\u200b\u53ef\u80fd\u200b\u4e0d\u200b\u719f\u6089\u200b css\uff0c\u200b\u6ca1\u4e8b\u200b\uff0c\u200b\u6211\u200b\u4e5f\u200b\u5b8c\u5168\u200b\u4e0d\u200b\u61c2\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u4e00\u4e9b\u200b\u7b80\u5355\u200b\u7684\u200b\u4fee\u6539\u200b\u989c\u8272\u200b\u4fee\u6539\u200b\u5b57\u200b\uff0c\u200b\u76f4\u63a5\u200b\u7528\u200b F12 \u200b\u67e5\u770b\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6837\u5f0f\u200b\u6539\u6210\u200b\u81ea\u5df1\u200b\u559c\u6b22\u200b\u7684\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\uff0c\u200b\u6d4f\u89c8\u5668\u200b\u4e00\u822c\u200b\u90fd\u200b\u652f\u6301\u200b\u76f4\u63a5\u200b\u6539\u200b\u5e76\u4e14\u200b\u663e\u793a\u200b\u4fee\u6539\u200b\u540e\u200b\u7684\u200b\u6548\u679c\u200b\u7684\u200b \u200b\u53e6\u200b\u4e00\u4e2a\u200b\u597d\u7528\u200b\u7684\u200b\u8bbe\u7f6e\u200b\u5c31\u662f\u200b\u4fee\u6539\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u50cf\u200b\u8fd9\u6837\u200b\u5f15\u7528\u200b\u56fe\u7247\u200b

      ![](images/Build_this_website/2023-07-02-02-35-34.png#pic)\n
      \u200b\u4e5f\u200b\u5c31\u662f\u200b\u5728\u200b\u7ed3\u5c3e\u200b\u52a0\u4e0a\u200b#pic\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5bf9\u200b\u56fe\u7247\u200b\u5e94\u7528\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\u4e86\u200b\uff0c\u200b\u6211\u7528\u200b\u7684\u200b\u662f\u200b\u5706\u89d2\u200b+\u200b\u9634\u5f71\u200b.\u200b\u8fd9\u4e00\u200b\u6dfb\u52a0\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u53ef\u4ee5\u200b\u7528\u200b VSCode \u200b\u63d2\u4ef6\u200b Paste Image \u200b\u81ea\u52a8\u200b\u5b9e\u73b0\u200b\uff0c\u200b\u6211\u200b\u5728\u200b\u8fd9\u91cc\u200b\u6709\u200b\u4ecb\u7ecd\u200b

      "},{"location":"Build_this_website/#32-javascript","title":"3.2 \u200b\u6dfb\u52a0\u200b\u989d\u5916\u200b\u7684\u200b javascript","text":"

      \u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u65b0\u589e\u200b\u7684\u200b js \u200b\u6587\u4ef6\u200b\u653e\u7f6e\u200b\u4e8e\u200bdocs/js/\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u6bcf\u4e2a\u200b js \u200b\u6587\u4ef6\u200b\u90fd\u200b\u8981\u200b\u5728\u200bmkdocs.yml\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a

      extra_javascript:\n  - js/extra.js\n
      \u200b\u8fd9\u91cc\u200b\u7684\u200b url \u200b\u53ef\u4ee5\u200b\u6307\u5411\u200b\u7f51\u7edc\u200b\u4e0a\u200b\u7684\u200b js \u200b\u6587\u4ef6\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u662f\u200b\u672c\u5730\u200b\u7684\u200b

      \u200b\u6211\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b js extra.jsmathjax.jstablesort.js
      document.querySelectorAll('.zoom').forEach(item => {\n    item.addEventListener('click'\uff0c function () {\n        this.classList.toggle('image-zoom-large');\n    })\n});\n
      window.MathJax = {\n    tex: {\n    inlineMath: [[\"\\\\(\"\uff0c \"\\\\)\"]]\uff0c\n    displayMath: [[\"\\\\[\"\uff0c \"\\\\]\"]]\uff0c\n    processEscapes: true\uff0c\n    processEnvironments: true\n    }\uff0c\n    options: {\n    ignoreHtmlClass: \".*|\"\uff0c\n    processHtmlClass: \"arithmatex\"\n    }\n};\n\ndocument$.subscribe(() => {\n    MathJax.typesetPromise()\n})\n
      document$.subscribe(function() {\n    var tables = document.querySelectorAll(\"article table:not([class])\")\n    tables.forEach(function(table) {\n    new Tablesort(table)\n    })\n})\n
      "},{"location":"Build_this_website/#33","title":"3.3 \u200b\u542f\u7528\u200b\u7f51\u7ad9\u200b\u6570\u636e\u5206\u6790","text":"

      \u200b\u5728\u200bmkdocs.yml\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a

      extra:\n  analytics:\n    provider: google\n    property: G-XXXXXXXXXX\n

      \u200b\u968f\u540e\u200b\u524d\u5f80\u200b Google Analytics \u200b\u6ce8\u518c\u200b\u4f7f\u7528\u200b\uff0c\u200b\u5e76\u200b\u5c06\u200b\u5bf9\u5e94\u200b\u4ee3\u7801\u200b\u63d2\u5165\u200b\u9996\u9875\u200b\u5373\u53ef\u200b\u3002

      "},{"location":"Build_this_website/#34","title":"3.4 \u200b\u542f\u7528\u200b\u8bc4\u8bba\u200b\u533a","text":"

      \u200b\u539f\u200b\u6587\u6863\u200b\u4ecb\u7ecd\u200b\u7684\u200b\u5f88\u200b\u6e05\u695a\u200b\u4e86\u200b

      "},{"location":"Build_this_website/#35-blog","title":"3.5 \u200b\u542f\u7528\u200b blog","text":"

      \u200b\u5b98\u65b9\u200b\u7684\u200b\u8d77\u6b65\u200b\u6307\u5bfc\u200b\u5f88\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u7167\u7740\u200b\u8d70\u200b\u5c31\u200b\u597d\u200b\uff01

      "},{"location":"Build_this_website/#36","title":"3.6 \u200b\u542f\u7528\u200b\u7279\u6b8a\u200b\u7684\u200b\u5b57\u4f53","text":"

      \u200b\u672c\u200b\u6587\u6863\u200b\u76ee\u524d\u200b\u91c7\u7528\u200b\u7684\u200b\u662f\u200b \u200b\u971e\u9e5c\u200b\u6587\u6977\u200b\uff0c\u200b\u4f46\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\u8be5\u200b\u5b57\u4f53\u200b\u76f4\u63a5\u200b\u4fee\u6539\u200b\u3002

      \u200b\u9700\u8981\u200b\u5148\u200b\u5728\u200bmkdocs.yml\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a

      extra_css:\n  - https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css\n

      \u200b\u7136\u540e\u200b\u518d\u200b\u5207\u6362\u200b\u8bed\u8a00\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u6b63\u5e38\u200b\u6e32\u67d3\u200b\u4e86\u200b\u3002

      theme:\n  font:\n    text: LXGW WenKai Screen\n
      "},{"location":"Build_this_website/#4","title":"4.\u200b\u5176\u4ed6\u200b\u63d2\u4ef6\u200b\u4e0e\u200b\u75db\u70b9\u200b\u89e3\u51b3","text":""},{"location":"Build_this_website/#41","title":"4.1 \u200b\u542f\u7528\u200b\u6700\u65b0\u66f4\u65b0\u200b\u65f6\u95f4","text":"

      \u200b\u5b89\u88c5\u200b\u5e93\u200b\uff1a

      pip install mkdocs-git-revision-date-localized-plugin\n
      \u200b\u6dfb\u52a0\u200b\u8bbe\u7f6e\u200b\u5230\u200bmkdocs.yml\uff1a
      plugins:\n  - git-revision-date-localized:\n      enable_creation_date: true\n

      "},{"location":"Build_this_website/#42","title":"4.2 \u200b\u56fe\u7247\u200b\u653e\u5927","text":"

      \u200b\u5148\u200b\u5b89\u88c5\u200b\u63d2\u4ef6\u200b\uff1a

      pip install mkdocs-glightbox\n

      \u200b\u7136\u540e\u200b\u52a0\u5165\u200b\u914d\u7f6e\u200b\uff1a

      plugins:\n  - glightbox\n

      "},{"location":"Build_this_website/#43-snippets","title":"4.3 \u200b\u4f7f\u7528\u200b snippets \u200b\u8f85\u52a9\u200b\u5199\u4f5c","text":"

      \u200b\u5728\u200b\u6587\u6863\u200b\u4e2d\u200b\u6211\u4eec\u200b\u6709\u200b\u8bb8\u591a\u200b\u56fa\u5b9a\u200b\u683c\u5f0f\u200b\u7684\u200b\u5185\u5bb9\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\u6211\u200b\u5728\u200b\u6587\u6863\u200b\u4e2d\u200b\u6240\u6709\u200b\u7684\u200b\u8fde\u63a5\u200b\u51e0\u4e4e\u200b\u90fd\u200b\u662f\u200b

      [:octicons-link-16:\u200b\u6587\u5b57\u200b](\u200b\u94fe\u63a5\u200b)\n

      \u200b\u6216\u8005\u8bf4\u200b\u6211\u200b\u6240\u6709\u200b\u535a\u5ba2\u200b\u7684\u200b post \u200b\u7684\u200b\u5f00\u5934\u200b\u90fd\u200b\u662f\u200b

      ---\ncomments: true\nauthors:\n    - stormckey\ncategories:\n    -\ndate: 2023-12-18\nnostatistics: true\n---\n

      \u200b\u91cd\u590d\u6027\u200b\u5f88\u200b\u9ad8\u200b\u3002\u200b\u5982\u679c\u200b\u4f60\u200b\u50cf\u200b\u6211\u200b\u4e00\u6837\u200b\u4f7f\u7528\u200b MacOS \u200b\u7684\u8bdd\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b raycast \u200b\u7684\u200b snippet \u200b\u529f\u80fd\u200b\u6765\u200b\u7b80\u5316\u200b\u8fd9\u4e00\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u524d\u8005\u200b\uff0c\u200b\u6211\u200b\u8bbe\u7f6e\u200b\u4e86\u200b\u5982\u4e0b\u200b\u7684\u200b snippet\uff1a

      \u200b\u8fd9\u6837\u200b\u53ef\u4ee5\u200b\u5728\u200b\u6572\u5165\u200b\uff01!lk \u200b\u540e\u200b\u81ea\u52a8\u200b\u8f6c\u5316\u200b\u4e3a\u200b\u6307\u5b9a\u200b\u683c\u5f0f\u200b\uff0c\u200b\u63d2\u5165\u200b\u526a\u5207\u677f\u200b\u6587\u5b57\u200b\u5e76\u4e14\u200b\u5c06\u200b\u5149\u6807\u200b\u79fb\u52a8\u200b\u5230\u200b\u6307\u5b9a\u200b\u4f4d\u7f6e\u200b\u3002\u200b\u5bf9\u4e8e\u200b post \u200b\u7684\u200b\u5f00\u5934\u200b\u5143\u200b\u6570\u636e\u200b\uff0c\u200b\u6211\u200b\u7684\u200b\u8bbe\u7f6e\u200b\u662f\u200b\uff1a

      \u200b\u7c7b\u4f3c\u200b\u7684\u200b\u53ef\u4ee5\u200b\u8bbe\u7f6e\u200b\u522b\u7684\u200b snippet\u3002

      \u200b\u5982\u679c\u200b\u4f60\u200b\u4e0d\u200b\u4f7f\u7528\u200b MacOS\uff0cVSCode \u200b\u5e94\u8be5\u200b\u4e5f\u200b\u6709\u200b\u7c7b\u4f3c\u200b\u7684\u200b snippet \u200b\u7684\u200b\u529f\u80fd\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u81ea\u884c\u200b\u63a2\u7d22\u200b\u3002

      "},{"location":"Build_this_website/#44","title":"4.4 \u200b\u81ea\u52a8\u200b\u7ed9\u200b\u63d2\u5165\u200b\u56fe\u7247\u200b\u8bbe\u7f6e\u200b\u6837\u5f0f","text":"

      \u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u53c2\u8003\u200b\u6b64\u7bc7\u200b\u535a\u5ba2\u200b\u4e2d\u200b\u6700\u540e\u200b\u7684\u200b\u4e3a\u200b\u56fe\u7247\u200b\u8bbe\u7f6e\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\u4e00\u680f\u200b

      \u200b\u672c\u7ad9\u200b\u91c7\u7528\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\u4e3a\u200b\u5706\u89d2\u200b+\u200b\u9634\u5f71\u200b\uff0c\u200b\u53e6\u5e26\u200b\u5c45\u4e2d\u200b\u548c\u200b\u66f4\u200b\u5408\u9002\u200b\u7684\u200b\u95f4\u9694\u200b

      "},{"location":"Build_this_website/#45","title":"4.5 \u200b\u81ea\u52a8\u200b\u4e2d\u6587\u200b\u6392\u7248\u200b\u4f18\u5316","text":"

      \u200b\u5173\u4e8e\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u6211\u200b\u4e4b\u524d\u200b\u5199\u8fc7\u200b\u4e00\u7bc7\u200b \u200b\u535a\u5ba2\u200b\uff0c\u200b\u6b22\u8fce\u200b\u53c2\u8003\u200b\u3002

      "},{"location":"Format/","title":"\u6837\u5f0f\u200b\u4e00\u89c8","text":"

      \u200b\u7ea6\u200b 302 \u200b\u4e2a\u200b\u5b57\u200b 25 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

      Abstraction

      \u200b\u6b64\u200b\u9875\u9762\u200b\u5c06\u4f1a\u200b\u5217\u51fa\u200b\u672c\u200b\u7ad9\u70b9\u200b\u76ee\u524d\u200b\u652f\u6301\u200b\u7684\u200b\u6240\u6709\u200b\u663e\u793a\u200b\u6837\u5f0f\u200b \u200b\u8bb8\u591a\u200b\u90fd\u200b\u6765\u81ea\u200b Material for Mkdocs

      int main(){\n    printf(\"Hello World\");\n    printf(\"!/n\");\n}\n
      #include <iostream>\nusing namespace std;\n

      The range() function is used to generate a sequence of numbers.

      inlcude a file: .gitignore
      site/\n.DS_Store\n*.docx\n*.pdf\nsrc/*\n*pycache*\n
      col1 col2 col3 r1c1 r1c2 r1c3 r2c1 r2c2 r2c3 r3c1 r3c2 r3c3
      graph LR\n  A[What to eat?] --> B{Hesitate};\n  B -->|KFC| C[Hmm...];\n  C --> D[Bad!];\n  D --> B;\n  B ---->|Mcdonald's| E[Yay!];

      \u200b\u6587\u6863\u200b\u4ecb\u7ecd\u200b\u4e86\u200b\u6240\u6709\u200b\u652f\u6301\u200b\u7684\u200b\u56fe\u200b

      my title

      something

      no title

      my title

      something

      no inline

      Now it suppports Note\uff0cAbstract\uff0cInfo\uff0cTip\uff0cSuccess\uff0cQuestion\uff0cWarining\uff0cFailure\uff0cDanger\uff0cBug\uff0cExample\uff0cQuote

      inline

      somthing

      Subscribe to our newsletter

      Subscribe to our newsletter

      CC++
      #include <stdio.h>\n\nint main(void) {\n  printf(\"Hello world!\\n\");\n  return 0;\n}\n
      #include <iostream>\n\nint main(void) {\n  std::cout << \"Hello world!\" << std::endl;\n  return 0;\n}\n

      Note

      Search for emojis here

      Definition

      Define sth

      Text can be deleted and replacement text added. This can also be combined into onea single operation. Highlighting is also possible and comments can be added inline.

      Formatting can also be applied to blocks by putting the opening and closing tags on separate lines and adding new lines between the tags and the content.

      • This was marked
      • This was inserted
      • This was deleted

      • H2O

      • ATA

      Ctrl+Alt+Del

      Image caption

      • Lorem ipsum dolor sit amet\uff0c consectetur adipiscing elit
      • Vestibulum convallis sit amet nisi a tincidunt
        • In hac habitasse platea dictumst
        • In scelerisque nibh non dolor mollis congue sed et metus
        • Praesent sed risus massa
      • Aenean pretium efficitur erat\uff0c donec pharetra\uff0c ligula non scelerisque
      \\[ \\operatorname{ker} f=\\{g\\in G:f(g)=e_{H}\\}{\\mbox{.}} \\]

      The HTML specification is maintained by the W3C.

      Lorem ipsum dolor sit amet

      Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus tellus non sem sollicitudin\uff0c quis rutrum leo facilisis.

      Cras arcu libero

      Aliquam metus eros\uff0c pretium sed nulla venenatis\uff0c faucibus auctor ex. Proin ut eros sed sapien ullamcorper consequat. Nunc ligula ante.

      Duis mollis est eget nibh volutpat\uff0c fermentum aliquet dui mollis. Nam vulputate tincidunt fringilla. Nullam dignissim ultrices urna non auctor.

      Method Description GET Fetch resource PUT Update resource DELETE Delete resource"},{"location":"changelog/","title":"\u66f4\u65b0\u200b\u8bb0\u5f55","text":""},{"location":"changelog/#2023","title":"2023","text":"2023-12-18\u00b6

      \u200b\u7ed9\u200b\u94fe\u63a5\u200b\u7740\u8272\u200b

      2023-12-13\u00b6

      \u200b\u4f18\u5316\u200b\u4e86\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b

      2023-11-28\u00b6

      \u200b\u4f7f\u7528\u200b\u4e86\u200bmeta-manager\u200b\u63d2\u4ef6\u200b,\u200b\u7b80\u5316\u200b\u4e86\u200bmetadata\u200b\u7684\u200b\u4f7f\u7528\u200b

      Blog > PL > Y-combinator

      2023-11-26\u00b6

      \u200b\u65b0\u589e\u200b\u4e86\u200bDefinition\u200b\u6837\u5f0f\u200b

      \u200b\u542f\u7528\u200bblog\u200b\u63d2\u4ef6\u200b

      \u200b\u4f7f\u7528\u200bPangu.vim\u200b\u63d2\u4ef6\u200b\u8fdb\u884c\u200b\u6587\u6863\u200b\u683c\u5f0f\u5316\u200b

      Blog > Cool > \u200b\u7528\u200bVim\u200b\u6279\u91cf\u200b\u683c\u5f0f\u5316\u200b

      2023-11-25\u00b6

      \u200b\u91cd\u6784\u200b\u4e86\u200bBlog\u200b\u7684\u200b\u5c42\u7ea7\u200b,\u200b\u52a0\u5165\u200b\u4e86\u200bLab\u200b\u90e8\u5206\u200b

      \u200b\u52a0\u5165\u200b\u4e86\u200b\u8ba1\u7f51\u200b\u5b9e\u9a8c\u200b\u6307\u5357\u200b

      2023-11-20\u00b6

      \u200b\u65b0\u589e\u200b\u4e86\u200b\u6570\u636e\u200b\u5efa\u6a21\u200b\u4e0e\u200b\u5206\u6790\u200b\u7684\u200b\u7b14\u8bb0\u200b

      2023-11-07\u00b6

      \u200b\u597d\u200b\u670b\u53cb\u200bPeiPei\u200b\u6765\u200b\u5bc4\u5c45\u200b\u4e86\u200b!

      2023-07-08\u00b6

      \u200b\u66f4\u6362\u200b\u4e86\u200b\u66f4\u65b0\u200b\u65e5\u5fd7\u200b\u7684\u200b\u8272\u5f69\u200b

      \u200b\u79fb\u9664\u200bDS\u200b\u7b14\u8bb0\u200b

      2023-07-04\u00b6

      \u200b\u6da6\u8272\u200b\u4e86\u200b\u535a\u5ba2\u200b\u548c\u200b\u7b14\u8bb0\u200b\u7684\u200b\u5185\u5bb9\u200b

      Home > Build_this_page

      \u200b\u91cd\u6784\u200b\u4e86\u200b\u7f51\u7ad9\u200b\u7684\u200b\u7ed3\u6784\u200b\uff0c\u200b\u542f\u7528\u200b\u4e86\u200b\u65b0\u200b\u7684\u200bmaterial\u200b\u529f\u80fd\u200b

      Blog > docker_minisql

      2023-04-06\u00b6

      Blog > \u200b\u5728\u200bMac\u200b\u4e0a\u200b\u4f7f\u7528\u200bVSCode\u200b\u8fdb\u884c\u200bC/C++\u200b\u8c03\u8bd5\u200b

      2023-04-01\u00b6

      Blog > \u200b\u6211\u200b\u7684\u200bCLI\u200b\u5de5\u5177\u200b

      2023-03-30\u00b6

      Note > \u200b\u8ba1\u7ec4\u200b\u62fe\u9057\u200b

      2023-03-29\u00b6

      Blog > \u200b\u542f\u7528\u200bchatGPT-academic

      2023-03-27\u00b6

      Note > Missiing Semester > Commandline Environment

      2023-03-23\u00b6

      \u200b\u91cd\u6784\u200b\u4e86\u200b\u5168\u7ad9\u200b\u7684\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b\uff0c\u200b\u73b0\u5728\u200b\u662f\u200b\u9ed8\u8ba4\u200b\u5706\u89d2\u200b\u77e9\u5f62\u200b\u52a0\u200b\u9634\u5f71\u200b

      Blog > \u200b\u5728\u200bVSCode\u200b\u4e0b\u200b\u7f16\u5199\u200bMarkdown

      Blog > \u200b\u914d\u7f6e\u200bGithub\u200b\u4e2a\u4eba\u200bProfile

      2023-03-22\u00b6

      Blog > \u200b\u7528\u200bssh\u200b\u8fde\u63a5\u200b\u540c\u4e00\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u7684\u200bwsl

      Blog > wsl\u200b\u7ec8\u7aef\u200b\u914d\u7f6e\u200b

      2023-03-21\u00b6

      Blog > wsl\u200b\u4e0a\u200b\u542f\u7528\u200bcuda

      Blog > VSCode\u200b\u7ec8\u7aef\u200b\u4e0a\u200b\u65e0\u6cd5\u200b\u542f\u7528\u200bconda\u200b\u865a\u62df\u73af\u5883\u200b

      2023-03-20\u00b6

      Blog > zsh\u200b\u4e2d\u200b\u7684\u200b\u53c2\u6570\u4f20\u9012\u200b

      2023-03-18\u00b6

      Home > \u200b\u6700\u8fd1\u200b\u66f4\u65b0\u200b

      \u200b\u4fee\u6539\u200b\u4e86\u200b\u7f51\u7ad9\u200b\u7684\u200b\u8272\u5f69\u200b,\u200b\u4f7f\u7528\u200b\u4e86\u200b\u66f4\u200b\u591a\u6837\u200b\u7684\u200b\u56fe\u6807\u200b

      Research > Diffusion > DDPM

      Research > Diffusion > DDIM

      "},{"location":"Note/","title":"\u7b14\u8bb0\u672c\u200b\uff01","text":"

      \u200b\u5927\u5b66\u200b\u671f\u95f4\u200b\u7684\u200b\u7b14\u8bb0\u200b\u5408\u96c6\u200b

      \u200b\u5176\u5b9e\u200b\u6211\u200b\u4e00\u76f4\u200b\u4ee5\u6765\u200b\u90fd\u200b\u4e0d\u600e\u4e48\u200b\u8bb0\u7b14\u8bb0\u200b\uff0c\u200b\u4f46\u200b\u4e4b\u524d\u200b\u51e0\u6b21\u200b\u6570\u5b66\u8bfe\u200b\u4e0d\u200b\u8bb0\u7b14\u8bb0\u200b\u5dee\u70b9\u200b\u66b4\u6bd9\u200b\u4e86\u200b\uff0c\u200b\u6240\u4ee5\u200b\u504f\u200b\u6570\u5b66\u200b\u7684\u200b\u8bfe\u200b\u8fd8\u662f\u200b\u4fdd\u7559\u200b\u4e86\u200b\u8bb0\u7b14\u8bb0\u200b\u7684\u200b\u4e60\u60ef\u200b\u7684\u200b\u3002

      \u200b\u53e6\u5916\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u671f\u672b\u200b\u590d\u4e60\u200b\u4ea7\u751f\u200b\u7684\u200b\u7b14\u8bb0\u200b\uff0c\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u6613\u200b\u5fd8\u200b\u77e5\u8bc6\u200b\u7684\u200b\u6574\u7406\u200b

      "},{"location":"Note/CO_review/","title":"\u8ba1\u7b97\u673a\u200b\u7ec4\u6210","text":"

      \u200b\u7ea6\u200b 431 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

      \u200b\u6781\u5176\u200b\u7b80\u7565\u200b\uff0c\u200b\u53ea\u6709\u200b\u90e8\u5206\u200b\u6613\u200b\u5fd8\u200b\u3001\u200b\u6216\u200b\u4e0d\u200b\u90a3\u4e48\u200b\u663e\u7136\u200b\u7684\u200b\u77e5\u8bc6\u70b9\u200b\uff08\u200b\u62ff\u6765\u200b\u67e5\u8868\u200b\uff09\uff0c\u200b\u6240\u4ee5\u200b\u796d\u7956\u200b\u53ea\u7528\u200b\u4e86\u200b\u4e00\u9875\u200b

      \u200b\u8bb8\u591a\u200b\u5185\u5bb9\u200b\u6458\u81ea\u200b\u54b8\u9c7c\u200b\u6684\u200b\u7684\u200b\u4ee3\u7801\u200b\u7a7a\u95f4\u200b

      \u200b\u8fd9\u91cc\u200b\u662f\u200b\u8bfe\u672c\u200b\u4f5c\u4e1a\u200b\u7b54\u6848\u200b

      "},{"location":"Note/CO_review/#ch2-instructions","title":"Ch2 Instructions","text":"
      • PC relative addressing: PC + offset \u200b\u800c\u200b\u975e\u200b PC + 4 + offset
      • I \u200b\u7c7b\u578b\u200b\u7684\u200b\u7acb\u5373\u200b\u6570\u5747\u200b\u4e3a\u200b\u7b26\u53f7\u200b\u6269\u5c55\u200b\uff0c\u200b\u4f46\u200b\u8981\u200b\u6ce8\u610f\u200b\u79fb\u4f4d\u6307\u4ee4\u200b\u53ea\u200b\u622a\u53d6\u200b\u4f4e\u4f4d\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u8fc7\u200b\u591a\u4f4d\u6570\u200b\u7684\u200b\u4f4d\u79fb\u200b\u65e0\u200b\u610f\u4e49\u200b
      • SB \u200b\u548c\u200b UJ \u200b\u7c7b\u578b\u200b\u90fd\u200b\u4e0d\u5b58\u200b\u6700\u4f4e\u200b\u4f4d\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u4ed6\u4eec\u200b\u7684\u200b\u76ee\u7684\u5730\u200b\u662f\u200b\u6307\u4ee4\u200b\uff08word alignment\uff09\uff0c\u200b\u4e00\u822c\u200b\u6700\u540e\u200b\u4e24\u4f4d\u200b\u90fd\u200b\u662f\u200b 0\uff08\u200b\u56e0\u4e3a\u200b\u5b58\u5728\u200b 16 \u200b\u4f4d\u200b\u7684\u200b\u6307\u4ee4\u200b\u6240\u4ee5\u200b\u53ea\u6709\u200b\u6700\u540e\u200b\u4e00\u4f4d\u200b\u5fc5\u7136\u200b\u662f\u200b 0\uff09
      • \u200b\u5408\u7406\u200b\u5229\u7528\u200bbgeu\u200b\u6765\u200b\u68c0\u6d4b\u200b\u8d8a\u754c\u200b\uff08\u200b\u5c0f\u4e8e\u200b\u96f6\u200b\u6216\u8005\u200b\u5927\u4e8e\u200b\u67d0\u4e2a\u200b\u6570\u200b\uff09
      • lui\u200b\u52a0\u8f7d\u200b\u4e86\u200b\u7acb\u5373\u200b\u6570\u200b\u7684\u200b\u9ad8\u200b 20 \u200b\u4f4d\u540e\u200b\uff0c\u200b\u7528\u200baadi\u200b\u52a0\u8f7d\u200b\u4f4e\u200b 12 \u200b\u4f4d\u200b\uff0c\u200b\u82e5\u56e0\u200b\u7b26\u53f7\u200b\u6269\u5c55\u200b\u5bfc\u81f4\u200b\u8fdb\u4f4d\u200b\uff0c\u200b\u53ea\u8981\u200b\u591a\u52a0\u200b 1000 \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u62b5\u6d88\u200b FFFFF000 \u200b\u7684\u200b\u5f71\u54cd\u200b
      • \u200b\u8bb0\u200b\u6e05\u695a\u200b ld \u200b\u7684\u200b d \u200b\u662f\u200b doubleword\uff0c\u200b\u8001\u662f\u200b\u8bb0\u6210\u200b load \u200b\u7684\u200b d

      \u200b\u8fd8\u6709\u200b\u51e0\u5f20\u200b\u5e38\u7528\u200b\u8868\u200b\uff1a

      \uff08\u200b\u4e0b\u56fe\u200b\u91cc\u200b\u7684\u200b j imm \u200b\u8981\u200b\u6539\u6210\u200b PC+imm\uff09

      "},{"location":"Note/CO_review/#ch3-arithmetic","title":"Ch3 Arithmetic","text":"
      • \u200b\u68c0\u6d4b\u200b\u52a0\u51cf\u6cd5\u200b\u6ea2\u51fa\u200b\uff1a\u200b\u6700\u9ad8\u200b\u4f4d\u200b\u5168\u52a0\u5668\u200b\u7684\u200b Cin Cout \u200b\u8fdb\u884c\u200b\u5f02\u6216\u200b\u5373\u53ef\u200b\uff0c\u200b\u8fd9\u200b\u4fe9\u200b\u4fe1\u53f7\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u5c31\u200b\u610f\u5473\u7740\u200b\u6ea2\u51fa\u200b\u4e86\u200b
      • \u200b\u6700\u9ad8\u200b\u4f4d\u200b\u7275\u51fa\u200b\u4e00\u6839\u200b\u7ebf\u200b set \u200b\u5230\u200b\u6700\u4f4e\u200b\u4f4d\u200b\u7684\u200b less\uff0c\u200b\u5176\u4ed6\u200b\u6240\u6709\u200b\u4f4d\u200b less \u200b\u90fd\u200b\u7f6e\u200b 0 \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7ec4\u6210\u200b slt \u200b\u7684\u200b\u8f93\u51fa\u200b\u4fe1\u53f7\u200b\u4e86\u200b
      • IEEE 754 \u200b\u6ce8\u610f\u200b\u4e24\u70b9\u200b \u200b\u4e00\u662f\u200b 1+8+23 = 32 \uff5c1 + 11 + 52 = 64\uff1b\u200b\u4e8c\u662f\u200b\u4e0b\u6ea2\u200b\u7684\u200b\u975e\u200b\u89c4\u683c\u200b\u6570\u200b\u7684\u200b exponent \u200b\u8ddf\u200b\u89c4\u683c\u200b\u6570\u200b\u7684\u200b\u6700\u5c0f\u200b exponent \u200b\u662f\u200b\u4e00\u6837\u200b\u7684\u200b\uff0c\u200b\u8fd9\u6837\u200b\u8bbe\u8ba1\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8ba9\u200b 0.1111111...\uff08\u200b\u4e0b\u6ea2\u200b\u6700\u5927\u200b\uff09 -> 1.0000000\uff08\u200b\u89c4\u683c\u200b\u6700\u5c0f\u200b\uff09...\u200b\u8fde\u7eed\u200b\u53ef\u4ee5\u200b\u7b49\u200b\u5dee\u200b\u7684\u200b\u5f80\u200b\u4e0a\u200b\u589e\u52a0\u200b
      • \u200b\u6d6e\u70b9\u200b\u52a0\u6cd5\u200b\uff1a\u200b\u6ce8\u610f\u200b\u5bf9\u9f50\u200b\u6539\u53d8\u200b\u7684\u200b\u662f\u200b\u5c0f\u200b\u7684\u200b\u6307\u6570\u200b\u90a3\u4e2a\u200b
      • \u200b\u6d6e\u70b9\u200b\u4e58\u6cd5\u200b\uff0c\u200b\u6ce8\u610f\u200b\u51cf\u53bb\u200b bias
      "},{"location":"Note/ADS/B-Tree_B%2BTree/","title":"B Tree B+Tree","text":"

      \u200b\u7ea6\u200b 424 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

      1.

      B \u200b\u6811\u200b\u5229\u7528\u200b\u4e86\u200b\u5c40\u90e8\u6027\u200b\u6765\u200b\u52a0\u901f\u200b\u8bbf\u95ee\u200b\n\nB \u200b\u6811\u200b\u7684\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u662f\u200b\u6307\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u7a7a\u200b\u5b69\u5b50\u200b\n\n![](image/B-Tree_B+Tree/media/image1.png)\n

      2.

      \u200b\u5bf9\u200b B \u200b\u6811\u200b\u7684\u200b\u8282\u70b9\u200b\u5173\u952e\u7801\u200b\u6570\u200b\u7ea6\u5b9a\u200b\uff0c\u200b\u6ce8\u610f\u200b\u4e0b\u9650\u200b\u662f\u200b\u4e0a\u200b\u53d6\u6574\u200b\uff0c\u200b\u53ef\u7528\u200b\u4e0a\u200b\u4e0b\u9650\u200b\u547d\u540d\u200b\n\u200b\u5982\u200b\uff083\uff0c5\uff09\u200b\u6811\u200b/5 \u200b\u9636\u200b B \u200b\u6811\u200b\uff0c5 \u200b\u9636\u200b B \u200b\u6570\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6700\u200b\u591a\u200b 4 \u200b\u4e2a\u200b\u5173\u952e\u7801\u200b\n\n![](image/B-Tree_B+Tree/media/image2.png)\n

      3.

      B \u200b\u6811\u200b\u5728\u200b\u5185\u5b58\u200b\u4e2d\u200b\u5b9e\u9645\u200b\u7684\u200b\u5b58\u50a8\u200b\u5f62\u5f0f\u200b\u4e3a\u200b\n\n![](image/B-Tree_B+Tree/media/image3.png)\n

      4.

      \u200b\u6ce8\u610f\u200b \u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u6570\u200b=\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u6570\u200b+1\n\n![](image/B-Tree_B+Tree/media/image4.png)\n\n\n\u200b\u4e5f\u200b\u53ef\u200b\u7406\u89e3\u200b\u4e3a\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u5bf9\u5e94\u200b N \u200b\u79cd\u200b\u6210\u529f\u200b\uff0c\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u5c31\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b N+1 \u200b\u79cd\u200b\u5931\u8d25\u200b\u7684\u200b\u60c5\u51b5\u200b\n

      5.

      B \u200b\u6811\u200b\u7684\u200b\u9ad8\u5ea6\u200b\u5c31\u200b\u5728\u200b\u3001\\thetalogmn\n\n![](image/B-Tree_B+Tree/media/image5.png)\n

      6.

      B \u200b\u6570\u200b\u7684\u200b\u63d2\u5165\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u81f4\u200b\u8282\u70b9\u200b key \u200b\u8fc7\u591a\u200b\uff0c\u200b\u5219\u200b\u9700\u8981\u200b\u5206\u88c2\u200b\uff0c\u200b\u5e76\u200b\u628a\u200b\u4e2d\u70b9\u200b\u4e0a\u79fb\u200b\n\n![](image/B-Tree_B+Tree/media/image6.png)\n\n\n\u200b\u5982\u679c\u200b\u5206\u88c2\u200b\u5230\u200b\u6839\u200b \u200b\u90a3\u4e48\u200b\u9ad8\u5ea6\u200b\u52a0\u200b 1\n

      7.

      B \u200b\u6811\u200b\u7684\u200b\u5220\u9664\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u81f4\u200b\u4e0b\u200b\u8d8a\u754c\u200b\uff0c\u200b\u4f46\u51e1\u200b\u5de6\u53f3\u200b\u6709\u200b\u4e00\u4e2a\u200b\u5144\u5f1f\u200b\u6709\u200b\u591a\u200b\u7684\u200b\uff08\u200b\u501f\u51fa\u200b\u540e\u200b\u4e0d\u4e0b\u200b\u6ea2\u51fa\u200b\uff09\uff0c\u200b\u65cb\u8f6c\u200b\n\n![](image/B-Tree_B+Tree/media/image7.png)\n\n\n\u200b\u5982\u679c\u200b\u6ca1\u6709\u200b\uff0c \u200b\u4ece\u200b\u4e0a\u9762\u200b\u62fd\u200b\u4e00\u4e2a\u200b\u4e0b\u6765\u200b\uff0c\u200b\u4e09\u200b\u90e8\u5206\u200b\u4e00\u8d77\u200b\u5408\u5e76\u200b\n\n![](image/B-Tree_B+Tree/media/image8.png)\n\n\n\u200b\u5408\u5e76\u200b\u5230\u200b\u6839\u200b\uff0c\u200b\u5c31\u200b\u628a\u200b\u7a7a\u6839\u200b\u5220\u9664\u200b\uff0c\u200b\u81f3\u6b64\u200b\u9ad8\u5ea6\u200b\u51cf\u4e00\u200b\n

      8.

      B \u200b\u6811\u200b\u628a\u200b\u6570\u636e\u200b\u5b58\u5728\u200b\u8282\u70b9\u200b\u4e2d\u200b\uff0c\u200b\u6bd4\u8d77\u200b B+\u200b\u6811\u200b\u5b58\u5728\u200b\u6839\u4e2d\u200b\uff0cB \u200b\u9664\u4e86\u200b key \u200b\u591a\u200b\u4e86\u200b\u4e2a\u200b\u6307\u9488\u200b\u7684\u200b\u5927\u5c0f\u200b.\u200b\u9664\u53bb\u200b\u6307\u9488\u200b\u7d22\u5f15\u200b\u53ef\u4ee5\u200b\u5bb9\u7eb3\u200b\u5bbd\u200b\u6241\u200b\u7684\u200b\u6811\u200b\u3002\n\n\u200b\u53e6\u5916\u200b\u52a0\u5165\u200b\u8981\u200b\u67e5\u627e\u200b\u67d0\u4e00\u200b\u533a\u95f4\u200b\u7684\u200b\u70b9\u200b\u6bd4\u5982\u200b 20-60\uff0c\u200b\u9700\u8981\u200b\u4f9d\u6b21\u200b\u641c\u7d22\u200b\uff0c\u200b\u5f88\u200b\u9ebb\u70e6\u200b\n\n\u200b\u5f15\u5165\u200b B+\u200b\u6811\u200b\uff1a\n\n![](image/B-Tree_B+Tree/media/image9.png)\n\n\n\u200b\u7d22\u5f15\u200b\u503c\u200b\uff08\u200b\u5185\u90e8\u200b\u70b9\u200b\uff09\u200b\u4e0d\u200b\u91cd\u590d\u200b\uff1b\n\n\u200b\u4e0d\u518d\u200b\u9700\u8981\u200b B \u200b\u6811\u200b\u7684\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\uff1b\n\n\u200b\u53f6\u5b50\u200b\u5757\u200b\u5355\u5411\u200b\u94fe\u8868\u200b\uff0c\u200b\u65b9\u4fbf\u200b\u67e5\u627e\u200b\u67d0\u4e2a\u200b\u8303\u56f4\u200b\u5185\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u4e0d\u5fc5\u200b\u591a\u904d\u200b\u4ece\u6839\u200b\u51fa\u53d1\u200b\u3002\n\n\u200b\u7d22\u5f15\u200b\u503c\u200b\uff08\u200b\u5185\u90e8\u200b\u70b9\u200b\u7684\u200b key\uff09\u200b\u5b58\u200b\u7684\u200b\u662f\u200b\u53f3\u5b50\u200b\u6811\u200b\u7684\u200b\u6700\u5c0f\u200b\u53f6\u5b50\u200b\u8282\u70b9\u200b\u7684\u200b\u503c\u200b\u3002\n\n\u200b\u5982\u679c\u200b\u6709\u200b\u78c1\u76d8\u200b\u6307\u9488\u200b\uff0c\u200b\u4e5f\u200b\u90fd\u200b\u5b58\u5728\u200b\u6709\u200b\u8282\u70b9\u200b\u3002\n\n\u200b\u63d2\u5165\u200b\u5220\u9664\u200b\u4e0e\u200b B \u200b\u6811\u200b\u76f8\u4eff\u200b.\u200b\u4f46\u200b\u90fd\u200b\u8981\u200b\u6df1\u5165\u200b\u5230\u200b\u53f6\u200b\u8282\u70b9\u200b\u3002\n
      "},{"location":"Note/ADS/BST_AVL_Splay/","title":"BST AVL Splay","text":"

      \u200b\u7ea6\u200b 287 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

      1. \u200b\u6211\u4eec\u200b\u5728\u200b\u8c03\u7528\u200b search \u200b\u65f6\u4f1a\u200b\u591a\u200b\u4f20\u9012\u200b\u4e00\u4e2a\u200b\u5f15\u7528\u200b\u7684\u200b\u53c2\u6570\u200b hot \u200b\u5176\u200b\u610f\u4e49\u200b\u5982\u4e0b\u200b\uff1a

        \u200b\u8fd9\u200b\u6709\u5229\u4e8e\u200b\u6211\u4eec\u200b\u5b9e\u73b0\u200b insert delete

      2.

      BST \u200b\u7684\u200b\u5e73\u5747\u200b\u9ad8\u5ea6\u200b\uff0c\u200b\u6709\u200b\u4e24\u79cd\u200b\u8ba1\u7b97\u200b\u65b9\u5f0f\u200b\n\n  1.  \u200b\u968f\u673a\u200b\u7ec4\u6210\u200b\uff1a\u200b\u8ba1\u7b97\u200b\u4e00\u5171\u200b\u6709\u200b\u591a\u5c11\u200b\u79cd\u200b\u53ef\u80fd\u200b\u7684\u200b\u62d3\u6251\u200b\u7ed3\u6784\u200b \u200b\u6839\u53f7\u200b n Catalan\uff08N\uff09\u200b\u79cd\u200b\u7ed3\u6784\u200b\n\n  2.  \u200b\u968f\u673a\u200b\u751f\u6210\u200b\uff1a\u200b\u8ba1\u7b97\u200b\u4e00\u5171\u200b\u6709\u200b\u591a\u5c11\u200b\u79cd\u200b\u53ef\u80fd\u200b\u7684\u200b\u8f93\u5165\u200b\u5e8f\u5217\u200b ln N N\uff01\u200b\u79cd\u200b\u5e8f\u5217\u200b\n\n![](image/BST_AVL_Splay/media/image2.png)\n\n\n\u200b\u968f\u673a\u200b\u7ec4\u6210\u200b\u66f4\u52a0\u200b\u53ef\u4fe1\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u968f\u673a\u200b\u751f\u6210\u200b\u4f1a\u200b\u989d\u5916\u200b\u589e\u5927\u200b 213 \u200b\u548c\u200b 231 \u200b\u8fd9\u4e00\u8f83\u200b\u4f4e\u6811\u200b\u7684\u200b\u6743\u91cd\u200b\uff0c\u200b\u91cd\u590d\u200b\u4e86\u200b\n

      3.\u200b\u7b49\u4ef7\u200b BST

      \u200b\u4e0a\u4e0b\u200b\u5177\u6709\u200b\u4e00\u5b9a\u200b\u7684\u200b\u7075\u6d3b\u200b\u5ea6\u200b\n\n![](image/BST_AVL_Splay/media/image3.png)\n\n\n![](image/BST_AVL_Splay/media/image4.png)\n

      4.

      ![](image/BST_AVL_Splay/media/image5.png)\n\n\n\u200b\u5de6\u200b\u5206\u53c9\u200b\u662f\u200b zig \u200b\u53f3\u200b\u5206\u53c9\u200b\u662f\u200b zag\uff0c\u200b\u65cb\u8f6c\u200b\u53ef\u4ee5\u200b\u4fdd\u6301\u200b BST \u200b\u7684\u200b\u7b49\u4ef7\u200b\n

      5.

      AVL \u200b\u7684\u200b\u63d2\u5165\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u5bfc\u81f4\u200b\u4e00\u7cfb\u5217\u200b\u7956\u5148\u200b\u7684\u200b\u5931\u8861\u200b\uff0c\u200b\u4f46\u662f\u200b\u5220\u9664\u200b\u53ea\u200b\u53ef\u80fd\u200b\u5bfc\u81f4\u200b\u67d0\u200b\u4e00\u4e2a\u200b\u7956\u5148\u200b\u7684\u200b\u5931\u8861\u200b\n

      6.

      ![](image/BST_AVL_Splay/media/image6.png)\n\n\n\u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u627e\u5230\u200b\u7b2c\u4e00\u4e2a\u200b\u5931\u8861\u200b\u70b9\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5faa\u73af\u200b\u8d70\u200b\u554a\u200b\u8def\u5f84\u200b\u53ea\u8981\u200b\u5f80\u4e0b\u200b\u627e\u200b\u4e24\u6b21\u200b\u9ad8\u5ea6\u200b\u6700\u9ad8\u200b\u7684\u200b\u5b69\u5b50\u200b\u5c31\u200b\u597d\u200b\n

      7.

      \u200b\u4f38\u5c55\u200b\u6811\u200b\u7684\u200b\u5220\u9664\u200b\u548c\u200b\u63d2\u5165\u200b\uff0c\u200b\u7531\u4e8e\u200b 1 \u200b\u90fd\u200b\u9700\u8981\u200b\u7528\u200b search \u200b\u64cd\u4f5c\u200b\uff0csearch \u200b\u5b8c\u540e\u200b self/hot \u200b\u4f1a\u200b\u6210\u4e3a\u200b\u65b0\u200b\u7684\u200b\u6839\u200b\u8282\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u63d2\u5165\u200b\u5220\u9664\u200b\u53ea\u8981\u200b\u5728\u200b\u641c\u7d22\u200b\u5b8c\u540e\u200b\u5bf9\u200b\u6839\u200b\u64cd\u4f5c\u200b\u5373\u53ef\u200b\u3002\n\n![](image/BST_AVL_Splay/media/image7.png)\n
      "},{"location":"Note/ADS/Heap/","title":"\u4f18\u5148\u7ea7\u200b\u961f\u5217\u200b/\u200b\u5806\u200b\u62fe\u9057","text":"

      \u200b\u7ea6\u200b 100 \u200b\u4e2a\u200b\u5b57\u200b

      "},{"location":"Note/ADS/Heap/#npl","title":"NPL \u200b\u7684\u200b\u53e6\u200b\u4e00\u79cd\u200b\u7406\u89e3","text":"

      \u200b\u53ef\u4ee5\u200b\u53c2\u770b\u200b\u56fe\u7247\u200b\u7406\u89e3\u200b\uff0c\u200b\u8282\u70b9\u200b NPL \u200b\u4e5f\u200b\u662f\u200b\u8be5\u5b50\u200b\u6811\u200b\u7684\u200b\u6700\u5927\u200b\u5b8c\u5168\u200b\u4e8c\u53c9\u6811\u200b\u6df1\u5ea6\u200b

      "},{"location":"Note/ADS/Heap/#_2","title":"\u6700\u5c0f\u200b\u8282\u70b9\u200b\u6570\u200b\u7684\u200b\u8bc1\u660e","text":"

      \u200b\u5728\u200b\u6b64\u57fa\u7840\u200b\u4e0a\u200b\u5f88\u200b\u597d\u200b\u8bc1\u660e\u200b\u53f3\u4fa7\u200b\u94fe\u200b\u7684\u200b\u957f\u5ea6\u200b\u4e0a\u9650\u200b

      "},{"location":"Note/ADS/Heap/#_3","title":"\u9526\u6807\u8d5b\u200b\u6811\u200b\uff0c\u200b\u4e86\u89e3\u200b\u5373\u53ef","text":""},{"location":"Note/ADS/Heap/#_4","title":"\u591a\u53c9\u5806\u200b\uff0c\u200b\u64cd\u4f5c\u200b\u590d\u6742\u5ea6\u200b\u6539\u53d8","text":"

      \u200b\u8fd9\u200b\u5c06\u200b\u5bfc\u81f4\u200b\u5e94\u7528\u200b\u5728\u200b\u56fe\u200b\u7b97\u6cd5\u200b\u4e0a\u200b\u81ea\u200b\u9002\u5e94\u200b\u6700\u4f18\u200b

      "},{"location":"Note/ADS/RBTree/","title":"RBTree","text":"

      \u200b\u7ea6\u200b 70 \u200b\u4e2a\u200b\u5b57\u200b

      1.

      \u200b\u56db\u4e2a\u200b\u7ea6\u675f\u6761\u4ef6\u200b\uff1a\n\n![](image/RBTree/media/image1.png)\n

      2.

      \u200b\u7ea2\u9ed1\u6811\u200b\u5c31\u662f\u200b B-\u200b\u6811\u200b\n\n![](image/RBTree/media/image2.png)\n

      3.

      \u200b\u5229\u7528\u200b B-\u200b\u6811\u200b\u8bc1\u660e\u200b\u7ea2\u9ed1\u6811\u200b\u7684\u200b\u9ad8\u5ea6\u200b\n\n![](image/RBTree/media/image3.png)\n

      4.

      \u200b\u5229\u7528\u200b B-Tree \u200b\u8ba4\u8bc6\u200b\u95ee\u9898\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u53ea\u200b\u9700\u200b\u4f7f\u7528\u200b 3\uff0c4 \u200b\u91cd\u6784\u200b\u5373\u53ef\u200b\uff0c\u200b\u91cd\u65b0\u200b\u5f52\u4e8e\u200b RBR\n\n![](image/RBTree/media/image4.png)\n

      5.

      \u200b\u7ea2\u9ed1\u6811\u200b\u63d2\u5165\u200b\u7684\u200b\u590d\u6742\u5ea6\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u91cd\u6784\u200b\uff08\u200b\u65cb\u8f6c\u200b\uff09\u200b\u81f3\u591a\u200b\u5e38\u6570\u200b\u6b21\u200b\n\n![](image/RBTree/media/image5.png)\n
      "},{"location":"Note/Data%20Modeling/","title":"\u6570\u636e\u200b\u5efa\u6a21\u200b\u4e0e\u200b\u5206\u6790","text":"

      \u200b\u7ea6\u200b 138 \u200b\u4e2a\u200b\u5b57\u200b

      \u200b\u8bfe\u7a0b\u200b\u4fe1\u606f\u200b

      \u200b\u6388\u8bfe\u200b\u6559\u5e08\u200b\uff1a\u200b\u90ed\u6b63\u521d\u200b

      \u200b\u5f00\u200b\u79d1\u5b66\u9662\u200b\uff1a\u200b\u6570\u5b66\u200b\u79d1\u5b66\u200b\u5b66\u9662\u200b

      \u200b\u5f00\u8bfe\u200b\u5b66\u671f\u200b\uff1a2023 \u200b\u5e74\u6625\u590f\u200b

      \u200b\u9884\u4fee\u200b\u8981\u6c42\u200b\uff1a\u200b\u5fae\u79ef\u5206\u200b\uff0c\u200b\u7ebf\u6027\u4ee3\u6570\u200b\uff0c\u200b\u6982\u7387\u8bba\u200b

      \u200b\u6559\u6750\u200b\uff1a \u200b\u7edf\u8ba1\u200b\u5b66\u4e60\u200b\u65b9\u6cd5\u200b \u200b\u674e\u822a\u200b \u200b\u7b2c\u4e8c\u200b\u7248\u200b

      \u200b\u672c\u95e8\u200b\u8bfe\u7a0b\u200b\u4e3b\u8981\u200b\u805a\u7126\u200b\u4e8e\u200b\u673a\u5668\u200b\u5b66\u4e60\u200b\u7684\u200b\u7b97\u6cd5\u200b\u8bb2\u89e3\u200b\u4e0e\u200b\u5206\u6790\u200b\uff0c\u200b\u5e76\u4e14\u200b\u5927\u90e8\u5206\u200b\u673a\u5668\u200b\u5b66\u4e60\u200b\u7684\u200b\u65b9\u6cd5\u200b\u4ecd\u200b\u5c5e\u4e8e\u200b\u7edf\u8ba1\u200b\u5b66\u4e60\u200b\u800c\u200b\u975e\u200b\u6df1\u5ea6\u200b\u5b66\u4e60\u200b\u7684\u200b\u8303\u7574\u200b\uff0c\u200b\u6bd4\u8f83\u200b\u4f20\u7edf\u200b\u3002 \u200b\u672c\u95e8\u200b\u8bfe\u7a0b\u200b\u4e3a\u200b\u6570\u5b66\u200b\u79d1\u5b66\u200b\u5b66\u9662\u200b\u5f00\u8bbe\u200b\uff0c\u200b\u6570\u5b66\u200b\u6c14\u606f\u200b\u6bd4\u8f83\u200b\u6d53\u539a\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Boosting/","title":"\u63d0\u5347\u200b\u65b9\u6cd5","text":"

      \u200b\u7ea6\u200b 453 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

      "},{"location":"Note/Data%20Modeling/Boosting/#adaboost","title":"AdaBoost","text":"

      \u200b\u8f93\u5165\u200b\uff1a\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u4e00\u79cd\u200b\u5f31\u200b\u5b66\u4e60\u200b\u7b97\u6cd5\u200b \u200b\u8f93\u51fa\u200b\uff1a\u200b\u6700\u7ec8\u200b\u5206\u7c7b\u5668\u200b G(x)

      • \u200b\u521d\u59cb\u5316\u200b\u8bad\u7ec3\u200b\u6570\u636e\u200b\u7684\u200b\u6743\u503c\u200b\u5206\u5e03\u200b

        \\[ D_1 = (w_{11}\uff0c\\cdots\uff0cw_{1i}\uff0c\\cdots\uff0cw_{1N})\uff0cw_{1i} = \\frac{1}{N}\uff0ci=1\uff0c2\uff0c\\cdots\uff0cN \\]
      • \u200b\u8fd0\u884c\u200b\u5f31\u200b\u5b66\u4e60\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u5f97\u5230\u200b\u5f31\u200b\u5206\u7c7b\u5668\u200b\\(G_m(x)\\)

        \u200b\u8ba1\u7b97\u8bef\u5dee\u200b\u7387\u200b : \\(e_m = \\sum_{i=1}^{N} P(G_m(x_i) \\neq y_i) = \\sum_{i=1}^{N} w_{mi}I(G_m(x_i) \\neq y_i)\\)

        \u200b\u8be5\u200b\u5206\u7c7b\u5668\u200b\u7684\u200b\u6743\u91cd\u200b\u4e3a\u200b\uff1a\\(\\alpha_m = \\frac{1}{2} \\log \\frac{1-e_m}{e_m}\\)

        \u200b\u66f4\u65b0\u200b\u65b0\u4e00\u8f6e\u200b\u7684\u200b\u6743\u91cd\u200b\uff0c\u200b\u5176\u4e2d\u200b\u6bcf\u4e2a\u200b\u6837\u672c\u200b\u7684\u200b\u6743\u91cd\u200b\u4e3a\u200b\uff1a\\(w_{m+1\uff0ci} = \\frac{w_{mi}}{Z_m} \\exp(-\\alpha_m y_i G_m(x_i))\\) \uff08\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u5982\u679c\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6743\u91cd\u200b\u4f1a\u200b\u51cf\u5c0f\u200b\uff0c\u200b\u5982\u679c\u200b\u5206\u7c7b\u200b\u9519\u8bef\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6743\u91cd\u200b\u4f1a\u200b\u589e\u5927\u200b\uff09

      • \u200b\u91cd\u590d\u200b\u7b2c\u4e8c\u6b65\u200b\uff0c\u200b\u76f4\u5230\u200b\u5f3a\u200b\u5206\u7c7b\u5668\u200b\\(G(x) = \\sum_{m=1}^{M} \\alpha_m G_m(x)\\)\u200b\u5df2\u7ecf\u200b\u6ee1\u8db3\u200b\u5206\u7c7b\u200b\u8981\u6c42\u200b

      "},{"location":"Note/Data%20Modeling/Boosting/#_2","title":"\u63d0\u5347\u200b\u6811","text":"

      \u200b\u63d0\u5347\u200b\u6811\u662f\u200b\u4ee5\u200b\u51b3\u7b56\u6811\u200b/\u200b\u56de\u5f52\u200b\u6811\u4e3a\u200b\u57fa\u200b\u5206\u7c7b\u5668\u200b\u7684\u200b\u5047\u53d1\u200b\u6a21\u578b\u200b\u3002

      \u200b\u6211\u4eec\u200b\u5b9a\u4e49\u200b\u4e00\u4e2a\u200b\u524d\u884c\u200b\u5206\u6b65\u200b\u4e3a\u200b\uff1a

      \\[ f_m(x) = f_{m-1}(x) + T(x;\\Theta_m) \\]

      \u200b\u5176\u4e2d\u200b\u65b0\u6811\u200b\u7684\u200b\u53c2\u6570\u200b\u901a\u8fc7\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6781\u5c0f\u200b\u5316\u200b\u8fdb\u884c\u200b\u66f4\u65b0\u200b\uff1a

      \\[ \\Theta_m = \\underset{\\Theta}{\\operatorname{argmin}} \\sum_{i=1}^{N} L(y_i\uff0cf_{m-1}(x_i) + T(x_i;\\Theta)) \\]

      \u200b\u5bf9\u4e8e\u200b\u56de\u5f52\u200b\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u5199\u51fa\u200b\u5e73\u65b9\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a

      \\[ L = (y - f(x))^2 = (y - f_{m-1}(x) - T(x;\\Theta))^2 = [r - T(x;\\Theta)]^2 \\]

      \u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u65b0\u200b\u8bad\u7ec3\u200b\u4e00\u4e2a\u200b\u6811\u200b T \u200b\u6765\u200b\u62df\u5408\u200b\u9910\u53c9\u200b\\(r = y - f_{m-1}(x)\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Boosting/#_3","title":"\u68af\u5ea6\u200b\u63d0\u5347","text":"

      \u200b\u5bf9\u4e8e\u200b\u4e00\u822c\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff08\u200b\u975e\u200b\u5e73\u65b9\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff09\uff0c\u200b\u4e0d\u662f\u200b\u90a3\u4e48\u200b\u5bb9\u6613\u200b\u627e\u5230\u200b\u6b8b\u5dee\u200b

      \u200b\u901a\u5e38\u200b\u6211\u4eec\u200b\u4f1a\u200b\u7528\u200b\\(\\frac{\\partial L(y_i\uff0cf(x_i))}{\\partial f(x_i)}\\)\u200b\u6765\u200b\u4ee3\u66ff\u200b\u6b8b\u5dee\u200b\uff0c\u200b\u8bad\u7ec3\u200b\u4e00\u68f5\u200b\u65b0\u200b\u7684\u200b\u6811\u6765\u200b\u62df\u5408\u200b\u6b8b\u5dee\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u65b0\u6811\u200b\u7684\u200b\u6bcf\u4e2a\u200b\u5206\u652f\u200b\uff0c\u200b\u7528\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6700\u5c0f\u5316\u200b\u6765\u200b\u786e\u5b9a\u200b\u4ee3\u8868\u200b\u503c\u200b

      "},{"location":"Note/Data%20Modeling/Centering/","title":"\u805a\u7c7b\u200b\u65b9\u6cd5","text":"

      \u200b\u7ea6\u200b 1018 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

      Warning

      \u200b\u8fd9\u7ae0\u200b\u6211\u200b\u770b\u200b\u7684\u200b\u660f\u660f\u200b\u7684\u200b\uff0c\u200b\u53ea\u7b97\u9884\u200b\u53d1\u5e03\u200b

      "},{"location":"Note/Data%20Modeling/Centering/#_2","title":"\u4e00\u4e9b\u200b\u5b9a\u4e49","text":"

      \u200b\u6837\u672c\u200b\u95f4\u8ddd\u200b

      \u200b\u95f5\u53ef\u200b\u592b\u65af\u57fa\u200b\u8ddd\u79bb\u200b\u9a6c\u6c0f\u200b\u8ddd\u79bb\u200b\u76f8\u5173\u7cfb\u6570\u200b\u5939\u89d2\u200b\u4f59\u5f26\u200b \\[ d_{ij} = \\left( \\sum_{k=1}^p \\left| x_{ik} - x_{jk} \\right|^r \\right)^{\\frac{1}{r}} \\]

      \u200b\u9996\u5148\u200b\u8ba1\u7b97\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b S

      \\[ S = \\frac{1}{n-1} \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\]

      \u200b\u9996\u5148\u200b\u8ba1\u7b97\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b S

      \\[ r_{ij} = \\frac{S_{ij}}{\\sqrt{S_{ii}S_{jj}}} \\] \\[ \\cos \\theta_{ij} = \\frac{x_i^T x_j}{\\sqrt{x_i^T x_i x_j^T x_j}} \\]

      \u200b\u4e00\u4e9b\u200b\u77e9\u9635\u200b

      \u200b\u6837\u672c\u200b\u6563\u5e03\u200b\u77e9\u9635\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b \\[ S = \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\] \\[ S = \\frac{1}{n-1} \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\]

      \u200b\u7c7b\u200b\u76f8\u5173\u200b\u5b9a\u4e49\u200b

      \u200b\u7c7b\u7c7b\u200b\u76f4\u5f84\u200b\u7c7b\u200b\u4e2d\u5fc3\u200b\u7c7b\u95f4\u200b\u8ddd\u79bb\u200b

      \u200b\u4e00\u4e2a\u200b\u7c7b\u200b\u5c31\u662f\u200b\u6570\u636e\u200b\u96c6\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5b50\u96c6\u200b

      \u200b\u7c7b\u5185\u200b\u6700\u8fdc\u200b\u95f4\u8ddd\u200b

      \\[ D_G = \\underset{x_i\uff0cx_j \\in G}{\\operatorname{max}} d_{ij} \\]

      \u200b\u4e5f\u200b\u5c31\u662f\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u7684\u200b\u5e73\u5747\u503c\u200b

      \\[ \\bar{x} = \\frac{1}{n} \\sum_{x_i \\in G} x_i \\]

      \u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4e24\u7c7b\u200b\u4e2d\u6837\u200b\u7684\u200b\u6700\u200b\u77ed\u8ddd\u79bb\u200b\uff0c\u200b\u6700\u200b\u957f\u8ddd\u79bb\u200b\uff0c\u200b\u4e2d\u5fc3\u200b\u8ddd\u79bb\u200b\u6216\u8005\u200b\u5e73\u5747\u200b\u8ddd\u79bb\u200b

      "},{"location":"Note/Data%20Modeling/Centering/#_3","title":"\u805a\u5408\u200b\u805a\u7c7b","text":"

      \u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u4e09\u8981\u7d20\u200b\u4e3a\u200b\uff1a

      • \u200b\u6837\u672c\u200b\u95f4\u8ddd\u200b
      • \u200b\u5408\u5e76\u200b\u89c4\u5219\u200b
      • \u200b\u505c\u6b62\u200b\u6761\u4ef6\u200b

      \u200b\u7ed9\u5b9a\u200b\u4ee5\u4e0a\u200b\u4e09\u8981\u7d20\u200b\uff0c\u200b\u4e00\u822c\u200b\u7684\u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u7684\u200b\u7b97\u6cd5\u200b\u4e3a\u200b\uff1a

      • \u200b\u5f00\u59cb\u200b\uff1a\u200b\u6bcf\u4e2a\u200b\u6837\u672c\u200b\u4e3a\u200b\u4e00\u4e2a\u200b\u7c7b\u200b
      • \u200b\u91cd\u590d\u200b\uff1a\u200b\u4e00\u53e5\u200b\u5408\u5e76\u200b\u89c4\u5219\u200b\uff08\u200b\u4e00\u822c\u200b\u4e3a\u200b\u627e\u5230\u200b\u6700\u5c0f\u200b\u7c7b\u95f4\u200b\u95f4\u8ddd\u200b\uff09\uff0c\u200b\u5408\u5e76\u200b\u4e24\u7c7b\u200b
      • \u200b\u505c\u6b62\u200b\uff1a\u200b\u8fbe\u5230\u200b\u505c\u6b62\u200b\u6761\u4ef6\u200b\u5373\u200b\u8fd4\u56de\u200b\uff0c\u200b\u6bd4\u5982\u200b\u7c7b\u200b\u7684\u200b\u4e2a\u6570\u200b\u8fbe\u5230\u200b\u8981\u6c42\u200b

      \u200b\u8be5\u200b\u7b97\u6cd5\u200b\u7684\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(n^3m)\\)\uff0c\u200b\u5176\u4e2d\u200b m \u200b\u4e3a\u200b\u7ef4\u5ea6\u200b\u6570\u200b\uff0cn \u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2a\u6570\u200b

      \u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u5c5e\u4e8e\u200b\u5c42\u6b21\u200b\u805a\u7c7b\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4ece\u200b n \u200b\u7c7b\u200b-1 \u200b\u7c7b\u200b\u8fd9\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b\u5206\u7c7b\u200b\u7ed3\u679c\u200b

      \u200b\u6ce8\u610f\u200b\u5728\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\\([d_{ij}]\\)\u200b\u77e9\u9635\u200b\u6765\u200b\u52a0\u901f\u200b\u8fd0\u7b97\u200b

      "},{"location":"Note/Data%20Modeling/Centering/#k-means","title":"K-means","text":"

      \u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(mnk)\\)

      k \u200b\u7684\u200b\u9009\u53d6\u200b\u5e94\u8be5\u200b\u5927\u5230\u200b\u7c7b\u200b\u76f4\u5f84\u200b\u4e0d\u518d\u200b\u51cf\u5c0f\u200b\u4e3a\u6b62\u200b

      "},{"location":"Note/Data%20Modeling/Centering/#_4","title":"\u8c31\u200b\u805a\u7c7b","text":"

      \u200b\u6570\u5b66\u200b\u4e0a\u200b\uff0c\u200b\u8c31\u200b\u5b57\u200b\u4e00\u822c\u200b\u8ddf\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6709\u5173\u200b

      \u200b\u6211\u4eec\u200b\u628a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i)\\}\\)\u200b\u4e2d\u200b\u7684\u200b\u6bcf\u200b\u4e00\u4e2a\u70b9\u200b\u90fd\u200b\u5bf9\u5e94\u200b\u5230\u200b\u4e00\u4e2a\u200b\u65e0\u5411\u200b\u5b8c\u5168\u200b\u56fe\u4e0a\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u4e24\u70b9\u200b\u4e4b\u95f4\u200b\u8fde\u8fb9\u200b\u7684\u200b\u6743\u91cd\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b\u5b83\u4eec\u200b\u7684\u200b\u76f8\u4f3c\u200b\u5ea6\u200b\u3002

      \u200b\u76f8\u4f3c\u200b\u5ea6\u200b

      \\[ w_{ij} = e^{-\\frac{||x_i - x_j||^2}{2\\sigma^2}} \\]

      \u200b\u663e\u7136\u200b\uff0c\u200b\u8ddd\u79bb\u200b\u8d8a\u8fd1\u200b\uff0c\u200b\u76f8\u4f3c\u200b\u5ea6\u8d8a\u200b\u5927\u200b\u3002

      \u200b\u5bf9\u4e8e\u200b\u90a3\u4e9b\u200b\u8db3\u591f\u200b\u9065\u8fdc\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4e0d\u518d\u200b\u76f8\u8fde\u200b\uff0c\u200b\u76f4\u63a5\u200b\u628a\u200b\u76f8\u4f3c\u200b\u5ea6\u7f6e\u200b 0.\u200b\u5982\u4f55\u200b\u786e\u5b9a\u200b\u8fd9\u4e9b\u200b\u8db3\u591f\u200b\u9065\u8fdc\u200b\u7684\u200b\u70b9\u200b\u5462\u200b - \u200b\u7528\u200b k \u200b\u8fd1\u90bb\u200b\u786e\u5b9a\u200b\u51e0\u4e2a\u200b\u90bb\u8fd1\u200b\u7684\u200b\u70b9\u200b - \u200b\u7528\u200b\u4e00\u4e2a\u200b\\(\\epsilon\\)\u200b\u534a\u5f84\u200b\u6765\u200b\u533a\u5206\u200b\u8fdc\u8fd1\u200b

      \u200b\u5b9a\u4e49\u200b\u4e00\u4e2a\u70b9\u200b\u7684\u200b\u5ea6\u200b\u4e3a\u200b\u5176\u200b\u6240\u6709\u200b\u8fb9\u200b\u7684\u200b\u6743\u91cd\u200b\u548c\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4e0b\u9762\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b

      \u200b\u77e9\u9635\u200b\u5b9a\u4e49\u200b

      \u200b\u5ea6\u200b\u77e9\u9635\u200b D\u200b\u6743\u91cd\u200b\u77e9\u9635\u200b W\u200b\u62c9\u666e\u62c9\u65af\u200b\u77e9\u9635\u200b L \\[ D_{ii} = \\sum_{j=1}^n w_{ij} \\] \\[ W = [w_{ij}] \\] \\[ L = D - W \\]

      \u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u53d1\u73b0\u200b\u5982\u4e0b\u200b\u6027\u8d28\u200b\uff1a

      • L \u200b\u7684\u200b\u884c\u200b\u548c\u200b\u4e3a\u200b 0
      • L \u200b\u6709\u200b\u4e00\u4e2a\u200b\u7279\u5f81\u5411\u91cf\u200b\u4e3a\u200b 0\uff0c\u200b\u8be5\u200b\u7279\u5f81\u503c\u200b\u6709\u200b\u4e00\u4e2a\u200b\u7279\u5f81\u5411\u91cf\u200b\u4e3a\u200b\u5168\u200b 1 (1)
      • L \u200b\u6709\u200b n \u200b\u4e2a\u200b\u975e\u8d1f\u200b\u7279\u5f81\u503c\u200b\uff0cn \u200b\u662f\u200b\u9876\u70b9\u200b\u6570\u200b
      • L \u200b\u529e\u200b\u6b63\u5b9a\u200b\uff0c\u200b\u4e14\u200b\\(f^TLf = \\frac{1}{2}\\sum_{i\uff0cj=1}^n w_{ij}(f_i - f_j)^2\\)
      • L \u200b\u96f6\u200b\u7279\u5f81\u503c\u200b\u7684\u200b\u91cd\u6570\u200b\u7b49\u4e8e\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u7684\u200b\u4e2a\u6570\u200b
      1. \u200b\u8fd9\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u884c\u548c\u4e3a\u200b 0 \u200b\u7684\u200b\u76f4\u63a5\u200b\u63a8\u8bba\u200b\uff0c\u200b\u6211\u4eec\u200b\u62ff\u5168\u200b 1 \u200b\u5411\u91cf\u200b\u5de6\u4e58\u200b L \u200b\u5c31\u200b\u5f97\u5230\u200b 0 \u200b\u5411\u91cf\u200b\u4e86\u200b

      \u200b\u6240\u4ee5\u200b\u5f53\u200b L \u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u96f6\u200b\u7279\u5f81\u503c\u200b\u53ea\u6709\u200b 1 \u200b\u91cd\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5168\u200b 1 \u200b\u5411\u91cf\u200b

      \u200b\u5f53\u200b L \u200b\u7684\u200b\u8fde\u901a\u200b\u56fe\u200b\u591a\u4e8e\u200b\u4e00\u4e2a\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u52a0\u5165\u200b L \u200b\u53ef\u4ee5\u200b\u5199\u6210\u200b\uff1a

      \\[ L = \\begin{bmatrix} L_1 & 0 & 0 \\\\ 0 & L_2 & 0 \\\\ 0 & 0 & \\dots \\\\ \\end{bmatrix} \\]

      \u200b\u90a3\u4e48\u200b\u5176\u200b\u5bf9\u5e94\u200b\u7684\u200b\u96f6\u200b\u7279\u5f81\u5411\u91cf\u200b\u4e3a\u200b\uff1a

      \\[ \\begin{bmatrix} 1 \\\\ 1 \\\\ \\vdots \\\\ 0 \\\\ 0 \\\\ \\vdots \\\\ 0 \\\\ 0 \\end{bmatrix} \\begin{bmatrix} 0 \\\\ 0 \\\\ \\vdots \\\\ 1 \\\\ 1 \\\\ \\vdots \\\\ 0 \\\\ 0 \\end{bmatrix}\\dots \\begin{bmatrix} 0 \\\\ 0 \\\\ \\vdots \\\\ 0 \\\\ 0 \\\\ \\vdots \\\\ 1 \\\\ 1 \\end{bmatrix} \\]

      \u200b\u57fa\u672c\u4e0a\u200b\u53ef\u4ee5\u200b\u8ba4\u4e3a\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u81ea\u5df1\u200b\u6784\u6210\u200b\u4e00\u4e2a\u200b\u5206\u5757\u200b\\(L_i\\)\uff0c\u200b\u8fd9\u4e2a\u200b\\(L_i\\)\u200b\u4e5f\u200b\u6709\u200b\u4e00\u4e2a\u200b\u81ea\u5df1\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u200b\u96f6\u200b\u5411\u91cf\u200b

      \u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5c06\u200b\u8fd9\u4e9b\u200b\u7279\u5f81\u5411\u91cf\u200b\u62fc\u63a5\u200b\u6210\u200b\u4e00\u4e2a\u200b\u77e9\u9635\u200b

      \\[ F = [f_1\uff0cf_2\uff0c\\dots\uff0cf_n] \\]

      \u200b\u7136\u540e\u200b\u6309\u7167\u200b\u884c\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u805a\u7c7b\u200b\u5c31\u200b\u53ef\u4ee5\u200b\uff08\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6bcf\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u88ab\u200b\u805a\u6210\u200b\u4e00\u7c7b\u200b\uff09

      "},{"location":"Note/Data%20Modeling/Decision_Tree/","title":"\u51b3\u7b56\u6811","text":"

      \u200b\u7ea6\u200b 2599 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 9 \u200b\u5206\u949f\u200b

      \u200b\u4e0b\u56fe\u200b\u662f\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5b9e\u4f8b\u200b\uff0c\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u662f\u200b\u7279\u5f81\u200b\uff0c\u200b\u800c\u53f6\u200b\u8282\u70b9\u200b\u662f\u200b\u7c7b\u522b\u200b

      \u200b\u51b3\u7b56\u6811\u200b\u5b9e\u4f8b\u200b

      \u200b\u51b3\u7b56\u6811\u200b\u7b49\u4ef7\u200b\u4e8e\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b if-then \u200b\u89c4\u5219\u200b\uff0c\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b\u4f8b\u5b50\u200b\u90fd\u200b\u88ab\u200b\u4e14\u200b\u4ec5\u200b\u88ab\u200b\u4e00\u6761\u200b\u8def\u5f84\u200b\u8986\u76d6\u200b\u3002

      \u200b\u51b3\u7b56\u6811\u200b\u8fd8\u200b\u7b49\u4ef7\u200b\u4e8e\u200b\u4e00\u79cd\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u4e0d\u8fc7\u200b\u8fd9\u79cd\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\u88ab\u200b\u5f3a\u5316\u200b\u6210\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u7a7a\u95f4\u200b\u7684\u200b\u5212\u5206\u200b\u3002

      \u200b\u51b3\u7b56\u6811\u200b\u7b97\u6cd5\u200b\u4e3b\u8981\u200b\u6709\u200b\u4ee5\u4e0b\u200b\u4e09\u4e2a\u200b\u8fc7\u7a0b\u200b\uff1a

      • \u200b\u7279\u5f81\u9009\u62e9\u200b
      • \u200b\u51b3\u7b56\u6811\u200b\u751f\u6210\u200b
      • \u200b\u51b3\u7b56\u6811\u200b\u526a\u679d\u200b
      "},{"location":"Note/Data%20Modeling/Decision_Tree/#_2","title":"\u7279\u5f81\u9009\u62e9","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#_3","title":"\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6cd5","text":"

      \u200b\u9996\u5148\u200b\u6211\u4eec\u200b\u5148\u200b\u5b9a\u4e49\u200b\u71b5\u200b\u548c\u200b\u6761\u4ef6\u200b\u71b5\u200b

      \u200b\u71b5\u200b

      \u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b X\uff1a

      \\[ P(X = x_i) = P_i \\]

      \u200b\u90a3\u4e48\u200b\u8be5\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u4e3a\u200b\uff1a

      \\[ H(X) = -\\sum_{i=1}^{n}P_i\\log P_i \\quad\\quad \\in [0\uff0c\\log n] \\]

      \u200b\u6ce8\u610f\u200b\uff0c\u200b\u5728\u200b\u8ba8\u8bba\u200b\u71b5\u200b\u662f\u200b\u9ed8\u8ba4\u200b\u5bf9\u6570\u200b\u7684\u200b\u5e95\u200b\u4e3a\u200b 2\uff0c\u200b\u6b64\u65f6\u200b\u71b5\u200b\u7684\u200b\u5355\u4f4d\u200b\u4e3a\u200b bit.

      \u200b\u5bf9\u200b\u71b5\u200b\u7684\u200b\u7406\u89e3\u200b

      \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b\u4e00\u4e2a\u200b\u968f\u673a\u200b\u4e3a\u200b 0-7 \u200b\u7684\u200b\u7b49\u200b\u6982\u7387\u200b\u7684\u200b\u968f\u673a\u53d8\u91cf\u200b\uff0c\u200b\u4ece\u200b\u4e0a\u5f0f\u200b\u53ef\u4ee5\u200b\u5f88\u200b\u5bb9\u6613\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u4ed6\u200b\u7684\u200b\u71b5\u200b\u662f\u200b 3bit\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u9700\u8981\u200b 3bit \u200b\u7684\u200b\u4fe1\u606f\u200b\u624d\u80fd\u200b\u786e\u5b9a\u200b\u8fd9\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u53d6\u503c\u200b\u3002 \u200b\u8fd9\u200b\u8ddf\u200b\u76f4\u89c2\u200b\u4e0a\u200b\u4e5f\u200b\u662f\u200b\u543b\u5408\u200b\u7684\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u81f3\u5c11\u200b 3bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u5206\u522b\u200b\u8fd9\u200b\u516b\u4e2a\u200b\u4fe1\u53f7\u200b\uff08000-111\uff09.

      \u200b\u4e0a\u5f0f\u200b\u4e2d\u200b\u7684\u200b log \u200b\u7684\u200b\u884c\u4e3a\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\uff0c\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u4fe1\u53f7\u200b\u6709\u200b \u215b \u200b\u7684\u200b\u6982\u7387\u200b\u51fa\u73b0\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u4fe1\u53f7\u200b\u9700\u8981\u200b\\(-\\log_2 1/8 = 3\\)bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u8868\u793a\u200b.\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u4fe1\u53f7\u200b\u6709\u200b \u00bc \u200b\u7684\u200b\u6982\u7387\u200b\u51fa\u73b0\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u4fe1\u53f7\u200b\u9700\u8981\u200b\\(-\\log_2 1/4 = 2\\)bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u8868\u793a\u200b.\u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u7684\u200b\u8ba1\u7b97\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u7f16\u7801\u200b\u957f\u5ea6\u200b\u6c42\u200b\u671f\u671b\u200b\u3002

      \u200b\u800c\u200b\u71b5\u200b\u7684\u200b\u503c\u200b\u8d8a\u200b\u5927\u200b\uff0c\u200b\u6211\u4eec\u200b\u76ee\u524d\u200b\u7684\u200b\u4fe1\u606f\u200b\u5c31\u200b\u8d8a\u5c11\u200b\u3002

      \u200b\u5047\u5982\u200b\u6211\u4eec\u200b\u8981\u200b\u9884\u6d4b\u200b\u7684\u200b\u4eba\u200b\u7684\u200b\u8fdb\u653b\u200b\u65b9\u5411\u200b\uff0c\u200b\u82e5\u200b\u654c\u4eba\u200b\u8fdb\u653b\u200b\u65b9\u5411\u200b\u8fd9\u4e00\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u4e3a\u200b 3bits\uff0c\u200b\u7b49\u6548\u200b\u654c\u4eba\u200b\u4ece\u200b\u516b\u4e2a\u200b\u65b9\u5411\u200b\u7b49\u200b\u53ef\u80fd\u200b\u8fdb\u653b\u200b.\u200b\u4f46\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u83b7\u53d6\u200b\u4e86\u200b\u67d0\u4e2a\u200b\u4fe1\u606f\u200b\u540e\u6b64\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u53ea\u200b\u5269\u4e0b\u200b 1bit\uff0c\u200b\u7b49\u6548\u200b\u654c\u4eba\u200b\u4ece\u200b\u4e24\u4e2a\u200b\u65b9\u5411\u200b\u7b49\u200b\u53ef\u80fd\u200b\u8fdb\u653b\u200b\uff0c\u200b\u4fe1\u606f\u200b\u5c31\u200b\u5145\u8db3\u200b\u7684\u200b\u591a\u200b\u4e86\u200b\u3002

      \u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6709\u200b\u4e00\u4e2a\u200b\u76f4\u89c2\u200b\u7684\u200b\u7406\u89e3\u200b\uff0c\u200b\u67d0\u4e2a\u200b\u4fe1\u606f\u200b\u6765\u200b\u4e4b\u540e\u200b\u6211\u200b\u7684\u200b\u71b5\u200b\u51cf\u5c11\u200b\u7684\u200b\u8d8a\u200b\u591a\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u4fe1\u606f\u200b\u7684\u200b\u4fe1\u606f\u91cf\u200b\u8d8a\u5927\u200b\uff0c\u200b\u8d8a\u200b\u6709\u7528\u200b\u3002

      \u200b\u6761\u4ef6\u200b\u71b5\u200b

      \u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u8054\u5408\u200b\u5206\u5e03\u200b\uff1a

      \\[ P(X = x_i\uff0cY = y_j) = P_{ij} \\]

      \u200b\u90a3\u4e48\u200b\u6761\u4ef6\u200b\u71b5\u200b

      \\[ H(Y|X) = -\\sum_{i=1}^{n} P_i H(Y|X = x_i) = -\\sum_{i=1}^{n} P_i \\sum_{j=1}^{m} P_{j|i} \\log P_{j|i} \\]

      \u200b\u4ece\u200b\u7b2c\u4e00\u4e2a\u200b\u7b49\u200b\u53f7\u200b\u53ef\u4ee5\u200b\u770b\u5f97\u51fa\u6765\u200b\u6761\u4ef6\u200b\u71b5\u200b\u5176\u5b9e\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5bf9\u4e8e\u200b\u4e0d\u540c\u200b\u7684\u200b X \u200b\u7684\u200b\u53d6\u503c\u200b\u6c42\u200b\u671f\u671b\u200b

      \u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\u7279\u5f81\u200b A \u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b D \u200b\u7684\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\uff1a

      \\[ g(D\uff0cA) = H(D) - H(D|A) \\]

      \u200b\u8fd9\u200b\u4e5f\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u7c7b\u200b\u4e0e\u200b\u7279\u5f81\u200b\u7684\u200b\u4e92\u4fe1\u606f\u200b\uff0c\u200b\u5b83\u200b\u8868\u793a\u200b\u5f97\u77e5\u200b\u7279\u5f81\u200b A \u200b\u7684\u200b\u4fe1\u606f\u200b\u800c\u200b\u4f7f\u5f97\u200b\u7c7b\u200b Y \u200b\u7684\u200b\u4fe1\u606f\u200b\u7684\u200b\u4e0d\u786e\u5b9a\u6027\u200b\u51cf\u5c11\u200b\u7684\u200b\u7a0b\u5ea6\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Decision_Tree/#_4","title":"\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6bd4","text":"

      \u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u5b58\u5728\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u5c31\u662f\u200b\u5b83\u200b\u504f\u5411\u200b\u4e8e\u200b\u53ef\u200b\u53d6\u503c\u200b\u8f83\u200b\u591a\u200b\u7684\u200b\u7279\u5f81\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u53d6\u503c\u200b\u8f83\u200b\u591a\u200b\u7684\u200b\u7279\u5f81\u200b\u7684\u200b\u6761\u4ef6\u200b\u71b5\u200b\u8f83\u200b\u5c0f\u200b.\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u7b97\u6cd5\u200b\u540c\u6837\u200b\u8003\u8651\u200b\u90a3\u4e9b\u200b\u503c\u200b\u6bd4\u8f83\u200b\u5c11\u200b\u4f46\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u540c\u6837\u200b\u5f88\u200b\u4e0d\u9519\u200b\u7684\u200b\u7279\u5f81\u200b\u7684\u8bdd\u200b\u3002

      \\[ g_R(D\uff0cA) = \\frac{g(D\uff0cA)}{H_A(D)} \\]

      \u200b\u5176\u4e2d\u200b\\(H_A(D) = -\\sum_{i=1}^{n} \\frac{|D_i|}{|D|} \\log \\frac{|D_i|}{|D|}\\)\u200b\u662f\u200b\u5173\u4e8e\u200b\u7279\u5f81\u200b A \u200b\u5bf9\u200b\u6570\u636e\u200b\u96c6\u200b D \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u71b5\u200b\uff0c\\(|D_i|\\)\u200b\u662f\u200b\\(D\\)\u200b\u4e2d\u200b\u5728\u200b\u7279\u5f81\u200b A \u200b\u4e0a\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(a_i\\)\u200b\u7684\u200b\u6837\u672c\u200b\u5b50\u96c6\u200b.A \u200b\u7684\u200b\u53ef\u200b\u53d6\u503c\u200b\u8d8a\u200b\u591a\u200b\uff0c\\(H_A(D)\\)\u200b\u7684\u200b\u503c\u200b\u8d8a\u200b\u5927\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Decision_Tree/#_5","title":"\u57fa\u5c3c\u200b\u6307\u6570","text":"

      \u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\u662f\u200b\u53e6\u200b\u4e00\u79cd\u200b\u7279\u5f81\u9009\u62e9\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u5b83\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a

      \u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b

      \\[\\begin{aligned} &Gini(P) = 1 - \\sum_{k=1}^{K} P_k^2 \\\\ &Gini(D) = 1 - \\sum_{k=1}^{K} \\frac{|D_i|}{|D|}^2 \\\\ &Gini(D\uff0cA) = \\sum_{i=1}^{n} \\frac{|D_i|}{|D|} Gini(D_i) \\end{aligned}\\]

      "},{"location":"Note/Data%20Modeling/Decision_Tree/#_6","title":"\u51b3\u7b56\u6811\u200b\u751f\u6210","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#id3","title":"ID3 \u200b\u7b97\u6cd5","text":"

      ID3 \u200b\u7b97\u6cd5\u200b\u7684\u200b\u6838\u5fc3\u200b\u662f\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u5404\u4e2a\u200b\u8282\u70b9\u200b\u4e0a\u200b\u5e94\u7528\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u51c6\u5219\u200b\u9009\u62e9\u200b\u7279\u5f81\u200b\uff0c\u200b\u9012\u5f52\u200b\u7684\u200b\u6784\u5efa\u200b\u51b3\u7b56\u6811\u200b\u3002

      • \u200b\u8f93\u5165\u200b\uff1a\u200b\u8bad\u7ec3\u200b\u96c6\u200b\\(D\\)\uff0c\u200b\u7279\u5f81\u200b\u96c6\u200b\\(A\\)\uff0c\u200b\u9608\u503c\u200b\\(\\epsilon\\)
      • \u200b\u8f93\u51fa\u200b\uff1a\u200b\u51b3\u7b56\u6811\u200b\\(T\\)
      • base case\uff1a\u200b\u82e5\u200b\\(D\\)\u200b\u4e2d\u200b\u6240\u6709\u200b\u5b9e\u4f8b\u200b\u5c5e\u4e8e\u200b\u540c\u200b\u4e00\u7c7b\u200b\\(C_k\\)\uff0c\u200b\u5219\u200b\\(T\\)\u200b\u4e3a\u5355\u200b\u8282\u70b9\u200b\u6811\u200b\uff0c\u200b\u5e76\u200b\u5c06\u200b\u7c7b\u200b\\(C_k\\)\u200b\u4f5c\u4e3a\u200b\u8be5\u200b\u8282\u70b9\u200b\u7684\u200b\u7c7b\u200b\u6807\u8bb0\u200b\uff0c\u200b\u8fd4\u56de\u200b\\(T\\)\uff1b
      • base case: \u200b\u82e5\u200b\\(A = \\emptyset\\)\uff0c\u200b\u5219\u200b\\(T\\)\u200b\u4e3a\u5355\u200b\u8282\u70b9\u200b\u6811\u200b\uff0c\u200b\u5e76\u200b\u5c06\u200b\\(D\\)\u200b\u4e2d\u200b\u5b9e\u4f8b\u200b\u6570\u200b\u6700\u5927\u200b\u7684\u200b\u7c7b\u200b\\(C_k\\)\u200b\u4f5c\u4e3a\u200b\u8be5\u200b\u8282\u70b9\u200b\u7684\u200b\u7c7b\u200b\u6807\u8bb0\u200b\uff0c\u200b\u8fd4\u56de\u200b\\(T\\).
      • base case: \u200b\u82e5\u200b\\(\\max g(D\uff0cA) < \\epsilon\\)\uff0c\u200b\u5219\u200b\\(T\\)\u200b\u4e3a\u5355\u200b\u8282\u70b9\u200b\u6811\u200b\uff0c\u200b\u5e76\u200b\u5c06\u200b\\(D\\)\u200b\u4e2d\u200b\u5b9e\u4f8b\u200b\u6570\u200b\u6700\u5927\u200b\u7684\u200b\u7c7b\u200b\\(C_k\\)\u200b\u4f5c\u4e3a\u200b\u8be5\u200b\u8282\u70b9\u200b\u7684\u200b\u7c7b\u200b\u6807\u8bb0\u200b\uff0c\u200b\u8fd4\u56de\u200b\\(T\\).
      • \u200b\u5426\u5219\u200b\uff0c\u200b\u8ba1\u7b97\u200b\\(A\\)\u200b\u4e2d\u200b\u5404\u4e2a\u200b\u7279\u5f81\u200b\u5bf9\u200b\\(D\\)\u200b\u7684\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\uff0c\u200b\u9009\u62e9\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6700\u5927\u200b\u7684\u200b\u7279\u5f81\u200b\\(A_g\\)\u200b\u5c06\u200b\u6570\u636e\u200b\u96c6\u200b\u5206\u7c7b\u200b\uff0c\u200b\u7136\u540e\u200b\u5bf9\u200b\u5404\u4e2a\u200b\u5b50\u7c7b\u200b\u8c03\u7528\u200b\u672c\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u9012\u5f52\u200b\u7684\u200b\u6784\u5efa\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u8fd4\u56de\u200b\\(T\\).
      "},{"location":"Note/Data%20Modeling/Decision_Tree/#c45","title":"C4.5 \u200b\u7b97\u6cd5","text":"

      C4.5 \u200b\u7b97\u6cd5\u200b\u6839\u200b ID3 \u200b\u7b97\u6cd5\u200b\u5b8c\u5168\u200b\u4e00\u6837\u200b\uff0c\u200b\u53ea\u662f\u200b\u7528\u200b\u7684\u200b\u4e0d\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\uff0c\u200b\u800c\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6bd4\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Decision_Tree/#_7","title":"\u51b3\u7b56\u6811\u200b\u526a\u679d","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#_8","title":"\u5229\u7528\u200b\u6b63\u5219\u200b\u5316\u200b\u51fd\u6570","text":"

      \u200b\u5bf9\u200b\u6574\u68f5\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6784\u9020\u200b\u4e00\u4e2a\u200b\u6b63\u5219\u200b\u5316\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a $$ C_{\\alpha}(T) = \\sum_{t \\in T} N_t H_t(T) + \\alpha |T| $$ \u200b\u5176\u4e2d\u200b T \u200b\u4e3a\u200b\u6240\u6709\u200b\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u96c6\u5408\u200b\uff0ct \u200b\u4e3a\u200b\u67d0\u4e2a\u200b\u53f6\u200b\u8282\u70b9\u200b\uff0c\\(N_t\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b t \u200b\u7684\u200b\u6837\u672c\u200b\u4e2a\u6570\u200b\uff0c\\(H_t(T)\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b t \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u71b5\u200b\uff0c\\(|T|\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u4e2a\u6570\u200b\uff0c\\(\\alpha\\)\u200b\u4e3a\u200b\u6b63\u5219\u200b\u5316\u200b\u53c2\u6570\u200b\u3002

      \u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u5047\u8bbe\u200b t \u200b\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u6240\u6709\u200b\\(N_t\\)\u200b\u4e2a\u200b\u6837\u672c\u200b\u4e2d\u200b\uff0ck \u200b\u7c7b\u200b\u7684\u200b\u6837\u672c\u200b\u6709\u200b\\(N_{tk}\\)\u200b\u4e2a\u200b\uff0c\u200b\u90a3\u4e48\u200b\\(H_t(T) = -\\sum_{k=1}^{K} \\frac{N_{tk}}{N_t} \\log \\frac{N_{tk}}{N_t}\\).

      \u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u8fdb\u884c\u200b\u6700\u5c0f\u5316\u200b\uff0c\u200b\u5bb9\u6613\u200b\u770b\u51fa\u200b\uff0c\u200b\u5982\u679c\u200b\u53f6\u200b\u8282\u70b9\u200b\u5168\u90e8\u90fd\u662f\u200b\u5355\u200b\u4e00\u7c7b\u200b\uff0c\u200b\u90a3\u4e48\u200b\u7b2c\u4e00\u9879\u200b\u7684\u200b\u503c\u200b\u4e3a\u200b 0.\u200b\u8fd9\u65f6\u5019\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b\u597d\u200b\uff0c\u200b\u4f46\u662f\u200b\u53f6\u5b50\u200b\u8282\u70b9\u200b\u5bb9\u6613\u200b\u8fc7\u591a\u200b\uff0c\u200b\u7b2c\u4e8c\u9879\u200b\u5f88\u5927\u200b.\u200b\u4f46\u200b\u5982\u679c\u200b\u7b2c\u4e8c\u9879\u200b\u6781\u7aef\u200b\u7684\u200b\u4f18\u5316\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u53f6\u200b\u8282\u70b9\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6811\u662f\u200b\u5c0f\u200b\u4e86\u200b\uff0c\u200b\u4f46\u662f\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u90fd\u200b\u5728\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u5185\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8bf4\u200b\u662f\u200b\u6beb\u65e0\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u6700\u5c0f\u5316\u200b\u8fd9\u4e2a\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\u8981\u200b\u5728\u200b\u4e8c\u8005\u4e4b\u95f4\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u5e73\u8861\u200b\uff0c\u200b\u6811\u200b\u65e2\u200b\u4e0d\u4f1a\u200b\u8fc7\u6df1\u200b\uff0c\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b\u4e5f\u200b\u6709\u200b\u4fdd\u969c\u200b\u3002

      \u200b\u7b97\u6cd5\u200b

      • \u200b\u8ba1\u7b97\u200b\u6240\u6709\u200b\u8282\u70b9\u200b\u7ecf\u9a8c\u200b\u71b5\u200b
      • \u200b\u4ece\u53f6\u200b\u8282\u70b9\u200b\u5f80\u200b\u4e0a\u200b\uff0c\u200b\u8bd5\u56fe\u200b\u628a\u200b\u67d0\u4e2a\u200b\u4e24\u4e2a\u200b\u53f6\u200b\u8282\u70b9\u200b\u56de\u7f29\u200b\u5230\u200b\u516c\u5171\u200b\u7236\u200b\u8282\u70b9\u200b\u4e0a\u200b\uff0c\u200b\u68c0\u9a8c\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u662f\u5426\u200b\u51cf\u5c0f\u200b\u3002
      • \u200b\u76f4\u5230\u200b\u6ca1\u6709\u200b\u8282\u70b9\u200b\u53ef\u8bd5\u200b
      "},{"location":"Note/Data%20Modeling/Decision_Tree/#_9","title":"\u5b9e\u4f8b","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#cart","title":"CART \u200b\u56de\u5f52\u200b\u6811\u200b\u7b97\u6cd5","text":"

      \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b\\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\mathbb{R}\\)\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u5bf9\u5e94\u200b y.

      CART \u200b\u56de\u5f52\u200b\u6811\u200b\u7b97\u6cd5\u200b\u4f1a\u200b\u628a\u200b\u7a7a\u95f4\u200b\u5212\u5206\u200b\u6210\u200b m \u200b\u5757\u200b\\(R_1\uff0cR_2...R_m\\)\uff0c\u200b\u6bcf\u4e2a\u200b\u5355\u5143\u200b\u4e0a\u200b\u51fd\u6570\u200b\u7684\u200b\u8f93\u51fa\u200b\u503c\u200b\u90fd\u200b\u662f\u200b\u56fa\u5b9a\u200b\u7684\u200b\uff1a

      \\[ f(x) = \\sum_{m=1}^{M} c_m I(x \\in R_m) \\]

      \u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u9009\u7528\u200b\u5e73\u65b9\u200b\u8bef\u5dee\u200b\uff0c\u200b\u5bb9\u6613\u200b\u8bc1\u660e\u200b\uff0c\u200b\u5728\u200b\u6bcf\u4e2a\u200b\u533a\u57df\u200b\u4e0a\u200b\u6700\u4f73\u200b\u7684\u200b\u8f93\u51fa\u200b\u503c\u200b\u5c31\u662f\u200b\u8be5\u200b\u533a\u57df\u200b\u5185\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u7684\u200b\u5747\u503c\u200b\u3002

      \\[ c_m = \\frac{1}{N_m} \\sum_{x_i \\in R_m} y_i \\]

      \u200b\u7b97\u6cd5\u200b\uff1a

      • \u200b\u8f93\u5165\u200b\uff1a\u200b\u8bad\u7ec3\u200b\u96c6\u200b\\(D\\)\uff0c\u200b\u9608\u503c\u200b\\(\\epsilon\\)
      • \u200b\u8f93\u51fa\u200b\uff1a\u200b\u56de\u5f52\u200b\u6811\u200b\\(f(x)\\)
      • \u200b\u5f00\u59cb\u200b\uff1a\u200b\u904d\u5386\u200b\u7ef4\u5ea6\u200b j \u200b\u4ee5\u53ca\u200b\u8be5\u200b\u7ef4\u5ea6\u200b\u4e0a\u200b\u53d8\u91cf\u200b\u5212\u5206\u200b\u70b9\u200b S\uff0c\u200b\u5c06\u200b\u6570\u636e\u200b\u96c6\u5728\u200b\u8be5\u200b\u7ef4\u5ea6\u200b\u4e0a\u200b\u6309\u7167\u200b\u5212\u5206\u200b\u70b9\u200b\u5212\u5206\u200b\u6210\u200b\u4e24\u200b\u90e8\u5206\u200b\\(R_1(j\uff0cs)\uff0cR_2(j\uff0cs)\\)\uff0c\u200b\u8ba1\u7b97\u200b\u5bf9\u5e94\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u503c\u200b\\(min_{s} \\sum_{x_i \\in R_1(j\uff0cs)} (y_i - c_1)^2 + \\sum_{x_i \\in R_2(j\uff0cs)} (y_i - c_2)^2\\)
      • \u200b\u627e\u5230\u200b\u6700\u4f73\u200b\u7ef4\u5ea6\u200b\u548c\u200b\u6700\u4f73\u200b\u5212\u5206\u200b\u4e4b\u540e\u200b\uff0c\u200b\u628a\u200b\u6570\u636e\u200b\u96c6\u200b\u5212\u5206\u200b\u4e3a\u200b\\(R_1\uff0cR_2\\)\uff0c\u200b\u7136\u540e\u200b\u5bf9\u200b\\(R_1\uff0cR_2\\)\u200b\u5206\u522b\u200b\u9012\u5f52\u200b\u7684\u200b\u8c03\u7528\u200b\u672c\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u76f4\u5230\u200b\u6ee1\u8db3\u200b\u505c\u6b62\u200b\u6761\u4ef6\u200b\uff08\u200b\u533a\u57df\u200b\u5185\u90e8\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c0f\u4e8e\u200b\u9608\u503c\u200b\uff09
      "},{"location":"Note/Data%20Modeling/Decision_Tree/#cart_1","title":"CART \u200b\u5206\u7c7b\u200b\u6811\u200b\u7b97\u6cd5","text":"

      \u200b\u9996\u5148\u200b\u6211\u4eec\u200b\u5148\u200b\u7528\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\u751f\u6210\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u7136\u540e\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b.\u200b\u6211\u4eec\u200b\u7740\u91cd\u200b\u4ecb\u7ecd\u200b\u8fd9\u91cc\u200b\u4f7f\u7528\u200b\u7684\u200b\u526a\u679d\u200b\u7b97\u6cd5\u200b

      \u200b\u6211\u4eec\u200b\u5148\u200b\u6784\u9020\u200b\u4e00\u4e2a\u200b\u4ee5\u200b\\(\\alpha\\)\u200b\u4e3a\u200b\u53c2\u6570\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a

      \\[ C_{\\alpha}(T) = C(T)+ \\alpha |T| \\quad\\quad \\alpha \\in [0\uff0c\\infty) \\]

      \u200b\u5176\u4e2d\u200b\\(C(T)\\)\u200b\u4e3a\u200b\u7528\u200b\u8be5\u200b\u51b3\u7b56\u6811\u200b\u5bf9\u200b\u8bad\u7ec3\u200b\u96c6\u200b\u8fdb\u884c\u200b\u9884\u6d4b\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff08\u200b\u7528\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\uff09. \u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u627e\u5230\u200b\\(\\alpha\\)\u200b\u4ece\u200b 0 \u200b\u5230\u200b\u6b63\u200b\u65e0\u7a77\u7684\u200b\u6bcf\u200b\u4e00\u4e2a\u200b\u533a\u95f4\u200b\u5185\u200b\u7684\u200b\u526a\u679d\u200b\u540e\u200b\u7684\u200b\u6700\u4f18\u200b\u6811\u200b\u3002

      \u200b\u5728\u200b\u6b64\u200b\u8bed\u5883\u200b\u4e0b\u200b\uff0c\u200b\u5bf9\u200b\u67d0\u4e2a\u200b\u8282\u70b9\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b\u5c31\u662f\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u7528\u200b\u4e00\u4e2a\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\u4ee3\u66ff\u200b\u4ee5\u200b\u5f53\u524d\u200b\u8282\u70b9\u200b\u4e3a\u6839\u200b\u7684\u200b\u5b50\u6811\u200b\uff0c\u200b\u8be5\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\u542b\u6709\u200b\u5b50\u6811\u4e2d\u200b\u6240\u6709\u200b\u7684\u200b\u6837\u672c\u200b\u3002

      \u200b\u6211\u4eec\u200b\u5148\u200b\u6765\u770b\u200b\u6bd4\u8f83\u200b\u6781\u7aef\u200b\u7684\u200b\\(\\alpha\\)\uff0c\u200b\u770b\u200b\u4ed6\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5f71\u54cd\u200b\uff0c\u200b\u5f53\u200b\\(\\alpha\\)\u200b\u4e3a\u200b 0 \u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\\(C(T)\\)\uff0c\u200b\u6b64\u65f6\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u6700\u5c0f\u5316\u200b\\(C(T)\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u6700\u4f18\u200b\u7684\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u5c31\u7b97\u200b\u6211\u4eec\u200b\u5206\u51fa\u200b\u4e86\u200b\u975e\u5e38\u200b\u591a\u200b\u7684\u200b\u8282\u70b9\u200b\u4e5f\u200b\u65e0\u6240\u8c13\u200b.\u200b\u5f53\u200b\\(\\alpha\\)\u200b\u4e3a\u200b\u6b63\u200b\u65e0\u7a77\u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\\(|T|\\)\uff0c\u200b\u6b64\u65f6\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u6700\u5c0f\u5316\u200b\\(|T|\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6700\u5c11\u200b\u7684\u200b\u6811\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6beb\u65e0\u7591\u95ee\u200b\u6240\u6709\u200b\u7684\u200b\u6837\u672c\u200b\u90fd\u200b\u653e\u5728\u200b\u6839\u200b\u8282\u70b9\u200b\u5185\u200b\u5c31\u662f\u200b\u6700\u4f18\u200b\u89e3\u200b.\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c \\(\\alpha\\)\u200b\u8d8a\u5927\u200b\uff0c\u200b\u51b3\u7b56\u6811\u200b\u4f1a\u200b\u88ab\u200b\u526a\u200b\u7684\u200b\u8d8a\u200b\u5e72\u51c0\u200b\u3002

      \u200b\u5728\u200b\u4ee5\u4e0a\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u53d1\u73b0\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5355\u72ec\u200b\u8ba8\u8bba\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u662f\u5426\u200b\u8981\u200b\u88ab\u200b\u526a\u679d\u200b\uff08\u200b\u56de\u5fc6\u200b\u4e00\u4e0b\u200b\u4ec0\u4e48\u200b\u53eb\u505a\u200b\u5bf9\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b\uff09\uff0c\u200b\u5047\u8bbe\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6240\u200b\u4ee3\u8868\u200b\u7684\u200b\u5b50\u6811\u4e3a\u200b\\(T_t\\)\uff0c\u200b\u628a\u5b50\u200b\u6811\u5185\u200b\u7684\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u90fd\u200b\u6536\u5230\u200b\u8282\u70b9\u200b\u5185\u6240\u200b\u6784\u6210\u200b\u7684\u200b\u8282\u70b9\u200b\u4e3a\u200b t\uff0c\u200b\u90a3\u4e48\u200b\u8be5\u200b\u8282\u70b9\u200b\u4ece\u4e0d\u200b\u526a\u679d\u200b\u8f6c\u5411\u200b\u526a\u679d\u200b\u7684\u200b\u5173\u952e\u200b\u8282\u70b9\u200b\u5c31\u662f\u200b\u5f53\u4e0b\u200b\u5f0f\u200b\u6210\u7acb\u200b\u65f6\u200b\uff1a

      \\[ C(t) + \\alpha * 1 = C(T_t) + \\alpha * |T_t| \\]

      \u200b\u7b2c\u4e00\u9879\u200b\u662f\u200b\u6211\u4eec\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u653e\u7f6e\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u526a\u679d\u200b\u540e\u200b\u7684\u200b\u8282\u70b9\u200b\uff09\u200b\u5e26\u6765\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff0c\u200b\u7b2c\u4e8c\u9879\u200b\u5f0f\u200b\u6211\u4eec\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u653e\u7f6e\u200b\u5b50\u6811\u200b\u5e26\u6765\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b.\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u8fd9\u4e2a\u200b\u4e34\u754c\u200b\u7684\u200b\\(\\alpha_{t}\\)\uff0c\u200b\u90a3\u4e48\u200b\u5982\u679c\u200b\\(\\alpha \\in (0\uff0c\\alpha_{t})\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u4e0d\u200b\u526a\u679d\u200b\uff0c\u200b\u5982\u679c\u200b\\(\\alpha \\in [\\alpha_{t}\uff0c\\infty)\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u526a\u679d\u200b\u3002

      \u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u5185\u200b\u7684\u200b\u6240\u6709\u200b\u8282\u70b9\u200b\u90fd\u200b\u8ba1\u7b97\u200b\u4e34\u754c\u200b\\(\\alpha\\)\uff0c\u200b\u6211\u4eec\u200b\u4ece\u200b\\(\\alpha = 0\\)\u200b\u5f00\u59cb\u200b\u9010\u6e10\u200b\u589e\u5927\u200b\uff0c\u200b\u6bcf\u6b21\u200b\u8fbe\u5230\u200b\u4e34\u754c\u70b9\u200b\u6211\u4eec\u200b\u5c31\u200b\u526a\u679d\u200b\uff0c\u200b\u76f4\u5230\u200b\u6240\u6709\u200b\u679d\u200b\u90fd\u200b\u88ab\u200b\u526a\u6389\u200b\uff0c\u200b\u76f4\u5230\u200b\u6574\u68f5\u6811\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u3002

      \u200b\u5728\u200b\u4e0a\u8ff0\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u6211\u4eec\u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b\u4e0d\u540c\u200b\\(\\alpha\\)\u200b\u533a\u95f4\u200b\u4e0b\u200b\u7684\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u4ea4\u53c9\u200b\u9a8c\u8bc1\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6765\u200b\u9009\u62e9\u200b\u6700\u4f18\u200b\u7684\u200b\\(\\alpha\\).

      "},{"location":"Note/Data%20Modeling/KNN/","title":"K \u200b\u8fd1\u90bb","text":"

      \u200b\u7ea6\u200b 732 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

      "},{"location":"Note/Data%20Modeling/KNN/#_1","title":"\u95ee\u9898\u200b\u53ca\u200b\u7b97\u6cd5\u200b\u63cf\u8ff0","text":"

      \u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b\\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\{ c_1\uff0cc_2\uff0c....c_k\\}\\)\uff0c \u200b\u4e00\u5171\u200b\u6709\u200b K \u200b\u79cd\u7c7b\u200b\u522b\u200b\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u7c7b\u522b\u200b\\(y\\). \u200b\u7b97\u6cd5\u200b\u601d\u60f3\u200b\uff1a

      • \u200b\u627e\u51fa\u200b\u79bb\u200b x \u200b\u6700\u8fd1\u200b\u7684\u200b K \u200b\u4e2a\u200b\u90bb\u5c45\u200b\\(N_{k}(x)\\)
      • \u200b\u7531\u200b\u7740\u200b K \u200b\u4e2a\u200b\u90bb\u5c45\u200b\u8fdb\u884c\u200b\u591a\u6570\u200b\u8868\u51b3\u200b\uff1a
      \\[ y =\\underset{c_j}{\\operatorname{arg max}} \\sum_{N_{k}(x)} I(y = c_j) \\]

      \u200b\u5176\u4e2d\u200b\u7684\u200b\\(I(y = c_j)\\)\u200b\u662f\u200b\u6307\u793a\u200b\u51fd\u6570\u200b\uff0c\u200b\u5f53\u200b\\(y = c_j\\)\u200b\u65f6\u200b\uff0c\\(I(y = c_j) = 1\\)\uff0c\u200b\u5426\u5219\u200b\\(I(y = c_j) = 0\\).

      "},{"location":"Note/Data%20Modeling/KNN/#k_1","title":"K \u200b\u8fd1\u90bb\u200b\u7684\u200b\u4e09\u8981\u7d20","text":"

      \u200b\u6709\u200b\u4e86\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u7b97\u6cd5\u200b\u6846\u67b6\u200b\u540e\u200b\uff0cK \u200b\u8fd1\u90bb\u200b\u7b97\u6cd5\u200b\u7531\u200b\u4e09\u4e2a\u200b\u8981\u7d20\u200b\u51b3\u5b9a\u200b\uff1a

      \u200b\u8ddd\u79bb\u200b\u5ea6\u91cf\u200bK \u200b\u503c\u200b\u9009\u62e9\u200b\u5206\u7c7b\u200b\u51b3\u7b56\u200b\u89c4\u5219\u200b

      \u200b\u4e00\u822c\u6765\u8bf4\u200b\u6211\u4eec\u200b\u4f7f\u7528\u200b\\(L_p\\)\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u5373\u200b\uff1a

      \\[ L_p(x_i\uff0cx_j) = (\\sum_{l=1}^{n}|x_i^{(l)} - x_j^{(l)}|^p)^{\\frac{1}{p}} \\]

      \u200b\u5f53\u200b p \u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b 2 \u200b\u65f6\u200b\uff0c\u200b\u5c31\u662f\u200b\u6b27\u6c0f\u200b\u8ddd\u79bb\u200b

      \u200b\u5f53\u200b K \u200b\u6bd4\u8f83\u200b\u5c0f\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u6a21\u578b\u200b\u6bd4\u8f83\u590d\u6742\u200b\uff0c\u200b\u5bb9\u6613\u200b\u8fc7\u200b\u62df\u5408\u200b\uff1b \u200b\u5f53\u200b K \u200b\u6bd4\u8f83\u200b\u5927\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u6a21\u578b\u200b\u6bd4\u8f83\u7b80\u5355\u200b\uff0c\u200b\u5bb9\u6613\u200b\u6b20\u200b\u62df\u5408\u200b\u3002 \u200b\u4e00\u822c\u6765\u8bf4\u200b K \u200b\u503c\u200b\u90fd\u200b\u4e0d\u4f1a\u200b\u9009\u200b\u7684\u200b\u592a\u5927\u200b\u3002

      \u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b\u591a\u6570\u200b\u8868\u51b3\u200b\u89c4\u5219\u200b\uff0c\u200b\u5728\u200b\u6b64\u200b\u60c5\u666f\u200b\u4e0b\u200b\u591a\u6570\u200b\u8868\u51b3\u200b\u89c4\u5219\u200b\u7b49\u6548\u4e8e\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6700\u5c0f\u5316\u200b\u3002

      "},{"location":"Note/Data%20Modeling/KNN/#kd-k","title":"\u7528\u200b kd \u200b\u6811\u200b\u5207\u5206\u200b\u7a7a\u95f4\u200b\u6c42\u89e3\u200b K \u200b\u8fd1\u90bb","text":""},{"location":"Note/Data%20Modeling/KNN/#kd","title":"kd \u200b\u6811\u200b\u7684\u200b\u6784\u9020","text":"
      • \u200b\u8f93\u5165\u200b\uff1a \\(\\{(x_i\uff0cy_i)\\}\\)
      • \u200b\u5f00\u59cb\u200b\uff1a \u200b\u53d6\u200b\u53d8\u91cf\u200b\\(x\\)\u200b\u7684\u200b\u7b2c\u4e00\u4e2a\u200b\u7ef4\u5ea6\u200b\\(x_i^(1)\\)\uff0c\u200b\u7b2c\u4e00\u4e2a\u200b\u7eac\u5ea6\u200b\u7684\u200b\u4e2d\u4f4d\u6570\u200b\\(x_j^(1)\\)\uff0c\u200b\u5c06\u200b\u6570\u636e\u200b\u96c6\u200b\u5206\u4e3a\u200b\u4e24\u200b\u90e8\u5206\u200b\uff0c\u200b\u5de6\u5b50\u200b\u6811\u200b\u548c\u200b\u53f3\u5b50\u200b\u6811\u200b\uff0c\u200b\u800c\u200b\\(x_j^(1)\\)\u200b\u5c31\u662f\u200b\u6839\u200b\u8282\u70b9\u200b\uff0c\u200b\u5de6\u53f3\u200b\u5b50\u200b\u8282\u70b9\u200b\u7684\u200b\u6df1\u5ea6\u200b\u4e3a\u200b 1
      • \u200b\u91cd\u590d\u200b\uff1a \u200b\u5bf9\u200b\u5de6\u53f3\u200b\u5b50\u6811\u200b\u7ee7\u7eed\u200b\u8fdb\u884c\u200b\u5206\u5272\u200b\uff0c\u200b\u5bf9\u4e8e\u200b j \u200b\u6df1\u5ea6\u200b\u7684\u200b\u5b50\u6811\u200b\uff0c\u200b\u53d6\u200b\\(x\\)\u200b\u7684\u200b\u7b2c\u200b\\(j+1\\)\u200b\u7ef4\u5ea6\u200b\\(x_i^(j+1)\\)\u200b\u8fdb\u884c\u200b\u5206\u5272\u200b
      • \u200b\u7ed3\u675f\u200b\uff1a \u200b\u76f4\u5230\u200b\u5de6\u53f3\u200b\u7a7a\u95f4\u200b\u90fd\u200b\u4e0d\u518d\u200b\u6709\u5b50\u200b\u8282\u70b9\u200b
      \u200b\u8bfe\u4ef6\u200b\u4e0a\u200b\u7684\u200b\u4f8b\u5b50"},{"location":"Note/Data%20Modeling/KNN/#kd-k_1","title":"\u641c\u7d22\u200b kd \u200b\u6811\u200b\u5bfb\u627e\u200b K \u200b\u8fd1\u90bb","text":"
      • \u200b\u8f93\u5165\u200b\uff1a kd \u200b\u6811\u200b\uff0c\u200b\u76ee\u6807\u200b\u70b9\u200b\\(x\\)\uff08\u200b\u6ce8\u610f\u200b\u6b64\u5904\u200b\u7684\u200b x \u200b\u4e00\u822c\u800c\u8a00\u200b\u4e0d\u662f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u7684\u200b\u70b9\u200b\uff09
      • \u200b\u5f00\u59cb\u200b\uff1a \u200b\u4ece\u6839\u200b\u8282\u70b9\u200b\u5f00\u59cb\u200b\uff0c\u200b\u9012\u5f52\u200b\u7684\u200b\u5411\u4e0b\u200b\u8bbf\u95ee\u200b kd \u200b\u6811\u200b\uff0c\u200b\u5728\u200b\u6bcf\u4e2a\u200b\u8282\u70b9\u200b\u628a\u200b\u5bf9\u5e94\u200b\u7ef4\u5ea6\u200b\u8ddf\u200b\u8be5\u200b\u8282\u70b9\u200b\u6bd4\u8f83\u200b\u51b3\u5b9a\u200b\u5411\u200b\u5de6\u200b\u8fd8\u662f\u200b\u5411\u200b\u53f3\u200b\uff0c\u200b\u76f4\u5230\u200b\u53f6\u5b50\u200b\u8282\u70b9\u200b
      • \u200b\u91cd\u590d\u200b\uff1a \u200b\u7ef4\u62a4\u200b\u4e00\u4e2a\u200b\u5f53\u524d\u200b\u7684\u200b\u6700\u8fd1\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u5f53\u524d\u200b\u6700\u8fd1\u200b\u8ddd\u79bb\u200b\u7684\u200b\u521d\u59cb\u503c\u200b\u5c31\u662f\u200b\u8ddf\u200b\u5230\u8fbe\u200b\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u4ec5\u200b\u6709\u200b\u67d0\u4e2a\u200b\u5b50\u6811\u200b\u53ef\u80fd\u200b\u542b\u6709\u200b\u8ddd\u79bb\u200b\u5c0f\u4e8e\u200b\u6b64\u200b\u6700\u5c0f\u200b\u8ddd\u79bb\u200b\u7684\u200b\u7684\u200b\u8282\u70b9\u200b\u65f6\u200b\u6211\u4eec\u200b\u624d\u200b\u8bbf\u95ee\u200b\u4e4b\u200b
        • \u200b\u5411\u4e0a\u200b\u56de\u6eaf\u200b\uff0c\u200b\u9996\u5148\u200b\u5c1d\u8bd5\u200b\u7528\u7236\u200b\u8282\u70b9\u200b\u66f4\u65b0\u200b\u6700\u5c0f\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u7136\u540e\u200b\u8ba1\u7b97\u200b\u4e00\u4e0b\u200b\u5144\u5f1f\u200b\u7a7a\u95f4\u200b\u662f\u5426\u200b\u8ddf\u200b\u4ee5\u200b x \u200b\u4e3a\u200b\u4e2d\u5fc3\u200b\uff0c\u200b\u4ee5\u200b\u6700\u5c0f\u200b\u8ddd\u79bb\u200b\u4e3a\u200b\u534a\u5f84\u200b\u7684\u200b\u8d85\u7403\u200b\u76f8\u4ea4\u200b\uff0c\u200b\u5982\u679c\u200b\u76f8\u4ea4\u200b\uff0c\u200b\u5bf9\u200b\u5144\u5f1f\u200b\u5b50\u6811\u200b\u8fdb\u884c\u200b kd \u200b\u6811\u200b\u641c\u7d22\u200b
      • \u200b\u7ed3\u675f\u200b\uff1a \u200b\u56de\u6eaf\u5230\u200b\u6839\u200b\u7684\u200b\u65f6\u5019\u200b\u7ed3\u675f\u200b\uff0c\u200b\u5f53\u524d\u200b\u7ef4\u62a4\u200b\u7684\u200b\u6700\u8fd1\u200b\u70b9\u200b\u5c31\u662f\u200b\u5168\u5c40\u200b\u6700\u8fd1\u200b\u70b9\u200b

      \u200b\u4e00\u6b21\u200b\u641c\u7d22\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u6700\u8fd1\u200b\u90bb\u70b9\u200b\uff0c\u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u7528\u200b\u4e3a\u200b\\(O(logn)\\)\uff0c\u200b\u5982\u679c\u200b\u8981\u200b\u627e\u51fa\u200b K \u200b\u4e2a\u200b\u6700\u8fd1\u200b\u90bb\u70b9\u200b\uff0c\u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(klogn)\\)

      PPT \u200b\u4e0a\u200b\u7684\u200b\u4f8b\u5b50\u200b

      "},{"location":"Note/Data%20Modeling/Logistic_Regression/","title":"\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52","text":"

      \u200b\u7ea6\u200b 842 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

      "},{"location":"Note/Data%20Modeling/Logistic_Regression/#_2","title":"\u903b\u8f91\u200b\u65af\u8c1b\u200b\u5206\u5e03","text":"

      \u200b\u9996\u5148\u200b\u76f4\u63a5\u200b\u7ed9\u51fa\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\\(X\\)\u200b\u6ee1\u8db3\u200b\\(Logistic(\\mu\uff0c\\gamma)\\)\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\uff1a

      \\[ F(x)=\\frac{1}{1+e^{-(x-\\mu)/\\gamma}} \\]

      \u200b\u5176\u4e2d\u200b\\(\\mu\\)\u200b\u4e3a\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\uff0c\\(\\gamma\\)\u200b\u4e3a\u200b\u5f62\u72b6\u200b\u53c2\u6570\u200b.\u200b\u8be5\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u7684\u200b\u56fe\u50cf\u200b\u4e3a\u200b S \u200b\u578b\u200b\u66f2\u7ebf\u200b\uff0c\\(\\mu\\)\u200b\u4e3a\u200b\u51fd\u6570\u200b\u7684\u200b\u5bf9\u79f0\u4e2d\u5fc3\u200b\uff0c\\(\\gamma\\)\u200b\u63a7\u5236\u200b\u51fd\u6570\u200b\u7684\u200b\u9661\u5ced\u200b\u7a0b\u5ea6\u200b\uff0c\u200b\u503c\u8d8a\u200b\u5927\u200b\uff0c\u200b\u51fd\u6570\u200b\u8d8a\u200b\u9661\u5ced\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Logistic_Regression/#_3","title":"\u4e8c\u9879\u200b\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52\u200b\u6a21\u578b","text":"

      \u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(D=\\{(x_1\uff0cy_1)\uff0c(x_2\uff0cy_2)\uff0c...\uff0c(x_m\uff0cy_m)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(x_i \\in \\mathbb{R}\\)\uff0c\\(y_i \\in \\{0\uff0c1\\}\\)\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u5b66\u4e60\u200b\u5230\u200b\u4e00\u4e2a\u200b\u7ebf\u6027\u200b\u6a21\u578b\u200b\u6765\u200b\u8fdb\u884c\u200b\u5206\u7c7b\u200b\uff0c\u200b\u5728\u200b\u611f\u77e5\u673a\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u7528\u200b\u4e00\u4e2a\u200b\u6307\u793a\u200b\u51fd\u6570\u200b\u6765\u200b\u5c06\u200b\u51fd\u6570\u200b\u503c\u200b\u7684\u200b\u7b26\u53f7\u200b\u6620\u5c04\u200b\u5230\u200b\u4e0d\u540c\u200b\u7684\u200b\u5206\u7c7b\u200b\u3002

      \u200b\u5bf9\u4e8e\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\u6765\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u60f3\u8981\u200b\u5f97\u5230\u200b\u7684\u200b\u662f\u200b\u67d0\u4e2a\u200b x \u200b\u4e0b\u200b\u5c5e\u4e8e\u200b 0\uff0c\u200b\u6216\u8005\u200b 1 \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u4e5f\u200b\u662f\u200b\u8fde\u7eed\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u8bd5\u56fe\u7528\u200b\u7ebf\u6027\u200b\u7684\u200b\u6a21\u578b\u200b\u53bb\u200b\u62df\u5408\u200b\uff0c\u200b\u6211\u4eec\u200b\u5148\u4f5c\u200b\u5982\u4e0b\u200b\u7684\u200b\u8f6c\u5316\u200b\uff1a

      • \u200b\u6982\u7387\u200b\u7684\u200b\u53d6\u503c\u200b\u8303\u56f4\u200b\u662f\u200b\\(P \\in [0\uff0c1]\\)
      • \u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u4f7f\u7528\u200b\u51e0\u7387\u200b\\(\\frac{p}{1-p}\\)\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u7684\u200b\u53d6\u503c\u200b\u8303\u56f4\u200b\u5c31\u662f\u200b\\((0\uff0c\\infty)\\)
      • \u200b\u518d\u200b\u52a0\u200b\u4e00\u4e2a\u200b\u5bf9\u6570\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u5f97\u5230\u200b\u5bf9\u6570\u200b\u51e0\u7387\u200b\\(logit(p)=ln\\frac{p}{1-p}\\)\uff0c\u200b\u53d6\u503c\u200b\u8303\u56f4\u200b\u662f\u200b\\((-\\infty\uff0c\\infty)\\)

      \u200b\u8fd9\u6837\u200b\u5bf9\u6570\u200b\u51e0\u7387\u200b\u7684\u200b\u53d6\u503c\u200b\u8303\u56f4\u200b\u5c31\u200b\u548c\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u7684\u200b\u4e00\u6837\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8bd5\u7740\u200b\u7528\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u53bb\u200b\u8fdb\u884c\u200b\u62df\u5408\u200b\uff08\u200b\u5982\u679c\u200b\u67d0\u4e2a\u200b\u5206\u5e03\u200b\u7684\u200b\u5bf9\u6570\u51fd\u6570\u200b\u76f8\u5173\u7cfb\u6570\u200b\u5f88\u200b\u9ad8\u200b\uff0c\u200b\u81ea\u7136\u200b\u53ef\u4ee5\u200b\u62df\u5408\u200b\u5230\u200b\u6bd4\u8f83\u200b\u597d\u200b\u7684\u200b\u6548\u679c\u200b\uff0c\u200b\u4f46\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\u7684\u200b\u5bf9\u6570\u200b\u51e0\u7387\u200b\u51e0\u4e4e\u200b\u4e0d\u6210\u200b\u7ebf\u6027\u200b\uff0c\u200b\u90a3\u4e48\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u7684\u200b\u62df\u5408\u200b\u6548\u679c\u200b\u5c31\u200b\u4f1a\u200b\u6bd4\u8f83\u200b\u5dee\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u7528\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\u62df\u5408\u200b\u7684\u200b\u5206\u5e03\u200b\u6700\u597d\u200b\u6709\u200b\u7c7b\u4f3c\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\uff09.

      \u200b\u6211\u4eec\u200b\u4ee4\u200b

      \\[ \\ln(\\frac{P(Y=1|x)}{1-P(Y=1|x)}) = w\\cdot x + b \\]

      \u200b\u90a3\u4e48\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a

      \\[ P(Y=1|x)=\\frac{exp(w\\cdot x+b)}{1+exp(w\\cdot x+b)} \\] \\[ P(Y=0|x)=\\frac{1}{1+exp(w\\cdot x+b)} \\]

      \u200b\u8fd9\u200b\u5c31\u662f\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\uff0c\u200b\u73b0\u5728\u200b\u95ee\u9898\u200b\u662f\u200b\u6211\u4eec\u200b\u6709\u7684\u662f\u200b\u4e00\u5bf9\u200b\u6570\u636e\u200b\u70b9\u200b\u800c\u200b\u4e0d\u662f\u200b x \u200b\u548c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u6211\u4eec\u200b\u8be5\u200b\u5982\u4f55\u200b\u8fdb\u884c\u200b\u62df\u5408\u200b\uff1f

      "},{"location":"Note/Data%20Modeling/Logistic_Regression/#_4","title":"\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1","text":"

      \u200b\u6211\u4eec\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\u7684\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b

      \\[ L(w\uff0cb)=\\prod_{i=1}^{m}P(Y=y_i|x_i)=\\prod_{i=1}^{m}(\\frac{exp(w\\cdot x_i+b)}{1+exp(w\\cdot x_i+b)})^{y_i}(\\frac{1}{1+exp(w\\cdot x_i+b)})^{1-y_i} \\]

      \u200b\u4e3a\u4e86\u200b\u65b9\u4fbf\u200b\u6c42\u89e3\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6781\u5927\u200b\u5316\u200b\u5bf9\u6570\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b\uff0c\u200b\u8fd9\u200b\u4e5f\u200b\u7b49\u6548\u4e8e\u200b\u6781\u5927\u200b\u5316\u4f3c\u7136\u200b\u51fd\u6570\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5bf9\u6570\u51fd\u6570\u200b\u662f\u200b\u5355\u8c03\u200b\u9012\u589e\u200b\u7684\u200b\u3002

      \\[\\begin{aligned} &\\ln L(w\uff0cb) = \\sum_{i=1}^{m}y_i(w\\cdot x_i+b)-\\ln(1+exp(w\\cdot x_i+b)) \\\\ \\end{aligned}\\]

      \u200b\u90a3\u4e48\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5c31\u200b\u8981\u6c42\u200b\u6211\u4eec\u200b\u627e\u5230\u200b\u4f7f\u200b\u5bf9\u6570\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b\u6700\u5927\u200b\u7684\u200b\u53c2\u6570\u200b

      \\[ \\underset{w\uff0cb}{\\operatorname{arg max}} \\ln L(w\uff0cb) \\]

      \u200b\u5728\u200b\u8fd9\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b\u6c42\u89e3\u200b\u8fc7\u7a0b\u200b\u9700\u8981\u200b\u7528\u200b\u68af\u5ea6\u200b\u4e0b\u964d\u200b\u6cd5\u200b\u6216\u8005\u200b\u725b\u987f\u200b\u6cd5\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u56e0\u4e3a\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u51fd\u6570\u200b\u662f\u200b\u51f8\u51fd\u6570\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4fdd\u8bc1\u200b\u6c42\u89e3\u200b\u7684\u200b\u7ed3\u679c\u200b\u662f\u200b\u5168\u5c40\u200b\u6700\u4f18\u200b\u89e3\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Logistic_Regression/#_5","title":"\u591a\u9879\u200b\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52\u200b\u6a21\u578b","text":"

      \u200b\u7c7b\u4f3c\u200b\u7684\u200b\uff0c\u200b\u591a\u9879\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u5982\u4e0b\u200b\uff1a

      \\[\\begin{aligned} &P(Y=1|x)=\\frac{exp(w_1\\cdot x+b_1)}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ &P(Y=2|x)=\\frac{exp(w_2\\cdot x+b_2)}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ &... \\\\ &P(Y=k|x)=\\frac{1}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ \\end{aligned}\\]"},{"location":"Note/Data%20Modeling/Max_Entropy/","title":"\u6700\u5927\u200b\u71b5\u200b\u6a21\u578b","text":"

      \u200b\u7ea6\u200b 717 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

      \u200b\u601d\u60f3\u200b

      \u200b\u6709\u65f6\u5019\u200b\u6211\u4eec\u200b\u5df2\u6709\u200b\u7684\u200b\u6570\u636e\u200b\u5e76\u200b\u4e0d\u8db3\u4ee5\u200b\u6211\u4eec\u200b\u552f\u4e00\u200b\u786e\u5b9a\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u65f6\u5019\u200b\u5bf9\u4e8e\u200b\u6240\u6709\u200b\u5019\u9009\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u8ba4\u4e3a\u200b\u71b5\u200b\u6700\u5927\u200b\u7684\u200b\u90a3\u4e2a\u200b\u5206\u5e03\u200b\u662f\u200b\u6700\u597d\u200b\u7684\u200b.\u200b\u6362\u8a00\u4e4b\u200b\uff0c\u200b\u5728\u200b\u6ee1\u8db3\u200b\u7ea6\u675f\u200b\u7684\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c3d\u53ef\u80fd\u200b\u91c7\u53d6\u200b\u7b49\u200b\u53ef\u80fd\u200b\u5206\u5e03\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Max_Entropy/#_2","title":"\u6a21\u578b\u200b\u63cf\u8ff0","text":"

      \u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u7edf\u8ba1\u200b\u7ecf\u9a8c\u200b\u5206\u5e03\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u9891\u7387\u200b\uff09

      \\[\\begin{aligned} &\\tilde{P}(X=x\uff0cY=y) = \\frac{v(X = x\uff0c Y = y)}{N} \\\\ &\\tilde{P}(X=x) = \\frac{v(X = x)}{N} \\\\ \\end{aligned}\\]

      \u200b\u6211\u4eec\u200b\u5f15\u5165\u200b\u7279\u5f81\u51fd\u6570\u200b\\(f(x\uff0cy) \\ in {0\uff0c1}\\)\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7f6e\u9876\u200b\u67d0\u79cd\u200b\u6761\u4ef6\u200b\uff0c\u200b\u6ee1\u8db3\u6761\u4ef6\u200b\u7684\u200b\\((x\uff0cy)\\)\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u51fd\u6570\u200b\u503c\u4e3a\u200b 1\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b 0.\u200b\u6bd4\u5982\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\\(f(x\uff0cy) = 1\\)\u200b\u5f53\u4e14\u200b\u4ec5\u200b\u5f53\u200b\\(x\\)\u200b\u548c\u200b\\(y\\)\u200b\u76f8\u7b49\u200b\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b 0.\u200b\u5b9a\u4e49\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u7279\u5f81\u51fd\u6570\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\u5728\u200b\u7279\u5f81\u51fd\u6570\u200b\u4e0a\u200b\u7684\u200b\u671f\u671b\u200b\uff1a

      \\[ E_{\\tilde{P}}(f) = \\sum_{x\uff0cy}\\tilde{P}(x\uff0cy)f(x\uff0cy) \\]

      \u200b\u7b80\u5355\u200b\u6765\u8bf4\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u5bf9\u200b\u67d0\u4e9b\u200b\\((x\uff0cy)\\)\u200b\u4e0a\u200b\u7684\u200b\u9891\u6570\u200b\u6c42\u548c\u200b\uff0c\u200b\u5728\u200b\u4e0a\u4f8b\u200b\u4e2d\u200b\uff0c\u200b\u5c31\u662f\u200b\u5bf9\u200b xy \u200b\u76f8\u7b49\u200b\u7684\u200b\u90a3\u4e9b\u200b\u9879\u200b\u7684\u200b\u9891\u6570\u200b\u6c42\u548c\u200b

      \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u5b66\u4e60\u200b\u5230\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u6761\u4ef6\u200b\u5206\u5e03\u200b\\(P(Y|X)\\)\uff0c\u200b\u90a3\u4e48\u200b\u7528\u200b\u6211\u4eec\u200b\u5b66\u5230\u200b\u7684\u200b\u6761\u4ef6\u200b\u5206\u5e03\u200b\u4e0e\u200b X \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u5206\u5e03\u200b\u7b97\u200b\u51fa\u6765\u200b\u7684\u200b\u671f\u671b\u200b\u662f\u200b\uff1a

      \\[ E_{P}(f) = \\sum_{x\uff0cy}P(y|x)\\tilde{P}(x)f(x\uff0cy) \\]

      \u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6211\u4eec\u200b\u5b66\u5230\u200b\u7684\u200b\u6761\u4ef6\u200b\u5462\u200b\u5206\u5e03\u200b\u5c3d\u53ef\u80fd\u200b\u7b26\u5408\u5b9e\u9645\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\\(P(y|x)\\tilde{P}(x)\\)\u200b\u5728\u200b\u7279\u5f81\u51fd\u6570\u200b\u7684\u200b\u610f\u4e49\u200b\u4e0a\u200b\u5c3d\u53ef\u80fd\u200b\u8d34\u8fd1\u200b\\(\\tilde{P}(x\uff0cy)\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b

      \\[ E_{P}(f) = E_{\\tilde{P}}(f) \\]

      \u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7528\u200b\u4e0a\u9762\u200b\u4f8b\u5b50\u200b\u4e2d\u200b\u7684\u200b\u7279\u5f81\u51fd\u6570\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5b66\u4e60\u200b\u5230\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u200b\uff0cxy \u200b\u76f8\u7b49\u200b\u7684\u200b\u9891\u6570\u200b\u7b49\u4e8e\u200b\u5b9e\u9645\u200b\u89c2\u6d4b\u200b\u5230\u200b\u7684\u200b xy \u200b\u76f8\u7b49\u200b\u7684\u200b\u9891\u6570\u200b\u3002

      \u200b\u8fd9\u91cc\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5728\u200b\u601d\u60f3\u200b\u4e2d\u200b\u63d0\u5230\u200b\u7684\u200b\u7ea6\u675f\u200b\uff0c\u200b\u6ee1\u8db3\u200b\u8fd9\u6837\u200b\u7ea6\u675f\u200b\u7684\u200b\u6a21\u578b\u200b\u5e76\u200b\u4e0d\u200b\u552f\u4e00\u200b\uff0c\u200b\u6211\u4eec\u200b\u8ba1\u7b97\u200b\u5404\u4e2a\u200b\u6a21\u578b\u200b\u7684\u200b\u6761\u4ef6\u200b\u71b5\u200b\uff1a

      \\[ H(P) = -\\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)\\log P(y|x) \\]

      \u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6761\u4ef6\u200b\u71b5\u200b\u6700\u5927\u200b\uff0c\u200b\u6761\u4ef6\u200b\u71b5\u200b\u8d8a\u200b\u5927\u200b\u7684\u200b\u5206\u5e03\u200b\u8d8a\u200b\u597d\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Max_Entropy/#_3","title":"\u6a21\u578b\u200b\u6c42\u89e3","text":"

      \u200b\u5199\u51fa\u200b\u5f62\u5f0f\u5316\u200b\u8868\u8fbe\u5f0f\u200b\uff1a

      \\[\\begin{aligned} \\underset{P \\in C}{\\operatorname{min}} &-H(P) = \\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)\\log P(y|x) \\\\ s.t. &\\sum_{y}P(y|x) = 1 \\\\ & E_{P}(f_i) = E_{\\tilde{P}}(f_i) \\\\ \\end{aligned}\\]

      \u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u591a\u4e2a\u200b\u7279\u5f81\u51fd\u6570\u200b\u6765\u200b\u8fdb\u884c\u200b\u7ea6\u675f\u200b

      \u200b\u4e3a\u200b\u4e86\u89e3\u200b\u89c9\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u7528\u200b\u4ee5\u4e0b\u200b\u4e09\u6b65\u200b

      • \u200b\u5199\u51fa\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\uff0c\u200b\u62c9\u683c\u6717\u200b\u65e5\u200b\u51fd\u6570\u200b\\(L(P\uff0cw)\\)\u200b\u4e3a\u200b\uff1a $$ \\undreset{P \\in C}{\\operatorname{min}} \\underset{w}{\\operatorname{max}} L(P\uff0cw) = \\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)\\log P(y|x) + \\sum_{i=1}^{n}w_i(\\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)f_i(x\uff0cy) - E_{\\tilde{P}}(f_i)) $$
      • \u200b\u6781\u5c0f\u200b\u5316\u200b\uff1a\u200b\u5728\u200b\\(L(P\uff0cw)\\)\u200b\u4e2d\u200b\u5bf9\u200b P \u200b\u6c42\u200b\u504f\u5bfc\u4ee5\u200b\u8fdb\u884c\u200b\u6700\u5c0f\u5316\u200b
      • \u200b\u6781\u5927\u200b\u5316\u200b\uff1a\u200b\u540c\u6837\u200b\u6c42\u5bfc\u200b\u6216\u8005\u200b\u4f7f\u7528\u200b\u5176\u4ed6\u200b\u6700\u4f18\u5316\u200b\u7b97\u6cd5\u200b\uff08\u200b\u68af\u5ea6\u200b\u4e0b\u964d\u200b\u6cd5\u200b\uff0c\u200b\u725b\u987f\u200b\u6cd5\u200b\uff0c\u200b\u62df\u200b\u725b\u987f\u200b\u6cd5\u200b\uff09
      "},{"location":"Note/Data%20Modeling/Naive_Bayesian/","title":"\u6734\u7d20\u200b\u8d1d\u53f6\u65af\u200b\u7b97\u6cd5","text":"

      \u200b\u7ea6\u200b 919 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

      "},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_2","title":"\u95ee\u9898\u200b\u53ca\u200b\u7b97\u6cd5\u200b\u63cf\u8ff0","text":"

      \u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b \\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\{ c_1\uff0cc_2\uff0c....c_k\\}\\)\uff0c \u200b\u4e00\u5171\u200b\u6709\u200b K \u200b\u79cd\u7c7b\u200b\u522b\u200b\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u7c7b\u522b\u200b\\(y\\).

      \u200b\u7b97\u6cd5\u200b\u5e0c\u671b\u200b\u5b66\u4e60\u200b\u4e00\u4e2a\u200b\u8054\u5408\u200b\u6982\u7387\u5206\u5e03\u200b\\(P(X\uff0cY)\\)\uff0c\u200b\u800c\u200b\u6211\u4eec\u200b\u73b0\u5728\u200b\u5df2\u7ecf\u200b\u6709\u7684\u662f\u200b\u5148\u9a8c\u200b\u5206\u5e03\u200b\\(P(Y)\\)\u200b\u548c\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\\(P(X|Y)\\).

      \u200b\u4f46\u662f\u200b\u540e\u8005\u200b\u7684\u200b\u7a7a\u95f4\u200b\u592a\u200b\u5927\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u4eec\u200b\u5f15\u5165\u200b\u72ec\u7acb\u6027\u200b\u5047\u8bbe\u200b\uff0c\u200b\u5047\u8bbe\u200b x \u200b\u7684\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u90fd\u200b\u662f\u200b\u72ec\u7acb\u200b\u7684\u200b\uff08\u200b\u4e8b\u5b9e\u4e0a\u200b\u5927\u200b\u6982\u7387\u200b\u5e76\u200b\u4e0d\u662f\u200b\uff0c\u200b\u8fd9\u662f\u200b\u6781\u5927\u200b\u7b80\u5316\u200b\u8ba1\u7b97\u200b\u91cf\u200b\u7684\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u5f15\u5165\u200b\u8bef\u5dee\u200b\u7684\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u8be5\u200b\u7b97\u6cd5\u200b\u7684\u200b\u201c\u200b\u6734\u7d20\u200b\u201d\u200b\u4e4b\u200b\u5904\u200b\uff09:

      \\[ P(X = x| Y = c_k) = P(X^{(1)} = x^{(1)}\uff0c X^{(2)} = x^{(2)} ... X^{(n)} = x^{(n)} | Y = c_k)= \\prod_{i=1}^{n}P(X^{(i)} = x^{(i)}| Y = c_k) \\]

      \u200b\u4e0a\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u5728\u200b\u7c7b\u522b\u200b\u662f\u200b\\(c_k\\)\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0cX \u200b\u8fd9\u4e00\u200b n \u200b\u7ef4\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b x \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u5c31\u662f\u200b\\(c_k\\)\u200b\u8fd9\u200b\u4e00\u7c7b\u200b\u4e2d\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(x^{(i)}\\)\u200b\u7684\u200b\u6982\u7387\u200b\u7684\u200b\u4e58\u79ef\u200b\u3002

      \u200b\u5b66\u4e60\u200b\u5230\u200b\u4e86\u200b\u8054\u5408\u200b\u6982\u7387\u5206\u5e03\u200b\u4e4b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b\u5206\u7c7b\u200b\u7684\u200b\u65f6\u5019\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\u6700\u5927\u200b\u540e\u9a8c\u200b\u6982\u7387\u200b\uff1a

      \\[ y = \\underset{c_k}{\\operatorname{arg max}} P(Y = c_k) \\prod_{i=1}^{n}P(X^{(i)} = x^{(i)}| Y = c_k) \\]

      \u200b\u4e0a\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u5047\u8bbe\u200b x \u200b\u7684\u200b\u7c7b\u522b\u200b\u662f\u200b\\(c_k\\)\uff0c\u200b\u8ba1\u7b97\u200b\u6bcf\u4e2a\u200b\\(c_k\\)\u200b\u8fd9\u200b\u4e00\u7c7b\u200b\u4e2d\u200b\u51fa\u73b0\u200b x \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u627e\u51fa\u200b\u6982\u7387\u200b\u6700\u5927\u200b\u7684\u200b\u90a3\u200b\u4e00\u7c7b\u200b\u4f5c\u4e3a\u200b x \u200b\u7684\u200b\u5206\u7c7b\u200b\u3002

      PPT \u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5206\u7c7b\u200b\u5b9e\u4f8b\u200b

      "},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_3","title":"\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1","text":"

      \u200b\u5229\u7528\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4e0b\u9762\u200b\u8fd9\u200b\u4e24\u4e2a\u200b\u6982\u7387\u200b\u7684\u200b\u4f30\u8ba1\u200b\u516c\u5f0f\u200b\uff1a

      \\[\\begin{aligned} &P(Y = c_k) = \\frac{\\sum_{i=1}^{N}I(y_i = c_k)}{N} \\\\ &P(X^{(i)} = a_{jl}| Y = c_k) = \\frac{\\sum_{i=1}^{N}I(x_i^{(i)} = a_{jl}\uff0cy_i = c_k)}{\\sum_{i=1}^{N}I(y_i = c_k)} \\end{aligned}\\]

      \u200b\u6307\u793a\u200b\u51fd\u6570\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5728\u200b\u524d\u9762\u200b\u5df2\u7ecf\u200b\u6709\u200b\u4ecb\u7ecd\u200b\uff0c\u200b\u540e\u7eed\u200b\u90fd\u200b\u9ed8\u8ba4\u200b\u4f7f\u7528\u200b\u8fd9\u4e00\u200b\u5b9a\u4e49\u200b\u3002

      \u200b\u7b2c\u4e00\u200b\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u4e0d\u540c\u200b\u7c7b\u522b\u200b\u7684\u200b\u51fa\u73b0\u200b\u6982\u7387\u200b\u7684\u200b\u5148\u9a8c\u6982\u7387\u200b\u76f4\u63a5\u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2d\u8be5\u200b\u7c7b\u522b\u200b\u51fa\u73b0\u200b\u7684\u200b\u9891\u7387\u200b\u3002

      \u200b\u7b2c\u4e8c\u200b\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u5728\u200b\u7c7b\u522b\u200b\u4e3a\u200b\\(c_k\\)\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u7b2c\u200b i \u200b\u7ef4\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(a_{jl}\\)\u200b\u7684\u200b\u6982\u7387\u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2d\u200b\\(c_k\\)\u200b\u7c7b\u4e2d\u200b\u8be5\u200b\u5206\u91cf\u200b\u4e3a\u200b\\(a_{jl}\\)\u200b\u7684\u200b\u6837\u672c\u200b\u5360\u200b\\(c_k\\)\u200b\u7c7b\u200b\u6837\u672c\u200b\u603b\u6570\u200b\u7684\u200b\u6bd4\u91cd\u200b\u3002

      \u200b\u601d\u60f3\u200b

      \u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5728\u200b\u6b64\u5904\u200b\u7684\u200b\u7ed3\u679c\u200b\u57fa\u672c\u4e0a\u200b\u53ef\u4ee5\u200b\u7b80\u5355\u200b\u5f52\u7ed3\u4e3a\u200b\uff1a\u200b\u7528\u200b\u9891\u7387\u200b\u4f30\u8ba1\u200b\u6982\u7387\u200b

      "},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_4","title":"\u8d1d\u53f6\u65af\u200b\u4f30\u8ba1","text":"

      \u200b\u4e0a\u8ff0\u200b\u7684\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5728\u200b\u4e00\u4e2a\u200b\u60c5\u51b5\u200b\u4e0b\u200b\u53ef\u80fd\u200b\u9047\u5230\u200b\u95ee\u9898\u200b\uff0c\u200b\u5982\u679c\u200b\u67d0\u4e2a\u200b\u6837\u672c\u200b\u6ca1\u6709\u200b\u51fa\u73b0\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5bf9\u200b\u90a3\u4e2a\u200b\u7c7b\u522b\u200b\u4f30\u8ba1\u200b\u7684\u200b\u4fe1\u606f\u200b\u5b8c\u5168\u200b\u4e22\u5931\u200b\u3002

      \u200b\u4e3a\u200b\u89e3\u51b3\u200b\u8fd9\u4e00\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u624b\u52a8\u200b\u4e3a\u200b\u6bcf\u200b\u4e00\u200b\u7c7b\u522b\u200b\u6dfb\u52a0\u200b\u9ed8\u8ba4\u200b n \u200b\u6b21\u200b\u7684\u200b\u51fa\u73b0\u200b\u9891\u6570\u200b\uff1a

      \\[\\begin{aligned} &P(Y = c_k) = \\frac{\\sum_{i=1}^{N}I(y_i = c_k) + \\lambda}{N + K\\lambda} \\\\ &P(X^{(i)} = a_{jl}| Y = c_k) = \\frac{\\sum_{i=1}^{N}I(x_i^{(i)} = a_{jl}\uff0cy_i = c_k) + \\lambda}{\\sum_{i=1}^{N}I(y_i = c_k) + S_i\\lambda} \\end{aligned}\\]

      \u200b\u5176\u4e2d\u200b\\(S_i\\)\u200b\u662f\u200b\u7b2c\u200b i \u200b\u7ef4\u200b\u7684\u200b\u53d6\u503c\u200b\u4e2a\u6570\u200b\uff0c\\(\\lambda\\)\u200b\u662f\u200b\u4e00\u4e2a\u200b\u8d85\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e00\u822c\u200b\u53d6\u200b 1.

      \u200b\u5728\u200b\u7b2c\u4e00\u200b\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7c7b\u522b\u200b\u90fd\u200b\u52a0\u5165\u200b\u4e86\u200b\\(\\lambda\\)\u200b\u7684\u200b\u9891\u7387\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5206\u5b50\u200b\u5355\u72ec\u200b\u67d0\u7c7b\u200b\u7684\u200b\u9891\u6570\u200b\u52a0\u4e0a\u200b\u4e86\u200b\\(\\lambda\\)\uff0c\u200b\u5206\u6bcd\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u603b\u200b\u7c7b\u522b\u200b\u6570\u200b K \u200b\u4e58\u200b\u4e0a\u200b\\(\\lambda\\).

      \u200b\u5728\u200b\u7b2c\u4e8c\u200b\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7c7b\u522b\u200b\u7684\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u90fd\u200b\u52a0\u5165\u200b\u4e86\u200b\\(\\lambda\\)\u200b\u7684\u200b\u9891\u7387\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5206\u5b50\u200b\u5355\u72ec\u200b\u67d0\u7c7b\u200b\u7684\u200b\u9891\u6570\u200b\u52a0\u4e0a\u200b\u4e86\u200b\\(\\lambda\\)\uff0c\u200b\u5206\u6bcd\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u8be5\u200b\u7ef4\u5ea6\u200b\u53ef\u80fd\u200b\u7684\u200b\u53d6\u503c\u200b\u4e2a\u200b\u6570\u6570\u200b\u4e58\u200b\u4e0a\u200b\\(\\lambda\\)\uff08\u200b\u56e0\u4e3a\u200b\u6709\u200b\u591a\u5c11\u200b\u4e2a\u200b\u53d6\u503c\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u4eba\u4e3a\u200b\u7684\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u591a\u5c11\u200b\u4e2a\u200b\\(\\lambda\\)\uff09.

      \u200b\u53ef\u4ee5\u200b\u8ba4\u4e3a\u200b\u8d1d\u53f6\u65af\u200b\u4f30\u8ba1\u200b\u662f\u200b\u5bf9\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u8fdb\u884c\u200b\u4e86\u200b\u5e73\u6ed1\u200b\u3002

      "},{"location":"Note/Data%20Modeling/PCA/","title":"\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790","text":"

      \u200b\u7ea6\u200b 1724 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 6 \u200b\u5206\u949f\u200b

      "},{"location":"Note/Data%20Modeling/PCA/#_2","title":"\u52a8\u673a","text":"

      \u200b\u8bbe\u60f3\u200b\u6211\u4eec\u200b\u6709\u200b\u4e00\u7ec4\u200b\u7ebf\u6027\u200b\u7684\u200b\u4e8c\u7ef4\u200b\u6570\u636e\u200b\u70b9\u200b\uff0c\u200b\u5982\u4e0b\u200b\u56fe\u200b\u6240\u793a\u200b

      \u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5b58\u50a8\u200b\u6bcf\u4e2a\u200b\u70b9\u200b\u90fd\u200b\u4f7f\u7528\u200b\u4e86\u200b\u4e24\u4e2a\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u6570\u636e\u200b\u3002\u200b\u4f46\u662f\u200b\u7531\u4e8e\u200b\u8fd9\u4e9b\u200b\u70b9\u200b\u90fd\u200b\u5206\u5e03\u200b\u5728\u200b\u540c\u200b\u4e00\u6761\u200b\u76f4\u7ebf\u200b\u4e0a\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u5176\u5b9e\u200b\u53ef\u4ee5\u200b\u53ea\u7528\u200b\u4e00\u4e2a\u200b\u7ef4\u5ea6\u200b\u6765\u200b\u8868\u793a\u200b\u8fd9\u4e9b\u200b\u70b9\u200b\uff0c\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u628a\u200b x \u200b\u8f74\u200b\u65cb\u8f6c\u200b\u5230\u200b\u8fd9\u6761\u200b\u76f4\u7ebf\u200b\u4e0a\u200b\uff0cy \u200b\u8f74\u200b\u65cb\u8f6c\u200b\u5230\u200b\u4e0e\u200b\u76f4\u7ebf\u200b\u5782\u76f4\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6240\u6709\u200b\u7684\u200b\u70b9\u200b\u7684\u200b y \u200b\u5750\u6807\u200b\u90fd\u200b\u662f\u200b 0\uff0c\u200b\u81ea\u7136\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u53ea\u7528\u200b\u4e00\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u6570\u636e\u200b(2)\u200b\u8bb0\u5f55\u200b\u8fd9\u4e9b\u200b\u70b9\u200b\u4e86\u200b\u3002\u200b\u8fd9\u6837\u200b\u6211\u4eec\u200b\u5c31\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u964d\u7ef4\u200b\uff0c\u200b\u6211\u4eec\u200b\u7528\u200b\u4e00\u7ef4\u200b\u7684\u200b\u6570\u636e\u200b\u6765\u200b\u5b58\u50a8\u200b\u672c\u6765\u200b\u4e24\u7ef4\u200b\u7684\u200b\u4fe1\u606f\u200b\uff0c\u200b\u5e76\u4e14\u200b\u662f\u200b\u65e0\u635f\u200b\u7684\u200b(1)\u3002

      1. \u200b\u65e0\u635f\u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5b8c\u7f8e\u200b\u7684\u200b\u8fd8\u539f\u200b\u51fa\u539f\u200b\u6570\u636e\u200b\u3002
      2. \u200b\u6a2a\u5750\u6807\u200b

      \u200b\u7136\u800c\u200b\u8fd9\u200b\u53ea\u662f\u200b\u7ebf\u6027\u200b\u7684\u200b\u6570\u636e\u200b\u4e0a\u200b\u7684\u200b\u60c5\u51b5\u200b\uff0c\u200b\u5982\u679c\u200b\u6570\u636e\u200b\u5e76\u200b\u975e\u7ebf\u6027\u200b\uff0c\u200b\u6bd4\u5982\u200b\u4e0b\u56fe\u200b\u8fd9\u6837\u200b\u7684\u200b\uff1a

      \u200b\u90a3\u4e48\u200b\u663e\u7136\u200b\u6211\u4eec\u200b\u50cf\u200b\u4e4b\u524d\u200b\u90a3\u6837\u200b\u65cb\u8f6c\u200b\u5750\u6807\u8f74\u200b\uff0c\u200b\u662f\u200b\u65e0\u6cd5\u200b\u53ea\u7528\u200b\u4e00\u4e2a\u200b\u7ef4\u5ea6\u200b\u5b8c\u7f8e\u200b\u7684\u200b\u8868\u793a\u200b\u8fd9\u4e9b\u200b\u6570\u636e\u200b\u7684\u200b\u3002\u200b\u4f46\u662f\u200b\u6211\u4eec\u200b\u9690\u9690\u200b\u53ef\u4ee5\u200b\u611f\u89c9\u200b\u5230\u200b\uff0c\u200b\u5982\u679c\u200b\u53ea\u200b\u8ba9\u200b\u7528\u200b\u4e00\u4e2a\u200b\u7ef4\u5ea6\u200b\u6765\u200b\u8868\u793a\u200b\u8fd9\u4e9b\u200b\u70b9\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6700\u597d\u200b\u7684\u200b\u65b9\u5f0f\u200b\u5e94\u8be5\u200b\u662f\u200b\u4f7f\u7528\u200b x \u200b\u8f74\u200b\u65cb\u8f6c\u200b\u5230\u200b\u692d\u5706\u200b\u957f\u8f74\u200b\u540e\u200b\u7684\u200b\u6a2a\u5750\u6807\u200b\u3002

      \u200b\u4e8b\u5b9e\u4e0a\u200b\u6b63\u662f\u5982\u6b64\u200b\uff01\u200b\u6211\u4eec\u200b\u4e0d\u59a8\u200b\u628a\u200b\u8fd9\u79cd\u200b\u601d\u60f3\u200b\u7528\u200b\u66f4\u200b\u6570\u5b66\u200b\u5316\u200b\u7684\u200b\u65b9\u5f0f\u200b\u8868\u8ff0\u200b\u51fa\u6765\u200b\u3002\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u5728\u200b\u539f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u5f7c\u6b64\u200b\u5206\u9694\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\u4e0d\u8981\u200b\u6df7\u5728\u200b\u4e00\u8d77\u200b\u3002\u200b\u5bf9\u4e8e\u200b\u7ebf\u6027\u200b\u7684\u200b\u4f8b\u5b50\u200b\uff0c\u200b\u6211\u4eec\u200b\u9009\u62e9\u200b\u7684\u200b\u65cb\u8f6c\u200b\u540e\u200b\u7684\u200b x \u200b\u8f74\u200b\u6b63\u662f\u200b\u4f7f\u5f97\u200b\u6570\u636e\u200b\u6295\u5f71\u200b\u6700\u200b\u5206\u6563\u200b\u7684\u200b\u4e00\u79cd\u200b\u65b9\u5f0f\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u6e10\u6e10\u200b\u65cb\u8f6c\u200b\u6211\u4eec\u200b\u7684\u200b\u9009\u62e9\u200b\u7684\u8bdd\u200b\uff0c\u200b\u4f1a\u200b\u53d1\u73b0\u200b\u6570\u636e\u200b\u70b9\u4f1a\u200b\u8d8a\u6765\u8d8a\u200b\u805a\u62e2\u200b\uff0c\u200b\u76f4\u81f3\u200b\u6211\u4eec\u200b\u6700\u7ec8\u200b\u65cb\u8f6c\u200b\u5230\u200b\u4e0e\u200b\u8be5\u200b\u76f4\u7ebf\u200b\u5782\u76f4\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u4e0a\u200b\uff0c\u200b\u6b64\u65f6\u200b\u6240\u6709\u200b\u7684\u200b\u70b9\u200b\u90fd\u200b\u88ab\u200b\u6295\u5f71\u200b\u5230\u200b\u540c\u4e00\u4e2a\u200b\u70b9\u4e0a\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u4e22\u5931\u200b\u4e86\u200b\u6240\u6709\u200b\u7684\u200b\u4fe1\u606f\u200b\u3002

      \u200b\u4e0d\u96be\u200b\u53d1\u73b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u540e\u200b\u662f\u200b\u4f7f\u7528\u200b\u6570\u636e\u200b\u70b9\u5230\u200b\u67d0\u6761\u200b\u76f4\u7ebf\u200b\u7684\u200b\u6295\u5f71\u200b\u6765\u200b\u8868\u793a\u200b\u8fd9\u4e9b\u200b\u70b9\u200b\uff0c\u200b\u800c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u8fd9\u4e9b\u200b\u6295\u5f71\u200b\u5c3d\u53ef\u80fd\u200b\u5206\u6563\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u3002

      \u200b\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790\u200b\uff08Principal Component Analysis\uff0cPCA\uff09\u200b\u5c31\u662f\u200b\u8fd9\u6837\u200b\u4e00\u79cd\u200b\u964d\u7ef4\u200b\u7684\u200b\u65b9\u6cd5\u200b\u3002\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0cPCA \u200b\u4f1a\u200b\u9009\u51fa\u200b\u5f7c\u6b64\u200b\u6b63\u4ea4\u200b\u7684\u200b N \u200b\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b(1)\uff0c\u200b\u5176\u4e2d\u200b\u7b2c\u4e00\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b\u662f\u200b\u4f7f\u5f97\u200b\u6570\u636e\u200b\u6295\u5f71\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u7684\u200b\u65b9\u5411\u200b\uff0c\u200b\u7b2c\u4e8c\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b\u662f\u200b\u5728\u200b\u4e0e\u200b\u7b2c\u4e00\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b\u6b63\u4ea4\u200b\u7684\u200b\u65b9\u5411\u200b\u4e0a\u200b\u4f7f\u5f97\u200b\u6570\u636e\u200b\u6295\u5f71\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u7684\u200b\u65b9\u5411\u200b\uff0c\u200b\u4ee5\u6b64\u7c7b\u63a8\u200b\u3002\u200b\u8fd9\u4e9b\u200b\u5355\u4f4d\u5411\u91cf\u200b\u5c31\u200b\u88ab\u79f0\u4f5c\u200b\u7684\u200b\u4e3b\u200b\u6210\u5206\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u539f\u200b\u6570\u636e\u200b\u6295\u5f71\u200b\u5230\u200b\u8fd9\u4e9b\u200b\u4e3b\u200b\u6210\u5206\u200b\u4e0a\u200b\uff0c\u200b\u4ece\u800c\u200b\u5b9e\u73b0\u200b\u964d\u7ef4\u200b\u7684\u200b\u540c\u65f6\u200b\uff0c\u200b\u6700\u5927\u200b\u9650\u5ea6\u200b\u7684\u200b\u4fdd\u7559\u200b\u539f\u200b\u6570\u636e\u200b\u7684\u200b\u65b9\u5dee\u200b(2)\u3002

      1. \u200b\u4e5f\u200b\u5c31\u200b\u5bf9\u5e94\u200b N \u200b\u6761\u200b\u76f4\u7ebf\u200b\uff0c\u200b\u6216\u8005\u8bf4\u200b N \u200b\u4e2a\u200b\u8f74\u200b
      2. \u200b\u539f\u200b\u6570\u636e\u200b\u7684\u200b\u53cd\u5dee\u200b\u4e5f\u200b\u5c31\u662f\u200b\u539f\u200b\u6570\u636e\u200b\u7684\u200b\u4fe1\u606f\u200b
      "},{"location":"Note/Data%20Modeling/PCA/#_3","title":"\u603b\u4f53\u200b\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790","text":""},{"location":"Note/Data%20Modeling/PCA/#_4","title":"\u4e00\u822c\u200b\u5206\u6790","text":"

      \u200b\u7ed9\u5b9a\u200b\\(x = (x_1, \\dots, x_n)^T\\)\uff0c\u200b\u662f\u200b m \u200b\u7ef4\u200b\u968f\u673a\u53d8\u91cf\u200b\uff0c\u200b\u5176\u200b\u5bf9\u5e94\u200b\u7684\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b\\(\\Sigma = E[(x-\\mu)(x-\\mu)^T]\\)\uff0c\u200b\u5176\u4e2d\u200b\\(\\mu = E[x]\\)\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b\\(\\alpha\\)\uff0c\u200b\u4f7f\u5f97\u200b x \u200b\u5728\u200b\\(\\alpha\\)\u200b\u4e0a\u200b\u7684\u200b\u6295\u5f71\u200b\\(y_i = \\alpha^T x\\)\u200b\u7684\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u3002\u200b\u5bf9\u4e8e\u200b\\(y_i\\)\u200b\u800c\u8a00\u200b

      \\[\\begin{align*} E(y_i) &= \\alpha_i^T \\mu \\\\ Var(y_i) &= \\alpha_i^T \\Sigma \\alpha_i \\\\ Cov(y_i, y_j) &= \\alpha_i^T \\Sigma \\alpha_j \\end{align*}\\]"},{"location":"Note/Data%20Modeling/PCA/#_5","title":"\u7b2c\u4e00\u200b\u4e3b\u200b\u6210\u5206","text":"

      \u200b\u5148\u6c42\u200b\u7b2c\u4e00\u200b\u4e3b\u200b\u6210\u5206\u200b\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4f7f\u5f97\u200b\\(y_1\\)\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u7684\u200b\\(\\alpha_1\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\uff1a

      \\[\\begin{align*} \\max_{\\alpha_1} \\alpha_1^T \\Sigma \\alpha_1 \\\\ s.t. \\alpha_1^T \\alpha_1 = 1 \\end{align*}\\]

      \u200b\u5229\u7528\u200b\u62c9\u683c\u6717\u200b\u65e5\u200b\u4e58\u5b50\u6cd5\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a

      \\[\\begin{align*} \\alpha_1^T \\Sigma \\alpha_1 - \\lambda (\\alpha_1^T \\alpha_1 - 1) = 0 \\\\ \\end{align*}\\]

      \u200b\u5bf9\u200b\\(\\alpha_1\\)\u200b\u6c42\u5bfc\u200b\uff0c\u200b\u5f97\u5230\u200b\uff1a

      \\[\\begin{align*} \\Sigma \\alpha_1 - \\lambda \\alpha_1 = 0 \\\\ \\end{align*}\\]

      \u200b\u8fd9\u200b\u5c31\u200b\u610f\u5473\u7740\u200b\uff0c\\(\\alpha_1\\)\u200b\u662f\u200b\\(\\Sigma\\)\u200b\u7684\u200b\u7279\u5f81\u5411\u91cf\u200b\uff0c\\(\\lambda\\)\u200b\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u503c\u200b\u3002\u200b\u6240\u4ee5\u200b

      \\[ \\alpha_1^T \\Sigma \\alpha_1 = \\lambda \\]

      \u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u627e\u5230\u200b\\(\\Sigma\\)\u200b\u7684\u200b\u6700\u5927\u200b\u7279\u5f81\u503c\u200b\\(\\lambda_1\\)\u200b\u548c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u5411\u91cf\u200b\\(\\alpha_1\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002\u200b\u8be5\u4e3b\u200b\u6210\u5206\u200b\u5bf9\u5e94\u200b\u7684\u200b\u65b9\u5dee\u200b\u4e3a\u200b\\(\\lambda_1\\)\u3002

      "},{"location":"Note/Data%20Modeling/PCA/#_6","title":"\u5176\u4f59\u200b\u4e3b\u200b\u6210\u5206","text":"

      \u200b\u7b2c\u4e8c\u200b\u4e3b\u200b\u6210\u5206\u200b\u8981\u200b\u5728\u200b\u8981\u6c42\u200b\\(\\alpha_2^T x\\)\u200b\u4e0e\u200b\\(\\alpha_1^T x\\)\u200b\u6b63\u4ea4\u200b\u7684\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c\u200b\u627e\u5230\u200b\u4f7f\u5f97\u200b\\(\\alpha_2^T x\\)\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u7684\u200b\\(\\alpha_2\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\uff1a

      \\[\\begin{align*} \\max_{\\alpha_2} \\alpha_2^T \\Sigma \\alpha_2 \\\\ s.t. \\alpha_2^T \\alpha_2 = 1 \\\\ \\alpha_2^T \\alpha_1 = 0 \\end{align*}\\]

      \u200b\u5199\u51fa\u200b\u62c9\u683c\u6717\u200b\u65e5\u200b\u51fd\u6570\u200b\uff1a

      \\[\\begin{align*} \\alpha_2^T \\Sigma \\alpha_2 - \\lambda_1 (\\alpha_2^T \\alpha_2 - 1) - \\lambda_2 (\\alpha_2^T \\alpha_1 - 0) = 0 \\\\ \\end{align*}\\]

      \u200b\u5bf9\u200b\\(\\alpha_2\\)\u200b\u6c42\u5bfc\u200b\u5e76\u4e14\u200b\u4ee4\u5176\u4e3a\u200b\u96f6\u200b\uff0c\u200b\u5f97\u5230\u200b

      \\[\\begin{align*} \\Sigma \\alpha_2 - \\lambda_1 \\alpha_2 - \\lambda_2 \\alpha_1 = 0 \\\\ \\end{align*}\\]

      \u200b\u5de6\u4e58\u200b\\(\\alpha_1^T\\)\u200b\u540e\u200b\u5f97\u5230\u200b

      \\[\\begin{align*} \\alpha_1^T \\Sigma \\alpha_2 - \\lambda_1 \\alpha_1^T \\alpha_2 - \\lambda_2 \\alpha_1^T \\alpha_1 = 0 \\\\ \\lambda_2 = 0 \\end{align*}\\]

      \u200b\u628a\u200b\\(\\lambda_2\\)\u200b\u4ee3\u56de\u200b\u5f97\u5230\u200b

      \\[\\begin{align*} \\Sigma \\alpha_2 - \\lambda_1 \\alpha_2 = 0 \\\\ \\end{align*}\\]

      \u200b\u540c\u6837\u200b\u7684\u200b\uff0c\\(\\alpha_2\\)\u200b\u662f\u200b\\(\\Sigma\\)\u200b\u7684\u200b\u7279\u5f81\u5411\u91cf\u200b\uff0c\\(\\lambda_1\\)\u200b\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u503c\u200b\u3002\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u627e\u200b\u7b2c\u4e8c\u200b\u5927\u200b\u7684\u200b\u7279\u5f81\u503c\u200b\\(\\lambda_2\\)\u200b\u548c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u5411\u91cf\u200b\\(\\alpha_2\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002\u200b\u5bf9\u5e94\u200b\u7684\u200b\u65b9\u5dee\u200b\u4e3a\u200b\\(\\lambda_2\\)\u3002

      \u200b\u7ed3\u8bba\u200b

      x \u200b\u7684\u200b\u7b2c\u200b k \u200b\u4e2a\u4e3b\u200b\u6210\u5206\u200b\u662f\u200b\\(\\alpha_k^T x\\)\uff0c\u200b\u5176\u4e2d\u200b\\(\\alpha_k\\)\u200b\u662f\u200b\\(\\Sigma\\)\u200b\u7684\u200b\u7b2c\u200b k \u200b\u5927\u200b\u7279\u5f81\u503c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u5411\u91cf\u200b\u3002\u200b\u5bf9\u5e94\u200b\u7684\u200b\u65b9\u5dee\u200b\u4e3a\u200b\\(\\lambda_k\\)\u3002

      \u200b\u6c42\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790\u200b\u4e4b\u524d\u200b\u53ef\u4ee5\u200b\u5148\u5bf9\u200b\u968f\u673a\u53d8\u91cf\u200b\u8fdb\u884c\u200b\u89c4\u8303\u5316\u200b(1)

      1. \\(x_i^* = \\frac{x_i - E(x_i)}{\\sqrt{var(x_i)}}\\)
      "},{"location":"Note/Data%20Modeling/PCA/#_7","title":"\u6027\u8d28","text":"
      • \\(Cov(y) = diag(\\lambda_1, \\dots, \\lambda_n)\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\uff0c\u200b\u4e3b\u200b\u6210\u5206\u200b\u4e4b\u95f4\u200b\u662f\u200b\u4e0d\u200b\u76f8\u5173\u200b\u7684\u200b\u3002
      • \\(tr(\\Sigma) = \\Sigma \\lambda_i = \\Sigma \\sigma_{ii}\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\uff0c\u200b\u4e3b\u200b\u6210\u5206\u200b\u7684\u200b\u65b9\u5dee\u200b\u4e4b\u200b\u548c\u200b\u7b49\u4e8e\u200b\u539f\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u7684\u8ff9\u200b\u3002
      • \\(\\rho(y_k,x_i) =\\frac{\\sqrt{\\lambda_k}\\alpha_{ik}}{\\sqrt{\\sigma_{ii}}}\\)\uff0c\u200b\u8fd9\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u56e0\u5b50\u200b\u8d1f\u8377\u91cf\u200b\u3002
      "},{"location":"Note/Data%20Modeling/PCA/#_8","title":"\u6837\u672c\u200b\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790","text":"

      \u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u62e5\u6709\u200b\u7684\u200b\u4e0d\u662f\u200b\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\u800c\u662f\u200b\u4e00\u4e9b\u200b\u6837\u672c\u200b\u70b9\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u9700\u8981\u200b\u8fdb\u884c\u200b\u6837\u672c\u200b\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790\u200b\uff1a

      \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u5bf9\u200b\u968f\u673a\u53d8\u91cf\u200b\\(x = (x_1, \\dots, x_m)^T\\)\u200b\u8fdb\u884c\u200b\u4e86\u200b n \u200b\u6b21\u200b\u89c2\u6d4b\u200b\uff0c\u200b\u6bcf\u6b21\u200b\u89c2\u6d4b\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u200b\u6837\u672c\u200b\\(x_j = (x_{1j}, \\dots, x_{mj})^T\\)\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u6837\u672c\u5747\u503c\u200b\\(\\bar{x} = \\frac{1}{n} \\sum_{j=1}^n x_j\\)\uff0c\u200b\u6837\u672c\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b\\(S = \\frac{1}{n-1} \\sum_{j=1}^n (x_j - \\bar{x})(x_j - \\bar{x})^T\\)\u3002

      \u200b\u5bf9\u4e8e\u200b\u4e00\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b\\(\\a_i\\)\uff0c\u200b\u53ef\u4ee5\u200b\u628a\u200b x \u200b\u8fdb\u884c\u200b\u6295\u5f71\u200b\u5f97\u5230\u200b\\(y_i = \\a_i^T x\\)\u3002\u200b\u5176\u200b\u5747\u503c\u200b\u4e3a\u200b\\(\\bar{y_i} = \\a_i^T \\bar{x}\\)\uff0c\u200b\u65b9\u5dee\u200b\u4e3a\u200b\\(var(y_i) = \\a_i^T S \\a_i\\),\u200b\u534f\u65b9\u5dee\u200b\u4e3a\u200b\\(cov(y_i, y_j) = \\a_i^T S \\a_j\\)\u3002

      \u200b\u90a3\u4e48\u200b\u6837\u672c\u200b\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790\u200b\u7684\u200b\u6b65\u9aa4\u200b\u5982\u4e0b\u200b\uff1a

      • \u200b\u9996\u5148\u200b\u5bf9\u200b\u6837\u672c\u200b\u8fdb\u884c\u200b\u89c4\u8303\u5316\u200b\uff0c\\(x_{ij} = \\frac{x_{ij} - \\bar{x_i}}{\\sqrt{s_{ii}}}\\) \u200b\u5f97\u5230\u200b X
      • \u200b\u7136\u540e\u200b\u8ba1\u7b97\u200b\u76f8\u5173\u77e9\u9635\u200b\\(R = \\frac{1}{n-1} X X^T\\)
      • \u200b\u6c42\u200b\u76f8\u5173\u77e9\u9635\u200b\u7684\u200b k \u200b\u4e2a\u200b\u7279\u5f81\u503c\u200b\\(\\lambda_1, \\dots, \\lambda_k\\)\u200b\u548c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u5355\u4f4d\u200b\u7279\u5f81\u5411\u91cf\u200b\\(\\a_1, \\dots, \\a_k\\)
      • \u200b\u5229\u7528\u200b\u5355\u4f4d\u200b\u7279\u5f81\u5411\u91cf\u200b\u8fdb\u884c\u200b\u6295\u5f71\u200b\uff0c\u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u524d\u200b k \u200b\u4e2a\u4e3b\u200b\u6210\u5206\u200b\u3002
      "},{"location":"Note/Data%20Modeling/PCA/#_9","title":"\u5947\u5f02\u200b\u503c\u6cd5","text":"
      • \u200b\u4ee4\u200b \\(X' = \\frac{1}{\\sqrt{n-1}} X\\)
      • \u200b\u8fdb\u884c\u200b\u622a\u65ad\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\uff0c\\(X' = U \\Sigma V^T\\)
      • \u200b\u6837\u672c\u200b\u4e3b\u200b\u6210\u5206\u200b\u77e9\u9635\u200b\u5c31\u662f\u200b\uff1a \\(Y = V^T X\\)
      "},{"location":"Note/Data%20Modeling/Perceptron/","title":"\u611f\u77e5\u673a","text":"

      \u200b\u7ea6\u200b 846 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

      "},{"location":"Note/Data%20Modeling/Perceptron/#_2","title":"\u539f\u59cb\u200b\u5f62\u5f0f","text":"

      \u200b\u611f\u77e5\u673a\u200b\u7684\u200b\u7ed3\u6784\u200b\u5982\u4e0b\u200b\u56fe\u200b\u6240\u793a\u200b\uff0c\u200b\u88ab\u200b\u89c6\u4e3a\u200b\u662f\u200b\u6700\u200b\u7b80\u5355\u200b\u7684\u200b\u524d\u9988\u200b\u795e\u7ecf\u7f51\u7edc\u200b\uff0c\u200b\u662f\u200b\u4e00\u79cd\u200b\u4e8c\u5143\u200b\u7ebf\u6027\u200b\u5206\u7c7b\u5668\u200b\u3002

      \u200b\u4e0b\u9762\u200b\u7ed9\u51fa\u200b\u5f62\u5f0f\u5316\u200b\u8868\u8ff0\u200b\uff1a

      \u200b\u611f\u77e5\u673a\u200b

      \u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(y_i \\in \\{1\uff0c-1\\}\\)\u200b\u662f\u200b\u6570\u636e\u200b\u6807\u7b7e\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u627e\u5230\u200b\u4e00\u7ec4\u200b\\((w\uff0cb)\\)\u200b\u4f7f\u5f97\u200b\u51fd\u6570\u200b\\(f(x) = sign(w \\cdot x + b)\\)\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u6700\u5c0f\u200b\uff1a

      \\[ \\min L(w\uff0cb) = - \\sum_{i=1}^{n} y_i(w \\cdot x_i + b) \\]

      \u200b\u6ce8\u610f\u200b\u4e0a\u200b\u6587\u4e2d\u200b\u7684\u200b\\(sign\\)\u200b\u51fd\u6570\u200b\uff0c\u200b\u5b83\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a

      \\[ sign(x) = \\left\\{ \\begin{aligned} 1\uff0c & x \\geq 0 \\\\ -1\uff0c & x < 0 \\end{aligned} \\right. \\]

      \u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5982\u679c\u200b\\(y_i\\)\u200b\u548c\u200b\\(f(x)\\)\u200b\u82e5\u200b\u662f\u200b\u7b26\u53f7\u200b\u76f8\u540c\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\uff09\uff0c\u200b\u90a3\u4e48\u200b\\(y_i(w \\cdot x_i + b)\\)\u200b\u7684\u200b\u503c\u200b\u5c31\u662f\u200b 1\uff0c\u200b\u53cd\u4e4b\u200b\u5219\u200b\u662f\u200b-1.\u200b\u56e0\u6b64\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u5c3d\u53ef\u80fd\u200b\u6700\u5927\u5316\u200b\u6240\u6709\u200b\\(y_i(w \\cdot x_i + b)\\)\u200b\u6c42\u548c\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u8fd9\u200b\u4e5f\u200b\u7b49\u6548\u4e8e\u200b\u6700\u5c0f\u5316\u200b\u5176\u200b\u8d1f\u6570\u200b.\uff08\u200b\u8be5\u200b\u9886\u57df\u200b\u7ea6\u5b9a\u4fd7\u6210\u200b\u5c31\u662f\u200b\u5199\u6210\u200b\u6700\u5c0f\u5316\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\uff0c\u200b\u6700\u5c0f\u5316\u200b\u548c\u200b\u6700\u5927\u5316\u200b\u4e4b\u95f4\u200b\u53ea\u8981\u200b\u52a0\u200b\u4e00\u4e2a\u200b\u8d1f\u53f7\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e92\u76f8\u8f6c\u5316\u200b\uff09

      \u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b SGD\uff08Stochastic Gradient Descent\uff09\u200b\u6765\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u95ee\u9898\u200b\uff0c\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u7684\u200b\u68af\u5ea6\u200b\u4e3a\u200b\uff1a

      \\[\\begin{aligned} &\\nabla_w L(w\uff0cb) = - \\sum_{i=1}^{n} y_i x_i \\\\ &\\nabla_b L(w\uff0cb) = - \\sum_{i=1}^{n} y_i \\end{aligned}\\]

      \u200b\u4ece\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u968f\u673a\u200b\u9009\u53d6\u200b\u4e00\u4e2a\u200b\u6837\u672c\u200b\\((x_i\uff0cy_i)\\)\uff0c\u200b\u66f4\u65b0\u200b\u53c2\u6570\u200b\uff1a

      \\[\\begin{aligned} & w = w + \\eta y_i x_i\\\\ & b = b + \\eta y_i \\\\ \\end{aligned}\\]

      \u200b\u76f4\u5230\u200b\u6ca1\u6709\u200b\u8bef\u200b\u5206\u7c7b\u200b\u70b9\u200b.\u200b\u5176\u4e2d\u200b\\(\\eta \\in (0\uff0c1]\\)\u200b\u662f\u200b\u5b66\u4e60\u200b\u7387\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Perceptron/#_3","title":"\u6536\u655b\u6027","text":"

      \u200b\u53ef\u4ee5\u200b\u8bc1\u660e\u200b\uff0c\u200b\u611f\u77e5\u673a\u200b\u7684\u200b\u8bef\u200b\u5206\u7c7b\u200b\u6b21\u6570\u200b K \u200b\u5b58\u5728\u200b\u4e00\u4e2a\u200b\u4e0a\u200b\u754c\u200b\uff0c\u200b\u5373\u200b\uff1b

      \\[\\begin{aligned} & K \\leq (\\frac{R}{\\gamma})^2 \\\\ & R = \\max_{1 \\leq i \\leq n} ||x_i|| \\\\ & \\gamma = \\min_{1 \\leq i \\leq n} y_i(w^* \\cdot x_i + b^*) \\end{aligned}\\]

      \u200b\u5176\u4e2d\u200b\\(w^*\uff0cb^*\\)\u200b\u662f\u200b\u6700\u4f18\u200b\u89e3\u200b\uff0c\\(R\\)\u200b\u662f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u6837\u672c\u200b\u70b9\u200b\u7684\u200b\u6700\u5927\u200b\u8303\u6570\u200b\uff0c\\(\\gamma\\)\u200b\u662f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u6700\u5c0f\u200b\u8ddd\u79bb\u200b\u3002 \u200b\u5bf9\u200b\u8bc1\u660e\u200b\u8fc7\u7a0b\u200b\u611f\u5174\u8da3\u200b\u7684\u200b\u53ef\u4ee5\u200b\u770b\u4e66\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e0d\u200b\u5c55\u5f00\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Perceptron/#_4","title":"\u5bf9\u5076\u200b\u5f62\u5f0f","text":"

      \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u53c2\u6570\u200b\u4e3a\u200b\\(w_0 = 0\uff0cb_0 = 0\\)\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a

      \\[\\begin{aligned} & w = \\sum \\eta y_i x_i \\\\ & b = \\sum \\eta y_i \\end{aligned}\\]

      \u200b\u5176\u4e2d\u200b\\(\\eta\\)\u200b\u662f\u200b\u5b66\u4e60\u200b\u7387\u200b.\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u662f\u4ece\u200b 0 \u200b\u5f00\u59cb\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u5f80\u200b\u53c2\u6570\u200b\u4e0a\u52a0\u200b\u4e00\u5b9a\u200b\u7684\u200b\u66f4\u65b0\u200b\u503c\u200b\uff0c\u200b\u6240\u4ee5\u200b\u4e0a\u200b\u5f0f\u200b\u81ea\u7136\u200b\u6210\u7acb\u200b\u3002

      \u200b\u5047\u8bbe\u200b\u5176\u4e2d\u200b\u7b2c\u200b i \u200b\u4e2a\u200b\u6570\u636e\u200b\u70b9\u200b\u5728\u200b SGD \u200b\u4e2d\u200b\u88ab\u200b\u968f\u673a\u200b\u9009\u4e2d\u200b\u4e86\u200b\\(n_i\\)\u200b\u6b21\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5b83\u200b\u56e0\u6b64\u200b\u5bfc\u81f4\u200b\u4e86\u200b\\(n_i\\)\u200b\u6b21\u200b\u53c2\u6570\u200b\u7684\u200b\u66f4\u65b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u4e0a\u5f0f\u200b\u5199\u6210\u200b\uff1a

      \\[\\begin{aligned} & w = \\sum_{i=1}^{n} \\eta n_i y_i x_i \\\\ & b = \\sum_{i=1}^{n} \\eta n_i y_i \\end{aligned}\\]

      \u200b\u4ee4\u200b\\(\\alpha_i = \\eta n_i\\)\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a

      \\[\\begin{aligned} & w = \\sum_{i=1}^{n}\\alpha_i y_i x_i \\\\ & b = \\sum_{i=1}^{n}\\alpha_i y_i \\end{aligned}\\]

      \u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u7c7b\u200b\u51fd\u6570\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5199\u6210\u200b\uff1a

      \\[ f(x) = sign(\\sum_{i=1}^{n}\\alpha_i y_i\uff08 x_i \\cdot x \uff09 + \\sum_{i=1}^{n}\\alpha_i y_i) \\]

      \u200b\u6bcf\u6b65\u200b SGD \u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u66f4\u65b0\u200b\\(\\alpha_i\\):

      \\[ \\alpha_i = \\alpha_i + \\eta \\]

      \u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u7c7b\u200b\u51fd\u6570\u200b\u4e2d\u200b\u53ea\u6709\u200b\\(\\alpha_i\\)\u200b\u9700\u8981\u200b\u6bcf\u6b21\u200b\u66f4\u65b0\u200b\uff0c\u200b\u9664\u6b64\u4e4b\u5916\u200b\u8fd8\u6709\u200b\u5927\u91cf\u200b\u7684\u200b x \u200b\u7684\u200b\u5185\u79ef\u200b\u8fd0\u7b97\u200b\uff0c\u200b\u4e3a\u4e86\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b x \u200b\u7684\u200b\u5185\u79ef\u200b\u9884\u5148\u200b\u8ba1\u7b97\u51fa\u6765\u200b\uff0c\u200b\u8fd9\u200b\u88ab\u79f0\u4f5c\u200b Gram \u200b\u77e9\u9635\u200b\uff1a

      Gram \u200b\u77e9\u9635\u200b

      \u200b\u7ed9\u5b9a\u200b n \u200b\u4e2a\u200b\u5411\u91cf\u200b\\(x_1\uff0cx_2\uff0c...\uff0cx_n\\)\uff0c\u200b\u90a3\u4e48\u200b Gram \u200b\u77e9\u9635\u200b\\(G\\)\u200b\u662f\u200b\u7531\u200b\u8fd9\u4e9b\u200b\u5411\u91cf\u200b\u6240\u6709\u200b\u53ef\u80fd\u200b\u7684\u200b\u5185\u79ef\u200b\u7ec4\u6210\u200b\u7684\u200b\u77e9\u9635\u200b\uff0c\u200b\u5373\u200b\uff1a

      \\[ g_{ij} = x_i \\cdot x_j \\]"},{"location":"Note/Data%20Modeling/SVD/","title":"\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3","text":"

      \u200b\u7ea6\u200b 1597 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 5 \u200b\u5206\u949f\u200b

      "},{"location":"Note/Data%20Modeling/SVD/#_2","title":"\u52a8\u673a","text":"

      \u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u79cd\u200b\u5bf9\u200b\u4efb\u610f\u200b\u975e\u96f6\u200b\u5b9e\u77e9\u9635\u200b(1)\u200b\u7684\u200b\u5206\u89e3\u200b\u65b9\u5f0f\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u5176\u200b\u53ef\u4ee5\u200b\u88ab\u200b\u5bf9\u200b\u89d2\u5316\u200b\uff0c\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\uff08Singular Value Decomposition\uff0cSVD\uff09\u200b\u5c31\u662f\u200b\u8fd9\u6837\u200b\u4e00\u79cd\u200b\u5206\u89e3\u200b\u65b9\u5f0f\u200b\u3002

      1. \u200b\u5373\u4f7f\u200b\u662f\u975e\u200b\u65b9\u9635\u200b

      \u200b\u5f62\u5f0f\u5316\u200b\u7684\u200b\u8868\u8ff0\u200b\u5982\u4e0b\u200b\uff1a

      \u200b\u5bf9\u4e8e\u200b \\( A_{m \\times n} \\) \uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b

      \\[ A_{m \\times n} = U_{m \\times m} \\Sigma_{m \\times n} V_{n \\times n}^T \\]

      \u200b\u5176\u4e2d\u200b \\( U \\) \u200b\u548c\u200b \\( V \\) \u200b\u662f\u200b\u6b63\u4ea4\u200b\u77e9\u9635\u200b(1)\uff0c\u200b\u5176\u4e2d\u200b\\(U\\)\u200b\u7684\u200b\u5217\u200b\u5411\u91cf\u200b\u79f0\u4e3a\u200b\u5de6\u200b\u5947\u5f02\u200b\u5411\u91cf\u200b\u800c\u200b\\(V\\)\u200b\u7684\u200b\u5217\u200b\u5411\u91cf\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u53f3\u200b\u5947\u5f02\u200b\u5411\u91cf\u200b\u3002

      1. \u200b\u4e5f\u200b\u5c31\u662f\u200b\u4e0e\u200b\u81ea\u5df1\u200b\u7684\u200b\u8f6c\u7f6e\u200b\u77e9\u9635\u200b\u76f8\u4e58\u200b\u5f97\u5230\u200b\u5355\u4f4d\u77e9\u9635\u200b

      \\( \\Sigma \\) \u200b\u662f\u200b\u5bf9\u89d2\u200b\u77e9\u9635\u200b\uff0c\u200b\u5bf9\u89d2\u7ebf\u200b\u4e0a\u200b\u7684\u200b\u5143\u7d20\u200b\u975e\u8d1f\u200b\u5e76\u4e14\u200b\u964d\u5e8f\u200b\u6392\u5217\u200b\uff0c\u200b\u5b83\u4eec\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u5947\u5f02\u200b\u503c\u200b\u3002\u200b\u56e0\u4e3a\u200b\u5e76\u200b\u4e0d\u662f\u200b\u65b9\u9635\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5bf9\u89d2\u7ebf\u200b\u5143\u7d20\u200b\u4e2a\u6570\u200b\u4e3a\u200b \\(min(m,n)\\)\u3002

      "},{"location":"Note/Data%20Modeling/SVD/#_3","title":"\u601d\u60f3","text":"

      \u200b\u4e0d\u5931\u200b\u4e00\u822c\u6027\u200b\uff0c\u200b\u5047\u8bbe\u200b\\(m>n\\)\uff0c\u200b\u90a3\u4e48\u200b\u5bf9\u89d2\u200b\u77e9\u9635\u200b\u53ef\u4ee5\u200b\u8868\u793a\u200b\u4e3a\u200b\\(\\Sigma = \\begin{bmatrix} \\Sigma' \\\\ 0 \\end{bmatrix}\\), \u200b\u800c\u200b\\(\\Sigma'\\)\u200b\u4e2d\u200b\u5e76\u200b\u4e0d\u662f\u200b\u6bcf\u4e2a\u200b\u5bf9\u89d2\u7ebf\u200b\u5143\u7d20\u200b\u90fd\u200b\u4e3a\u200b 0\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5047\u8bbe\u200b\u6240\u6709\u200b\u975e\u96f6\u200b\u5143\u7d20\u200b\u6784\u6210\u200b\u4e00\u4e2a\u200b\u5bf9\u89d2\u200b\u77e9\u9635\u200b\\(\\Sigma_1\\)\uff0c\u200b\u4f7f\u5f97\u200b\\(\\Sigma' = \\begin{bmatrix} \\Sigma_1 & 0 \\\\ 0 & 0 \\end{bmatrix}\\)\uff0c\u200b\u53d8\u91cf\u200b\\(r = r(\\Sigma_1) = r(A)\\)\u3002

      \u200b\u90a3\u4e48\u200b\u5bf9\u5e94\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\\(U\\)\u200b\u548c\u200b\\(V\\)\u200b\u5206\u6210\u200b\u4e24\u4e2a\u200b\u5b50\u200b\u77e9\u9635\u200b\\(U = [U_1 \\ U_2] \\ \\ \\ \\ U_1 = [ u_1 \\dots u_r] \\ \\ \\ \\ U_2 = [u_{r+1} \\dots u_m]\\)\uff0c\\(V = [V_1 \\ V_2] \\ \\ \\ \\ V_1 = [ v_1 \\dots v_r] \\ \\ \\ \\ V_2 = [v_{r+1} \\dots v_n]\\)\u3002

      \u200b\u4ee3\u56de\u200b\u539f\u5f0f\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b

      \\[ A = U \\Sigma V^T = [U_1 \\ U_2] \\begin{bmatrix} \\Sigma_1 & 0 \\\\ 0 & 0 \\end{bmatrix} [V_1 \\ V_2]^T = U_1 \\Sigma_1 V_1^T \\]

      \u200b\u6240\u4ee5\u200b\u4e00\u65e6\u200b\u786e\u5b9a\u200b\u4e86\u200b\\(U_1, \\Sigma_1, V_1\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u4e58\u79ef\u200b\u8fd8\u539f\u200b\u51fa\u200b\\(A\\)\uff0c\u200b\u56e0\u6b64\u200b\u627e\u5230\u200b\u8fd9\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\u5c06\u200b\u662f\u200b\u6784\u9020\u200b\u7684\u200b\u91cd\u70b9\u200b\u3002

      \u200b\u800c\u200b\u627e\u5230\u200b\u8fd9\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\u4e4b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ea\u200b\u9700\u8981\u200b\u628a\u200b\\(U_1,V_1\\)\u200b\u6269\u5145\u200b\u6210\u200b\u6b63\u4ea4\u200b\u77e9\u9635\u200b\u5373\u53ef\u200b\u3002

      "},{"location":"Note/Data%20Modeling/SVD/#_4","title":"\u6784\u9020","text":"

      \u200b\u7531\u4e8e\u200b\u6211\u4eec\u200b\u5df2\u7ecf\u200b\u77e5\u9053\u200b\u4e86\u200b\u5982\u4f55\u200b\u5bf9\u5b9e\u200b\u5bf9\u79f0\u200b\u77e9\u9635\u200b\u8fdb\u884c\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u53ef\u4ee5\u200b\u4ece\u200b \\(A\\) \u200b\u6784\u9020\u200b\u51fa\u6765\u200b\u4e00\u4e2a\u200b\u5b9e\u200b\u5bf9\u79f0\u200b\u77e9\u9635\u200b\uff0c\u200b\u7136\u540e\u200b\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b $ A $ \u200b\u7684\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u4e86\u200b\u3002

      \u200b\u663e\u7136\u200b\uff0c\u200b\u77e9\u9635\u200b $ A^T A $ \u200b\u662f\u200b\u4e00\u4e2a\u200b\u5b9e\u200b\u5bf9\u79f0\u200b\u77e9\u9635\u200b\uff0c\u200b\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\uff0c\u200b\u5f97\u5230\u200b

      \\[ V^T (A^T A) V = \\Lambda \\]

      \\(\\Lambda\\) \u200b\u7279\u5f81\u503c\u200b\u5747\u200b\u975e\u8d1f\u200b(1)\u200b\u5e76\u4e14\u200b \\(r(\\Lambda) = r(A^T A) = r(A) = r\\)

      1. \\(\\|Ax\\|^2 = x^T A^T A x = \\lambda x^T x = \\lambda \\|x\\|^2\\)

        \\(\\lambda = \\frac{\\|Ax\\|^2}{\\|x\\|^2} \\geq 0\\)

      \u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5bf9\u200b \\(\\Lambda\\) \u200b\u7684\u200b\u7279\u5f81\u503c\u200b\u8fdb\u884c\u200b\u4e00\u4e2a\u200b\u975e\u51cf\u200b\u7684\u200b\u6392\u5e8f\u200b \\(\\lambda_1 \\geq \\lambda_2 \\geq \\dots \\geq \\lambda_r \\ \\ \\ \\ \\lambda_{r+1} = \\dots = \\lambda_n = 0\\) \u200b\u5e76\u4e14\u200b\u5b9a\u4e49\u200b\u5947\u5f02\u200b\u503c\u4e3a\u200b \\(\\sigma_i = \\sqrt{\\lambda_i}\\)

      \u200b\u4f9d\u636e\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u503c\u200b\u662f\u4e0d\u662f\u200b 0\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\\(V\\)\u200b\u5206\u6210\u200b\u4e24\u4e2a\u200b\u5b50\u200b\u77e9\u9635\u200b \\(V = [V_1 \\ V_2] \\ \\ \\ \\ V_1 = [ v_1 \\dots v_2] \\ \\ \\ \\ V_2 = [v_{r+1} \\dots v_n]\\)

      \u200b\u5bf9\u5e94\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u5bf9\u200b \\(\\Sigma\\) \u200b\u8fdb\u884c\u200b\u5212\u5206\u200b\uff0c\\(\\Sigma = \\begin{bmatrix} \\Sigma_1 & 0 \\\\ 0 & 0 \\end{bmatrix} \\ \\ \\ \\ \\Sigma_1 = \\begin{bmatrix} \\sigma_1 & & \\\\ & \\ddots & \\\\ & & \\sigma_r \\end{bmatrix}\\)

      \u200b\u5c06\u200b\u5206\u5272\u200b\u540e\u200b\u7684\u200b\u77e9\u9635\u200b\u4ee3\u56de\u200b\u539f\u5f0f\u200b\uff0c\u200b\u5f97\u5230\u200b

      \\[ V^T(A^T A)V = [V_1 V_2]^T (A^T A) [V_1 V_2] = \\begin{bmatrix} V_1^T A^T A V_1 & V_1^T A^T A V_2 \\\\ V_2^T A^T A V_1 & V_2^T A^T A V_2 \\end{bmatrix} = \\begin{bmatrix} \\Sigma_1^2 & 0 \\\\ 0 & 0 \\end{bmatrix} = \\Lambda \\]

      \u200b\u4e0d\u96be\u200b\u53d1\u73b0\u200b \\(AV_2 = 0\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\\(V_2\\)\u200b\u5728\u200b\\(A\\)\u200b\u7684\u200b\u96f6\u7a7a\u95f4\u200b\u4e2d\u200b\u3002

      \u200b\u8fd9\u200b\u4e5f\u200b\u5c31\u200b\u610f\u5473\u7740\u200b

      \\[ A = A I = A(V^T V) = A (V_1 V_1^T + V_2 V_2^T) = A V_1 V_1^T + A V_2 V_2^T = A V_1 V_1^T \\]

      \u200b\u56de\u60f3\u200b

      \u200b\u56de\u60f3\u200b\u6211\u4eec\u200b\u4e4b\u524d\u200b\u7684\u200b\u601d\u8def\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u627e\u5230\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\uff0c\u200b\u4f7f\u5f97\u200b

      \\[ U_1 \\Sigma_1 V_1^T = A \\]

      \u200b\u800c\u200b\u6211\u4eec\u200b\u53c8\u200b\u63a8\u51fa\u200b\u4e86\u200b\\(A = A V_1 V_1^T\\)\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u627e\u5230\u200b

      \\[\\begin{align*} U_1 \\Sigma_1 V_1^T &= A V_1 V_1^T \\\\ U_1 \\Sigma_1 &= A V_1 \\\\ \\end{align*}\\]

      \u200b\u4e0d\u96be\u200b\u53d1\u73b0\u200b\uff0c\u200b\u5728\u200b\u5df2\u7ecf\u200b\u6709\u200b\u4e86\u200b\\(V_1, \\Sigma\\) \u200b\u7684\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c \\(U_1\\)\u200b\u5176\u5b9e\u200b\u662f\u200b\u5f88\u200b\u597d\u200b\u6784\u9020\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u5bf9\u200b \\(\\forall j \\in [1,r]\\) \uff0c\u200b\u4ee4\u200b\\(u_j = \\frac{1}{\\sigma_j} A v_j\\)\uff0c\u200b\u90a3\u4e48\u200b\\(U_1 = [u_1 \\dots u_r]\\)\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u7684\u200b\u77e9\u9635\u200b\u4e86\u200b\u3002

      \u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u628a\u200b\\(U_1\\)\u200b\u6269\u5145\u200b\u6210\u200b\u6b63\u4ea4\u200b\u77e9\u9635\u200b\\(U = [U_1 \\ U_2]\\)\uff0c\u200b\u4fbf\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b

      \\[ A = U \\Sigma V^T \\]"},{"location":"Note/Data%20Modeling/SVD/#_5","title":"\u53d8\u4f53","text":"

      \u200b\u4e0d\u96be\u200b\u53d1\u73b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\\(U_1, \\Sigma_1, V_1\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8fd8\u539f\u200b\u51fa\u200b\\(A\\)\u200b\u4e86\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u53ea\u53d6\u200b\u8fd9\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u5206\u89e3\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u7d27\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u3002

      \u200b\u66f4\u8fdb\u4e00\u6b65\u200b\u7684\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u8fde\u200b r \u200b\u7ef4\u200b\u7684\u200b\u77e9\u9635\u200b\u90fd\u200b\u65e0\u6cd5\u200b\u63a5\u53d7\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u9009\u62e9\u200b\u53ea\u200b\u4fdd\u7559\u200b\u524d\u200b\\(k\\)\u200b\u7ef4\u200b\uff0c\u200b\u8fd9\u6837\u200b\u5f97\u5230\u200b\u7684\u200b\u5c31\u662f\u200b\u622a\u65ad\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u3002\u200b\u622a\u65ad\u200b\u5947\u5f02\u200b\u503c\u5206\u200b\u5c31\u200b\u65e0\u6cd5\u200b\u51c6\u786e\u200b\u7684\u200b\u8fd8\u539f\u200b\u51fa\u200b\\(A\\)\u200b\u4e86\u200b\uff0c\u200b\u4f46\u662f\u200b\u53ef\u4ee5\u200b\u8bc1\u660e\u200b\uff0c\u200b\u622a\u65ad\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u662f\u200b\u5f17\u6d1b\u200b\u8d1d\u200b\u5c3c\u4e4c\u65af\u200b\u8303\u6570\u200b(1)\u200b\u4e0b\u200b\u7684\u200b\u6700\u4f18\u200b\u8fd1\u4f3c\u200b\u3002

      1. \\(\\|A\\|_F = \\sqrt{\\sum_{i=1}^m \\sum_{j=1}^n a_{ij}^2}\\)
      "},{"location":"Note/Data%20Modeling/SVD/#_6","title":"\u6027\u8d28","text":"

      \u200b\u5de6\u53f3\u200b\u5947\u5f02\u200b\u5411\u91cf\u200b\u4e92\u76f8\u8f6c\u5316\u200b\uff1a

      \\[\\begin{align*} \\sigma_j u_j &= A v_j \\ \\ \\ \\ \\forall j \\in [1,r] \\\\ A^T u_j &= \\sigma_j v_j \\ \\ \\ \\ \\forall j \\in [1,r]\\\\ \\end{align*}\\]

      \u200b\u53f3\u200b\u5947\u5f02\u200b\u5411\u91cf\u200b\\(v_1, \\dots, v_r\\)\u200b\u662f\u200b\\(A^T\\)\u200b\u7684\u200b\u6b63\u4ea4\u200b\u57fa\u200b\uff0c\\(v_{r+1}, \\dots, v_n\\)\u200b\u662f\u200b\\(N(A)\\)\u200b\u7684\u200b\u6b63\u4ea4\u200b\u57fa\u200b\u3002

      \u200b\u5de6\u200b\u5947\u5f02\u200b\u5411\u91cf\u200b\\(u_1, \\dots, u_r\\)\u200b\u662f\u200b\\(A\\)\u200b\u7684\u200b\u6b63\u4ea4\u200b\u57fa\u200b(1)\uff0c\\(u_{r+1}, \\dots, u_m\\)\u200b\u662f\u200b\\(N(A^T)\\)\u200b\u7684\u200b\u6b63\u4ea4\u200b\u57fa\u200b\u3002

      1. \\[\\begin{align*} u_i^T u_j &= ( \\frac{1}{\\sigma_i} v_i^T A^T) ( \\frac{1}{\\sigma_j A v_j}) \\\\ &= \\frac{1}{\\sigma_i \\sigma_j} v_i^T A^T A v_j \\\\ &= \\frac{1}{\\sigma_i \\sigma_j} v_i^T v_j (v_j^T A^T A v_j) \\\\ &= \\frac{1}{\\sigma_i \\sigma_j} \\sigma_j^2 v_i^T v_j \\\\ &= \\delta_{ij} \\end{align*}\\]

      \\(A^T A\\)\u200b\u548c\u200b\\(A A^T\\)\u200b\u7684\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\u5b58\u5728\u200b\uff0c\u200b\u5e76\u4e14\u200b\u53ef\u4ee5\u200b\u65b9\u4fbf\u200b\u7684\u200b\u5f97\u5230\u200b\uff1a

      \\[\\begin{align*} A^T A = (U \\Sigma V^T)^T (U \\Sigma V^T) = V \\Sigma^T U^T U \\Sigma V^T = V \\Sigma^T \\Sigma V^T \\\\ A A^T = (U \\Sigma V^T) (U \\Sigma V^T)^T = U \\Sigma V^T V \\Sigma^T U^T = U \\Sigma \\Sigma^T U^T \\end{align*}\\]"},{"location":"Note/Data%20Modeling/SVD/#_7","title":"\u51e0\u4f55\u200b\u89e3\u91ca","text":"

      \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b m*n \u200b\u77e9\u9635\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5427\u200b\\(A\\)\u200b\u7406\u89e3\u200b\u6210\u200b\u4e00\u4e2a\u200b\u4ece\u200b\\(\\mathbb{R}^n\\)\u200b\u5230\u200b\\(\\mathbb{R}^m\\)\u200b\u7684\u200b\u7ebf\u6027\u53d8\u6362\u200b\uff0c\u200b\u800c\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u5c31\u662f\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u7ebf\u6027\u53d8\u6362\u200b\u5206\u89e3\u6210\u200b\u4e09\u4e2a\u200b\u90e8\u5206\u200b\uff1a

      • \\(V^T\\)\uff1a\u200b\u4ece\u200b\\(\\mathbb{R}^n\\)\u200b\u5230\u200b\\(\\mathbb{R}^n\\)\u200b\u7684\u200b\u65cb\u8f6c\u53d8\u6362\u200b
      • \\(\\Sigma\\)\uff1a\u200b\u4ece\u200b\\(\\mathbb{R}^n\\)\u200b\u5230\u200b\\(\\mathbb{R}^m\\)\u200b\u7684\u200b\u7f29\u653e\u200b\u53d8\u6362\u200b
      • \\(U\\)\uff1a\u200b\u4ece\u200b\\(\\mathbb{R}^m\\)\u200b\u5230\u200b\\(\\mathbb{R}^m\\)\u200b\u7684\u200b\u65cb\u8f6c\u53d8\u6362\u200b

      \u200b\u56e0\u4e3a\u200b\\(U,V\\)\u200b\u90fd\u200b\u662f\u200b\u6b63\u4ea4\u200b\u77e9\u9635\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5b83\u4eec\u200b\u5929\u7136\u200b\u7684\u200b\u5bf9\u5e94\u200b\u4e00\u4e2a\u200b\u65cb\u8f6c\u53d8\u6362\u200b\uff0c\u200b\u800c\u200b\\(\\Sigma\\)\u200b\u4f5c\u4e3a\u200b\u5bf9\u89d2\u200b\u77e9\u9635\u200b\uff0c\u200b\u5bf9\u5e94\u200b\u4e00\u4e2a\u200b\u7f29\u653e\u200b\u53d8\u6362\u200b\u3002

      \u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u7684\u200b\u5b58\u5728\u200b\u6027\u200b\u9690\u542b\u200b\u4e86\u200b\u8fd9\u79cd\u200b\u53d8\u6362\u200b\u5206\u89e3\u200b\u7684\u200b\u5b58\u5728\u200b\u6027\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u975e\u96f6\u200b\u7684\u200b\u5b9e\u200b\u53d8\u6362\u200b\u90fd\u200b\u53ef\u4ee5\u200b\u5206\u89e3\u200b\u4e3a\u200b\u8fd9\u200b\u4e09\u4e2a\u200b\u53d8\u6362\u200b\u7684\u200b\u7ec4\u5408\u200b\u3002

      "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/","title":"\u652f\u6301\u200b\u5411\u91cf\u200b\u673a","text":"

      \u200b\u7ea6\u200b 2059 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 7 \u200b\u5206\u949f\u200b

      Warning

      \u200b\u5f88\u591a\u200b\u4eba\u200b\u90fd\u200b\u5410\u200b\u69fd\u200b\uff0c\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u673a\u200b\u8fd9\u4e2a\u200b\u540d\u5b57\u200b\u8d77\u200b\u7684\u200b\u4f9d\u6258\u200b

      "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_2","title":"\u6a21\u578b\u200b\u63cf\u8ff0","text":"

      \u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(x_i \\in \\mathbb{R}^n\uff0c y \\in \\{1\uff0c-1\\}\\)\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u8d85\u5e73\u9762\u200b\\(w\\cdot x + b = 0\\)\u200b\u5c06\u200b\u6570\u636e\u200b\u96c6\u200b\u5206\u5f00\u200b\u3002

      \u200b\u5b9e\u4f8b\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b

      \\[ \\gamma_i = \\frac{y_i(w\\cdot x_i + b)}{\\|w\\|} \\]

      \u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5176\u200b\u7edd\u5bf9\u503c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u70b9\u5230\u200b\u76f4\u7ebf\u200b\u8ddd\u79bb\u200b

      \u200b\u5b9e\u4f8b\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b

      \\[ \\hat{\\gamma_i} = y_i(w\\cdot x_i + b) \\]

      \u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5176\u200b\u7edd\u5bf9\u503c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u9664\u53bb\u200b\u4e86\u200b\\(||w||\\)\u200b\u8fd9\u4e2a\u200b\u56e0\u7d20\u200b

      \u200b\u4e0a\u8ff0\u200b\u7684\u200b\u53d8\u91cf\u200b\u7684\u200b\u7edd\u5bf9\u503c\u200b\u542b\u4e49\u200b\u90fd\u200b\u8868\u793a\u200b\u67d0\u79cd\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u800c\u200b\u7b26\u53f7\u200b\u8868\u793a\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\u4e0e\u5426\u200b\uff0c\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\u65f6\u95f4\u200b\u9694\u4e3a\u200b\u6b63\u200b\uff0c\u200b\u5206\u7c7b\u200b\u9519\u8bef\u200b\u65f6\u95f4\u200b\u9694\u4e3a\u200b\u8d1f\u200b

      \u200b\u7ed9\u5b9a\u200b\u4e00\u7ec4\u200b\u6570\u636e\u200b\u70b9\u200b\u548c\u200b\u4e00\u4e2a\u200b\u8d85\u5e73\u9762\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u5404\u4e2a\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u548c\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b.\u200b\u4f46\u662f\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u6210\u200b\u6bd4\u4f8b\u200b\u7684\u200b\u540c\u65f6\u200b\u653e\u7f29\u200b w \u200b\u548c\u200b b\uff0c\u200b\u90a3\u4e48\u200b\u8d85\u5e73\u9762\u200b\u548c\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\u90fd\u200b\u5b8c\u5168\u200b\u4e0d\u53d8\u200b\uff0c\u200b\u4f46\u662f\u200b\u6240\u6709\u200b\u70b9\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u90fd\u200b\u4f1a\u200b\u968f\u7740\u200b w \u200b\u7684\u200b\u53d8\u5316\u200b\u800c\u200b\u53d8\u5316\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\uff08\u200b\u4e0d\u53d8\u200b\uff09\u200b\u4e58\u200b\u4e0a\u200b w \u200b\u7684\u200b\u6a21\u200b\uff08\u200b\u6b63\u5728\u200b\u88ab\u6210\u200b\u6bd4\u4f8b\u200b\u653e\u7f29\u200b\uff09

      \u200b\u4e3a\u4e86\u200b\u63d0\u9ad8\u200b\u5206\u7c7b\u200b\u7684\u786e\u200b\u4fe1\u5ea6\u200b\u548c\u200b\u6cdb\u5316\u200b\u80fd\u529b\u200b\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6700\u5927\u5316\u200b\u6700\u5c0f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5c3d\u91cf\u200b\u63d0\u9ad8\u200b\u6240\u6709\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u8ddd\u79bb\u200b\u7684\u200b\u4e0b\u754c\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u8ba9\u200b\u6240\u6709\u200b\u70b9\u200b\u90fd\u200b\u5c3d\u53ef\u80fd\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u8fdc\u200b\u4e00\u70b9\u200b\uff08\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u5f88\u8fd1\u200b\u7684\u8bdd\u200b\uff0c\u200b\u7a0d\u5fae\u200b\u6709\u200b\u4e00\u70b9\u200b\u6270\u52a8\u200b\u5c31\u200b\u5bb9\u6613\u200b\u88ab\u200b\u5206\u6210\u200b\u53e6\u4e00\u7c7b\u200b\uff09

      \u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5199\u51fa\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b

      \\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\gamma \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq \\gamma\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

      \u200b\u5176\u4e2d\u200b\u7684\u200b\\(\\gamma = \\underset {i}{\\operatorname{min}} \\gamma_i\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u6700\u5c0f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b

      \u200b\u89c2\u5bdf\u200b\u5230\u200b\\(\\gamma\\|w\\| = \\hat{\\gamma}\\)\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5c06\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\u8f6c\u5316\u200b\u4e3a\u200b

      \\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\frac{\\hat{\\gamma}}{\\|w\\|} \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq \\hat{\\gamma}\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

      \u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u6210\u200b\u6bd4\u4f8b\u200b\u7684\u200b\u653e\u7f29\u200b w \u200b\u548c\u200b b \u200b\u6765\u200b\u8c03\u8282\u200b\\(\\hat{\\gamma}\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u653e\u7f29\u200b\\(w\\)\u200b\u4f7f\u5f97\u200b\\(\\hat{\\gamma} = 1\\)\uff0c\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\u8f6c\u5316\u200b\u4e3a\u200b

      \\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\frac{1}{\\|w\\|} \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq 1\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

      \u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b\u53ef\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(w^*\uff0cb^*\\)\uff0c\u200b\u6784\u6210\u200b\u6700\u4f18\u200b\u5206\u79bb\u200b\u8d85\u5e73\u9762\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8bc1\u660e\u200b\uff0c\u200b\u8be5\u200b\u8d85\u5e73\u9762\u200b\u5b58\u5728\u200b\u4e14\u200b\u552f\u4e00\u200b\uff0c\u200b\u90a3\u4e9b\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u6700\u8fd1\u200b\u7684\u200b\u70b9\u200b\u5c31\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u652f\u6301\u200b\u5411\u91cf\u200b

      "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_3","title":"\u6a21\u578b\u200b\u6c42\u89e3","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_4","title":"\u5bf9\u5076\u200b\u95ee\u9898","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_5","title":"\u5199\u51fa\u200b\u5bf9\u5076\u200b\u95ee\u9898","text":"

      \u200b\u62c9\u683c\u6717\u200b\u65e5\u200b\u51fd\u6570\u200b\u4e3a\u200b\uff1a

      \\[ L(w\uff0cb\uff0c\\alpha) = \\frac{1}{2}||w||^2 - \\sum_{i=1}^{N}\\alpha_iy_i(w\\cdot x_i + b) + \\sum_{i=1}^{N}\\alpha_i \\]

      \u200b\u6211\u4eec\u200b\u5c06\u200b\u6700\u5c0f\u200b\u6700\u5927\u200b\u95ee\u9898\u200b\u8f6c\u5316\u200b\u4e3a\u200b\u6700\u5927\u200b\u6700\u5c0f\u200b\u95ee\u9898\u200b\uff0c\u200b\u5199\u51fa\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\uff1a

      \\[ \\underset {\\alpha}{\\operatorname{min}} \\underset {w\uff0cb}{\\operatorname{max}} L(w\uff0cb\uff0c\\alpha) \\rightarrow \\underset {\\alpha}{\\operatorname{min}} \\underset {w\uff0cb}{\\operatorname{max}} L(w\uff0cb\uff0c\\alpha) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_6","title":"\u6781\u5c0f\u200b\u5316","text":"

      \u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u8ba9\u200b\\(\\nabla_w L(w\uff0cb\uff0c\\alpha) = 0\\)\u200b\u548c\u200b\\(\\nabla_b L(w\uff0cb\uff0c\\alpha) = 0\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b

      \\[\\begin{aligned} & w = \\sum_{i=1}^{N}\\alpha_i y_i x_i \\\\ & 0 = \\sum_{i=1}^{N}\\alpha_i y_i \\\\ \\end{aligned}\\]

      \u200b\u5e26\u56de\u200b\u539f\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u5f97\u5230\u200b\uff1a

      \\[ L(w\uff0cb\uff0c\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_7","title":"\u6781\u5927\u200b\u5316","text":"

      \u200b\u5728\u200b\u6781\u5c0f\u200b\u5316\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5269\u4e0b\u200b\u7684\u200b\u95ee\u9898\u200b\u5c31\u662f\u200b

      \\[\\begin{aligned} \\underset {\\alpha}{\\operatorname{max}} & \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\\\ s.t. & \\quad \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & \\quad \\alpha_i \\geq 0\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

      \u200b\u901a\u8fc7\u200b\u67d0\u79cd\u200b\u65b9\u5f0f\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^*\\)

      "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_8","title":"\u539f\u59cb\u200b\u95ee\u9898","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#kkt","title":"\u5e94\u7528\u200b KKT \u200b\u6761\u4ef6","text":"

      \u200b\u6709\u200b\u4e86\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u7684\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^* = (\\alpha_1^*\uff0c\\alpha_2^*\uff0c...\uff0c\\alpha_N^*)\\)\uff0c\u200b\u5e94\u7528\u200b KKT \u200b\u6761\u4ef6\u200b\uff1a

      \\[\\begin{align} & \\alpha_i^* \\geq 0 \\tag{1}\\\\ & y_i(w^*\\cdot x_i + b^*) - 1 \\geq 0 \\tag{2}\\\\ & \\alpha_i^*(y_i(w^*\\cdot x_i + b^*) - 1) = 0 \\tag{3}\\\\ & \\nabla_w L(w^*\uff0cb^*\uff0c\\alpha^*) = w^* - \\sum_{i=1}^{N}\\alpha_i^* y_i x_i = 0 \\tag{4}\\\\ & \\nabla_b L(w^*\uff0cb^*\uff0c\\alpha^*) = \\sum_{i=1}^{N}\\alpha_i^* y_i = 0 \\tag{5}\\\\ \\end{align}\\]

      \u200b\u82e5\u200b\\(\\alpha^* = 0\\)\uff0c\u200b\u7531\u200b(4)\u200b\u53ef\u4ee5\u200b\u63a8\u51fa\u200b\\(w^* = 0\\)\uff0c\u200b\u663e\u7136\u200b\u4e0d\u200b\u5bf9\u200b\uff0c\u200b\u6240\u4ee5\u200b\\(\\alpha^*\\)\u200b\u4e0d\u5168\u200b\u4e3a\u200b\u96f6\u200b

      \u200b\u82e5\u200b\\(\\alpha_i^* > 0\\)\uff0c\u200b\u7531\u200b(3)\u200b\u53ef\u4ee5\u200b\u63a8\u51fa\u200b\\(y_i(w^*\\cdot x_i + b^*) = 1\\)\uff0c\u200b\u56de\u5fc6\u200b\u524d\u200b\u6587\u200b\u6211\u4eec\u200b\u5df2\u7ecf\u200b\u4ee4\u200b\\(\\hat{\\gamma} = 1\\)\uff0c\u200b\u6240\u4ee5\u200b j \u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u8ddf\u200b\u6700\u5c0f\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u76f8\u7b49\u200b\uff0c\u200b\u6bcf\u4e2a\u200b j \u200b\u90fd\u200b\u56e0\u6b64\u200b\u6210\u4e3a\u200b\u4e00\u4e2a\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u5176\u4e2d\u200b\u65e2\u6709\u200b\u6b63\u4f8b\u200b\u4e5f\u200b\u6709\u200b\u53cd\u4f8b\u200b

      "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#wb","title":"\u6c42\u200b\u6700\u4f18\u200b w\uff0cb","text":"

      \u200b\u5229\u7528\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b

      \\[\\begin{align} & w^* = \\sum_{i=1}^{N}\\alpha_i^* y_i x_i \\\\ & b^* = y_j - \\sum_{i=1}^{N}\\alpha_i^* y_i (x_i\\cdot x_j) \\\\ \\end{align}\\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_9","title":"\u5f97\u5230\u200b\u5206\u79bb\u200b\u51fd\u6570","text":"

      \u200b\u5229\u7528\u200b\u6700\u4f18\u200b\u89e3\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u5206\u79bb\u200b\u51fd\u6570\u200b

      \\[ f(x) = sign(\\sum_{i=1}^{N}\\alpha_i^* y_i (x_i\\cdot x) + b^*) \\]

      \u200b\u4ee5\u4e0a\u200b\u4fbf\u662f\u200b\u6c42\u89e3\u200b\u4e8c\u6b21\u200b\u89c4\u5212\u200b\u95ee\u9898\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u95f4\u9694\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u5176\u4e2d\u200b\u53ea\u6709\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u4e2d\u200b\u7684\u200b\u6c42\u200b\u7684\u200b\u6700\u4f18\u200b\\(\\alpha^*\\)\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6ca1\u6709\u200b\u9610\u660e\u200b\uff0c\u200b\u540e\u9762\u200b\u4f1a\u200b\u7ed9\u51fa\u200b

      "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_10","title":"\u8f6f\u200b\u95f4\u9694","text":"

      \u200b\u4e00\u822c\u800c\u8a00\u200b\uff0c\u200b\u7531\u4e8e\u200b\u566a\u58f0\u200b\u7684\u200b\u5e72\u6270\u200b\uff0c\u200b\u6211\u4eec\u200b\u5f88\u96be\u200b\u76f4\u63a5\u200b\u62ff\u5230\u200b\u4e00\u4e2a\u200b\u7ebf\u6027\u200b\u53ef\u5206\u200b\u7684\u200b\u6570\u636e\u200b\u96c6\u200b\uff0c\u200b\u800c\u662f\u200b\u4e00\u4e2a\u200b\u8fd1\u4f3c\u200b\u7ebf\u6027\u200b\u53ef\u5206\u200b\u7684\u200b\u6570\u636e\u200b\u96c6\u200b\uff0c\u200b\u6211\u4eec\u200b\u53bb\u6389\u200b\u5927\u90e8\u5206\u200b\u7684\u200b\u566a\u70b9\u200b\u540e\u200b\u53ef\u4ee5\u200b\u505a\u5230\u200b\u7ebf\u6027\u200b\u53ef\u200b\u5206\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u4e9b\u200b\u566a\u70b9\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u8dd1\u200b\u5230\u200b\u4e86\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u751a\u81f3\u200b\u8d85\u5e73\u9762\u200b\u5bf9\u9762\u200b\u7684\u200b\uff0c\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b

      \\[ y_i(w\\cdot x_i + b) \\geq 1 - \\xi_i \\quad i = 1\uff0c2\uff0c...\uff0cN (\\xi_i \\geq 0 ) \\]

      \u200b\u4e5f\u5c31\u662f\u8bf4\u200b\uff0c\u200b\u5e76\u975e\u200b\u6240\u6709\u200b\u70b9\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u90fd\u200b\u5927\u4e8e\u200b 1 \u200b\u4e86\u200b\uff08\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u4e3a\u200b 1 \u200b\u7684\u200b\u662f\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u4e0d\u200b\u5927\u4e8e\u200b\u4e00\u200b\u5c31\u200b\u4f4d\u4e8e\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u4e86\u200b\uff09\uff0c

      \u200b\u5f53\u7136\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e0d\u80fd\u5141\u8bb8\u200b\u65e0\u200b\u9650\u5236\u200b\u7684\u200b\u677e\u5f1b\u200b\uff0c\u200b\u4e0d\u7136\u200b\u6240\u8c13\u200b\u7684\u200b\u5176\u4ed6\u200b\u5411\u91cf\u200b\u90fd\u200b\u53ef\u4ee5\u200b\u968f\u610f\u200b\u8dd1\u200b\u5230\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u7684\u8bdd\u200b\uff0c\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4e5f\u200b\u5c31\u200b\u6ca1\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fdb\u5f62\u200b\u6b63\u5219\u200b\u5316\u200b

      \\[ \\underset {w\uff0cb\uff0c\\xi}{\\operatorname{min}} \\quad \\frac{1}{2}||w||^2 + C\\sum_{i=1}^{N}\\xi_i \\\\ \\]

      \u200b\u5176\u4e2d\u200b\u7684\u200b C \u200b\u662f\u200b\u4e00\u4e2a\u200b\u6211\u4eec\u200b\u624b\u52a8\u200b\u8bbe\u7f6e\u200b\u7684\u200b\u60e9\u7f5a\u200b\u53c2\u6570\u200b

      \u200b\u6211\u4eec\u200b\u7684\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u968f\u4e4b\u200b\u53d8\u6210\u200b\uff1a

      \\[\\begin{aligned} \\underset {\\alpha}{\\operatorname{max}} & \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\\\ s.t. & \\quad \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & \\quad 0 \\leq \\alpha_i \\leq C\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

      \u200b\u5176\u4e2d\u200b\u7531\u4e8e\u200b\u677e\u5f1b\u200b\u6761\u4ef6\u200b\uff0c\u200b\u6211\u4eec\u200b\u6781\u5c0f\u200b\u5316\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u65b0\u589e\u200b\u4e86\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u7ea6\u675f\u200b\uff1a

      \\[\\begin{aligned} \\nabla_{\\xi_i} L(w\uff0cb\uff0c\\alpha\uff0c\\xi) = C - \\alpha_i - \\mu_i = 0 \\quad i = 1\uff0c2\uff0c...\uff0cN \\\\ \\mu_i \\geq 0 \\quad i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

      \u200b\u8fd9\u200b\u4e5f\u200b\u662f\u200b\u4e0a\u8ff0\u200b\u6761\u4ef6\u200b\u4e2d\u200b\u51fa\u73b0\u200b\\(\\alpha_i \\leq C\\)\u200b\u7684\u200b\u539f\u56e0\u200b

      \u200b\u540c\u6837\u200b\u6c42\u89e3\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^*\\)\uff0c\u200b\u7136\u540e\u200b\u5e26\u56de\u200b\u539f\u200b\u5f0f\u200b\uff0c\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(w^*\uff0cb^*\uff0c\\xi^*\\)\uff0c\u200b\u6784\u6210\u200b\u6700\u4f18\u200b\u5206\u79bb\u200b\u8d85\u5e73\u9762\u200b

      \u200b\u90a3\u4e9b\u200b\u88ab\u200b\u677e\u5f1b\u200b\u7684\u200b\u70b9\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u548c\u200b\\(\\xi\\)\u200b\u7684\u200b\u7684\u200b\u5173\u7cfb\u200b\u4e3a\u200b\uff1a

      "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_11","title":"\u6838\u200b\u51fd\u6570","text":"

      \u200b\u6211\u4eec\u200b\u60f3\u8981\u200b\u628a\u200b\u70b9\u200b\\(x\uff0c z \\in \\mathbb{R}^n\\)\u200b\u6620\u5c04\u200b\u5230\u200b\u4e00\u4e2a\u200b\u66f4\u200b\u9ad8\u7ef4\u200b\u7684\u200b\u7a7a\u95f4\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b(\\(\\phi(x)\\)\u200b\u88ab\u200b\u6620\u5c04\u200b\u5230\u200b\u66f4\u200b\u9ad8\u7ef4\u200b\uff09\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u6620\u5c04\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4fdd\u8bc1\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u200b\u4e8c\u8005\u200b\u7684\u200b\u70b9\u79ef\u200b\u662f\u200b\u539f\u200b\u7a7a\u95f4\u200b\u4e2d\u70b9\u79ef\u200b\u7684\u200b\u51fd\u6570\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b

      \\[ K(x\uff0cz) = \\phi(x)\\cdot \\phi(z) \\]

      \u200b\u4e00\u822c\u800c\u8a00\u200b\uff0c\u200b\u7ed9\u5b9a\u200b\u8fd9\u4e2a\u200b\u628a\u200b\u539f\u200b\u5185\u79ef\u200b\u6620\u5c04\u200b\u5230\u200b\u9ad8\u7ef4\u200b\u5185\u79ef\u200b\u7684\u200b K \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\uff0c\u200b\u4e0d\u7528\u200b\u5177\u4f53\u200b\u7ed9\u51fa\u200b\u628a\u200b\u5411\u91cf\u200b\u6620\u5c04\u200b\u5230\u200b\u9ad8\u4f4d\u200b\u5411\u91cf\u200b\u7684\u200b\\(\\phi()\\)

      \u200b\u5728\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u6ce8\u610f\u200b\u5230\u200b\\(x_i\\)\u200b\u4e4b\u95f4\u200b\u53ea\u6709\u200b\u5185\u79ef\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u5c31\u200b\u76f4\u63a5\u200b\u7528\u200b\u6620\u5c04\u200b\u540e\u200b\u7684\u200b\u9ad8\u4f4d\u200b\u5185\u79ef\u200b\u8fdb\u884c\u200b\u66ff\u6362\u200b

      \\[ \\underset {\\alpha}{\\operatorname{max}} \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_jK(x_i\uff0cx_j) \\\\ \\]

      \u200b\u5e38\u7528\u200b\u6838\u200b\u51fd\u6570\u200b

      \u200b\u591a\u9879\u5f0f\u200b\u6838\u200b\u51fd\u6570\u200b

      \\[ K(x\uff0cz) = (x\\cdot z + 1)^p \\]

      \u200b\u9ad8\u65af\u200b\u6838\u200b\u51fd\u6570\u200b(KBF)

      \\[ K(x\uff0cz) = \\exp(-\\frac{||x-z||^2}{2\\sigma^2}) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#smo","title":"SMO \u200b\u7b97\u6cd5","text":"

      \u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u7ed9\u51fa\u200b SMO \u200b\u7b97\u6cd5\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u79cd\u200b\u5177\u4f53\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u7684\u200b\\(\\alpha^*\\)\u200b\u7684\u200b\u6570\u503c\u200b\u65b9\u6cd5\u200b\u3002

      \u200b\u8f93\u5165\u200b\uff1a\u200b\u6570\u636e\u200b\u96c6\u200b\\(D = \\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u6838\u200b\u51fd\u6570\u200b\\(K(x\uff0cz)\\)\uff0c\u200b\u5bb9\u5fcd\u5ea6\u200b\\(\\epsilon\\)

      • \u200b\u521d\u59cb\u5316\u200b\\(\\alpha = 0\\)\uff0ck = 0
      • \u200b\u53d6\u200b\u4f18\u5316\u200b\u53d8\u91cf\u200b\\(\\alpha_1\uff0c\\alpha_2\\)\uff0c\u200b\u89e3\u6790\u200b\u6c42\u89e3\u200b\u6700\u4f18\u5316\u200b\u95ee\u9898\u200b\uff0c\u200b\u66f4\u65b0\u200b\\(\\alpha_1\uff0c\\alpha_2\\)
      • \u200b\u82e5\u200b\u5728\u200b\u5bb9\u5fcd\u5ea6\u200b\\(\\epsilon\\)\u200b\u5185\u200b\u6ee1\u8db3\u200b\uff1a

        \\[\\begin{aligned} & \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & 0 \\leq \\alpha_i \\leq C\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ & y_i(g(x_i)) = \\left\\{ \\begin{aligned} & \\geq 1\uff0c \\alpha_i = 0 \\\\ & = 1\uff0c 0 < \\alpha_i < C \\\\ & \\leq 1\uff0c \\alpha_i = C \\\\ \\end{aligned} \\right. \\end{aligned}\\]

        \u200b\u5219\u200b\u4ee4\u200b\\(\\alpha = (\\alpha_1\uff0c\\alpha_2\uff0c...\uff0c\\alpha_N)\\)\uff0c\u200b\u9000\u51fa\u200b\u5faa\u73af\u200b

      "},{"location":"Note/Missing%20Semester/","title":"Missing Semester","text":"

      \u200b\u7ea6\u200b 127 \u200b\u4e2a\u200b\u5b57\u200b

      Abstract

      Missing Semester \u200b\u662f\u200b\u6765\u81ea\u200b MIT \u200b\u7684\u200b\u4e00\u95e8\u200b\u8ba1\u7b97\u673a\u200b\u5165\u200b\u4e48\u200b\u8bfe\u7a0b\u200b\uff0c\u200b\u8fd9\u95e8\u200b\u8bfe\u7a0b\u200b\u4e0d\u200b\u4ecb\u7ecd\u200b\u5177\u4f53\u200b\u7684\u200b\u8bed\u8a00\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u800c\u662f\u200b\u4ecb\u7ecd\u200b\u4e00\u4e9b\u200b\u53ef\u4ee5\u200b\u63d0\u9ad8\u6548\u7387\u200b\u7684\u200b\u5de5\u5177\u200b\u7684\u200b\u4f7f\u7528\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u666e\u53ca\u200b\u8ba1\u7b97\u673a\u200b\u5e38\u8bc6\u200b

      Warning

      \u200b\u539f\u200b\u8bfe\u7a0b\u200b\u5f88\u200b\u4f18\u79c0\u200b\uff0c\u200b\u5982\u679c\u200b\u60a8\u200b\u6709\u7a7a\u200b\u7684\u8bdd\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u524d\u5f80\u200b\u3010\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b\u3011()\u200b\u8fdb\u884c\u200b\u5b66\u4e60\u200b.\u200b\u8fd9\u91cc\u200b\u5b58\u200b\u7684\u200b\u662f\u200b\u6211\u200b\u7684\u200b\u7b14\u8bb0\u200b\uff0c\u200b\u5b83\u4eec\u200b\u662f\u200b\u4e3a\u4e86\u200b\u5728\u200b\u9700\u8981\u200b\u7684\u200b\u65f6\u5019\u200b\u80fd\u591f\u200b\u65b9\u4fbf\u200b\u7684\u200b\u88ab\u200b\u67e5\u627e\u200b\u800c\u200b\u64b0\u5199\u200b\u7684\u200b\uff0c\u200b\u8bf7\u52ff\u200b\u76f4\u63a5\u200b\u5b66\u4e60\u200b

      "},{"location":"Note/Missing%20Semester/Data/","title":"Data wrangling","text":"

      \u200b\u7ea6\u200b 911 \u200b\u4e2a\u200b\u5b57\u200b 2 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

      \u200b\u672c\u200b\u8282\u200b\u5217\u4e3e\u200b\u4e00\u4e9b\u200b\u547d\u4ee4\u884c\u200b\u5e38\u7528\u200b\u7684\u200b\u6570\u636e\u5904\u7406\u200b\u5de5\u5177\u200b

      "},{"location":"Note/Missing%20Semester/Data/#sed","title":"Sed","text":"

      Sed \u200b\u662f\u200b Stream editor \u200b\u6d41\u200b\u7f16\u8f91\u5668\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u63a5\u53d7\u200b\u7ba1\u9053\u200b\u8f93\u5165\u200b\uff0c\u200b\u5bf9\u200b\u6bcf\u200b\u4e00\u884c\u200b\u8fdb\u884c\u200b\u5904\u7406\u200b\uff0c\u200b\u7136\u540e\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u3002

      sed [OPTION] 'edit-command' [input-file]`\n

      \u200b\u9009\u9879\u200b\u662f\u200b\u4e00\u4e9b\u200b\u7528\u4e8e\u200b\u63a7\u5236\u200b sed \u200b\u547d\u4ee4\u200b\u884c\u4e3a\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5e38\u89c1\u200b\u7684\u200b\u6709\u200b\uff1a

      • -n \u200b\u4e0d\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b
      • -e \u200b\u4ee5\u540e\u200b\u7684\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b
      • -f \u200b\u4ee5\u540e\u200b\u7684\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b
      • -i \u200b\u76f4\u63a5\u200b\u4fee\u6539\u200b\u6587\u4ef6\u200b
      • -r \u200b\u4f7f\u7528\u200b\u6269\u5c55\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b
      • -E \u200b\u540c\u200b\u4e0a\u200b
      • -r \u200b\u4f7f\u7528\u200b\u57fa\u7840\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b
      • -h \u200b\u4e0d\u200b\u6253\u5370\u6587\u4ef6\u200b\u540d\u200b

      sed\u200b\u7684\u200b\u7f16\u8f91\u200b\u547d\u4ee4\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u6765\u200b\u6307\u5b9a\u200b\u5339\u914d\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u5e76\u200b\u901a\u8fc7\u200b\u66ff\u6362\u200b\u3001\u200b\u5220\u9664\u200b\u3001\u200b\u63d2\u5165\u200b\u7b49\u200b\u547d\u4ee4\u200b\u6765\u200b\u4fee\u6539\u200b\u6587\u672c\u200b.\u200b\u4e00\u4e9b\u200b\u5e38\u89c1\u200b\u7684\u200b sed \u200b\u7f16\u8f91\u200b\u547d\u4ee4\u200b\u5305\u62ec\u200b\uff1a

      • s/pattern/replacement/\uff1a\u200b\u66ff\u6362\u200b\u6307\u5b9a\u200b\u6a21\u5f0f\u200b\u7684\u200b\u6587\u672c\u200b\u3002
      • d\uff1a\u200b\u5220\u9664\u200b\u5339\u914d\u200b\u5230\u200b\u7684\u200b\u884c\u200b\u3002
      • p\uff1a\u200b\u6253\u5370\u200b\uff08\u200b\u8f93\u51fa\u200b\uff09\u200b\u5339\u914d\u200b\u5230\u200b\u7684\u200b\u884c\u200b\u3002
      • i\uff1a\u200b\u5728\u200b\u6307\u5b9a\u200b\u884c\u524d\u200b\u63d2\u5165\u200b\u6587\u672c\u200b\u3002
      • a\uff1a\u200b\u5728\u200b\u6307\u5b9a\u200b\u884c\u540e\u200b\u8ffd\u52a0\u200b\u6587\u672c\u200b\u3002
      \u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b
      • \u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u53ef\u4ee5\u200b\u5b9e\u73b0\u200b\u5b57\u7b26\u4e32\u200b\u5339\u914d\u200b\uff0c\u200b\u5927\u90e8\u5206\u200b\u5b57\u7b26\u200b\u90fd\u200b\u4fdd\u6301\u200b\u613f\u610f\u200b\u9664\u4e86\u200b\u4e00\u4e9b\u200b\u7279\u6b8a\u200b\u7684\u200b
      • . \u200b\u4ee3\u8868\u200b\u9664\u4e86\u200b\u6362\u884c\u200b\u4efb\u4f55\u200b\u7684\u200b\u5355\u200b\u5b57\u7b26\u200b
      • * \u200b\u524d\u200b\u4e00\u4e2a\u200b\u91cd\u590d\u200b 0-\u200b\u65e0\u9650\u200b\u6b21\u200b
      • + \u200b\u524d\u200b\u4e00\u4e2a\u200b\u91cd\u590d\u200b 1-\u200b\u65e0\u9650\u200b\u6b21\u200b
      • [abc] abc \u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b
      • (RX1|RX2) \u200b\u8868\u8fbe\u5f0f\u200b\u4e00\u200b\u6216\u8005\u200b\u4e8c\u200b
      • ^ \u200b\u884c\u9996\u200b
      • $ \u200b\u884c\u5c3e\u200b
      • () \u200b\u6355\u83b7\u200b\uff0c\u200b\u4f4d\u4e8e\u200b\u8865\u8d27\u200b\u5185\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u53ef\u200b\u5728\u200b\u88ab\u200b\u66ff\u4ee3\u200b\u90e8\u5206\u200b\u7528\u200b\u30011 \\2 \\3 \u200b\u5f15\u7528\u200b
      "},{"location":"Note/Missing%20Semester/Data/#awk","title":"Awk","text":"

      awk \u200b\u662f\u200b\u4e00\u79cd\u200b\u5f3a\u5927\u200b\u7684\u200b\u6587\u672c\u5904\u7406\u200b\u5de5\u5177\u200b\uff0c\u200b\u7528\u4e8e\u200b\u4ece\u200b\u7ed3\u6784\u5316\u200b\u6587\u672c\u200b\u6570\u636e\u200b\u4e2d\u200b\u63d0\u53d6\u200b\u548c\u200b\u64cd\u4f5c\u200b\u4fe1\u606f\u200b.\u200b\u5b83\u200b\u53ef\u4ee5\u200b\u9010\u884c\u200b\u8bfb\u53d6\u200b\u8f93\u5165\u200b\u6587\u4ef6\u200b\u6216\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b\u7684\u200b\u6587\u672c\u200b\uff0c\u200b\u6839\u636e\u200b\u6307\u5b9a\u200b\u7684\u200b\u6a21\u5f0f\u200b\u548c\u200b\u52a8\u4f5c\u200b\u8fdb\u884c\u200b\u5339\u914d\u200b\u3001\u200b\u5904\u7406\u200b\u548c\u200b\u8f93\u51fa\u200b\u3002

      awk \u200b\u7684\u200b\u57fa\u672c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a

      awk 'pattern { action }' file\n

      \u200b\u5176\u4e2d\u200b\uff0cpattern \u200b\u662f\u200b\u7528\u4e8e\u200b\u5339\u914d\u200b\u6587\u672c\u200b\u7684\u200b\u6a21\u5f0f\u200b\uff0caction \u200b\u662f\u200b\u5728\u200b\u5339\u914d\u200b\u5230\u200b\u7684\u200b\u6587\u672c\u200b\u4e0a\u200b\u6267\u884c\u200b\u7684\u200b\u64cd\u4f5c\u200b\uff0cfile \u200b\u662f\u200b\u5f85\u5904\u7406\u200b\u7684\u200b\u8f93\u5165\u200b\u6587\u4ef6\u200b\u3002

      awk \u200b\u7684\u200b\u5de5\u4f5c\u200b\u539f\u7406\u200b\u662f\u200b\u9010\u884c\u200b\u8bfb\u53d6\u200b\u8f93\u5165\u200b\u6587\u672c\u200b\uff0c\u200b\u5e76\u200b\u6839\u636e\u200b\u6307\u5b9a\u200b\u7684\u200b\u6a21\u5f0f\u200b\u8fdb\u884c\u200b\u5339\u914d\u200b.\u200b\u5f53\u200b\u67d0\u884c\u200b\u5339\u914d\u200b\u5230\u200b\u6307\u5b9a\u200b\u6a21\u5f0f\u200b\u65f6\u200b\uff0c\u200b\u6267\u884c\u200b\u76f8\u5e94\u200b\u7684\u200b\u52a8\u4f5c\u200b.\u200b\u52a8\u4f5c\u200b\u53ef\u4ee5\u200b\u662f\u200b\u6253\u5370\u200b\u884c\u200b\u3001\u200b\u8ba1\u7b97\u200b\u3001\u200b\u8d4b\u503c\u200b\u53d8\u91cf\u200b\u3001\u200b\u8fdb\u884c\u200b\u6761\u4ef6\u200b\u5224\u65ad\u200b\u7b49\u200b\u3002

      awk \u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e30\u5bcc\u200b\u7684\u200b\u5185\u7f6e\u200b\u529f\u80fd\u200b\u548c\u200b\u53d8\u91cf\u200b\uff0c\u200b\u4f7f\u200b\u5176\u200b\u80fd\u591f\u200b\u5bf9\u200b\u6587\u672c\u200b\u8fdb\u884c\u200b\u7075\u6d3b\u5904\u7406\u200b.\u200b\u4e00\u4e9b\u200b\u5e38\u7528\u200b\u7684\u200b awk \u200b\u529f\u80fd\u200b\u5305\u62ec\u200b\uff1a

      • \u200b\u5b57\u200b\u6bb5\u200b\u5206\u5272\u200b\uff1aawk \u200b\u9ed8\u8ba4\u200b\u5c06\u200b\u6bcf\u200b\u4e00\u884c\u200b\u4ee5\u200b\u7a7a\u683c\u200b\u6216\u200b\u5236\u8868\u7b26\u200b\u4e3a\u200b\u5206\u9694\u7b26\u200b\u5212\u5206\u200b\u4e3a\u200b\u591a\u4e2a\u200b\u5b57\u200b\u6bb5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b $n \u200b\u7684\u200b\u5f62\u5f0f\u200b\u5f15\u7528\u200b\u5b57\u200b\u6bb5\u200b\uff08\u200b\u4f8b\u5982\u200b $1\u3001$2\uff09.
      • \u200b\u6a21\u5f0f\u5339\u914d\u200b\uff1a\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u8fdb\u884c\u200b\u6a21\u5f0f\u5339\u914d\u200b\uff0c\u200b\u6307\u5b9a\u200b\u5339\u914d\u200b\u7684\u200b\u6587\u672c\u200b\u6a21\u5f0f\u200b\u3002
      • \u200b\u5185\u7f6e\u200b\u53d8\u91cf\u200b\uff1aawk \u200b\u63d0\u4f9b\u200b\u4e86\u200b\u8bb8\u591a\u200b\u5185\u7f6e\u200b\u53d8\u91cf\u200b\uff0c\u200b\u5982\u200b NR\uff08\u200b\u5f53\u524d\u200b\u884c\u200b\u6570\u200b\uff09\u3001NF\uff08\u200b\u5f53\u524d\u200b\u884c\u200b\u7684\u200b\u5b57\u200b\u6bb5\u6570\u200b\uff09\u200b\u548c\u200b $0\uff08\u200b\u6574\u884c\u200b\u6587\u672c\u200b\uff09\u200b\u7b49\u200b\u3002
      • \u200b\u5185\u7f6e\u200b\u51fd\u6570\u200b\uff1aawk \u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e30\u5bcc\u200b\u7684\u200b\u5185\u7f6e\u200b\u51fd\u6570\u200b\uff0c\u200b\u5982\u200b\u5b57\u7b26\u4e32\u200b\u5904\u7406\u51fd\u6570\u200b\u3001\u200b\u6570\u5b66\u200b\u51fd\u6570\u200b\u3001\u200b\u65e5\u671f\u200b\u51fd\u6570\u200b\u7b49\u200b\u3002

      \u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u4e2a\u200b\u7b80\u5355\u200b\u7684\u200b\u793a\u4f8b\u200b\uff0c\u200b\u5c55\u793a\u200b\u4e86\u200b\u5982\u4f55\u200b\u4f7f\u7528\u200b awk \u200b\u63d0\u53d6\u200b\u6587\u4ef6\u200b\u4e2d\u4ee5\u200b\u5192\u53f7\u200b\u5206\u9694\u200b\u7684\u200b\u7b2c\u4e00\u5217\u200b\u548c\u200b\u7b2c\u4e8c\u5217\u200b\uff0c\u200b\u5e76\u200b\u8f93\u51fa\u200b\u5b83\u4eec\u200b\uff1a

      awk -F':' '{ print $1\uff0c $2 }' file.txt\n

      awk \u200b\u662f\u200b\u4e00\u79cd\u200b\u975e\u5e38\u200b\u5b9e\u7528\u200b\u7684\u200b\u6587\u672c\u5904\u7406\u200b\u5de5\u5177\u200b\uff0c\u200b\u9002\u7528\u200b\u4e8e\u200b\u5904\u7406\u200b\u7ed3\u6784\u5316\u200b\u7684\u200b\u6587\u672c\u200b\u6570\u636e\u200b\uff0c\u200b\u5982\u200b\u65e5\u5fd7\u200b\u6587\u4ef6\u200b\u3001CSV \u200b\u6587\u4ef6\u200b\u3001\u200b\u62a5\u544a\u200b\u7b49\u200b.\u200b\u5b83\u200b\u5177\u6709\u200b\u5f3a\u5927\u200b\u7684\u200b\u529f\u80fd\u200b\u548c\u200b\u7075\u6d3b\u6027\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5927\u5927\u7b80\u5316\u200b\u6587\u672c\u5904\u7406\u200b\u4efb\u52a1\u200b\uff0c\u200b\u63d0\u9ad8\u200b\u6570\u636e\u5206\u6790\u200b\u548c\u200b\u8f6c\u6362\u200b\u7684\u200b\u6548\u7387\u200b\u3002

      "},{"location":"Note/Missing%20Semester/Data/#aided-command-line-tools","title":"Aided Command line Tools","text":"

      \u200b\u8f85\u52a9\u200b\u4f7f\u7528\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b

      • grep: \u200b\u7b5b\u9009\u200b\u51fa\u200b\u542b\u6709\u200b\u5236\u5b9a\u200b\u5185\u5bb9\u200b\u7684\u200b\u884c\u200b
      • sort: \u200b\u6392\u5e8f\u200b
      • uniq: \u200b\u53bb\u200b\u91cd\u200b
      • tail: \u200b\u622a\u56fe\u200b\u5934\u90e8\u200b\u51e0\u6761\u200b
      • head: \u200b\u622a\u53d6\u200b\u5c3e\u90e8\u200b\u51e0\u6761\u200b
      • paste: \u200b\u901a\u8fc7\u200b\u6307\u5b9a\u200b\u7684\u200b\u95f4\u9694\u200b\u5b57\u7b26\u200b\u94fe\u200b\u8fde\u63a5\u200b\u4e24\u884c\u200b
      • bc: \u200b\u8ba1\u7b97\u5668\u200b
      • xargs: \u200b\u628a\u200b stdin \u200b\u8f6c\u6362\u200b\u4e3a\u200b\u53c2\u6570\u200b\u8c03\u7528\u200b\u540e\u7eed\u200b\u7a0b\u5e8f\u200b
      "},{"location":"Note/Missing%20Semester/Git/","title":"Notes for Git","text":"

      \u200b\u7ea6\u200b 897 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

      \u200b\u4e00\u4e2a\u200b\u81ea\u200b\u5e95\u5411\u4e0a\u200b\u7684\u200b\u5b66\u4e60\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u6700\u540e\u200b\u9644\u4e0a\u200b\u4e86\u200b\u5e38\u7528\u200b\u6307\u4ee4\u200b\uff0c\u200b\u6682\u65e0\u200b\u64cd\u4f5c\u200b\u6f14\u793a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b\u539f\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b

      "},{"location":"Note/Missing%20Semester/Git/#terminology","title":"Terminology","text":"

      \u200b\u5b9a\u4e49\u200b

      blob \u200b\u4e00\u4e2a\u200b\u6587\u4ef6\u200b\u88ab\u79f0\u4f5c\u200bblob. tree \u200b\u4e00\u4e2a\u200b\u6587\u4ef6\u5939\u200b\u88ab\u79f0\u4f5c\u200btree. commit \u200b\u6574\u4e2a\u200b\u4ed3\u5e93\u200b\u7684\u200b\u5feb\u7167\u200b\u88ab\u79f0\u4f5c\u200bcommit. history commit \u200b\u7684\u200b\u6709\u200b\u5411\u200b\u65e0\u200b\u73af\u56fe\u200b\u6784\u6210\u200bhistory. object \u200b\u4e00\u4e2a\u200bobject\u200b\u662f\u200b blob\u3001tree \u200b\u6216\u8005\u200b commit\uff0c\u200b\u6bcf\u4e2a\u200b\u5bf9\u8c61\u200b\u90fd\u200b\u6709\u200b\u81ea\u5df1\u200b\u5bf9\u5e94\u200b\u7684\u200b hash. reference \u200b\u4e00\u4e2a\u200breference\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5bf9\u8c61\u200b\u7684\u200b\u522b\u540d\u200b\uff0c\u200b\u9664\u4e86\u200b\u522b\u540d\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b hash \u200b\u6765\u200b\u5f15\u7528\u200b\u4e00\u4e2a\u200b\u5bf9\u8c61\u200b\u3002 main/master main/master \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u7684\u200b reference \u200b\u603b\u662f\u200b\u6307\u5411\u200b\u5f00\u53d1\u200b\u4e2d\u200b\u7684\u200b\u6700\u65b0\u200b\u7a33\u5b9a\u200b\u7248\u672c\u200b\u3002 HEAD HEAD \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u5f15\u7528\u200b\u6307\u5411\u200b\u6211\u4eec\u200b\u76ee\u524d\u200b\u5728\u200b\u5386\u53f2\u200b\u4e2d\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u3002 Git repository \u200b\u4e00\u4e2a\u200b Git repository* \u200b\u662f\u200b object \u200b\u548c\u200b reference \u200b\u7684\u200b\u96c6\u5408\u200b\u3002 Staging area Staging area \u200b\u662f\u200b\u4e00\u79cd\u200b\u673a\u5236\u200b\u6765\u200b\u8ba9\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u54ea\u4e9b\u200b\u5bf9\u8c61\u200b\u8981\u200b\u88ab\u200b commit\uff0c \u200b\u800c\u200b\u975e\u200b\u6574\u4e2a\u200b\u4ed3\u5e93\u200b\u3002"},{"location":"Note/Missing%20Semester/Git/#git-data-model","title":"Git Data Model","text":"

      \u200b\u9996\u5148\u200b\u5b9a\u4e49\u6570\u636e\u200b\u5bf9\u8c61\u200b

      // a file is a bunch of bytes\ntype blob = array<byte>\n\n// a directory contains named files and directories\ntype tree = map<string\uff0c tree | blob>\n\n// a commit has parents\uff0c metadata\uff0c and the top-level tree\ntype commit = struct {\n    parents: array<commit>\n    author: string\n    message: string\n    snapshot: tree\n}\n\n//An object is a blob\uff0ctree\uff0cor commit\ntype object = blob | tree | commit\n

      \u200b\u5728\u200b Git \u200b\u5b58\u50a8\u200b\u7ed3\u6784\u200b\u4e2d\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u5bf9\u8c61\u200b\u5bf9\u5e94\u200b\u4e00\u4e2a\u200b hash

      objects = map<string\uff0c object>\n\ndef store(object):\n    id = sha1(object)\n    objects[id] = object\n\ndef load(id):\n    return objects[id]\n

      "},{"location":"Note/Missing%20Semester/Git/#commands","title":"Commands","text":"

      Basic

      • git help <command> : get help for a git command
      • git init : creates a new git repo\uff0c with data stored in the .git directory
      • git status : tells you what\u2019s going on
      • git add <filename> : adds files to staging area
      • git commit : creates a new commit
      • git log : shows a flattened log of history
      • git log --all --graph --decorate : visualizes history as a DAG
      • git diff <filename> : show the differences between current file and HEAD version file
      • git diff <revision> <filename> : shows differences between current file and specified snapshot
      • git diff <reversin> <reversion> <filename> shows the differences between two specified version of file
      • git checkout <revision> : updates HEAD and current branch
      • git checkout <filename> : erase all the changes we made after the HEAD version for this file
      • git cat-file -p <hash> : The instruction to catch a tree or blob

      Branching and Merging

      • git branch: shows branches
      • git branch <name>: creates a branch
      • git checkout -b <name>: creates a branch and switches to it
      • same as git branch <name>; git checkout <name>
      • git merge <revision> : merges into current branch;wait for latter adjustments when conflictions occur(But the file has been changed already)
      • git merge --abort : erase the changes git try to make when an merge conflict occurs
      • git merge --continue : continue to merge after you fix the merge confliction
      • git mergetool: use a fancy tool to help resolve merge conflicts
      • git rebase: rebase set of patches onto a new base

      More on rebase

      Commonly used to \"move\" an entire branch to another base\uff0c creating copies of the commits in the new location.

      • Rebase the current branch on top of another specified branch: git rebase new_base_branch

      • Start an interactive rebase\uff0c which allows the commits to be reordered\uff0c omitted\uff0c combined or modified: git rebase -i target_base_branch_or_commit_hash

      • Continue a rebase that was interrupted by a merge failure\uff0c after editing conflicting files: git rebase --continue

      • Continue a rebase that was paused due to merge conflicts\uff0c by skipping the conflicted commit: git rebase --skip

      • Abort a rebase in progress (e.g. if it is interrupted by a merge conflict): git rebase --abort

      • Move part of the current branch onto a new base\uff0c providing the old base to start from: git rebase --onto new_base old_base

      • Reapply the last 5 commits in-place\uff0c stopping to allow them to be reordered\uff0c omitted\uff0c combined or modified: git rebase -i HEAD~5

      • Auto-resolve any conflicts by favoring the working branch version (theirs keyword has reversed meaning in this case): git rebase -X theirs branch_name

      Remotes

      • git remote: list remotes
      • git remote add <name> <url>: add a remote ;name is origin by convention if we have only one remote; url can be a web address or a local directory
      • git push <remote> <local branch>:<remote branch>: send objects to remote\uff0c and update remote reference
      • git branch --set-upstream-to=<remote>/<remote branch>: set up correspondence between local and remote branch
      • git fetch: retrieve objects/references from a remote; be aware of the changes pushed here from the remote
      • git pull: same as git fetch; git merge
      • git clone: download repository from remote

      Undo

      • git commit --amend: edit a commit\u2019s contents/message
      • git reset HEAD <file>: unstage a file
      • git checkout <file>: discard changes

      Advanced Git

      • git config: Git is highly customizable
      • git clone --depth=1: shallow clone\uff0c without entire version history
      • git add -p: interactive staging
      • git rebase -i: interactive rebasing
      • git blame: show who last edited which line
      • git stash: temporarily remove modifications to working directory
      • git bisect: binary search history (e.g. for regressions)
      • .gitignore: specify intentionally untracked files to ignore
      "},{"location":"Note/Missing%20Semester/Shell/","title":"Shell Notes (revisited)","text":"

      \u200b\u7ea6\u200b 2838 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 9 \u200b\u5206\u949f\u200b

      \u200b\u4e00\u4e2a\u200b\u79bb\u6563\u200b\u7684\u200b\u77e5\u8bc6\u200b\u5217\u8868\u200b

      "},{"location":"Note/Missing%20Semester/Shell/#_1","title":"\u57fa\u7840\u77e5\u8bc6","text":""},{"location":"Note/Missing%20Semester/Shell/#_2","title":"\u5185\u7f6e\u200b\u53d8\u91cf\u200b/\u200b\u7279\u6b8a\u200b\u53d8\u91cf","text":"$0$1\uff0c $2\uff0c $3\uff0c ...$@$#$?$$$USER$HOME$PWD$HOSTNAME$RANDOM$IFS$PATH

      \u200b\u5f53\u524d\u200b\u811a\u672c\u200b\u7684\u200b\u540d\u79f0\u200b.\u200b\u5bf9\u4e8e\u200b\u88ab\u200b\u6267\u884c\u200b\u7684\u200b\u811a\u672c\u200b\uff0c\u200b\u5b83\u200b\u662f\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b\u7684\u200b\u8def\u5f84\u200b\u548c\u200b\u540d\u79f0\u200b\u3002

      \u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u53d8\u91cf\u200b\uff0c\u200b\u8868\u793a\u200b\u811a\u672c\u200b\u6216\u200b\u51fd\u6570\u200b\u7684\u200b\u53c2\u6570\u200b.\\(1 \u200b\u8868\u793a\u200b\u7b2c\u4e00\u4e2a\u200b\u53c2\u6570\u200b\uff0c\\)2 \u200b\u8868\u793a\u200b\u7b2c\u4e8c\u4e2a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4f9d\u6b64\u7c7b\u63a8\u200b\u3002

      \u200b\u8868\u793a\u200b\u6240\u6709\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u7684\u200b\u5217\u8868\u200b.\u200b\u5728\u200b\u811a\u672c\u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\"$@\"\u200b\u5c06\u200b\u6240\u6709\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u53c2\u6570\u4f20\u9012\u200b\u7ed9\u200b\u5176\u4ed6\u200b\u547d\u4ee4\u200b\u6216\u200b\u51fd\u6570\u200b\u3002

      \u200b\u8868\u793a\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u7684\u200b\u6570\u91cf\u200b\u3002

      \u200b\u4e0a\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u9000\u51fa\u200b\u72b6\u6001\u200b.\u200b\u5982\u679c\u200b\u547d\u4ee4\u200b\u6210\u529f\u200b\u6267\u884c\u200b\uff0c\u200b\u5219\u200b\u5176\u503c\u200b\u4e3a\u200b 0\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b\u975e\u96f6\u503c\u200b\u3002

      \u200b\u5f53\u524d\u200b\u811a\u672c\u200b\u7684\u200b\u8fdb\u7a0b\u200b ID\uff08PID\uff09.

      \u200b\u5f53\u524d\u200b\u7528\u6237\u200b\u7684\u200b\u7528\u6237\u540d\u200b\u3002

      \u200b\u5f53\u524d\u200b\u7528\u6237\u200b\u7684\u200b\u4e3b\u76ee\u5f55\u200b\u8def\u5f84\u200b\u3002

      \u200b\u5f53\u524d\u5de5\u4f5c\u200b\u76ee\u5f55\u200b\u7684\u200b\u8def\u5f84\u200b\u3002

      \u200b\u5f53\u524d\u200b\u4e3b\u673a\u200b\u7684\u200b\u4e3b\u673a\u540d\u200b\u3002

      \u200b\u4e00\u4e2a\u200b\u968f\u673a\u200b\u6574\u6570\u200b\u3002

      \u200b\u5185\u90e8\u200b\u5b57\u200b\u6bb5\u200b\u5206\u9694\u7b26\u200b\uff0c\u200b\u7528\u4e8e\u200b\u6307\u5b9a\u200b\u7531\u200b\u54ea\u4e2a\u200b\u5b57\u7b26\u200b\u5206\u5272\u200b\u8f93\u5165\u200b\u6570\u636e\u200b\u7684\u200b\u5b57\u200b\u6bb5\u200b.\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c\u200b\u5b83\u200b\u5305\u542b\u200b\u7a7a\u683c\u200b\u3001\u200b\u5236\u8868\u7b26\u200b\u548c\u200b\u6362\u884c\u7b26\u200b\u3002

      \u200b\u4e00\u4e2a\u200b\u7531\u200b\u5192\u53f7\u200b\u5206\u9694\u200b\u7684\u200b\u76ee\u5f55\u200b\u5217\u8868\u200b\uff08\u200b\u73af\u5883\u53d8\u91cf\u200b\uff09\uff0cshell \u200b\u5728\u200b\u5176\u4e2d\u200b\u67e5\u627e\u200b\u547d\u4ee4\u200b\u3002

      "},{"location":"Note/Missing%20Semester/Shell/#_3","title":"\u91cd\u5b9a\u5411","text":">>><2>2>>&>\u200b\u6216\u200b&>>

      \u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b.\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u521b\u5efa\u200b\u8be5\u200b\u6587\u4ef6\u200b\uff1b\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u5df2\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u8986\u76d6\u6587\u4ef6\u200b\u5185\u5bb9\u200b\u3002

      \u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u8ffd\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u7684\u200b\u672b\u5c3e\u200b.\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u521b\u5efa\u200b\u8be5\u200b\u6587\u4ef6\u200b\u3002

      \u200b\u5c06\u200b\u6587\u4ef6\u200b\u7684\u200b\u5185\u5bb9\u200b\u4f5c\u4e3a\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b\u3002

      \u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b\u3002

      \u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u8ffd\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u7684\u200b\u672b\u5c3e\u200b\u3002

      \u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u548c\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u5408\u5e76\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b\u3002

      "},{"location":"Note/Missing%20Semester/Shell/#_4","title":"\u6587\u4ef6\u200b\u6743\u9650","text":"\u6587\u4ef6\u7c7b\u578b\u200b\u6743\u9650\u200b\u6743\u9650\u200b\u5b57\u7b26\u4e32\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u6743\u9650\u200b\u4fee\u6539\u200b

      -\uff1a\u200b\u666e\u901a\u200b\u6587\u4ef6\u200b d\uff1a\u200b\u76ee\u5f55\u200b l\uff1a\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b\uff08\u200b\u8f6f\u200b\u94fe\u63a5\u200b\uff09 c\uff1a\u200b\u5b57\u7b26\u200b\u8bbe\u5907\u200b\u6587\u4ef6\u200b b\uff1a\u200b\u5757\u200b\u8bbe\u5907\u200b\u6587\u4ef6\u200b s\uff1a\u200b\u5957\u200b\u63a5\u5b57\u200b\uff08socket\uff09\u200b\u6587\u4ef6\u200b p\uff1a\u200b\u547d\u540d\u200b\u7ba1\u9053\u200b\uff08FIFO\uff09\u200b\u6587\u4ef6\u200b

      r\uff1a\u200b\u8bfb\u53d6\u200b\u6743\u9650\u200b w\uff1a\u200b\u5199\u5165\u200b\u6743\u9650\u200b x\uff1a\u200b\u6267\u884c\u200b\u6743\u9650\u200b

      \u200b\u7531\u200b 10 \u200b\u4e2a\u5b57\u7b26\u200b\u7ec4\u6210\u200b\uff0c\u200b\u7b2c\u4e00\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u7c7b\u578b\u200b\uff0c\u200b\u540e\u9762\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u7684\u200b\u6743\u9650\u200b\uff0c\u200b\u518d\u200b\u540e\u9762\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u200b\u7684\u200b\u6743\u9650\u200b\uff0c\u200b\u6700\u540e\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u7684\u200b\u6743\u9650\u200b\u3002 \u200b\u4f8b\u5982\u200b\uff0c-rw-r--r--\u200b\u8868\u793a\u200b\u666e\u901a\u200b\u6587\u4ef6\u200b\uff0c\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u5177\u6709\u200b\u8bfb\u53d6\u200b\u548c\u200b\u5199\u5165\u200b\u6743\u9650\u200b\uff0c\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u548c\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u5177\u6709\u200b\u8bfb\u53d6\u200b\u6743\u9650\u200b\u3002

      \u200b\u7531\u200b\u4e09\u4e2a\u200b\u516b\u8fdb\u5236\u200b\u6570\u5b57\u200b\u7ec4\u6210\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u6570\u5b57\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u3001\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u548c\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u7684\u200b\u6743\u9650\u200b\u3002 \u200b\u6bcf\u4e2a\u200b\u6570\u5b57\u200b\u7684\u200b\u8ba1\u7b97\u65b9\u6cd5\u200b\u662f\u200b\u5c06\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4e09\u4e2a\u200b\u6743\u9650\u200b\u8f6c\u6362\u200b\u4e3a\u200b\u516b\u8fdb\u5236\u200b\u6570\u200b\u62fc\u63a5\u200b\u8d77\u6765\u200b\u3002 \u200b\u4f8b\u5982\u200b\uff0c-rw-r--r--\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u4e3a\u200b 644\uff0c-rwxr-xr-x \u200b\u5bf9\u5e94\u200b\u7684\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u4e3a\u200b 755.

      chmod\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6743\u9650\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6570\u5b57\u200b\u8868\u793a\u6cd5\u200b\uff08\u200b\u5982\u200b chmod 755 file.txt\uff09\u200b\u6216\u200b\u7b26\u53f7\u200b\u8868\u793a\u6cd5\u200b\uff08\u200b\u5982\u200b chmod u+x file.txt\uff09\u200b\u6765\u200b\u4fee\u6539\u200b\u6743\u9650\u200b\u3002 chown\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6240\u6709\u8005\u200b\u3002 chgrp\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6240\u5c5e\u200b\u7ec4\u200b\u3002 umask\uff1a\u200b\u8bbe\u7f6e\u200b\u65b0\u521b\u5efa\u200b\u6587\u4ef6\u200b\u548c\u200b\u76ee\u5f55\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u6743\u9650\u200b\u63a9\u7801\u200b\u3002

      "},{"location":"Note/Missing%20Semester/Shell/#_5","title":"\u6587\u4ef6\u200b\u64cd\u4f5c","text":"teetouchcatcpmvrmlnmkdirrmdirfindgrepalias

      command | tee [OPTION]... [FILE]...\n
      tee\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5e38\u7528\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b\uff0c\u200b\u7528\u4e8e\u200b\u4ece\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b\u8bfb\u53d6\u6570\u636e\u200b\u5e76\u200b\u5c06\u200b\u5176\u200b\u540c\u65f6\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u548c\u200b\u6307\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e2d\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4ee5\u200b\u8ffd\u52a0\u200b\u6a21\u5f0f\u200b\u5c06\u200b\u8f93\u51fa\u200b\u9644\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u4e2d\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u8986\u76d6\u6587\u4ef6\u200b\u5185\u5bb9\u200b\u3002 -i\uff1a\u200b\u5ffd\u7565\u200b\u4e2d\u65ad\u200b\u4fe1\u53f7\u200b\uff08SIGINT\uff09\uff0c\u200b\u5373\u4f7f\u200b\u6536\u5230\u200b\u4e2d\u65ad\u200b\u4fe1\u53f7\u200b\u4e5f\u200b\u7ee7\u7eed\u200b\u8fd0\u884c\u200b\u3002 -p\uff1a\u200b\u4f7f\u7528\u200b\u539f\u59cb\u6570\u636e\u200b\u5757\u200b\u5927\u5c0f\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u6309\u884c\u200b\u7f13\u51b2\u200b\u8f93\u51fa\u200b\u3002 -u\uff1a\u200b\u7981\u7528\u200b\u8f93\u51fa\u200b\u7f13\u51b2\u533a\u200b\uff0c\u200b\u7acb\u5373\u200b\u5c06\u200b\u6570\u636e\u200b\u5199\u5165\u200b\u6587\u4ef6\u200b\u3002

      touch [OPTION]... FILE...\n
      \u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u7a7a\u200b\u6587\u4ef6\u200b\uff0c\u200b\u6216\u8005\u200b\u66f4\u65b0\u200b\u5df2\u200b\u5b58\u5728\u200b\u6587\u4ef6\u200b\u7684\u200b\u6700\u540e\u200b\u66f4\u6539\u200b\u65f6\u95f4\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4ec5\u200b\u66f4\u6539\u200b\u8bbf\u95ee\u200b\u65f6\u95f4\u200b\u3002 -c\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\u65f6\u624d\u200b\u521b\u5efa\u200b\u6587\u4ef6\u200b\u3002 -d\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b\u3002 -m\uff1a\u200b\u4ec5\u200b\u66f4\u6539\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u3002 -r\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b\u3002 -t\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b\u3002

      cat [OPTION]... [FILE]...\n
      \u200b\u5c06\u200b\u6587\u4ef6\u200b\u7684\u200b\u5185\u5bb9\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -n\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b\u3002 -b\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b\uff0c\u200b\u4f46\u200b\u4e0d\u200b\u5bf9\u200b\u7a7a\u884c\u200b\u7f16\u53f7\u200b\u3002 -s\uff1a\u200b\u5c06\u200b\u8fde\u7eed\u200b\u7684\u200b\u7a7a\u884c\u200b\u538b\u7f29\u6210\u200b\u4e00\u4e2a\u200b\u7a7a\u884c\u200b\u3002

      cp [OPTION]... SOURCE... DIRECTORY\ncp [OPTION]... SOURCE... DEST\ncp [OPTION]... -t DIRECTORY SOURCE...\n
      \u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u590d\u5236\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\uff0c\u200b\u6216\u8005\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u590d\u5236\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e2d\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4fdd\u7559\u200b\u6587\u4ef6\u200b\u7684\u200b\u6240\u6709\u200b\u5c5e\u6027\u200b\uff0c\u200b\u9012\u5f52\u200b\u590d\u5236\u200b\u76ee\u5f55\u200b\u3002 -i\uff1a\u200b\u5728\u200b\u8986\u76d6\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b\u3002 -r\uff1a\u200b\u9012\u5f52\u200b\u590d\u5236\u200b\u76ee\u5f55\u200b\u3002 -u\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6e90\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u6bd4\u200b\u76ee\u6807\u200b\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u8f83\u65b0\u65f6\u200b\u624d\u200b\u590d\u5236\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u590d\u5236\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

      mv [OPTION]... SOURCE... DIRECTORY\nmv [OPTION]... SOURCE... DEST\n
      \u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u79fb\u52a8\u200b\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\uff0c\u200b\u6216\u8005\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u91cd\u547d\u540d\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -i\uff1a\u200b\u5728\u200b\u8986\u76d6\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b\u3002 -u\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6e90\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u6bd4\u200b\u76ee\u6807\u200b\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u8f83\u65b0\u65f6\u200b\u624d\u200b\u79fb\u52a8\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u79fb\u52a8\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

      rm [OPTION]... FILE...\n
      \u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -f\uff1a\u200b\u5f3a\u5236\u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\uff0c\u200b\u4e0d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b\u3002 -i\uff1a\u200b\u5728\u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b\u3002 -r\uff1a\u200b\u9012\u5f52\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u5220\u9664\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

      ln [OPTION]... [-T] TARGET LINK_NAME\nln [OPTION]... TARGET\nln [OPTION]... TARGET... DIRECTORY\nln [OPTION]... -t DIRECTORY TARGET...\n
      \u200b\u521b\u5efa\u200b\u786c\u200b\u94fe\u63a5\u200b\u6216\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -s\uff1a\u200b\u521b\u5efa\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u521b\u5efa\u200b\u94fe\u63a5\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

      mkdir [OPTION]... DIRECTORY...\n
      \u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -m\uff1a\u200b\u8bbe\u7f6e\u200b\u76ee\u5f55\u200b\u7684\u200b\u6743\u9650\u200b\u3002 -p\uff1a\u200b\u9012\u5f52\u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

      rmdir [OPTION]... DIRECTORY...\n
      \u200b\u5220\u9664\u200b\u7a7a\u76ee\u5f55\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -p\uff1a\u200b\u9012\u5f52\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

      find [OPTION]... [PATH...] [EXPRESSION]\n
      \u200b\u5728\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\u67e5\u627e\u6587\u4ef6\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -name\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u540d\u200b\u67e5\u627e\u200b\u3002 -type\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u7c7b\u578b\u200b\u67e5\u627e\u200b\u3002 -size\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u5927\u5c0f\u200b\u67e5\u627e\u200b\u3002 -perm\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u200b\u6743\u9650\u200b\u67e5\u627e\u200b\u3002 -exec\uff1a\u200b\u5bf9\u200b\u67e5\u627e\u200b\u5230\u200b\u7684\u200b\u6587\u4ef6\u200b\u6267\u884c\u200b\u6307\u5b9a\u200b\u7684\u200b\u547d\u4ee4\u200b\u3002

      grep [OPTION]... PATTERN [FILE]...\n
      \u200b\u5728\u200b\u6587\u4ef6\u200b\u4e2d\u200b\u67e5\u627e\u200b\u5339\u914d\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -i\uff1a\u200b\u5ffd\u7565\u200b\u5927\u5c0f\u5199\u200b\u3002 -v\uff1a\u200b\u53cd\u5411\u200b\u5339\u914d\u200b\u3002 -n\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b\u3002 -c\uff1a\u200b\u8f93\u51fa\u200b\u5339\u914d\u200b\u7684\u200b\u884c\u6570\u200b\u3002 -r\uff1a\u200b\u9012\u5f52\u200b\u67e5\u627e\u200b\u3002

      alias [OPTION]... [NAME[=VALUE]]...\n
      \u200b\u521b\u5efa\u200b\u547d\u4ee4\u200b\u522b\u540d\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -p\uff1a\u200b\u663e\u793a\u200b\u6240\u6709\u200b\u522b\u540d\u200b\u3002 -r\uff1a\u200b\u5220\u9664\u200b\u6307\u5b9a\u200b\u7684\u200b\u522b\u540d\u200b\u3002

      "},{"location":"Note/Missing%20Semester/Shell/#_6","title":"\u811a\u672c\u200b\u8bed\u6cd5","text":""},{"location":"Note/Missing%20Semester/Shell/#shebang","title":"SheBang","text":"

      Bash \u200b\u811a\u672c\u200b\u901a\u5e38\u200b\u4ee5\u200b shebang \u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b\u7684\u200b\u7b2c\u4e00\u884c\u200b\uff0c\u200b\u6307\u5b9a\u200b\u8981\u200b\u7528\u4e8e\u200b\u89e3\u91ca\u200b\u811a\u672c\u200b\u7684\u200b\u89e3\u91ca\u5668\u200b.\u200b\u5e38\u89c1\u200b\u7684\u200b shebang \u200b\u4e3a\u200b#!/bin/bash\uff0c\u200b\u8868\u793a\u200b\u4f7f\u7528\u200b Bash \u200b\u89e3\u91ca\u5668\u200b\u89e3\u91ca\u200b\u811a\u672c\u200b\u3002

      \u200b\u73af\u5883\u53d8\u91cf\u200b\u8def\u5f84\u200b

      \u200b\u5982\u679c\u200b\u8981\u200b\u5728\u200b\u811a\u672c\u200b\u4e2d\u200b\u4f7f\u7528\u200b shebang\uff0c\u200b\u6700\u597d\u200b\u4f7f\u7528\u200b#!/usr/bin/env bash\uff0c\u200b\u8fd9\u6837\u200b\u53ef\u4ee5\u200b\u907f\u514d\u200b\u4f7f\u7528\u200b\u7edd\u5bf9\u8def\u5f84\u200b\uff0c\u200b\u800c\u662f\u200b\u4f7f\u7528\u200b\u73af\u5883\u53d8\u91cf\u200b\u4e2d\u200b\u7684\u200b\u8def\u5f84\u200b\u3002

      "},{"location":"Note/Missing%20Semester/Shell/#_7","title":"\u53d8\u91cf","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u53d8\u91cf\u200b\u4e0d\u200b\u9700\u8981\u200b\u58f0\u660e\u200b\uff0c\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\u5373\u53ef\u200b.\u200b\u53d8\u91cf\u540d\u200b\u548c\u200b\u7b49\u200b\u53f7\u200b\u4e4b\u95f4\u200b\u4e0d\u80fd\u200b\u6709\u200b\u7a7a\u683c\u200b\uff0c\u200b\u7b49\u200b\u53f7\u200b\u540e\u9762\u200b\u7684\u200b\u503c\u200b\u4e0d\u80fd\u200b\u4f7f\u7528\u200b\u7a7a\u683c\u200b\u5305\u56f4\u200b.\u200b\u53d8\u91cf\u540d\u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b\u5927\u5199\u5b57\u6bcd\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e0d\u662f\u200b\u5fc5\u987b\u200b\u7684\u200b\u3002

      "},{"location":"Note/Missing%20Semester/Shell/#_8","title":"\u547d\u4ee4\u200b\u66ff\u6362","text":"

      \u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7528\u4e8e\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b.\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7684\u200b\u8bed\u6cd5\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a

      • `command`
      • $(command)
      "},{"location":"Note/Missing%20Semester/Shell/#_9","title":"\u8fdb\u7a0b\u200b\u66ff\u6362","text":"

      \u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u7528\u4e8e\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u4f5c\u4e3a\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u53c2\u6570\u200b.\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u7684\u200b\u8bed\u6cd5\u200b\u4e3a\u200b<(command). \u200b\u53ef\u4ee5\u200b\u5c06\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u770b\u4f5c\u200b\u662f\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7684\u200b\u7279\u6b8a\u200b\u5f62\u5f0f\u200b\uff0c\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b\uff0c\u200b\u800c\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u4f5c\u4e3a\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u53c2\u6570\u200b\u3002

      \u200b\u4f8b\u5982\u200b\uff1afiles=$(ls)

      "},{"location":"Note/Missing%20Semester/Shell/#_10","title":"\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55","text":"

      \u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u7528\u4e8e\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u5b57\u7b26\u4e32\u200b\u5217\u8868\u200b.\u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u7684\u200b\u8bed\u6cd5\u200b\u4e3a\u200b{string1\uff0cstring2\uff0c...}.

      \u200b\u4f8b\u5982\u200b\uff1aecho {1..10}

      \u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b\u7b1b\u5361\u5c14\u200b\u79ef\u200b\u8fd0\u7b97\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u4e3a\u200b{string1\uff0cstring2\uff0c...}{string1\uff0cstring2\uff0c...}.

      "},{"location":"Note/Missing%20Semester/Shell/#_11","title":"\u901a\u914d\u7b26","text":"

      \u200b\u901a\u914d\u7b26\u200b\u7528\u4e8e\u200b\u5339\u914d\u200b\u6587\u4ef6\u540d\u200b.\u200b\u5e38\u89c1\u200b\u7684\u200b\u901a\u914d\u7b26\u200b\u5305\u62ec\u200b\uff1a

      • *\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u6570\u91cf\u200b\u7684\u200b\u4efb\u610f\u200b\u5b57\u7b26\u200b\u3002
      • ?\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u7b26\u200b\u3002
      • [characters]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u5b57\u7b26\u96c6\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
      • [!characters]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u5b57\u7b26\u96c6\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
      • [[:class:]]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u5b57\u7b26\u200b\u7c7b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
      • [^class]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u5b57\u7b26\u200b\u7c7b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
      • [x-y]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u8303\u56f4\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
      • [^x-y]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u8303\u56f4\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
      • [:alnum:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b\u6216\u200b\u6570\u5b57\u200b\u3002
      • [:alpha:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b\u3002
      • [:blank:]\uff1a\u200b\u5339\u914d\u200b\u7a7a\u683c\u200b\u6216\u200b\u5236\u8868\u7b26\u200b\u3002
      • [:digit:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u6570\u5b57\u200b\u3002
      • [:lower:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c0f\u5199\u5b57\u6bcd\u200b\u3002
      • [:upper:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5927\u5199\u5b57\u6bcd\u200b\u3002
      • [:space:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u7a7a\u767d\u200b\u5b57\u7b26\u200b\u3002
      • [:punct:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u6807\u70b9\u7b26\u53f7\u200b\u3002
      • [:word:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b\u3001\u200b\u6570\u5b57\u200b\u6216\u200b\u4e0b\u5212\u7ebf\u200b\u3002
      • [:xdigit:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5341\u516d\u8fdb\u5236\u200b\u6570\u5b57\u200b\u3002
      • [:graph:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u56fe\u5f62\u200b\u5b57\u7b26\u200b\u3002
      • [:print:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u53ef\u200b\u6253\u5370\u200b\u5b57\u7b26\u200b\u3002
      • [:cntrl:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u63a7\u5236\u5b57\u7b26\u200b\u3002
      • [:ascii:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b ASCII \u200b\u5b57\u7b26\u200b\u3002
      "},{"location":"Note/Missing%20Semester/Shell/#_12","title":"\u7b97\u672f\u200b\u8fd0\u7b97","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u7b97\u672f\u200b\u8fd0\u7b97\u200b\u4f7f\u7528\u200b$((expression))\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho $((1+1))

      "},{"location":"Note/Missing%20Semester/Shell/#_13","title":"\u903b\u8f91\u8fd0\u7b97","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u903b\u8f91\u8fd0\u7b97\u200b\u4f7f\u7528\u200b&&\u3001||\u200b\u548c\u200b!\uff0c\u200b\u4f8b\u5982\u200b\uff1a[ -d /tmp ] && echo \"Directory exists\"

      "},{"location":"Note/Missing%20Semester/Shell/#_14","title":"\u6761\u4ef6\u200b\u5224\u65ad","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u6761\u4ef6\u200b\u5224\u65ad\u200b\u4f7f\u7528\u200bif\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a

      if [[ condition ]]; then\n    #statements\nelif [[ condition ]]; then\n    #statements\nelse\n    #statements\nfi\n
      "},{"location":"Note/Missing%20Semester/Shell/#_15","title":"\u5faa\u73af","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u5faa\u73af\u200b\u4f7f\u7528\u200bfor\u200b\u548c\u200bwhile\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a

      for (( i = 0; i < 10; i++ )); do\n    #statements\ndone\n\nfor i in {1..10}; do\n    #statements\ndone\n\nfor i in $(ls); do\n    #statements\ndone\n\nwhile [[ condition ]]; do\n    #statements\ndone\n
      "},{"location":"Note/Missing%20Semester/Shell/#_16","title":"\u51fd\u6570","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u51fd\u6570\u200b\u4f7f\u7528\u200bfunction\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a

      function name {\n    #statements\n}\n
      "},{"location":"Note/Missing%20Semester/Shell/#_17","title":"\u6570\u7ec4","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u6570\u7ec4\u200b\u4f7f\u7528\u200barray=(element1 element2 element3)\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aarray=(1 2 3) \u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200barray[index]\u200b\u8bed\u6cd5\u200b\u8bbf\u95ee\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[1]} \u200b\u6570\u7ec4\u200b\u957f\u5ea6\u200b\u4f7f\u7528\u200b${#array[@]}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${#array[@]} \u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200b${array[@]:index:length}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[@]:1:2}\uff0c\u200b\u8fd9\u4f1a\u200b\u83b7\u53d6\u200b\u6570\u7ec4\u200b\u4e2d\u200b\u4ece\u200b\u7b2c\u4e8c\u4e2a\u200b\u5143\u7d20\u200b\u5f00\u59cb\u200b\u7684\u200b\u4e24\u4e2a\u200b\u5143\u7d20\u200b \u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200b${array[@]/pattern/string}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[@]/2/4}\uff0c\u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u6570\u7ec4\u200b\u4e2d\u200b\u7684\u200b\u6240\u6709\u200b 2 \u200b\u66ff\u6362\u200b\u4e3a\u200b 4

      "},{"location":"Note/Missing%20Semester/Shell/#_18","title":"\u5b57\u7b26\u4e32","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b'string'\u200b\u6216\u8005\u200b\"string\"\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho 'Hello World!' \u200b\u5b57\u7b26\u4e32\u200b\u957f\u5ea6\u200b\u4f7f\u7528\u200b${#string}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${#string} \u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b${string:position:length}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${string:1:2} \u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b${string/substring/replacement}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${string/Hello/Hi}\uff0c\u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u5b57\u7b26\u4e32\u200b\u4e2d\u200b\u7684\u200b\u7b2c\u4e00\u4e2a\u200b Hello \u200b\u66ff\u6362\u200b\u4e3a\u200b Hi

      "},{"location":"Note/Missing%20Semester/Shell/#here","title":"Here \u200b\u6587\u6863","text":"

      Here \u200b\u6587\u6863\u200b\u7528\u4e8e\u200b\u5c06\u200b\u591a\u884c\u200b\u6587\u672c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b\u3002

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u6587\u6863\u200b\u4f7f\u7528\u200b<<\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a

      read -d '' string <<EOF\nHello\nWorld!\nEOF\necho \"$string\"\n
      \u200b\u8fd9\u4f1a\u200b\u5c06\u200b Hello World!\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b string

      "},{"location":"Note/Missing%20Semester/Shell/#here_1","title":"Here \u200b\u5b57\u7b26\u4e32","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b<<<\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1acat <<<\"Hello World!\"

      "},{"location":"Note/Missing%20Semester/Shell/#here_2","title":"Here \u200b\u811a\u672c","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u811a\u672c\u200b\u4f7f\u7528\u200b<<-\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a

      cat <<-EOF\n    Hello\n    World!\nEOF\n

      "},{"location":"Note/Missing%20Semester/Shell/#_19","title":"\u8f93\u5165","text":"

      Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u8f93\u5165\u200b\u4f7f\u7528\u200bread\u200b\u8bed\u53e5\u200b \u200b\u5176\u200b\u53c2\u6570\u200b\u5305\u62ec\u200b\uff1a - -p\uff1a\u200b\u63d0\u793a\u7b26\u200b - -n\uff1a\u200b\u8bfb\u53d6\u200b\u7684\u200b\u5b57\u7b26\u200b\u6570\u200b - -t\uff1a\u200b\u8d85\u65f6\u200b\u65f6\u95f4\u200b - -s\uff1a\u200b\u4e0d\u200b\u56de\u663e\u200b\u8f93\u5165\u200b\u7684\u200b\u5b57\u7b26\u200b - -a\uff1a\u200b\u5c06\u200b\u8f93\u5165\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u6570\u7ec4\u200b - -d\uff1a\u200b\u5206\u9694\u7b26\u200b - -r\uff1a\u200b\u4e0d\u200b\u5bf9\u200b\u53cd\u200b\u659c\u6760\u200b\u8fdb\u884c\u200b\u8f6c\u4e49\u200b - -e\uff1a\u200b\u4f7f\u7528\u200b Readline \u200b\u5e93\u200b - -i\uff1a\u200b\u9ed8\u8ba4\u503c\u200b - -u\uff1a\u200b\u8f93\u5165\u200b\u7684\u200b\u6587\u4ef6\u200b\u63cf\u8ff0\u7b26\u200b

      \u200b\u4f8b\u5982\u200b\uff1a

      read -p \"Enter your name: \" name\necho \"Hello $name\"\n

      "},{"location":"Note/Missing%20Semester/Vim/","title":"Vim \uff08Revisited\uff09","text":"

      \u200b\u7ea6\u200b 758 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

      \u200b\u91cd\u5199\u200b\u8fd9\u7bc7\u200b\u7b14\u8bb0\u200b\u7684\u200b\u65f6\u5019\u200b\u6211\u200b\u5df2\u7ecf\u200b\u7528\u200b\u4e86\u200b\u4e00\u6bb5\u65f6\u95f4\u200b vim\uff0c\u200b\u7b14\u8bb0\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u8fc7\u4e8e\u200b\u7b80\u7565\u200b\uff0c\u200b\u8be6\u7ec6\u200b\u53ef\u200b\u53c2\u8003\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b

      "},{"location":"Note/Missing%20Semester/Vim/#_1","title":"\u57fa\u7840","text":""},{"location":"Note/Missing%20Semester/Vim/#_2","title":"\u6a21\u5f0f","text":"

      \u200b\u6211\u4eec\u200b\u5199\u200b\u4ee3\u7801\u200b\u4e8b\u200b\u5e76\u200b\u4e0d\u200b\u4e00\u76f4\u200b\u90fd\u200b\u662f\u200b\u8fde\u7eed\u200b\u7684\u200b\u8f93\u5165\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u8df3\u8f6c\u200b\u5230\u200b\u67d0\u4e2a\u200b\u5730\u65b9\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u505a\u200b\u4e9b\u5c0f\u200b\u4fee\u6539\u200b\u66ff\u6362\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u9605\u8bfb\u200b\u4ee3\u7801\u200b\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u8fde\u7eed\u200b\u8f93\u5165\u200b\u3002 \u200b\u4e3a\u6b64\u200b\uff0cvim \u200b\u4f7f\u7528\u200b\u4e0d\u540c\u200b\u6a21\u5f0f\u200b\u6765\u200b\u4fbf\u5229\u200b\u5404\u4e2a\u200b\u4e0d\u540c\u200b\u76ee\u7684\u200b\u7684\u200b\u64cd\u4f5c\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u76f8\u540c\u200b\u7684\u200b\u952e\u200b\u5728\u200b\u4e0d\u540c\u200b\u6a21\u5f0f\u200b\u4e0b\u200b\u610f\u4e49\u200b\u4e0d\u540c\u200b\u3002

      vim \u200b\u4e2d\u200b\u6700\u200b\u5e38\u7528\u200b\u7684\u200b\u6a21\u5f0f\u200b\u6709\u200b

      normalinsertreplacevisualcommand-line

      \u200b\u9ed8\u8ba4\u200b\u521d\u59cb\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u4efb\u4f55\u200b\u6a21\u5f0f\u200b\u90fd\u200b\u53ef\u4ee5\u200b\u6309\u200b\u56de\u5230\u200b normal.\u200b\u9605\u8bfb\u200b\u6a21\u5f0f\u200b

      i\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u8fde\u7eed\u200b\u7684\u200b\u8f93\u5165\u200b\uff0c\u200b\u53ea\u7528\u200b i \u200b\u53ef\u4ee5\u200b\u65e0\u7f1d\u200b\u9000\u5316\u200b\u56de\u200b\u539f\u5148\u200b\u4ec0\u4e48\u200b\u529f\u80fd\u200b\u90fd\u200b\u6ca1\u6709\u200b\u7684\u200b\u7f16\u8f91\u5668\u200b.\u200b\u8f93\u5165\u200b\u6a21\u5f0f\u200b

      R\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u8fde\u7eed\u200b\u7684\u200b\u66ff\u6362\u200b.\u200b\u66ff\u6362\u200b\u6a21\u5f0f\u200b

      v\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u9009\u62e9\u200b\uff0cV \u200b\u8fdb\u5165\u200b\u884c\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u6309\u884c\u200b\u9009\u62e9\u200b\uff0c C-v \u200b\u8fdb\u5165\u200b\u5757\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u6309\u200b\u4efb\u610f\u200b\u8fb9\u957f\u200b\u9009\u62e9\u200b\u957f\u65b9\u5f62\u200b.\u200b\u9009\u62e9\u200b\u6a21\u5f0f\u200b

      :\u200b\u8fdb\u5165\u200b\uff0c\u200b\u5904\u7406\u200b\u547d\u4ee4\u884c\u200b\u64cd\u4f5c\u200b\uff08\u200b\u6700\u200b\u57fa\u672c\u200b\u7684\u200b\u6709\u200b :w \u200b\u4fdd\u5b58\u200b :q \u200b\u9000\u51fa\u200b :wq \u200b\u4fdd\u5b58\u200b\u9000\u51fa\u200b :q!\u200b\u5f3a\u5236\u200b\u9000\u51fa\u200b\uff09.\u200b\u547d\u4ee4\u884c\u200b\u6a21\u5f0f\u200b

      "},{"location":"Note/Missing%20Semester/Vim/#_3","title":"\u7ed3\u6784","text":"

      \u200b\u4e00\u4e2a\u200b Vim \u200b\u8fdb\u7a0b\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b\u6807\u7b7e\u200b\u9875\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u6807\u7b7e\u200b\u9875\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b\u7a97\u53e3\u200b\uff0c\u200b\u800c\u200b\u4e00\u4e2a\u200b\u7a97\u53e3\u200b\u50cf\u200b\u53ea\u200b\u773c\u775b\u200b\u770b\u200b\u5411\u200b\u4e00\u4e2a\u200b\u7279\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b(Buffer)

      "},{"location":"Note/Missing%20Semester/Vim/#_4","title":"\u64cd\u4f5c","text":"

      Normal move

      • \u200b\u4e0a\u4e0b\u5de6\u53f3\u200b\uff1ahjkl
      • \u200b\u4ee5\u200b\u5355\u8bcd\u200b\u4e3a\u754c\u200b\uff1aw \uff08\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u5355\u8bcd\u200b\uff09\uff0c b \uff08\u200b\u5355\u8bcd\u200b\u5f00\u5934\u200b\uff09\uff0c e \uff08\u200b\u5355\u8bcd\u200b\u7ed3\u5c3e\u200b\uff09
      • \u200b\u4ee5\u200b\u884c\u4e3a\u200b\u754c\u200b\uff1a0 \uff08\u200b\u884c\u200b\u5f00\u5934\u200b\uff09\uff0c ^ \uff08\u200b\u884c\u200b\u9996\u4e2a\u200b\u975e\u200b\u7a7a\u5b57\u7b26\u200b\uff09\uff0c $ \uff08\u200b\u884c\u5c3e\u200b\uff09
      • \u200b\u4ee5\u5c4f\u200b\u4e3a\u754c\u200b\uff1aH \uff08\u200b\u5c4f\u5e55\u200b\u5f00\u5934\u200b\uff09\uff0c M \uff08\u200b\u5c4f\u5e55\u200b\u4e2d\u95f4\u200b\uff09\uff0c L \uff08\u200b\u5c4f\u5e55\u200b\u5e95\u90e8\u200b\uff09
      • \u200b\u6eda\u52a8\u200b\uff1aCtrl-u \uff08\u200b\u4e0a\u200b\uff09\uff0c Ctrl-d \uff08\u200b\u4e0b\u200b\uff09
      • \u200b\u4ee5\u200b\u6587\u4ef6\u200b\u4e3a\u754c\u200b\uff1agg \uff08\u200b\u6587\u4ef6\u200b\u5f00\u5934\u200b\uff09\uff0c G \uff08\u200b\u6587\u4ef6\u200b\u5c3e\u200b\uff09\uff0c G\uff08\u200b\u5bf9\u5e94\u200b\u884c\u200b\uff09
      • \u200b\u4ee5\u200b\u5de6\u53f3\u200b\u4e3a\u754c\u200b\uff1a% \uff08\u200b\u5bf9\u5e94\u200b\u7684\u200b\u53e6\u4e00\u534a\u200b\u62ec\u53f7\u200b\u6216\u8005\u200b\u7c7b\u4f3c\u200b\u7684\u200b\uff09
      • \u200b\u884c\u5185\u200b\u5bfb\u627e\u200b\uff1af{character}\uff0c t{character}\uff0c F{cracter}\uff0c T{character} \u200b\u5c0f\u5199\u200b\u5f80\u540e\u200b\u5927\u5199\u200b\u5f80\u524d\u200b
      • \u200b\u641c\u7d22\u200b\uff1a/{regex}\uff0c?{regex} \u200b\u5f80\u540e\u200b\u5f80\u524d\u200b\u641c\u7d22\u200b \uff0c\u200b\u6309\u200b n \u200b\u7ee7\u7eed\u200b\u641c\u4e0b\u200b\u4e00\u4e2a\u200b\uff0c\u200b\u6309\u200b N \u200b\u53cd\u5411\u200b\u7ee7\u7eed\u200b
      • Normal edit

        • o / O \uff1a\u200b\u5728\u200b\u4e0b\u200b/\u200b\u4e0a\u200b\u65b0\u5efa\u200b\u4e00\u884c\u200b\u5e76\u200b\u8fdb\u5165\u200b\u63d2\u5165\u200b\u6a21\u5f0f\u200b
        • d{motion} \uff1a\u200b\u6309\u7167\u200b motion \u200b\u5220\u9664\u200b\uff0cmotion \u200b\u89c1\u200b move \u200b\u90e8\u5206\u200b
        • c{motion} \uff1a\u200b\u6bd4\u200b d{motion}\u200b\u591a\u200b\u4e00\u6b65\u200b\u8fdb\u5165\u200b\u63d2\u5165\u200b\u6a21\u5f0f\u200b
        • x \uff1a \u200b\u5220\u9664\u200b\u5f53\u524d\u200b\u5149\u6807\u200b\u5b57\u7b26\u200b
        • s \uff1a \u200b\u4ee5\u200b\u4ee3\u66ff\u200b\u5f53\u200b\u5149\u6807\u200b\u5b57\u7b26\u200b
        • Visual mode + manipulation \uff1a \u200b\u8fd9\u4e9b\u200b\u64cd\u4f5c\u200b\u4e5f\u200b\u9002\u7528\u200b\u4e8e\u200b\u9009\u62e9\u200b\u6a21\u5f0f\u200b\u9009\u4e2d\u200b\u540e\u200b
        • u \u200b\u64a4\u56de\u200b\uff0c \u200b\u53d6\u6d88\u200b\u64a4\u56de\u200b
        • y \u200b\u590d\u5236\u200b
        • p \u200b\u7c98\u8d34\u200b
        • manipulation \uff1a \u200b\u91cd\u590d\u200b\u6b21\u200b\u64cd\u4f5c\u200b
        • i/a \uff1a inside/around \uff0c\u200b\u5728\u200b\u4ec0\u4e48\u200b\u4e4b\u5185\u200b/\u200b\u5468\u56f4\u200b\u64cd\u4f5c\u200b.\u200b\u4f8b\u5982\u200b\uff1adi( \u200b\u5728\u200b\uff08\uff09\u200b\u4e4b\u5185\u200b\u5220\u9664\u200b\uff1bda( \u200b\u5305\u62ec\u200b\uff08\uff09\u200b\u5220\u9664\u200b
        • Commandline mode

          • :w \u200b\u4fdd\u5b58\u200b
          • :q \u200b\u9000\u51fa\u200b
          • :wq \u200b\u4fdd\u5b58\u200b\u9000\u51fa\u200b
          • :q! \u200b\u5f3a\u5236\u200b\u9000\u51fa\u200b
          • :e \u200b\u6253\u5f00\u200b\u6587\u4ef6\u200b
          • :s// \u200b\u4e00\u884c\u200b\u7b2c\u4e00\u4e2a\u200b\u66ff\u6362\u200b
          • :s///g \u200b\u5168\u884c\u200b\u66ff\u6362\u200b
          • :s///gc \u200b\u5168\u884c\u200b\u66ff\u6362\u200b\u5e76\u200b\u8be2\u95ee\u200b
          • :%s///g \u200b\u5168\u200b\u6587\u4ef6\u200b\u66ff\u6362\u200b
          • :\uff0c s///g \u200b\u4ece\u200b\u7b2c\u884c\u200b\u5230\u200b\u7b2c\u884c\u200b\u66ff\u6362"},{"location":"Note/Missing%20Semester/Vim/#advanced-vim","title":"Advanced Vim","text":"
            • Vim \u200b\u662f\u200b\u9ad8\u5ea6\u200b\u53ef\u200b\u5b9a\u5236\u200b\u5316\u200b\u7684\u200b.\u200b\u53ea\u8981\u200b\u8981\u200b\u6539\u53d8\u200b\u7528\u6237\u200b\u76ee\u5f55\u200b\u4e0b\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u5373\u53ef\u200b(~/.vimrc).\u200b\u4e5f\u200b\u53ef\u200b\u53c2\u8003\u200b\u6211\u200b\u975e\u5e38\u7b80\u5355\u200b\u7684\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b
            • Vim \u200b\u4e5f\u200b\u6709\u200b\u8bb8\u591a\u200b\u4f18\u8d28\u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u6211\u200b\u51e0\u4e4e\u200b\u6ca1\u6709\u200b\u6dfb\u52a0\u200b\u4efb\u4f55\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u800c\u662f\u200b\u628a\u200b Vim \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u63d2\u4ef6\u200b\u5728\u200b VSCode \u200b\u4e0a\u200b\u4f7f\u7528\u200b
            "},{"location":"Note/Missing%20Semester/commandline_env/","title":"Commandline Enviroment","text":"

            \u200b\u7ea6\u200b 1800 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 6 \u200b\u5206\u949f\u200b

            \u200b\u8bb0\u5f55\u200b missing semester\u200b\u6b64\u5802\u200b\u8bfe\u200b\u7684\u200b\u4e00\u4e9b\u200b\u7b14\u8bb0\u200b

            "},{"location":"Note/Missing%20Semester/commandline_env/#job-control","title":"Job Control","text":"

            \u200b\u7ec8\u7aef\u200b\u7684\u200b\u4f5c\u4e1a\u63a7\u5236\u200b\uff08Job Control\uff09\u200b\u662f\u200b\u4e00\u79cd\u200b\u5728\u200b\u547d\u4ee4\u884c\u200b\u73af\u5883\u200b\u4e0b\u200b\u7ba1\u7406\u200b\u548c\u200b\u63a7\u5236\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff08Job\uff09\u200b\u7684\u200b\u673a\u5236\u200b.\u200b\u5b83\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e00\u4e9b\u200b\u547d\u4ee4\u200b\u548c\u200b\u6280\u672f\u200b\uff0c\u200b\u4f7f\u200b\u7528\u6237\u200b\u80fd\u591f\u200b\u5728\u200b\u7ec8\u7aef\u200b\u540c\u65f6\u200b\u8fd0\u884c\u200b\u591a\u4e2a\u200b\u547d\u4ee4\u200b\uff0c\u200b\u5e76\u200b\u5728\u200b\u9700\u8981\u200b\u65f6\u200b\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u7ba1\u7406\u200b\u3002

            \u200b\u4f5c\u4e1a\u200b

            \u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\uff08Foreground Job\uff09\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\uff08Background Job\uff09\u200b\u4f5c\u4e1a\u72b6\u6001\u200b\u548c\u200b\u4fe1\u53f7\u200b

            \u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u6d3b\u52a8\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u5b83\u4f1a\u200b\u5728\u200b\u7ec8\u7aef\u200b\u663e\u793a\u200b\u5176\u200b\u8f93\u51fa\u200b\uff0c\u200b\u5e76\u200b\u5360\u7528\u200b\u7ec8\u7aef\u200b\u7684\u200b\u8f93\u5165\u200b.\u200b\u53ea\u6709\u200b\u5f53\u524d\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\u6216\u200b\u88ab\u200b\u6682\u505c\u200b\u65f6\u200b\uff0c\u200b\u624d\u80fd\u200b\u6267\u884c\u200b\u5176\u4ed6\u200b\u547d\u4ee4\u200b\u3002

            \u200b\u540e\u53f0\u4f5c\u4e1a\u200b\u662f\u200b\u5728\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u5b83\u200b\u4e0d\u4f1a\u200b\u5360\u7528\u200b\u7ec8\u7aef\u200b\u7684\u200b\u8f93\u5165\u200b\u548c\u200b\u8f93\u51fa\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u7279\u6b8a\u5b57\u7b26\u200b & \u200b\u5c06\u200b\u547d\u4ee4\u200b\u653e\u7f6e\u200b\u5728\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b\uff0c\u200b\u4ece\u800c\u200b\u5141\u8bb8\u200b\u540c\u65f6\u200b\u8fd0\u884c\u200b\u591a\u4e2a\u200b\u547d\u4ee4\u200b\u3002

            \u200b\u6bcf\u4e2a\u200b\u4f5c\u4e1a\u200b\u90fd\u200b\u5177\u6709\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\uff0c\u200b\u5982\u200b\u8fd0\u884c\u200b\u4e2d\u200b\u3001\u200b\u505c\u6b62\u200b\u6216\u200b\u5b8c\u6210\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4fe1\u53f7\u200b\u6765\u200b\u63a7\u5236\u200b\u4f5c\u4e1a\u200b\u7684\u200b\u884c\u4e3a\u200b\uff0c\u200b\u5982\u200b Ctrl-C\uff08\u200b\u4e2d\u65ad\u200b\u4f5c\u4e1a\u200b\uff09\u200b\u548c\u200b Ctrl-D\uff08\u200b\u7ed3\u675f\u200b\u4f5c\u4e1a\u200b\u8f93\u5165\u200b\uff09.

            \u200b\u4f5c\u4e1a\u63a7\u5236\u200b\u547d\u4ee4\u200b

            jobsfgbgkillman signalCtrl-CCtrl-Z

            jobs \u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5217\u51fa\u200b\u5f53\u524d\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b.\u200b\u6bcf\u4e2a\u200b\u4f5c\u4e1a\u200b\u90fd\u200b\u6709\u200b\u4e00\u4e2a\u200b\u552f\u4e00\u200b\u7684\u200b ID\uff0c\u200b\u524d\u9762\u200b\u5e26\u6709\u200b\u4e00\u4e2a\u200b + \u200b\u53f7\u200b\u7684\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u7684\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u524d\u9762\u200b\u5e26\u6709\u200b\u4e00\u4e2a\u200b - \u200b\u53f7\u200b\u7684\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u7684\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\u3002

            fg \u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5c06\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\u5207\u6362\u200b\u5230\u200b\u524d\u53f0\u200b\u8fd0\u884c\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b % \u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\u3002

            bg \u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5c06\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u5207\u6362\u200b\u5230\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b % \u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\u3002

            kill \u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5411\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b\u4fe1\u53f7\u200b.\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0ckill \u200b\u547d\u4ee4\u200b\u4f1a\u200b\u53d1\u9001\u200b SIGTERM \u200b\u4fe1\u53f7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b -SIGNAL \u200b\u9009\u9879\u200b\u6765\u200b\u6307\u5b9a\u200b\u4fe1\u53f7\u200b\u7c7b\u578b\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b % \u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\u3002

            man signal \u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u67e5\u770b\u200b\u6240\u6709\u200b\u53ef\u4ee5\u200b\u53d1\u9001\u7ed9\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u4fe1\u53f7\u200b\u3002

            Ctrl-C \u200b\u5feb\u6377\u952e\u200b\u7528\u4e8e\u200b\u5411\u524d\u200b\u53f0\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b SIGINT \u200b\u4fe1\u53f7\u200b\uff0c\u200b\u901a\u5e38\u200b\u7528\u4e8e\u200b\u7ec8\u6b62\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u3002

            Ctrl-Z \u200b\u5feb\u6377\u952e\u200b\u7528\u4e8e\u200b\u5411\u524d\u200b\u53f0\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b SIGTSTP \u200b\u4fe1\u53f7\u200b\uff0c\u200b\u901a\u5e38\u200b\u7528\u4e8e\u200b\u6682\u505c\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u3002

            "},{"location":"Note/Missing%20Semester/commandline_env/#terminal-multiplexer","title":"Terminal Multiplexer","text":"

            \u200b\u9996\u5148\u200b\u7406\u89e3\u200b tmux \u200b\u7684\u200b\u81ea\u4e0a\u200b\u5411\u4e0b\u200b\u4e09\u4e2a\u200b\u4e0d\u540c\u200b\u5c42\u7ea7\u200b\uff1asession\uff0cwindow\uff0cpane

            sessionwindowpane

            session \u200b\u662f\u200b tmux \u200b\u7684\u200b\u6700\u9ad8\u200b\u5c42\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b tmux \u200b\u7684\u200b\u5b9e\u4f8b\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b session\uff0c\u200b\u6bcf\u4e2a\u200b session \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b window\uff0c\u200b\u6bcf\u4e2a\u200b window \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty

            window \u200b\u662f\u200b session \u200b\u7684\u200b\u7b2c\u4e8c\u5c42\u200b\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b\u7ec8\u7aef\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b window\uff0c\u200b\u6bcf\u4e2a\u200b window \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty

            pane \u200b\u662f\u200b window \u200b\u7684\u200b\u7b2c\u4e09\u5c42\u200b\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b\u5206\u5c4f\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty

            "},{"location":"Note/Missing%20Semester/commandline_env/#session","title":"\u65b0\u5efa\u200b\u4e00\u4e2a\u200b session","text":"tmuxtmux new -t NAMEtmux a NAMEtmux lsCtrl-b d

            \u200b\u76f4\u63a5\u200b\u8fdb\u5165\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b session

            \u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u540d\u4e3a\u200b NAME \u200b\u7684\u200b session

            \u200b\u91cd\u65b0\u200b\u8fde\u63a5\u200b\u5230\u200b\u540d\u4e3a\u200b NAME \u200b\u7684\u200b session

            \u200b\u5217\u51fa\u200b\u6240\u6709\u200b session

            detach \u200b\u5f53\u524d\u200b session

            "},{"location":"Note/Missing%20Semester/commandline_env/#session_1","title":"session \u200b\u4ee5\u5185\u200b\u7684\u200b\u64cd\u4f5c","text":"C-b cC-b n/p/NUMBERC-b \uff0cC-b &

            \u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b window

            \u200b\u5207\u6362\u200b\u5230\u200b\u4e0b\u200b\u4e00\u4e2a\u200b/\u200b\u4e0a\u200b\u4e00\u4e2a\u200b/\u200b\u7b2c\u200b x \u200b\u4e2a\u200b window

            \u200b\u91cd\u547d\u540d\u200b\u5f53\u524d\u200b window

            \u200b\u5173\u95ed\u200b\u5f53\u524d\u200b window

            "},{"location":"Note/Missing%20Semester/commandline_env/#window","title":"window \u200b\u4ee5\u5185\u200b\u7684\u200b\u64cd\u4f5c","text":"C-b \\\"C-b %C-b oC-b xC-b zC-b ARROWC-b SPACE

            \u200b\u4e0a\u4e0b\u200b\u5206\u88c2\u200b pane\uff0c\u200b\u8fd9\u4f1a\u200b\u662f\u200b\u65b0\u200b\u7684\u200b\u8fdb\u7a0b\u200b\u548c\u200b\u65b0\u200b\u7684\u200b tty

            \u200b\u5de6\u53f3\u200b\u5206\u88c2\u200b pane

            \u200b\u5207\u6362\u200b\u5230\u200b\u4e0b\u200b\u4e00\u4e2a\u200b pane

            \u200b\u5173\u95ed\u200b\u5f53\u524d\u200b pane

            \u200b\u653e\u5927\u200b\u7f29\u5c0f\u200b\u5f53\u524d\u200b pane

            \u200b\u5728\u200b pane \u200b\u4e4b\u95f4\u200b\u79fb\u52a8\u200b

            \u200b\u4e00\u952e\u200b\u5207\u6362\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u5e03\u5c40\u200b\u6a21\u5f0f\u200b

            "},{"location":"Note/Missing%20Semester/commandline_env/#dotfiles","title":"Dotfiles","text":"

            Dotfile \u200b\u662f\u200b\u4ee5\u70b9\u200b\uff08.\uff09\u200b\u5f00\u5934\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u5728\u200b Unix-like \u200b\u7cfb\u7edf\u200b\u4e2d\u200b\u88ab\u200b\u5e7f\u6cdb\u200b\u4f7f\u7528\u200b.\u200b\u5b83\u4eec\u200b\u901a\u5e38\u200b\u4f4d\u4e8e\u200b\u7528\u6237\u200b\u7684\u200b\u4e3b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b58\u50a8\u200b\u4e2a\u4eba\u5316\u200b\u548c\u200b\u81ea\u5b9a\u4e49\u200b\u7684\u200b\u914d\u7f6e\u200b\u9009\u9879\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5176\u4ed6\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u548c\u200b\u5de5\u5177\u200b\u7684\u200b\u8bbe\u7f6e\u200b\u3002

            Dotfile \u200b\u7684\u200b\u540d\u79f0\u200b\u4ee5\u200b\u4e00\u4e2a\u200b\u6216\u200b\u591a\u4e2a\u200b\u70b9\u200b\u5f00\u5934\u200b\uff0c\u200b\u4f8b\u5982\u200b .bashrc\u3001.vimrc\u3001.gitconfig \u200b\u7b49\u200b.\u200b\u7531\u4e8e\u200b\u5728\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0cUnix-like \u200b\u7cfb\u7edf\u200b\u4f1a\u200b\u5c06\u200b\u4ee5\u70b9\u200b\u5f00\u5934\u200b\u7684\u200b\u6587\u4ef6\u200b\u89c6\u4e3a\u200b\u9690\u85cf\u200b\u6587\u4ef6\u200b\uff0c\u200b\u56e0\u6b64\u200b\u8fd9\u4e9b\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u5728\u200b\u6587\u4ef6\u200b\u7ba1\u7406\u5668\u200b\u4e2d\u200b\u9ed8\u8ba4\u200b\u662f\u200b\u4e0d\u200b\u53ef\u89c1\u200b\u7684\u200b.\u200b\u4f46\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u7279\u5b9a\u200b\u7684\u200b\u9009\u9879\u200b\u6216\u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u548c\u200b\u7f16\u8f91\u200b\u5b83\u4eec\u200b\u3002

            Dotfile \u200b\u7684\u200b\u7528\u9014\u200b\u56e0\u200b\u6587\u4ef6\u540d\u200b\u548c\u200b\u6240\u200b\u9488\u5bf9\u200b\u7684\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u800c\u5f02\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u4e9b\u200b\u5e38\u89c1\u200b\u7684\u200b\u4f8b\u5b50\u200b\uff1a

            • .bashrc\uff1aBash Shell \u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b Shell \u200b\u7684\u200b\u884c\u4e3a\u200b\u548c\u200b\u73af\u5883\u53d8\u91cf\u200b\u3002
            • .vimrc\uff1aVim \u200b\u6587\u672c\u7f16\u8f91\u200b\u5668\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b Vim \u200b\u7684\u200b\u7f16\u8f91\u5668\u200b\u8bbe\u7f6e\u200b\u548c\u200b\u63d2\u4ef6\u200b\u3002
            • .gitconfig\uff1aGit \u200b\u7248\u672c\u200b\u63a7\u5236\u7cfb\u7edf\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u8bbe\u7f6e\u200b Git \u200b\u7684\u200b\u7528\u6237\u200b\u4fe1\u606f\u200b\u3001\u200b\u522b\u540d\u200b\u548c\u200b\u5176\u4ed6\u200b\u9009\u9879\u200b\u3002
            • .ssh/config\uff1aSSH \u200b\u5ba2\u6237\u7aef\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u914d\u7f6e\u200b SSH \u200b\u8fde\u63a5\u200b\u7684\u200b\u4e3b\u673a\u200b\u548c\u200b\u9009\u9879\u200b\u3002
            • .tmux.conf\uff1atmux \u200b\u7ec8\u7aef\u200b\u590d\u7528\u200b\u5de5\u5177\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b tmux \u200b\u7684\u200b\u4f1a\u200b\u8bdd\u200b\u548c\u200b\u7a97\u683c\u200b\u8bbe\u7f6e\u200b\u3002

            \u200b\u901a\u8fc7\u200b\u7f16\u8f91\u200b\u548c\u200b\u5b9a\u5236\u200b Dotfile\uff0c\u200b\u7528\u6237\u200b\u53ef\u4ee5\u200b\u6309\u7167\u200b\u4e2a\u4eba\u200b\u504f\u597d\u200b\u548c\u200b\u9700\u6c42\u200b\u6765\u200b\u914d\u7f6e\u200b\u5404\u79cd\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u548c\u200b\u5de5\u5177\u200b.\u200b\u5b83\u4eec\u200b\u5141\u8bb8\u200b\u7528\u6237\u200b\u4fee\u6539\u200b\u9ed8\u8ba4\u8bbe\u7f6e\u200b\u3001\u200b\u6dfb\u52a0\u200b\u5feb\u6377\u952e\u200b\u3001\u200b\u5b9a\u4e49\u200b\u522b\u540d\u200b\u3001\u200b\u8bbe\u7f6e\u200b\u73af\u5883\u53d8\u91cf\u200b\u7b49\u200b\uff0c\u200b\u4ee5\u200b\u63d0\u5347\u200b\u5de5\u4f5c\u6548\u7387\u200b\u548c\u200b\u4e2a\u4eba\u5316\u200b\u4f53\u9a8c\u200b\u3002

            ~/.zshrc \u200b\u662f\u200b zsh \u200b\u7684\u200b\u9ed8\u8ba4\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u6bcf\u6b21\u200b\u542f\u52a8\u200b zsh\uff0c\u200b\u90fd\u200b\u4f1a\u200b\u6267\u884c\u200b\u5176\u4e2d\u200b\u7684\u200b\u8bed\u53e5\u200b.\u200b\u6bd4\u5982\u200b\u4f60\u200b\u5728\u200b\u91cc\u9762\u200b\u5199\u200b\u4e0a\u200b\u4e00\u53e5\u200becho Hello\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u6bcf\u6b21\u200b\u542f\u52a8\u200b zsh \u200b\u7684\u200b\u65f6\u5019\u200b\u81ea\u52a8\u200b\u95ee\u5019\u200b\u4f60\u200b\u4e00\u53e5\u200b

            \u200b\u5728\u200b github \u200b\u4e0a\u200b\u53ef\u4ee5\u200b\u627e\u5230\u200b\u8bb8\u591a\u200b\u4eba\u200b\u5206\u4eab\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e5f\u200b\u8d34\u200b\u4e0a\u200b\u6211\u200b\u81ea\u5df1\u200b\u7684\u200b

            "},{"location":"Note/Missing%20Semester/commandline_env/#_1","title":"\u7b26\u53f7\u200b\u8fde\u63a5","text":"

            \u200b\u5f88\u591a\u200b\u65f6\u5019\u200b\u628a\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u653e\u5728\u200b\uff5e\u200b\u76ee\u5f55\u200b\u4e0b\u200b\u5e76\u200b\u4e0d\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u597d\u200b\u6df7\u4e71\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u597d\u200b\u5efa\u7acb\u200b GitHub \u200b\u4ed3\u5e93\u200b\u8fdb\u884c\u200b\u7ba1\u7406\u200b\uff0c\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u7684\u200b\u8bfb\u53d6\u200b\u4f4d\u7f6e\u200b\u5f80\u5f80\u200b\u662f\u200b\u5b9a\u200b\u6b7b\u200b\u7684\u200b\uff0c\u200b\u79fb\u52a8\u200b\u5230\u200b\u522b\u5904\u200b\u5c31\u200b\u5931\u6548\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5229\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u6765\u200b\u6574\u7406\u200b\u4ed6\u4eec\u200b\u3002

            ln -s TRUE_PATH VIRTUAL_PATH: \u200b\u8f6f\u200b\u8fde\u63a5\u200b\uff0cVIRTUAL_PATH \u200b\u4e0a\u200b\u5b9e\u9645\u4e0a\u200b\u4ec0\u4e48\u200b\u6587\u4ef6\u200b\u90fd\u200b\u6ca1\u6709\u200b\uff0c\u200b\u4f46\u200b\u6211\u4eec\u200b\u8bd5\u56fe\u200b\u8bfb\u5199\u200b\u8fd9\u4e2a\u200b\u6587\u4ef6\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u4f1a\u200b\u88ab\u200b\u5bfc\u5411\u200b TRUE_PATH \u200b\u4e0a\u200b\u90a3\u4e2a\u200b\u771f\u5b9e\u200b\u5b58\u5728\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5229\u7528\u200b\u8fd9\u4e2a\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7edf\u4e00\u200b\u8f6c\u79fb\u200b\u6211\u4eec\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e86\u200b\u3002

            \u200b\u6ce8\u610f\u200b\u521b\u5efa\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u65f6\u200b VIRTUAL_PATH \u200b\u4e0d\u80fd\u200b\u5b58\u5728\u200b

            \u200b\u82e5\u200b\u5220\u53bb\u200b TRUE_PATH\uff0c\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u4ecd\u7136\u200b\u5b58\u5728\u200b\uff0c\u200b\u4f46\u200b\u5df2\u200b\u4e0d\u53ef\u200b\u8bbf\u95ee\u200b\uff08\u200b\u663e\u793a\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff09

            "},{"location":"Note/Missing%20Semester/commandline_env/#remote-machine","title":"Remote Machine","text":"

            \u200b\u8be6\u60c5\u200b\u53ef\u4ee5\u200b\u770b\u200b\u8fd9\u200b\u4e00\u7bc7\u200b\uff0c\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b ssh \u200b\u8fde\u63a5\u200b\u5b9e\u8df5\u200b.\u200b\u5728\u200b:ocitons-link-16:\u200b\u8fd9\u200b\u4e00\u7bc7\u200b\u4e2d\u6709\u200b\u5173\u4e8e\u200b docker \u200b\u7684\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u7684\u200b\u5b9e\u8df5\u200b\uff0c\u200b\u66f4\u52a0\u200b\u8be6\u7ec6\u200b\u3002

            \u200b\u5e38\u7528\u200b\u6307\u4ee4\u200b

            ssh USERNAME@IP_ADDRESSssh-keygenssh-copy-id USERNAME@IP_ADDRESSscp -p xxxx LOCAL_PATH USERNAME@IP_ADDRESS:REMOTE_PATHscp -p xxxx USERNAME:IP_ADDRESS LOCAL_PATH

            \u200b\u8fde\u63a5\u200b remote machine

            \u200b\u81ea\u52a8\u200b\u751f\u6210\u200b\u8ff7\u836f\u200b\uff0c\u200b\u6ce8\u610f\u200b keyphrase \u200b\u5e94\u8be5\u200b\u4e3a\u7a7a\u200b\uff08\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff09

            \u200b\u590d\u5236\u200b\u516c\u94a5\u200b\u5230\u200b remote machine \u200b\u7684\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u200b\u4e2d\u200b

            \u200b\u5c06\u200b\u672c\u5730\u200b\u6587\u4ef6\u200b\u590d\u5236\u5230\u200b remote machine

            \u200b\u5c06\u200b remote machine \u200b\u6587\u4ef6\u200b\u590d\u5236\u5230\u200b\u672c\u5730\u200b

            \uff5e/.ssh/config \u200b\u91cc\u9762\u200b\u53ef\u4ee5\u200b\u8bbe\u7f6e\u200b remote machine \u200b\u522b\u540d\u200b \u200b\u9ed8\u8ba4\u200b\u7aef\u53e3\u200b \u200b\u9ed8\u8ba4\u200b ip \u200b\u5730\u5740\u200b\u7b49\u200b\u5c5e\u6027\u200b

            Tip

            \u200b\u5728\u200b remote machine \u200b\u4f7f\u7528\u200b tmux\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b\u8fde\u63a5\u200b\u5173\u95ed\u200b\u540e\u200b\uff0c\u200b\u8fde\u63a5\u200b\u56de\u6765\u200b\uff0c\u200b\u518d\u200b\u91cd\u65b0\u200b attach\uff0c\u200b\u4e4b\u524d\u200b\u8fd0\u884c\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u90fd\u200b\u4f1a\u200b\u4ecd\u7136\u200b\u5b58\u5728\u200b\u3002 \u200b\u5728\u200b\u8fdc\u7a0b\u200b\u7684\u200b tmux \u200b\u7684\u200b\u5feb\u6377\u952e\u200b\u9700\u8981\u200b\u6309\u200b\u4e24\u6b21\u200b C-a

            Tip

            VSCode \u200b\u7684\u200b Remote ssh \u200b\u76f8\u5f53\u200b\u597d\u7528\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8ba9\u200b\u4f60\u200b\u7528\u200b VSCode \u200b\u5bf9\u200b\u8fdc\u7a0b\u200b\u673a\u5668\u200b\u4e0a\u200b\u64cd\u4f5c\u200b\uff0c\u200b\u5305\u62ec\u200b debug \u200b\u5565\u200b\u7684\u200b

            "},{"location":"PeiPei/","title":"PeiPei!","text":"

            \u200b\u6b22\u8fce\u200b\u6765\u5230\u200b PeiPei \u200b\u5bc4\u5c45\u200b\u5728\u200b\u5927\u795e\u200b Stormckey \u200b\u7684\u200b\u535a\u5ba2\u200b\u4e0a\u200b\uff01

            \u200b\u8fd9\u91cc\u200b\u4f1a\u653e\u200b\u4e00\u4e9b\u200b\u6015\u200b\u81ea\u5df1\u200b\u5fd8\u8bb0\u200b\u7684\u200b\u5c0f\u200b Tips\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e9b\u200b\u6709\u8da3\u200b\u7684\u200b\u4e1c\u897f\u200b\uff01

            "},{"location":"PeiPei/markdown/","title":"Markdown All in One","text":"

            \u200b\u7ea6\u200b 379 \u200b\u4e2a\u200b\u5b57\u200b 5 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

            Typst YYDS!!!

            \u200b\u9020\u5b8c\u200b\u677f\u5b50\u200b\u4e4b\u540e\u200b\u5199\u200b\u6587\u6863\u200b\u771f\u7684\u200b\u662f\u200b\u592a\u723d\u4e86\u200b\uff0cTypst \u200b\u771f\u7684\u200b\u592a\u597d\u200b\u7528\u200b\u4e86\u200b\uff0c\u200b\u5f3a\u70c8\u63a8\u8350\u200b\uff01 \u200b\u5199\u200b\u7684\u200b\u65f6\u5019\u200b\u50cf\u200b Markdown \u200b\u4e00\u6837\u200b\u7b80\u5355\u200b\uff0c\u200b\u5bfc\u51fa\u200b\u7684\u200b\u50cf\u200b LaTeX \u200b\u4e00\u6837\u200b\u6f02\u4eae\u200b \ud83d\ude0b \u200b\u6211\u200b\u81ea\u5df1\u200b\u7684\u200b\u6a21\u677f\u200b\u5728\u200b typst-template \u200b\u91cc\u200b\uff0c\u200b\u6b22\u8fce\u200b\u4f7f\u7528\u200b\uff01

            "},{"location":"PeiPei/markdown/#vscode-like-highlighting","title":"VSCode like highlighting","text":"

            \u200b\u5373\u200b\u4f7f\u7528\u200b\u4e86\u200b VSCode \u200b\u7684\u200b MPE \u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0cMarkdown \u200b\u91cc\u200b\u7684\u200b\u4ee3\u7801\u200b\u5757\u200b\u8fd8\u662f\u200b\u5341\u5206\u200b\u7684\u200b\u4e11\u964b\u200b.\u200b\u8fd9\u91cc\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e00\u79cd\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8ba9\u200b Markdown \u200b\u91cc\u200b\u7684\u200b\u4ee3\u7801\u200b\u5757\u200b\u7684\u200b\u9ad8\u4eae\u200b\u6548\u679c\u200b\u548c\u200b VSCode \u200b\u91cc\u200b\u7684\u200b\u4e00\u6837\u200b\u3002

            \u200b\u9996\u5148\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u51fa\u200b\u7684\u200b\u662f\u200b\u767d\u8272\u200b\u5e95\u200b\uff0c\u200b\u5c31\u200b\u628a\u200b VSCode \u200b\u7684\u200b\u4e3b\u9898\u200b\u6539\u6210\u200b\u767d\u8272\u200b\u5e95\u200b\u7684\u200b\uff0c\u200b\u5982\u679c\u200b\u662f\u200b\u9ed1\u8272\u200b\u5e95\u200b\uff0c\u200b\u5c31\u200b\u6539\u6210\u200b\u9ed1\u8272\u200b\u5e95\u200b\u7684\u200b.\u200b\u4e0b\u9762\u200b\u7684\u200b\u914d\u7f6e\u200b\u662f\u200b\u767d\u8272\u200b\u5e95\u200b\u7684\u200b\u3002

            \u200b\u5b89\u88c5\u200b Paste Special \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u76f4\u63a5\u200b\u5728\u200b VSCode \u200b\u91cc\u200b\u590d\u5236\u200b\u5199\u200b\u597d\u200b\u7684\u200b\u4ee3\u7801\u200b\uff0c\u200b\u5728\u200b Markdown \u200b\u6587\u4ef6\u200b\u91cc\u200b\u7c98\u8d34\u200b\u65f6\u200b\u53f3\u952e\u200b\u9009\u62e9\u200b Paste Special\uff0c\u200b\u7c98\u8d34\u200b\u4e3a\u200b HTML \u200b\u683c\u5f0f\u200b.\u200b\u4e3a\u4e86\u200b\u548c\u200b MPE \u200b\u7684\u200b\u9ed8\u8ba4\u200b\u683c\u5f0f\u200b\u5339\u914d\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5bf9\u200b css \u200b\u8fdb\u884c\u200b\u4e00\u4e9b\u200b\u5fae\u8c03\u200b\u3002

            \u200b\u4f8b\u5982\u200b\u5982\u679c\u200b\u7c98\u8d34\u200b\u5b8c\u200b\u7684\u200b\u5982\u4e0b\u200b\uff1a

            <div style=\"color: #3b3b3b;background-color: #1f1f1f;font-family: Fira Code Retina\uff0c \u200b\u601d\u6e90\u200b\u9ed1\u4f53\u200b HW\uff0c Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;\">...</div>\n

            \u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u628a\u200b\u5b83\u200b\u6539\u6210\u200b\uff1a

            <div style=\"color: #3b3b3b;background-color: #f5f5f5;font-family: Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 1.4;white-space: pre;border-radius: 3px;padding: .8em;margin-top: 0;margin-bottom: 16px;overflow: auto;\">...</div>\n

            \u200b\u4e3b\u8981\u200b\u662f\u200b\u52a0\u200b\u4e86\u200b\u5706\u89d2\u200b\u3001padding \u200b\u548c\u200b margin.\u200b\u5b57\u4f53\u200b\u548c\u200b\u884c\u9ad8\u200b\u53ef\u6539\u200b\u53ef\u4e0d\u200b\u6539\u200b\uff0c\u200b\u770b\u200b\u4e2a\u4eba\u200b\u559c\u597d\u200b.\u200b\u53e6\u5916\u200b\uff0c\u200b\u4e3a\u4e86\u200b\u6253\u5370\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u66f4\u6539\u200b white-space \u200b\u4e3a\u200b pre-wrap\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u81ea\u52a8\u200b\u6362\u884c\u200b\u4e86\u200b\uff0c\u200b\u540c\u65f6\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u53bb\u6389\u200b overflow: auto;\uff1a

            <div style=\"color: #3b3b3b;background-color: #f5f5f5;font-family: Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 1.4;white-space: pre-wrap;border-radius: 3px;padding: .8em;margin-top: 0;margin-bottom: 16px;\">...</div>\n
            "},{"location":"PeiPei/markdown/#-img-src","title":"![]() -> <img src=\"\" />","text":"

            \u200b\u5728\u200b Markdown \u200b\u91cc\u200b\u63d2\u5165\u200b\u56fe\u7247\u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b ![]() \u200b\u7684\u200b\u65b9\u5f0f\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u6837\u200b\u5bfc\u51fa\u200b\u7684\u200b PDF \u200b\u91cc\u200b\u7684\u200b\u56fe\u7247\u200b\u662f\u200b\u4e0d\u4f1a\u200b\u5c45\u4e2d\u200b\u7684\u200b\uff0c\u200b\u800c\u4e14\u200b\u4e5f\u200b\u6ca1\u6709\u200b\u529e\u6cd5\u200b\u8bbe\u7f6e\u200b\u56fe\u7247\u200b\u7684\u200b\u5bbd\u200b\u9ad8\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u628a\u200b ![]() \u200b\u6539\u6210\u200b <img src=\"\" />.\u200b\u4f7f\u7528\u200b\u4ee5\u4e0b\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u66ff\u6362\u200b\uff1a

            !\\[(.*?)\\]\\((.*?)\\)\n

            \u200b\u66ff\u6362\u200b\u4e3a\u200b\uff1a

            <img src=\"$2\" alt=\"$1\" style=\"max-width: 100%\" />\n
            "},{"location":"PeiPei/repository/","title":"\u4ed3\u5e93\u200b\u6574\u7406","text":"

            \u200b\u7ea6\u200b 340 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

            \u200b\u8fd9\u91cc\u200b\u662f\u200b\u4e00\u4e9b\u200b\u6211\u200b\u4e2a\u4eba\u200b\u7684\u200b GitHub \u200b\u8d26\u53f7\u200b\u7684\u200b public repo \u200b\u7684\u200b\u6574\u7406\u200b\u3002

            "},{"location":"PeiPei/repository/#_2","title":"\u6709\u8da3\u200b\u7684","text":"
            • zju-learning-assistant\uff1a\u200b\u6d59\u5927\u200b\u5b66\u4e60\u200b\u52a9\u624b\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u53ef\u4ee5\u200b\u6279\u91cf\u200b\u4e0b\u8f7d\u200b\u5b66\u5728\u200b\u6d59\u5927\u200b/\u200b\u667a\u4e91\u200b\u8bfe\u5802\u200b\u8bfe\u4ef6\u200b\u7684\u200b\u8de8\u5e73\u53f0\u200b Tauri \u200b\u5e94\u7528\u200b\uff0cRust Tauri + React
            • typst-template\uff1a\u200b\u6536\u96c6\u200b\u4e86\u200b\u4e00\u4e9b\u200b\u6211\u200b\u81ea\u5df1\u200b\u7684\u200b Typst \u200b\u7684\u200b\u6a21\u677f\u200b
            • ZJUScoreAssistant\uff1a\u200b\u6d59\u5927\u200b\u6210\u7ee9\u200b\u52a9\u624b\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u53ef\u4ee5\u200b\u81ea\u52a8\u200b\u67e5\u8be2\u200b\u6d59\u5927\u200b\u6210\u7ee9\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b\uff0c\u200b\u4e5f\u200b\u652f\u6301\u200b\u66f4\u65b0\u200b\u63a8\u9001\u200b\u81f3\u200b\u9489\u200b\u9489\u200b\u673a\u5668\u4eba\u200b\uff0cPython requests
            • zju-score-push-template\uff1a\u200b\u6d59\u5927\u200b\u6210\u7ee9\u200b\u63a8\u9001\u200b\u6a21\u677f\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u53ef\u4ee5\u200b\u81ea\u52a8\u200b\u67e5\u8be2\u200b\u6d59\u5927\u200b\u6210\u7ee9\u200b\u5e76\u200b\u63a8\u9001\u200b\u81f3\u200b\u9489\u200b\u9489\u200b\u673a\u5668\u4eba\u200b\u7684\u200b GitHub Action \u200b\u6a21\u677f\u200b\uff0c\u200b\u4f7f\u7528\u200b\u4e86\u200b\u4e0a\u9762\u200b\u7684\u200b ZJUScoreAssistant
            "},{"location":"PeiPei/repository/#_3","title":"\u8bfe\u7a0b\u200b\u76f8\u5173","text":"
            • Type-Game\uff1a\u200b\u5927\u200b\u4e00\u4e0b\u200b\u5b66\u671f\u200b\u7684\u200b\u5927\u7a0b\u200b\u5c0f\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u6253\u5b57\u200b\u6e38\u620f\u200b\uff0c\u200b\u7528\u200b\u7684\u200b\u662f\u200b libgraphics
            • Notepad-minus-minus\uff1a\u200b\u5927\u200b\u4e00\u4e0b\u200b\u5b66\u671f\u200b\u7684\u200b\u5927\u7a0b\u200b\u5927\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u8bb0\u4e8b\u672c\u200b\uff0c\u200b\u540c\u6837\u200b\u662f\u200b\u4f9d\u6258\u200b\u7b54\u8fa9\u200b\u7684\u200b libgraphics
            • ICS-Lab6a-Checker\uff1a\u200b\u5927\u4e00\u77ed\u200b\u5b66\u671f\u200b\u8ba1\u6982\u200b\u7684\u200b Lab6a \u200b\u5b9e\u9a8c\u200b\u5199\u200b\u7684\u200b\u4e00\u4e2a\u200b\u68c0\u67e5\u200b\u5668\u200b\uff0c\u200b\u7528\u4e8e\u200b\u68c0\u67e5\u200b Lab6a \u200b\u7684\u200b\u5b9e\u9a8c\u200b\u7ed3\u679c\u200b\u662f\u5426\u200b\u6b63\u786e\u200b\uff0c\u200b\u53ef\u60dc\u200b\u8fd8\u662f\u200b\u6709\u4e9b\u200b case \u200b\u6ca1\u6709\u200b\u8986\u76d6\u200b\u5230\u200b
            • Library-Management-System\uff1a\u200b\u5927\u4e8c\u200b\u4e0a\u200b\u5b66\u671f\u200b\u6570\u636e\u5e93\u200b\u7684\u200b\u5c0f\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u56fe\u4e66\u200b\u7ba1\u7406\u7cfb\u7edf\u200b\uff0c\u200b\u7528\u200b\u7684\u200b\u662f\u200b MySQL + Java Swing
            • ZJU-OOP-Project\uff1a\u200b\u5927\u4e8c\u200b\u4e0a\u200b\u5b66\u671f\u200b\u9762\u5411\u5bf9\u8c61\u200b\u7684\u200b project \u200b\u96c6\u5408\u200b\uff0c\u200b\u90fd\u200b\u5f88\u200b\u6c34\u200b
            • MiniSQL\uff1a\u200b\u5927\u4e8c\u200b\u4e0a\u200b\u5b66\u671f\u200b\u6570\u636e\u5e93\u200b\u7684\u200b\u5927\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u7b80\u5355\u200b\u7684\u200b\u6570\u636e\u5e93\u200b\uff0c\u200b\u7528\u200b\u7684\u200b\u662f\u200b C++\uff0c\u200b\u5b9e\u73b0\u200b\u4e86\u200b B+ \u200b\u6811\u200b\u7d22\u5f15\u200b\uff0c\u200b\u652f\u6301\u200b SQL \u200b\u8bed\u53e5\u200b\u7684\u200b\u89e3\u6790\u200b\u548c\u200b\u6267\u884c\u200b
            "},{"location":"PeiPei/typst/","title":"Typst is All You Need","text":"

            \u200b\u7ea6\u200b 746 \u200b\u4e2a\u200b\u5b57\u200b 37 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

            \u200b\u6211\u200b\u7684\u200b\u4e00\u4e9b\u200b\u81ea\u7528\u200b\u6a21\u677f\u200b\u5728\u200b typst-template

            "},{"location":"PeiPei/typst/#_1","title":"\u5982\u4f55\u200b\u5f00\u59cb","text":"

            \u200b\u56e0\u4e3a\u200b Typst \u200b\u6bd4\u8f83\u200b\u65b0\u200b\uff0c\u200b\u6240\u4ee5\u200b\u76f8\u5173\u200b\u7684\u200b\uff08\u200b\u7279\u522b\u200b\u662f\u200b\u4e2d\u6587\u200b\u7684\u200b\uff09\u200b\u6587\u6863\u200b\u8fd8\u200b\u4e0d\u662f\u200b\u5f88\u591a\u200b\uff0c\u200b\u6240\u4ee5\u200b\u76ee\u524d\u200b\u8fd8\u662f\u200b\u9760\u200b\u5b98\u65b9\u200b\u7684\u200b\u6587\u6863\u200b\uff1aTypst Documentation\uff0c\u200b\u8fc7\u200b\u4e00\u904d\u200b\u91cc\u9762\u200b\u7684\u200b Tutorial \u200b\u90e8\u5206\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u57fa\u672c\u4e0a\u200b\u638c\u63e1\u200b Typst \u200b\u7684\u200b\u4f7f\u7528\u200b\u4e86\u200b\u3002\u200b\u4e4b\u540e\u200b\u5c31\u662f\u200b\u5199\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u5565\u200b\u5c31\u200b\u5728\u200b\u6587\u6863\u200b\u91cc\u200b\u641c\u200b\u5565\u200b\u3002

            \u200b\u53e6\u5916\u200b\u5c31\u662f\u200b\u770b\u770b\u200b awesome-typst-cn \u200b\u91cc\u9762\u200b\u7684\u200b\u4e00\u4e9b\u200b\u8d44\u6e90\u200b\uff0c\u200b\u6bd4\u5982\u200b Typst \u200b\u7684\u200b\u6a21\u677f\u200b\uff0cTypst \u200b\u7684\u200b\u63d2\u4ef6\u200b\u7b49\u7b49\u200b\u3002\u200b\u6bd4\u8f83\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u5c31\u200b\u4e0d\u518d\u200b\u8d58\u8ff0\u200b\u4e86\u200b\u3002\u200b\u7279\u522b\u200b\u662f\u200b\u9047\u5230\u200b\u5565\u200b\u95ee\u9898\u200b\u53ef\u4ee5\u200b\u5148\u200b\u770b\u770b\u200b\u8fd9\u200b\u91cc\u9762\u200b\u7684\u200b\u6a21\u677f\u200b\u91cc\u200b\u65f6\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b\u7684\u200b\u3002

            \u200b\u5c24\u5176\u200b\u63a8\u8350\u200b\u5176\u4e2d\u200b\u7684\u200b nju-thesis-typst\uff0c\u200b\u8fd9\u662f\u200b\u5357\u4eac\u5927\u5b66\u200b\u7684\u200b\u672c\u79d1\u751f\u200b\u6bd5\u4e1a\u8bba\u6587\u200b\u7684\u200b\u6a21\u677f\u200b\uff0c\u200b\u91cc\u9762\u200b\u7684\u200b README \u200b\u91cc\u200b\u6709\u200b\u8be6\u7ec6\u200b\u7684\u200b\u4f7f\u7528\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u800c\u4e14\u200b\u4ee3\u7801\u200b\u4e5f\u200b\u975e\u5e38\u200b\u7b80\u6d01\u200b\u9ad8\u6548\u200b\uff0c\u200b\u57fa\u672c\u200b\u628a\u200b\u6240\u6709\u200b\u5751\u200b\u90fd\u200b\u89e3\u51b3\u200b\u4e86\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f5c\u4e3a\u200b\u53c2\u8003\u200b\u3002

            "},{"location":"PeiPei/typst/#vscode","title":"VSCode \u200b\u63d2\u4ef6","text":"

            \u200b\u9996\u5148\u200b\u662f\u200b awesome-typst-cn \u200b\u91cc\u200b\u63a8\u8350\u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u200b\u5c31\u200b\u4e0d\u518d\u200b\u8d58\u8ff0\u200b\u4e86\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u770b\u200b\u4e0a\u9762\u200b\u7684\u200b\u94fe\u63a5\u200b\u3002\u200b\u6211\u200b\u81ea\u5df1\u200b\u7528\u200b\u4e86\u200b Typst LSP \u200b\u548c\u200b Typst Preview \u200b\u8fd9\u200b\u4e24\u4e2a\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b VSCode \u200b\u91cc\u200b\u76f4\u63a5\u200b\u9884\u89c8\u200b Typst \u200b\u7684\u200b\u6548\u679c\u200b\uff0c\u200b\u5341\u5206\u200b\u65b9\u4fbf\u200b\u3002

            \u200b\u9664\u6b64\u4e4b\u5916\u200b\uff0c\u200b\u6211\u200b\u8fd8\u200b\u7528\u200b\u4e86\u200b VSCode \u200b\u7684\u200b Paste Image \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u7c98\u8d34\u200b\u56fe\u7247\u200b\uff0c\u200b\u5341\u5206\u200b\u65b9\u4fbf\u200b\u3002\u200b\u7136\u540e\u200b\u987a\u5e26\u200b\u4fee\u6539\u200b\u4e00\u4e0b\u200b\u7c98\u8d34\u200b\u683c\u5f0f\u200b\uff1a

            \"pasteImage.insertPattern\": \"#figure(\\n  image(\\\"${imageSyntaxPrefix}${imageFilePath}${imageSyntaxSuffix}\\\", width: 100%),\\n  caption: \\\"\\\",\\n) <>\",\n

            \u200b\u8fd9\u6837\u200b\u7c98\u8d34\u200b\u7684\u200b\u56fe\u7247\u200b\u5c31\u200b\u4f1a\u200b\u53d8\u6210\u200b\uff1a

            #figure(\n  image(\"xxx\", width: 100%),\n  caption: \"\",\n) <>\n
            "},{"location":"PeiPei/typst/#_2","title":"\u4e00\u4e9b\u200b\u6280\u5de7","text":""},{"location":"PeiPei/typst/#_3","title":"\u4e2d\u82f1\u6587\u200b\u4e0d\u540c\u200b\u5b57\u4f53","text":"

            \u200b\u7ed9\u200b text \u200b\u4f20\u5165\u200b font \u200b\u65f6\u200b\uff0c\u200b\u5982\u679c\u200b\u4f20\u5165\u200b\u4e00\u4e2a\u200b array\uff0cTypst \u200b\u4f1a\u200b\u6309\u200b\u987a\u5e8f\u200b\u9009\u62e9\u200b\u7b2c\u4e00\u4e2a\u200b\u5b58\u5728\u200b\u7684\u200b\u5b57\u4f53\u200b\u3002\u200b\u6240\u4ee5\u200b\u53ef\u4ee5\u200b\u8fd9\u6837\u200b\u5199\u200b\uff1a

            #set text(font: (\"Times New Roman\", \"SimSun\"))\n

            \u200b\u8fd9\u6837\u200b\u4e2d\u6587\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b\u5b8b\u4f53\u200b\uff0c\u200b\u82f1\u6587\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b Times New Roman\u3002\u200b\u53e6\u5916\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b\u81ea\u5e26\u200b\u7684\u200b SimSun\u3001SimHei \u200b\u4e4b\u7c7b\u200b\u7684\u200b\u5b57\u4f53\u200b\u4e0d\u200b\u652f\u6301\u200b Typst \u200b\u4f20\u5165\u200b\u7684\u200b weight \u200b\u53c2\u6570\u200b\uff0c\u200b\u5efa\u8bae\u200b\u4f7f\u7528\u200b\u601d\u6e90\u200b\u9ed1\u4f53\u200b\u3001\u200b\u601d\u6e90\u200b\u5b8b\u4f53\u200b\u4e4b\u7c7b\u200b\u7684\u200b\u5b57\u4f53\u200b\u3002Typst \u200b\u7684\u200b weight \u200b\u662f\u200b\u9009\u62e9\u200b\u53d8\u4f53\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u624b\u52a8\u200b\u52a0\u7c97\u200b\u5b57\u4f53\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5982\u679c\u200b\u5b57\u4f53\u200b\u4e0d\u200b\u652f\u6301\u200b\u53d8\u4f53\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b\u4e0d\u200b\u51fa\u6765\u200b\u3002

            \u200b\u4e2d\u6587\u5b57\u4f53\u200b\u4e5f\u200b\u4e0d\u200b\u652f\u6301\u200b\u659c\u4f53\u200b\uff0c\u200b\u5e94\u8be5\u200b\u7528\u200b\u6977\u4f53\u200b\u4ee3\u66ff\u200b\u3002show \u200b\u4e00\u4e0b\u200b\u518d\u200b\u8bbe\u7f6e\u200b text \u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\u3002\u200b\u4f8b\u5982\u200b\uff1a

            #show emph: text.with(font: (\"Linux Libertine\", \"STKaiti\"))\n

            \u200b\u66f4\u200b\u8be6\u7ec6\u200b\u7684\u200b\u770b\u200b\u8fd9\u4e2a\u200b issue

            "},{"location":"PeiPei/typst/#_4","title":"\u6bb5\u843d\u200b\u9996\u200b\u884c\u200b\u7f29\u8fdb","text":"

            Typst \u200b\u548c\u200b \\(\\LaTeX\\) \u200b\u4e00\u6837\u200b\uff0c\u200b\u8bbe\u7f6e\u200b\u9996\u200b\u884c\u200b\u7f29\u8fdb\u200b\u540e\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u7ae0\u8282\u200b\u7684\u200b\u7b2c\u4e00\u4e2a\u200b\u6bb5\u843d\u200b\u4ecd\u7136\u200b\u4e0d\u4f1a\u200b\u7f29\u8fdb\u200b\u3002\u200b\u53ea\u597d\u200b\u52a0\u200b\u4e00\u4e2a\u200b\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\uff0c\u200b\u52a0\u4e0a\u200b\u4e00\u4e2a\u200b v(-1em) \u200b\u6765\u200b\u5b9e\u73b0\u200b\uff1a

            #let fake-par = {\n  v(-1em)\n  show par: set block(spacing: 0pt)\n  par(\"\")\n}\n

            \u200b\u4e4b\u540e\u200b\u901a\u8fc7\u200b show \u200b\u547d\u4ee4\u200b\u5728\u200b heading terms list enum figure table raw \u200b\u4e4b\u7c7b\u200b\u7684\u200b\u4e1c\u897f\u200b\u540e\u9762\u200b\u52a0\u4e0a\u200b\u8fd9\u4e2a\u200b\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\uff0c\u200b\u4f8b\u5982\u200b\u7ed9\u200b heading \u200b\u52a0\u4e0a\u200b\uff1a

            show heading: it => {\n  it\n  v(5pt)\n  fake-par\n}\n

            \u200b\u5f53\u7136\u200b\u4e3a\u4e86\u200b\u7f8e\u89c2\u200b\u6211\u200b\u8fd9\u91cc\u200b\u53e6\u5916\u200b\u52a0\u200b\u4e86\u200b\u4e2a\u200b v(5pt)\uff0c\u200b\u53ef\u4ee5\u200b\u6839\u636e\u200b\u81ea\u5df1\u200b\u7684\u200b\u559c\u597d\u200b\u8c03\u6574\u200b\u3002\u200b\u5bf9\u4e8e\u200b\u4ee3\u7801\u200b\u5757\u200b raw \u200b\u8981\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u884c\u5185\u200b\u4ee3\u7801\u200b\u548c\u200b\u4ee3\u7801\u200b\u5757\u200b\u7684\u200b raw \u200b\u8981\u200b\u505a\u200b\u533a\u522b\u200b\uff0c\u200b\u884c\u5185\u200b\u4ee3\u7801\u200b\u4e0d\u200b\u9700\u8981\u200b\u5728\u200b\u540e\u9762\u200b\u52a0\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\uff0c\u200b\u6240\u4ee5\u200b\u8981\u52a0\u200b\u4e00\u4e2a\u200b block: true \u200b\u6765\u200b\u533a\u5206\u200b\uff1a

            show raw.where(block: true): it => {\n  it\n  fake-par\n}\n

            \u200b\u53e6\u5916\u200b terms \u200b\u5982\u679c\u200b\u8bbe\u7f6e\u200b\u4e86\u200b\u9996\u884c\u200b\u7f29\u8fdb\u200b\u4f1a\u200b\u6709\u200b\u4e00\u4e9b\u200b\u95ee\u9898\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5728\u200b terms \u200b\u5757\u200b\u91cc\u200b\u8981\u200b\u53d6\u6d88\u200b\u7f29\u8fdb\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a

            show terms: it => {\n  set par(first-line-indent: 0pt)\n  set terms(indent: 10pt, hanging-indent: 9pt)\n  it\n  fake-par\n}\n
            "},{"location":"PeiPei/typst/#_5","title":"\u4ee3\u7801\u200b\u5757\u200b\u663e\u793a\u200b\u884c\u53f7","text":"
            #show raw.where(block: true): it => { set par(justify: false); grid(\n  columns: (100%, 100%),\n  column-gutter: -100%,\n  block(width: 100%, inset: 1em, for i, line in it.text.split(\"\\n\") {\n    box(width: 0pt, align(right, str(i + 1) + h(2em)))\n    hide(line)\n    linebreak()\n  }),\n  block(radius: 1em, fill: luma(246), width: 100%, inset: 1em, it),\n)}\n

            \u200b\u53e6\u5916\u200b\u8fd9\u4e2a\u200b issue \u200b\u91cc\u9762\u200b\u4e5f\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u5176\u4ed6\u200b\u7684\u200b\u65b9\u6cd5\u200b\u3002

            "},{"location":"Research/","title":"Research","text":"

            \u200b\u867d\u7136\u200b\u662f\u200b\u79d1\u7814\u200b\u83dc\u200b\ud83d\udc36\u200b\u4f46\u200b\u8fd8\u662f\u200b\u628a\u200b\u4e00\u4e9b\u200b\u7b14\u8bb0\u200b\u653e\u5728\u200b\u8fd9\u91cc\u200b\u597d\u200b\u4e86\u200b QaQ

            Research list

            • diffusion
            • Unet
            • batch nomarlization
            • basic pytorch
            • Stochastic Gradient Descent with momentum
            • KL \u200b\u6563\u5ea6\u200b
            • \u200b\u91cd\u200b\u53c2\u6570\u200b
            • VAE \u200b\u8fd8\u6709\u200b\u4e00\u4e2a\u200b\u5f88\u200b\u4f18\u79c0\u200b\u7684\u200b\u89e3\u7b54\u200b

            Useful pages:

            • Reverse-mode automatic differentiation from scratch\uff0c in Python
            • Example implementation of reverse-mode autodiff
            "},{"location":"Research/Diffusion%20Model/DDIM/","title":"DDIM","text":"

            \u200b\u7ea6\u200b 734 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

            Abstract

            \u200b\u5bf9\u4e8e\u200b DDIM\uff0c\u200b\u9996\u5148\u200b\u8fd8\u662f\u200b\u63a8\u8350\u200b\u9605\u8bfb\u200b\u82cf\u5251\u6797\u200b\u7684\u200b\u535a\u5ba2\u200b.\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b\u53ef\u4ee5\u200b\u8ddf\u8bfb\u200b\uff0c\u200b\u6587\u7ae0\u200b\u4e2d\u6709\u200b\u6211\u200b\u5374\u200b\u6ca1\u6709\u200b\u63d0\u200b\u7684\u200b\u90e8\u5206\u200b\u5c31\u662f\u200b\u6211\u200b\u8ba4\u4e3a\u200b\u6ca1\u4ec0\u4e48\u200b\u597d\u200b\u8865\u5145\u200b\u7684\u200b\u4e86\u200b\u3002

            "},{"location":"Research/Diffusion%20Model/DDIM/#_1","title":"\u6e05\u6d17","text":"

            \u200b\u4ece\u200b DDPM \u200b\u90a3\u7bc7\u200b\u535a\u5ba2\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u5df2\u7ecf\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\\(p(x_t|x_{t-1})\\)\u200b\u8fd9\u4e00\u200b\u524d\u540e\u200b\u8fde\u7eed\u200b\u65f6\u95f4\u200b\u7684\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u5df2\u7ecf\u200b\u6ca1\u6709\u200b\u4f7f\u7528\u200b\u5230\u200b\u4e86\u200b\uff0c\u200b\u5c3d\u7ba1\u200b\u6211\u4eec\u200b\u5f53\u65f6\u200b\u7ed9\u5b9a\u200b\u4e86\u200b\u8fd9\u200b\u4e00\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u7684\u200b\u8868\u8fbe\u5f0f\u200b\uff0c\u200b\u5e76\u200b\u4ee5\u6b64\u200b\u63a8\u51fa\u200b\u4e86\u200b\\(p(x_t|x_0)\\).\u200b\u4f46\u662f\u200b\u65e2\u7136\u200b\u6ca1\u6709\u200b\u7528\u5230\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5b8c\u6210\u200b\u540e\u7eed\u200b\u63a8\u5bfc\u200b\u63a8\u5bfc\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u4fdd\u7559\u200b\u540e\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u4e0d\u518d\u200b\u5b9a\u200b\u6b7b\u200b\u524d\u9762\u200b\u7684\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u51fd\u6570\u200b\u4e86\u200b\uff0c\u200b\u5148\u200b\u5c06\u200b\u5176\u200b\u5f53\u4f5c\u200b\u5f85\u5b9a\u200b\uff0c\u200b\u770b\u770b\u200b\u8fd9\u200b\u4e00\u65b0\u200b\u7684\u200b\u81ea\u7531\u5ea6\u200b\u4f1a\u200b\u5e26\u6765\u200b\u4ec0\u4e48\u200b\u3002

            \u200b\u4e8e\u662f\u200b\u5728\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c06\u200b\u8fd9\u200b\u4e00\u9879\u200b\u79ef\u6389\u200b\uff0c\u200b\u968f\u540e\u200b\u4fdd\u6301\u200b\u6211\u4eec\u200b\u8d70\u51fa\u200b\u7684\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u6b63\u6001\u5206\u5e03\u200b\u7684\u200b\u5047\u8bbe\u200b\uff0c\u200b\u7528\u200b\u5f85\u5b9a\u200b\u7cfb\u6570\u200b\u6cd5\u200b\u6c42\u89e3\u200b\u3002

            \u200b\u7136\u540e\u200b\u6211\u4eec\u200b\u5c31\u200b\u770b\u89c1\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u65b9\u7a0b\u200b\u4e66\u5c11\u200b\u4e86\u200b\u53e6\u200b\u4e00\u4e2a\u200b\uff0c\u200b\u8fd9\u200b\u4e8b\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u4e0d\u518d\u200b\u9650\u5236\u200b\\(p(x_t|x_{t-1})\\)\u200b\u81ea\u7136\u200b\u5c31\u200b\u591a\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u5173\u4e8e\u200b\u8fd9\u4e2a\u200b\u51fd\u6570\u200b\u53ef\u4ee5\u200b\u662f\u200b\u4ec0\u4e48\u200b\u7684\u200b\u81ea\u7531\u5ea6\u200b\uff08\u200b\u5f53\u7136\u200b\u8fd9\u4e2a\u200b\u51fd\u6570\u200b\u4e0d\u200b\u4e00\u5b9a\u200b\u8fd8\u662f\u200b DDPM \u200b\u7684\u200b\u5f62\u5f0f\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u4ed6\u200b\u8fd8\u662f\u200b\u8981\u200b\u6ee1\u8db3\u200b\u5176\u4ed6\u200b\u7ed9\u5b9a\u200b\u7684\u200b\u6027\u8d28\u200b\uff0c\u200b\u6bd4\u5982\u200b\u4fdd\u8bc1\u200b\\(p(x_t|x_0)\\)\u200b\u5f62\u5f0f\u200b\u5982\u200b\u524d\u200b\uff09\uff0c\u200b\u6211\u4eec\u200b\u8c03\u8282\u200b\u8fd9\u4e2a\u200b\u65b0\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5c31\u662f\u200b\u6362\u200b\u4e0d\u540c\u200b\u7684\u200b\u6ee1\u8db3\u6761\u4ef6\u200b\u7684\u200b\\(p(x_t|x_{t-1})\\)\u200b\u89e3\u200b\uff0c\u200b\u4f7f\u200b\u5176\u200b\u8868\u73b0\u200b\u51fa\u200b\u4e0d\u540c\u200b\u7684\u200b\u7279\u6027\u200b\u3002

            \u200b\u968f\u540e\u200b\u7684\u200b\u81ea\u7136\u200b\u5c31\u662f\u200b\u51e0\u4e2a\u200b\u4e0d\u540c\u200b\u7684\u200b\u4f8b\u5b50\u200b\u4e86\u200b.\u200b\u9996\u5148\u200b\uff0c\u200b\u4e00\u5b9a\u200b\u5b58\u5728\u200b\u67d0\u4e2a\u200b\\(\\sigma_t\\)\u200b\u4f7f\u5f97\u200b\\(p(x_t|x_{t-1})\\)\u200b\u8fd8\u662f\u200b\u8ddf\u200b DDPM \u200b\u4e00\u6837\u200b\u7684\u200b\u53d6\u503c\u200b\uff0c\u200b\u6211\u4eec\u200b\u628a\u200b DDPM \u200b\u4e2d\u200b\u7684\u200b\u65b9\u5dee\u200b\u5e26\u5165\u200b\uff0c\u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u8ddf\u200b DDPM \u200b\u4e2d\u200b\u4e00\u6837\u200b\u7684\u200b\u7ed3\u679c\u200b.\u200b\u4ee5\u53ca\u200b\u6587\u7ae0\u200b\u4e2d\u200b\u5efa\u8bae\u200b\u7684\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u65b9\u5dee\u200b\uff0c\u200b\u90fd\u200b\u80fd\u200b\u5f97\u5230\u200b\u4e0d\u9519\u200b\u7684\u200b\u7ed3\u679c\u200b.\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u53d6\u200b\u4e00\u4e9b\u200b\u7279\u6b8a\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u6bd4\u5982\u200b\u5b8c\u5168\u200b\u53bb\u6389\u200b\u65b9\u5dee\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u5f80\u56de\u200b\u8d70\u200b\u7684\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5411\u91cf\u200b\u800c\u200b\u4e0d\u518d\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u6837\u200b\u8d70\u200b\u7684\u200b\u6548\u679c\u200b\u5f88\u200b\u597d\u200b\u3002

            "},{"location":"Research/Diffusion%20Model/DDIM/#_2","title":"\u52a0\u901f","text":"

            \u200b\u8fd9\u90e8\u5206\u200b\u539f\u200b\u8bba\u6587\u200b\u7684\u200b\u601d\u60f3\u200b\u5b9e\u5728\u200b\u662f\u200b\u7cbe\u5999\u200b\uff0c\u200b\u7528\u200b\u7c7b\u6bd4\u200b\u800c\u8a00\u200b\uff0c\u200b\u6211\u4eec\u200b\u4ece\u200b\u8d77\u70b9\u200b\u51fa\u53d1\u200b\u8d70\u200b\u4e86\u200b 1000 \u200b\u6b65\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u6bcf\u200b 5 \u200b\u6b65\u8bb0\u200b\u4e00\u6b65\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u770b\u4f5c\u200b\u662f\u200b 200 \u200b\u6b65\u200b\u8d70\u200b\u5230\u200b\u4e86\u200b\u540c\u4e00\u4e2a\u200b\u5730\u65b9\u200b\uff0c\u200b\u53ea\u8981\u200b\u6211\u4eec\u200b\u7684\u200b\u6a21\u578b\u200b\u9884\u6d4b\u200b\u7684\u200b\u8db3\u591f\u200b\u597d\u200b\uff0c\u200b\u5b8c\u5168\u200b\u7406\u89e3\u200b\u6211\u4eec\u200b\u662f\u200b\u6cbf\u7740\u200b\u90a3\u6761\u200b\u8def\u5f80\u200b\u5916\u200b\u8d70\u200b\u7684\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u200b 200 \u200b\u6b65\u200b\u4e5f\u200b\u8db3\u4ee5\u200b\u8ba9\u200b\u6211\u4eec\u200b\u8d70\u200b\u56de\u6765\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u52a0\u901f\u200b.\u200b\u8fd9\u4e00\u200b\u8fc7\u7a0b\u200b\u662f\u200b\u6709\u70b9\u50cf\u200b C++\u200b\u91cc\u200b\u7684\u200b upcasat\uff0c\u200b\u6211\u200b\u539f\u5148\u200b\u5f53\u200b\u4f60\u200b\u662f\u200b\u4e2a\u200b Shape \u200b\u7c7b\u200b\uff0c\u200b\u4f46\u200b\u6211\u200b\u77e5\u9053\u200b\u4f60\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u4e2a\u200b Circle\uff0c\u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u628a\u200b\u6307\u9488\u200b\u6539\u6210\u200b Circle*\u200b\u6765\u200b\u628a\u200b\u4f60\u200b\u5f53\u505a\u200b\u4e00\u4e2a\u200b circle \u200b\u5bf9\u5f85\u200b\uff0c\u200b\u5bf9\u8c61\u200b\u5e76\u200b\u6ca1\u6709\u200b\u53d8\u200b\uff0c\u200b\u53ea\u662f\u200b\u6211\u4eec\u200b\u5904\u7406\u200b\u4ed6\u200b\u7684\u200b\u65b9\u5f0f\u200b\u53d8\u200b\u4e86\u200b\uff0c\u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u4fee\u6539\u200b\u597d\u200b\u9002\u5408\u200b\u4e8e\u200b 200 \u200b\u6b65\u200b\u7684\u200b\\(\\alpha\uff0c\\beta\\)\u200b\u6765\u200b\u53cd\u5411\u200b\u91c7\u6837\u200b\u3002

            \u200b\u6700\u540e\u200b\u4e00\u6bb5\u200b\u628a\u200b DDPM \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u9636\u200b\u5fae\u5206\u65b9\u7a0b\u200b\u7684\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u503c\u5f97\u4e00\u770b\u200b\u3002

            "},{"location":"Research/Diffusion%20Model/DDPM/","title":"DDPM","text":"

            \u200b\u7ea6\u200b 2473 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 8 \u200b\u5206\u949f\u200b

            \u200b\u5173\u4e8e\u200b DDPM \u200b\u7684\u200b\u4e09\u79cd\u200b\u7406\u89e3\u200b\u65b9\u5f0f\u200b\u548c\u200b\u4e00\u4e9b\u200b\u76f4\u89c2\u200b\u7684\u200b\u89e3\u91ca\u200b

            "},{"location":"Research/Diffusion%20Model/DDPM/#ddpm_1","title":"\u8ba4\u8bc6\u200b DDPM","text":"

            \u200b\u9996\u5148\u200b\uff0c\u200b\u8ba4\u8bc6\u200b DDPM \u200b\u6700\u597d\u200b\u7684\u200b\u65b9\u5f0f\u200b\u5c31\u662f\u200b\u5148\u200b\u53bb\u200b\u8bfb\u4e00\u8bfb\u200b\u5927\u4f6c\u200b\u5bf9\u4e8e\u200b\u76f4\u89c2\u200b\u7406\u89e3\u200b DDPM \u200b\u7684\u200b\u8bb2\u89e3\u200b\u535a\u5ba2\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u5f15\u7528\u200b\u3010\u200b\u82cf\u5251\u6797\u200b](https://kexue.fm/archives/9119) \u200b\u5927\u4f6c\u200b\u7684\u200b\u535a\u5ba2\u200b\uff0c\u200b\u5efa\u8bae\u200b\u5927\u5bb6\u200b\u5148\u200b\u8bfb\u5b8c\u200b\u7b2c\u4e00\u7bc7\u200b\u6269\u6563\u200b\u6a21\u578b\u200b\u6f2b\u8c08\u200b\uff0c\u200b\u660e\u767d\u200b DDPM \u200b\u662f\u200b\u505a\u200b\u4ec0\u4e48\u200b\u7684\u200b\uff0c\u200b\u518d\u200b\u56de\u5230\u200b\u672c\u6587\u200b\u3002

            "},{"location":"Research/Diffusion%20Model/DDPM/#_1","title":"\u5728\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u6e38\u200b\u8d70","text":"

            DDPM\uff0c\u200b\u6309\u7167\u200b\u539f\u6587\u200b\u7684\u200b\u4ecb\u7ecd\u200b\uff0c\u200b\u4e0d\u200b\u53ea\u200b\u53ef\u4ee5\u200b\u7528\u4e8e\u200b\u5904\u7406\u200b\u56fe\u50cf\u200b\u4fe1\u606f\u200b\uff0c\u200b\u4f46\u662f\u200b\u539f\u6587\u200b\u7684\u200b\u5206\u6790\u200b\u4e3b\u8981\u200b\u662f\u4ece\u200b\u56fe\u50cf\u200b\u6765\u8bb2\u200b\u7684\u200b\uff08\u200b\u662f\u200b\u5427\u200b\uff09\uff0c\u200b\u6240\u4ee5\u200b\u6211\u200b\u4e5f\u200b\u4ece\u200b\u56fe\u50cf\u200b\u5206\u6790\u200b\u7684\u200b\u89d2\u5ea6\u200b\u6765\u8bf4\u200b\u4e00\u4e0b\u200b\u5427\u200b\u3002

            \u200b\u4ec0\u4e48\u200b\u662f\u200b\u56fe\u50cf\u200b\uff1f\u200b\u6309\u7167\u200b\u6700\u200b\u7b80\u5355\u200b\u7684\u200b\u89d2\u5ea6\u200b\u7406\u89e3\u200b\uff0c\u200b\u56fe\u50cf\u200b\u5c31\u662f\u200b\u50cf\u7d20\u200b\u503c\u200b\u77e9\u9635\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u628a\u200b\u4e00\u5e45\u200b\u56fe\u200b\u4ece\u200b\u5de6\u4e0a\u89d2\u200b\u5230\u200b\u53f3\u4e0b\u89d2\u200b\u7684\u200b\u6240\u6709\u200b\u50cf\u7d20\u200b\u503c\u200b\uff08\u200b\u53ef\u80fd\u200b\u5206\u200b RGB \u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\uff09\u200b\u90fd\u200b\u5b58\u50a8\u200b\u8d77\u6765\u200b\uff0c\u200b\u5c31\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u8fd9\u4e2a\u200b\u4e2a\u200b\u56fe\u50cf\u200b\u7684\u200b\u6240\u6709\u200b\u4fe1\u606f\u200b\u3002

            \u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u518d\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u56fe\u50cf\u200b\u4ece\u200b\u77e9\u9635\u200b\u62fc\u63a5\u200b\u6210\u200b\u4e00\u4e2a\u200b\u5411\u91cf\u200b\uff0c\u200b\u56fe\u50cf\u200b\u5c31\u200b\u6210\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u5f88\u200b\u9ad8\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\uff08\u200b\u6bd4\u5982\u200b 1024*1024 \u200b\u7ef4\u200b\uff09\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\uff0c\u200b\u6709\u4e9b\u200b\u70b9\u200b\u662f\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u56fe\u50cf\u200b\uff08\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u603b\u80fd\u200b\u62ff\u6765\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u56fe\u50cf\u200b\uff0c\u200b\u628a\u200b\u56fe\u50cf\u200b\u6620\u5c04\u200b\u5230\u200b\u70b9\u200b\u4e0a\u200b\uff09\uff0c\u200b\u5927\u90e8\u5206\u200b\u5374\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u566a\u58f0\u200b\u56fe\u200b\uff08\u200b\u60f3\u8c61\u200b\u4e00\u4e0b\u200b\u7535\u89c6\u200b\u82b1\u5c4f\u200b\uff0c\u200b\u6211\u4eec\u200b\u968f\u673a\u200b\u5728\u200b\u7a7a\u95f4\u200b\u91cc\u53d6\u200b\u4e00\u4e2a\u70b9\u200b\u5927\u6982\u200b\u5c31\u662f\u200b\u8fd9\u6837\u200b\u7684\u200b\uff09\uff0cDDPM \u200b\u5c31\u662f\u200b\u8bd5\u56fe\u200b\u4ece\u200b\u8fd9\u4e2a\u200b\u7a7a\u95f4\u200b\u7684\u200b\u968f\u673a\u200b\u4e00\u4e2a\u70b9\u200b\u51fa\u53d1\u200b\uff0c\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5728\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u6e38\u200b\u8d70\u200b\u3002

            "},{"location":"Research/Diffusion%20Model/DDPM/#_2","title":"\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u5206\u5e03","text":"

            \u200b\u6211\u4eec\u200b\u5f88\u200b\u597d\u200b\u7406\u89e3\u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u70b9\u200b\u7684\u200b\u56fe\u50cf\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u70b9\u200b\u5750\u6807\u200b\u62ff\u200b\u51fa\u6765\u200b\uff0c\u200b\u8fd8\u539f\u6210\u200b\u77e9\u9635\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8fd8\u539f\u200b\u5230\u200b\u56fe\u50cf\u200b\u4e86\u200b\uff0c\u200b\u90a3\u4e48\u200b\u4ec0\u4e48\u200b\u662f\u200b\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\uff1f

            \u200b\u60f3\u8c61\u200b\u4e00\u4e2a\u200b\u5750\u6807\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u548c\u200b\u4e00\u4e2a\u200b\u5747\u503c\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u4e8c\u7ef4\u200b\u6b63\u6001\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u4e8c\u8005\u200b\u7684\u200b\u533a\u522b\u200b\uff0c\u200b\u4e00\u4e2a\u70b9\u200b\u53ef\u4ee5\u200b\u51c6\u786e\u200b\u8fd8\u539f\u200b\u5230\u200b\u4e00\u5e45\u200b\u56fe\u50cf\u200b\uff0c\u200b\u4f46\u200b\u6982\u7387\u5206\u5e03\u200b\u5e76\u200b\u4e0d\u200b\u51c6\u786e\u200b\uff0c\u200b\u4ed6\u200b\u53ea\u662f\u200b\u544a\u8bc9\u200b\u6211\u4eec\u200b\u8fd9\u5e45\u200b\u56fe\u200b\u662f\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u5b83\u200b\u4e5f\u200b\u53ef\u80fd\u200b\u662f\u200b\u5176\u4ed6\u200b\u56fe\u50cf\u200b\uff0c\u200b\u5b83\u200b\u662f\u200b\u5176\u4ed6\u200b\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u6982\u7387\u5206\u5e03\u200b\u7b97\u200b\u51fa\u200b\uff0c\u200b\u6bd4\u5982\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u786e\u5b9a\u200b\u4ed6\u200b\u662f\u200b\uff081\uff0c3\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u662f\u200b\u591a\u5c11\u200b\u3002

            \u200b\u90a3\u4e48\u200b\uff0c\u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u56fe\u50cf\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u6211\u4eec\u200b\u5982\u4f55\u200b\u83b7\u53d6\u200b\u56fe\u50cf\u200b\u5462\u200b\uff1f\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u53d6\u200b\u5747\u503c\u200b\u7684\u200b\u5230\u200b\u56fe\u50cf\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\uff081\uff0c2\uff09\uff0c\u200b\u8fd9\u4e48\u200b\u505a\u200b\u7684\u200b\u9053\u7406\u200b\u662f\u200b\uff1a\u200b\u5b83\u200b\u662f\u200b\u8fd9\u5e45\u200b\u56fe\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u6309\u7167\u200b\u6982\u7387\u200b\u53bb\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u53ef\u80fd\u200b\u662f\u200b\uff081\uff0c2\uff09\uff0c\u200b\u4e5f\u200b\u53ef\u80fd\u200b\u662f\u200b\uff082\uff0c4\uff09\uff0c\u200b\u4f46\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u4e00\u4e9b\u200b\u5f88\u200b\u79bb\u8c31\u200b\u7684\u200b\u70b9\u200b\uff08\u200b\u504f\u79bb\u200b\u5747\u503c\u200b\u5f88\u200b\u8fdc\u200b\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u5c31\u200b\u5f88\u200b\u4f4e\u200b\u3002

            \u200b\u56de\u5230\u200b DDPM \u200b\u7684\u200b\u5411\u524d\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u8d77\u70b9\u200b\u662f\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\uff081\uff0c2\uff09\uff0c\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e86\u200b\u4e00\u6b65\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5c31\u200b\u4e0d\u518d\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u800c\u662f\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\u53ef\u4ee5\u200b\u8fd1\u4f3c\u200b\u770b\u6210\u200b\u5747\u503c\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u60f3\u50cf\u200b\u6211\u4eec\u200b\u4ece\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\u51fa\u53d1\u200b\uff0c\u200b\u8d70\u200b\u4e86\u200b\u4e00\u6b65\u200b\u540e\u200b\uff0c\u200b\u53ef\u80fd\u200b\u5728\u200b\u4ee5\u200b\u5176\u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u4efb\u4f55\u200b\u4e00\u4e2a\u200b\u5730\u65b9\u200b\u4e0a\u200b\uff0c\u200b\u4e0d\u540c\u200b\u7684\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u6982\u7387\u200b\u90fd\u200b\u4e0d\u540c\u200b\uff08\u200b\u53ef\u4ee5\u200b\u7c7b\u6bd4\u200b\u7535\u5b50\u4e91\u200b\uff09.\u200b\u6211\u4eec\u200b\u518d\u200b\u8d70\u200b\u7b2c\u4e8c\u6b65\u200b\uff0c\u200b\u8ddd\u79bb\u200b\u5c31\u200b\u4f1a\u200b\u66f4\u200b\u8fdc\u200b\u4e00\u4e9b\u200b\uff0c\u200b\u6982\u7387\u5206\u5e03\u200b\u66f4\u200b\u5206\u6563\u200b\u4e00\u4e9b\u200b\u3002

            \u200b\u6309\u7167\u200b\u539f\u6587\u200b\u8d70\u51fa\u200b\u4e00\u5343\u6b65\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u56fe\u50cf\u200b\u5c31\u200b\u4f1a\u200b\u53d8\u6210\u200b\u4e00\u4e2a\u200b\u4ee5\u200b\u539f\u56fe\u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u5f25\u6563\u200b\u7684\u200b\u5e7f\u9614\u200b\u7684\u200b\u7c7b\u4f3c\u200b\u7403\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\u5185\u200b\u4e86\u200b.\u200b\u56e0\u200b\u5176\u200b\u5e7f\u9614\u200b\uff0c\u200b\u6211\u4eec\u200b\u5927\u6982\u200b\u6700\u7ec8\u200b\u4f1a\u200b\u505c\u200b\u5728\u200b\u67d0\u200b\u4e00\u4e2a\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u4e0a\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u200b\u8bf4\u200b\u7684\u200b\u505c\u200b\u5728\u200b\u4e00\u4e2a\u200b\u566a\u70b9\u200b\u4e0a\u200b\uff0c\u200b\u662f\u200b\u6307\u200b\u4ece\u200b\u6700\u7ec8\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u53d6\u200b\u5747\u503c\u200b\u6216\u8005\u200b\u968f\u673a\u200b\u91c7\u6837\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u4ee5\u200b\u4ece\u200b\u5206\u5e03\u200b\u8dcc\u56de\u200b\u786e\u5b9a\u200b\u503c\u200b\u3002

            \u200b\u539f\u6587\u4e2d\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u6bcf\u6b65\u200b\u600e\u4e48\u200b\u8d70\u200b\u7684\u200b\u516c\u5f0f\u200b\uff0c\u200b\u5176\u200b\u5177\u6709\u200b\u7684\u200b\u826f\u597d\u200b\u6027\u8d28\u200b\u5c31\u662f\u200b\uff1a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u4ece\u200b\u7ed9\u200b\u8ba2\u200b\u7684\u200b\u8d77\u70b9\u200b\uff0c\\(\\alpha\\)\uff0c\\(\\beta\\)\u200b\u4e2d\u200b\u76f4\u63a5\u200b\u63a8\u51fa\u200b\u7b2c\u200b N \u200b\u6b65\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u5e03\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\uff0c1k \u200b\u6b65\u540e\u200b\\(\\bar \\alpha\\)\u200b\u63a5\u8fd1\u200b\u4e8e\u6797\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u5e03\u200b\u53d6\u200b\u5747\u503c\u200b\u4e5f\u200b\u662f\u200b\u53d6\u200b\u4e0d\u5230\u200b\u539f\u56fe\u200b\u7684\u200b\u4e86\u200b\uff0c\u200b\u5747\u503c\u200b\u5df2\u7ecf\u200b\u5728\u200b 0 \u200b\u9644\u8fd1\u200b.\u200b\u603b\u4f53\u200b\u5206\u5e03\u200b\u63a5\u8fd1\u200b\u9ad8\u65af\u5206\u5e03\u200b\u3002

            "},{"location":"Research/Diffusion%20Model/DDPM/#_3","title":"\u56de\u5230\u200b\u8d77\u70b9","text":"

            \u200b\u4ece\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u8d70\u51fa\u200b 1000 \u200b\u6b65\u200b\uff0c\u200b\u5230\u8fbe\u200b\u7684\u200b\u7ec8\u70b9\u200b\uff0c\u200b\u8fd1\u4e4e\u200b\u670d\u4ece\u200b\u9ad8\u65af\u5206\u5e03\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u76f4\u63a5\u200b\u4ece\u200b\u9ad8\u65af\u5206\u5e03\u200b\u91c7\u6837\u200b\uff0c\u200b\u5c31\u200b\u80fd\u200b\u5f97\u5230\u200b\u8fd1\u4f3c\u200b\u4ece\u200b\u67d0\u4e2a\u200b/\u200b\u4efb\u4f55\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u51fa\u8d70\u200b\u6240\u200b\u8fbe\u5230\u200b\u7684\u200b\u7ec8\u70b9\u200b\u4e86\u200b\uff0c\u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u60f3\u200b\u56de\u53bb\u200b\uff0c\u200b\u600e\u4e48\u200b\u56de\u200b\uff1f

            \u200b\u5230\u200b\u8fd9\u91cc\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u89e3\u7b54\u200b\u539f\u200b\u6a21\u578b\u200b\u4e2d\u200b\u4e00\u4e2a\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u4ee4\u4eba\u56f0\u60d1\u200b\u7684\u200b\u70b9\u200b\u4e86\u200b\uff0c\u200b\u5047\u5982\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e86\u200b 500 \u200b\u6b65\u200b\uff0c\u200b\u5230\u200b\u4e86\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e0b\u200b\u4e00\u6b65\u200b\uff0c\u200b\u5c31\u662f\u200b\u8d70\u200b\u5230\u200b 500 \u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u4e00\u4e2a\u200b\u6982\u7387\u5206\u5e03\u200b\u4e0a\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u8bad\u7ec3\u200b\u4e00\u4e2a\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u6765\u200b\u62df\u5408\u200b\u7684\u8bdd\u200b\uff0c\u200b\u4e0d\u200b\u5c31\u662f\u200b\u5728\u200b\u62df\u5408\u200b\u9ad8\u65af\u200b\u5417\u200b\uff0c\u200b\u9ad8\u65af\u200b\u53c8\u200b\u4f55\u987b\u200b\u62df\u5408\u200b\u5462\u200b\uff1f

            \u200b\u95ee\u9898\u200b\u5c31\u200b\u5728\u200b\u8fd9\u91cc\u200b\u4e86\u200b\uff0c\u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u968f\u673a\u200b\u91c7\u4e86\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8bf4\u200b\u662f\u200b\u7ec8\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u8d70\u200b\u56de\u53bb\u200b\uff0c\u200b\u5f53\u7136\u200b\u4e0d\u80fd\u200b\u4ee5\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u9ad8\u65af\u200b\u8d70\u200b\uff0c\u200b\u90a3\u200b\u6700\u7ec8\u200b\u8d70\u5230\u200b\u7684\u200b\u8fd8\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u77e5\u9053\u200b\uff0c\u200b\u6211\u200b\u73b0\u5728\u200b\u5728\u200b\u8fd9\u91cc\u200b\uff0c\u200b\u90a3\u200b\u6211\u200b\u4e0a\u200b\u4e00\u6b65\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u662f\u4ece\u200b\u54ea\u91cc\u200b\u6765\u200b\u7684\u200b\uff1f\u200b\u6211\u8981\u200b\u56de\u5230\u200b\u90a3\u4e2a\u200b\u5730\u65b9\u200b\u53bb\u200b\u3002

            \u200b\u60f3\u8c61\u200b\u4e00\u4e0b\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u91c7\u6837\u200b\u7684\u200b\u70b9\u200b\u5728\u200b\u8d77\u70b9\u200b\u90a3\u4e2a\u200b\u5706\u200b\u7684\u200b\u4e0a\u65b9\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u7684\u200b\u56de\u7b54\u200b\u662f\u200b\uff1a\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u4e0b\u9762\u200b\u6765\u200b\uff0c\u200b\u8981\u200b\u56de\u53bb\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5f80\u4e0b\u8d70\u200b.\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u5728\u200b\u4e0b\u9762\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u4e0a\u9762\u200b\u6765\u200b\uff0c\u200b\u5f80\u4e0a\u8d70\u200b.\u200b\u6240\u4ee5\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u54ea\u91cc\u200b\u6765\u4f1a\u200b\u968f\u7740\u200b\u6211\u200b\u73b0\u5728\u200b\u5728\u200b\u54ea\u91cc\u200b\u800c\u200b\u53d8\u5316\u200b\uff0c\u200b\u6240\u4ee5\u200b\uff0c\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u9884\u6d4b\u200b\u7684\u200b\u65f6\u5019\u200b\u9700\u8981\u200b\u6211\u4eec\u200b\u73b0\u5728\u200b\u7684\u200b\u4f4d\u7f6e\u200b\uff08\\(x_t\\)\uff09\u200b\u548c\u200b\u65f6\u95f4\u200b\uff0c\u200b\u6765\u200b\u62df\u5408\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u6765\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u3002

            \u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5f00\u59cb\u200b\u8bad\u7ec3\u200b\uff0c\u200b\u7b2c\u4e00\u6b21\u200b\u8bad\u7ec3\u200b\u53ef\u80fd\u200b\u7f51\u7edc\u200b\u4e00\u6b65\u6b65\u200b\u5f80\u4e0a\u8d70\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u6a21\u578b\u200b\u503e\u5411\u200b\u4e8e\u200b\u5728\u200b\u8fd9\u4e9b\u200b\u8def\u5f84\u200b\u70b9\u4e0a\u200b\u8f93\u51fa\u200b\uff1a\u200b\u563f\u200b\uff0c\u200b\u6211\u200b\u662f\u4ece\u200b\u4e0b\u9762\u200b\u6765\u200b\u7684\u200b\uff0c\u200b\u5f80\u4e0b\u8d70\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u56de\u53bb\u200b.\u200b\u7b2c\u4e8c\u6b21\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u80fd\u200b\u5f80\u200b\u5de6\u200b\u8d70\u200b\uff0c\u200b\u540c\u6837\u200b\u8ba9\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u5728\u200b\u8fd9\u6761\u200b\u8def\u5f84\u200b\u4e0a\u200b\u61c2\u5f97\u200b\u5982\u4f55\u200b\u56de\u5f52\u200b.\u200b\u6700\u7ec8\u200b\uff0c\u200b\u8bad\u7ec3\u200b\u5b8c\u6bd5\u200b\u540e\u200b\uff0c\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u5c31\u200b\u61c2\u5f97\u200b\u5982\u4f55\u200b\u4ece\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u70b9\u200b\u8d70\u200b\u56de\u53bb\u200b\u4e86\u200b\u3002

            \u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u8bbe\u8ba1\u200b\u5408\u9002\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u8ba9\u200b\u8bad\u7ec3\u200b\u8fc7\u7a0b\u200b\u53ef\u4ee5\u200b\u66f4\u597d\u200b\u7684\u200b\u9886\u8def\u200b\u56de\u53bb\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u6587\u7ae0\u200b\u4e2d\u200b\u6570\u5b66\u200b\u90e8\u5206\u200b\u5206\u6790\u200b\u7684\u200b\u5de5\u4f5c\u200b\u4e86\u200b\u3002

            "},{"location":"Research/Diffusion%20Model/DDPM/#_4","title":"\u795e\u5947\u200b\u7684\u200b\u8bed\u610f\u200b\u878d\u5408","text":"

            \u200b\u6211\u200b\u4e5f\u200b\u4e0d\u200b\u77e5\u9053\u200b\u5728\u200b\u8fd9\u91cc\u200b\u9002\u7528\u200b\u4e8e\u200b\u4ee5\u200b\u878d\u5408\u200b\u5bf9\u200b\u4e0d\u200b\u5bf9\u200b\uff0c\u200b\u4f46\u200b\u4e8b\u5b9e\u200b\u5c31\u662f\u200b\uff0c\u200b\u8f93\u5165\u200b\u7684\u200b\u8d77\u70b9\u200b\u4e0d\u200b\u552f\u4e00\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u540e\u200b\u8d70\u200b\u56de\u6765\u200b\u7684\u8bdd\u200b\uff0c\u200b\u4e0d\u4ec5\u200b\u53ef\u4ee5\u200b\u8d70\u200b\u56de\u200b\u8d77\u70b9\u200b\uff0c\u200b\u800c\u4e14\u200b\u53ef\u4ee5\u200b\u8d70\u200b\u56de\u200b\u8d77\u70b9\u200b\u4e4b\u95f4\u200b\u7684\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6bd4\u5982\u200b\u8f93\u5165\u200b\u6ee1\u6708\u200b\u548c\u200b\u534a\u6708\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u751f\u6210\u200b \u00be \u200b\u6708\u200b\uff0c\u200b\u8fd9\u200b\u4e24\u5e45\u200b\u56fe\u200b\u5728\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e0d\u540c\u70b9\u200b\u4e0a\u200b\uff0c\u200b\u76f8\u805a\u200b\u6709\u200b\u4e00\u6bb5\u8ddd\u79bb\u200b\uff0c\u200b\u4ed6\u4eec\u200b\u4e2d\u95f4\u200b\u7684\u200b\u70b9\u200b\u5927\u90e8\u5206\u200b\u90fd\u200b\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u566a\u70b9\u200b\uff0c\u200b\u4f46\u662f\u200b\u5374\u200b\u80fd\u200b\u88ab\u200b\u6210\u529f\u200b\u8d70\u200b\u5230\u200b\uff0c\u200b\u5b9e\u5728\u200b\u662f\u200b\u795e\u5947\u200b\u3002

            "},{"location":"Research/Diffusion%20Model/DDPM/#_5","title":"\u8fdb\u4e00\u6b65\u200b\u7684\u200b\u5b66\u4e60","text":"

            \u200b\u4ee5\u4e0a\u200b\u662f\u200b\u5bf9\u200b DDPM \u200b\u7684\u200b\u4e00\u4e2a\u200b\u7406\u89e3\u200b\u7684\u200b\u89d2\u5ea6\u200b\uff0c\u200b\u5927\u4f6c\u200b\u7684\u200b\u535a\u5ba2\u200b\u8fd8\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u5bf9\u4e8e\u200b DDPM \u200b\u7684\u200b\u4e24\u79cd\u200b\u4e0d\u540c\u200b\u7684\u200b\u7406\u89e3\u200b\u7684\u200b\u89c6\u89d2\u200b

            \u200b\u6211\u4eec\u200b\u5148\u8bfb\u200b\u7b2c\u4e00\u7bc7\u200b\uff0c\u200b\u8fd9\u7bc7\u200b\u53ef\u4ee5\u200b\u8ddf\u8bfb\u200b.\u200b\u9996\u5148\u200b\u6587\u7ae0\u200b\u8bf4\u660e\u200b\u4e86\u200b\u628a\u200b\u95ee\u9898\u200b\u5206\u89e3\u6210\u200b\u591a\u200b\u6b65\u200b\u53ef\u4ee5\u200b\u5927\u5e45\u5ea6\u63d0\u9ad8\u200b\u62df\u5408\u200b\u80fd\u529b\u200b\uff0c\u200b\u8fd9\u200b\u662f\u200b\u5f88\u200b\u6709\u200b\u6559\u4e49\u200b\u7684\u200b\u89c2\u5bdf\u200b\u3002

            \u200b\u8054\u5408\u200b\u6563\u5ea6\u200b\u7684\u200b\u6700\u200b\u6d88\u5316\u200b\u76ee\u6807\u200b\u4e5f\u200b\u5f88\u200b\u597d\u200b\u7406\u89e3\u200b\uff0c\u200b\u9996\u5148\u200b\u8981\u200b\u77e5\u9053\u200b KL \u200b\u6563\u5ea6\u200b\u662f\u200b\u8861\u91cf\u200b\u4e24\u4e2a\u200b\u5206\u5e03\u200b\u4e4b\u95f4\u200b\u76f8\u8fd1\u200b\u7a0b\u5ea6\u200b\u7684\u200b\u975e\u8d1f\u200b\u51fd\u6570\u200b\uff0cKL \u200b\u6563\u5ea6\u200b\u4e3a\u200b\u96f6\u5f53\u4e14\u200b\u4ec5\u200b\u5f53\u200b\u4e24\u4e2a\u200b\u5206\u5e03\u200b\u5b8c\u5168\u76f8\u540c\u200b.\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u8d70\u200b\u51fa\u6765\u200b\u7684\u200b\u8def\u200b\u8ddf\u200b\u8d70\u200b\u56de\u53bb\u200b\u7684\u200b\u8def\u200b\u662f\u200b\u5c3d\u53ef\u80fd\u200b\u76f8\u8fd1\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u8981\u200b\u6700\u5c0f\u5316\u200b KL \u200b\u6563\u5ea6\u200b\u3002

            \u200b\u968f\u540e\u200b\u5c31\u662f\u200b\u6570\u5b66\u200b\u5904\u7406\u200b\uff0c\u200b\u53bb\u6389\u200b\u6700\u5c0f\u5316\u200b\u76ee\u6807\u200b\u4e2d\u200b\u7684\u200b\u65e0\u5173\u200b\u5e38\u6570\u200b\u9879\u200b.\u200b\u5e76\u200b\u5316\u7b80\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u4f7f\u200b\u4e4b\u200b\u53ef\u7528\u200b\u3002

            \u200b\u8d85\u53c2\u200b\u8bbe\u7f6e\u200b\u4e2d\u200b\uff0c\u200b\u8981\u6c42\u200b\u8fb9\u7f18\u200b\u5206\u5e03\u200b\u76f8\u7b49\u200b\uff0c\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u8981\u6c42\u200b\u7ec8\u70b9\u200b\u7684\u200b\u5206\u5e03\u200b\u8981\u200b\u8fd1\u4f3c\u4e8e\u200b\u9ad8\u65af\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\\(\\bar \\alpha\\)\u200b\u8fd1\u4e4e\u200b 0 \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002

            \u200b\u6709\u200b\u4e86\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u94fa\u57ab\u200b\uff0c\u200b\u6211\u200b\u8ba4\u4e3a\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b\u7684\u200b\u8109\u7edc\u200b\u662f\u200b\u76f8\u5f53\u200b\u6e05\u6670\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fdb\u5165\u200b\u4e0b\u200b\u4e00\u7bc7\u200b\u3002

            \u200b\u7b2c\u4e09\u7bc7\u200b\u7684\u200b\u524d\u9762\u200b\u4e00\u5927\u90e8\u5206\u200b\u90fd\u200b\u8ddf\u200b\u7b2c\u4e00\u7bc7\u200b\u5b8c\u5168\u200b\u4e00\u6837\u200b\uff0c\u200b\u4f46\u200b\u5230\u200b\u4e86\u200b\u8d1d\u53f6\u65af\u200b\u7684\u200b\u90e8\u5206\u200b\uff0c\u200b\u5f00\u59cb\u200b\u6709\u200b\u4e86\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u77e5\u9053\u200b\uff0c\u200b\u5728\u200b DDPM \u200b\u4e2d\u200b\uff0c\\(p(x_{t-1}|x_t) = p(x_{t-1}|x_t\uff0cx_0)\\)\uff0c\u200b\u56e0\u4e3a\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u9a6c\u5c14\u53ef\u592b\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u6bcf\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\u4ec5\u200b\u4e0e\u200b\u524d\u200b\u4e00\u200b\u72b6\u6001\u200b\u6709\u5173\u200b\uff0c\u200b\u800c\u200b\u4e0e\u200b\u66f4\u200b\u524d\u200b\u7684\u200b\u72b6\u6001\u200b\u65e0\u5173\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u6210\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u77e5\u9053\u200b 500 \u200b\u6b65\u5230\u200b\u54ea\u91cc\u200b\u4e86\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u7ed9\u5b9a\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u80fd\u200b\u6709\u200b 501 \u200b\u6b65\u200b\u7684\u200b\u5206\u5e03\u200b\uff0c\u200b\u7b2c\u200b 0-499 \u200b\u6b65\u200b\uff0c\u200b\u7ed9\u200b\u4e0d\u200b\u7ed9\u200b\u90fd\u200b\u65e0\u6240\u8c13\u200b\uff0c\u200b\u4e0d\u200b\u6539\u53d8\u200b\u5206\u5e03\u200b\uff0c\u200b\u4f46\u662f\u200b\u5f15\u5165\u200b\u4e86\u200b\u8d77\u70b9\u200b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u662f\u200b\u53ef\u4ee5\u200b\u4ece\u200b\u8d77\u70b9\u200b\u76f4\u63a5\u200b\u63a8\u200b\\(x_t\uff0cx_{t-1}\\)\u200b\u7684\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u8ba9\u200b\u6211\u4eec\u200b\u7684\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e2d\u200b\u8bb8\u591a\u200b\u9879\u200b\u6210\u4e3a\u200b\u5df2\u77e5\u200b\u3002

            \u200b\u968f\u540e\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e00\u8def\u200b\u63a8\u5bfc\u200b\u51fa\u200b\u635f\u5931\u200b\u51fd\u6570\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u63a8\u5bfc\u200b\u6d41\u7a0b\u200b\u4e0b\u200b\\(x_0\\)\u200b\u7ed9\u5b9a\u200b\uff0c\u200b\u6211\u4eec\u200b\u80fd\u200b\u76f4\u63a5\u200b\u5f97\u5230\u200b\u5f80\u56de\u200b\u8d70\u200b\u7684\u200b\u65b9\u5411\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u552f\u4e00\u200b\u9700\u8981\u200b\u8bad\u7ec3\u200b\u7684\u200b\u662f\u200b\u6a21\u578b\u200b\u731c\u200b\u539f\u70b9\u200b\u7684\u200b\u80fd\u529b\u200b\uff0c\u200b\u800c\u200b\u8fd9\u200b\u4e00\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff0c\u200b\u6b63\u5982\u200b\u63a8\u5bfc\u200b\u51fa\u6765\u200b\u7684\u200b\u90a3\u6837\u200b\uff0c\u200b\u662f\u200b\u8ddf\u200b\u524d\u9762\u200b\u51e0\u4e2a\u200b\u89c6\u89d2\u200b\u4e00\u6837\u200b\u7684\u200b\u3002

            \u200b\u5230\u200b\u4e86\u200b\u9884\u4f30\u200b\u4fee\u6b63\u200b\u4e00\u8282\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u884c\u4e3a\u200b\u6709\u200b\u53ef\u4ee5\u200b\u88ab\u200b\u89e3\u91ca\u200b\u4e3a\u200b\uff0c\u200b\u5148\u731c\u200b\u51fa\u200b\u4e00\u4e2a\u200b\u8d77\u70b9\u200b\uff0c\u200b\u5f80\u56de\u200b\u8d70\u200b\uff0c\u200b\u5e76\u200b\u901a\u8fc7\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u4fee\u6b63\u200b\u8d77\u70b9\u200b\uff0c\u200b\u7136\u540e\u200b\u8d70\u200b\u4e0b\u200b\u4e00\u6b21\u200b\uff0c\u200b\u8fd9\u6837\u200b\u6211\u4eec\u200b\u8d77\u70b9\u200b\u731c\u200b\u7684\u200b\u8d8a\u6765\u8d8a\u200b\u51c6\u200b\uff0c\u200b\u56de\u5230\u200b\u8d77\u70b9\u200b\u7684\u200b\u80fd\u529b\u200b\u4e5f\u200b\u8d8a\u6765\u8d8a\u200b\u5f3a\u200b\u4e86\u200b\u3002

            \u200b\u6b64\u5904\u200b\u7684\u200b\u7b2c\u4e09\u79cd\u200b\u7406\u89e3\u200b\u662f\u200b\u4e0e\u200b\u540e\u6765\u200b\u7684\u200b DDIM \u200b\u6709\u200b\u5f88\u200b\u5f3a\u200b\u7684\u200b\u5173\u8054\u6027\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\u6211\u4eec\u200b\u5229\u7528\u200b\u4e86\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e4b\u540e\u200b\u5176\u5b9e\u200b\u53ea\u200b\u9700\u8981\u200b\u5404\u4e2a\u200b\u65f6\u95f4\u200b\u70b9\u200b\u5bf9\u4e8e\u200b\\(x_0\\)\u200b\u7684\u200b\u5206\u5e03\u200b\u800c\u200b\u4e0d\u200b\u9700\u8981\u200b\u5176\u200b\u5bf9\u4e8e\u200b\u524d\u200b\u4e00\u4e2a\u200b\u65f6\u95f4\u200b\u70b9\u200b\u7684\u200b\u5206\u5e03\u200b\u4e86\u200b\uff0c\u200b\u4f46\u662f\u200b\u8981\u200b\u6ce8\u610f\u200b\uff0c\u200b\u6211\u4eec\u200b\u4ece\u540e\u200b\u5f80\u524d\u200b\u63a8\u200b\u4ecd\u7136\u200b\u9700\u8981\u200b\u4e00\u6b65\u200b\u4e00\u6b65\u200b\u8d70\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u4e00\u6b65\u200b\u8d70\u200b\u5b8c\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u9000\u5316\u200b\u56de\u200b VAE \u200b\u4e86\u200b\u3002

            "},{"location":"blog/","title":"Blog","text":""},{"location":"blog/Minisql/","title":"Minisql","text":"

            \u200b\u7ea6\u200b 544 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

            Abstract

            Minisql \u200b\u662f\u200b\u8ba1\u7b97\u673a\u79d1\u5b66\u200b\u4e0e\u200b\u6280\u672f\u200b\u4e13\u4e1a\u200b\u5927\u4e8c\u200b\u6625\u590f\u200b\u7684\u200b\u5fc5\u4fee\u8bfe\u200b\u6570\u636e\u5e93\u7cfb\u7edf\u200b\u590f\u200b\u5b66\u671f\u200b\u7684\u200b\u5927\u7a0b\u200b.\u200b\u672c\u200b\u535a\u5ba2\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u672c\u4eba\u200b\u5b9e\u73b0\u200b\u8fd9\u4e00\u200b\u6846\u67b6\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u7684\u200b\u95ee\u9898\u200b\u548c\u200b\u611f\u60f3\u200b\u3002

            "},{"location":"blog/Minisql/#_1","title":"\u7b80\u4ecb","text":"

            \u200b\u5f88\u200b\u65e9\u5c31\u200b\u542c\u8bf4\u200b\u4e86\u200b Minisql \u200b\u7684\u200b\u5927\u540d\u200b\u4e86\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u8fd9\u4e2a\u200b\u5927\u4e8c\u200b\u6625\u590f\u200b\u5230\u6765\u200b\u7684\u200b\u636e\u8bf4\u200b\u975e\u5e38\u200b\u5e9e\u5927\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5de5\u7a0b\u200b\uff0c\u200b\u6211\u200b\u5fc3\u91cc\u200b\u5176\u5b9e\u200b\u662f\u200b\u65e2\u200b\u975e\u5e38\u200b\u5bb3\u6015\u200b\u53c8\u200b\u975e\u5e38\u200b\u671f\u5f85\u200b\u7684\u200b\uff0c\u200b\u4e4b\u524d\u200b\u505a\u200b\u7684\u200b\u5927\u7a0b\u200b\u603b\u200b\u611f\u89c9\u200b\u7f3a\u200b\u90a3\u4e48\u200b\u70b9\u200b\u610f\u601d\u200b\uff0c\u200b\u4f46\u200b\u5230\u200b\u8fd9\u91cc\u200b\u5c31\u200b\u611f\u89c9\u200b\u5473\u200b\u5bf9\u200b\u4e86\u200b\uff08\u200b\u7b11\u200b\u54ed\u200b\uff09.

            \u200b\u8fd9\u200b\u7ed9\u200b\u9879\u76ee\u200b\u662f\u200b\u53ef\u4ee5\u200b\u7ec4\u961f\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5355\u5237\u200b\u7684\u200b\uff0c\u200b\u6211\u200b\u9009\u62e9\u200b\u4e86\u200b\u5355\u5237\u200b\u5b8c\u6210\u200b\uff0c\u200b\u4e2a\u4eba\u200b\u8ba4\u4e3a\u200b\u5de5\u4f5c\u91cf\u200b\u662f\u200b\u5355\u4eba\u200b\u53ef\u4ee5\u200b\u627f\u62c5\u200b\u7684\u200b\uff0c\u200b\u4e5f\u200b\u6bd4\u8f83\u200b\u63a8\u8350\u200b\u5355\u4eba\u200b\u5b8c\u6210\u200b.\u200b\u4e00\u662f\u200b\u5f88\u591a\u200b\u6a21\u5757\u200b\u53ea\u6709\u200b\u81ea\u5df1\u200b\u4e0a\u200b\u624b\u5199\u200b\u8fc7\u200b\u4e86\u200b\uff0cdebug \u200b\u8fc7\u200b\u4e86\u200b\u624d\u200b\u6709\u200b\u771f\u5207\u200b\u7684\u200b\u611f\u53d7\u200b\uff1b\u200b\u4e8c\u662f\u200b\u6211\u200b\u89c9\u5f97\u200b\u5f88\u9177\u200b\uff01\ud83d\ude0e

            "},{"location":"blog/Minisql/#_2","title":"\u6536\u83b7","text":"
            1. \u200b\u7ec3\u4e60\u200b\u5de9\u56fa\u200b\u4e86\u200b oop \u200b\u548c\u200b db\uff0c\u200b\u524d\u8005\u200b\u662f\u56e0\u4e3a\u200b\u8fd9\u4e2a\u200b\u9879\u76ee\u200b\u90fd\u200b\u662f\u200b\u7528\u200b C++\u200b\u5b9e\u73b0\u200b\u7684\u200b.\u200b\u540e\u8005\u200b\u662f\u56e0\u4e3a\u200b\u8fd9\u4e2a\u200b\u9879\u76ee\u200b\u5f88\u591a\u200b\u90e8\u5206\u200b\u90fd\u200b\u662f\u200b\u628a\u200b\u6570\u636e\u5e93\u200b\u7406\u8bba\u200b\u5e94\u5f53\u200b\u7528\u5230\u200b\u5b9e\u8df5\u200b\u4e2d\u200b\u3002
            2. \u200b\u719f\u6089\u200b\u4e86\u200b\u5927\u200b\u9879\u76ee\u200b\u7684\u200b\u6846\u67b6\u200b\uff0c\u200b\u4ee5\u53ca\u200b git\uff0ccmake \u200b\u7b49\u200b\u5de5\u5177\u200b\uff0c\u200b\u90fd\u200b\u662f\u200b\u5f88\u200b\u5b9e\u7528\u200b\u7684\u200b\u5de5\u5177\u200b\uff08\u200b\u5f53\u7136\u200b\u5728\u200b\u9879\u76ee\u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ea\u200b\u4fdd\u6301\u200b\u6700\u4f4e\u200b\u9650\u5ea6\u200b\u7684\u200b\u4f7f\u7528\u200b\u4e5f\u200b\u662f\u200b\u53ef\u4ee5\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b\u611f\u5174\u8da3\u200b\u7684\u8bdd\u200b\u5b8c\u5168\u200b\u53ef\u4ee5\u200b\u8d81\u200b\u8fd9\u4e2a\u200b\u673a\u4f1a\u200b\u719f\u6089\u8d77\u6765\u200b\uff09
            3. \u200b\u719f\u6089\u200b\u4e86\u200b\u4e00\u4e9b\u200b\u8c03\u8bd5\u200b\u7684\u200b\u6280\u5de7\u200b\u548c\u200b\u597d\u200b\u7528\u200b\u7684\u200b\u6027\u80fd\u200b\u5206\u6790\u200b\u5de5\u5177\u200b
            4. \u200b\u53c8\u200b\u88ab\u200b\u642d\u200b\u73af\u5883\u200b\u6298\u78e8\u200b\u4e86\u200b\u4e00\u904d\u200b\uff0c\u200b\u6297\u9006\u6027\u200b\u63d0\u9ad8\u200b\u4e86\u200b\uff01\ud83d\ude05
            "},{"location":"blog/Minisql/#_3","title":"\u603b\u7eb2","text":"

            \u200b\u8fd9\u90e8\u5206\u200b\u535a\u5ba2\u200b\u7684\u200b\u7ec4\u7ec7\u200b\u5f62\u5f0f\u200b\u5927\u4f53\u200b\u8fd8\u662f\u200b\u6309\u7167\u200b\u9879\u76ee\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u533a\u5206\u200b\u7684\u200b\u6a21\u5757\u200b\u987a\u5e8f\u200b\u6765\u200b\u7684\u200b\uff0c\u200b\u5728\u200b\u6700\u200b\u5f00\u5934\u200b\u8fd8\u6709\u200b\u4e00\u4e2a\u200b\u642d\u5efa\u200b\u73af\u5883\u200b\u7684\u200b\u8e29\u200b\u5751\u200b\u8bb0\u5f55\u200b\u3002

            \u200b\u5728\u200b\u5177\u4f53\u200b\u5b9e\u73b0\u200b\u7684\u200b\u5404\u200b\u90e8\u5206\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u200b\u4e3b\u8981\u200b\u662f\u200b\u4f1a\u200b\u4ecb\u7ecd\u200b\u8fd9\u4e9b\u200b\u6a21\u5757\u200b\u91cc\u9762\u200b\u5404\u4e2a\u200b\u7ed3\u6784\u200b\u3001\u200b\u51fd\u6570\u200b\u5728\u200b\u4ec0\u4e48\u200b\u60c5\u5883\u200b\u4e0b\u200b\u5e94\u8be5\u200b\u88ab\u200b\u8c03\u7528\u200b\uff0c\u200b\u88ab\u200b\u8c03\u7528\u200b\u6765\u200b\u505a\u200b\u4ec0\u4e48\u200b\u4e8b\u200b\uff0c\u200b\u6574\u4e2a\u200b\u5927\u200b\u7684\u200b\u6a21\u5757\u200b\u5728\u200b\u505a\u200b\u4ec0\u4e48\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5982\u4f55\u200b\u4f18\u5316\u200b\u3002

            \u200b\u53ef\u4ee5\u200b\u8bf4\u200b\u548c\u200b\u9879\u76ee\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u7684\u200b\u5185\u5bb9\u200b\u5728\u200b\u503e\u5411\u6027\u200b\u4e0a\u200b\u6709\u200b\u4e00\u4e9b\u200b\u91cd\u53e0\u200b\uff0c\u200b\u4f46\u200b\u4eba\u5bb6\u200b\u8bf4\u200b\u8fc7\u200b\u4e86\u200b\u6211\u200b\u5c31\u200b\u5c3d\u91cf\u200b\u4e0d\u518d\u200b\u91cd\u590d\u200b\u4e86\u200b\uff0c\u200b\u4e3b\u8981\u200b\u662f\u4ece\u200b\u4e00\u4e2a\u200b\u5b9e\u73b0\u200b\u8005\u200b\u7684\u200b\u89d2\u5ea6\u200b\u6765\u8bb2\u200b\u56f0\u60d1\u200b\u548c\u200b\u7406\u89e3\u200b\u7684\u200b\u3002

            "},{"location":"blog/Minisql/minisql_part0/","title":"Minisql Environment Configurations","text":"

            \u200b\u7ea6\u200b 602 \u200b\u4e2a\u200b\u5b57\u200b 24 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

            Abstract

            \u200b\u867d\u7136\u200b\u5df2\u7ecf\u200b\u642d\u51fa\u200b\u80fd\u200b\u7528\u200b\u7684\u200b\u73af\u5883\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u8fd8\u662f\u200b\u5f88\u96be\u200b\u4e0d\u200b\u5728\u200b\u5f00\u5934\u200b\u653e\u200b\u4e0a\u200b\u4e09\u4e2a\u200b\u6d41\u6c57\u200b\u9ec4\u8c46\u200b\u6765\u200b\u8868\u8fbe\u200b\u6211\u200b\u5bf9\u200b\u642d\u200b\u73af\u5883\u200b\u8fd9\u4ef6\u200b\u4e8b\u200b\u7684\u200b\u65e0\u8bed\u200b\ud83d\ude05\ud83d\ude05\ud83d\ude05

            "},{"location":"blog/Minisql/minisql_part0/#_1","title":"\u521d\u8bd5\u200b\uff1a\u200b\u672c\u5730\u200b\u8fd0\u884c","text":"

            \u200b\u672c\u4eba\u200b\u76ee\u524d\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b MacBookPro\uff0cMacOS Ventura13.3.1. \u200b\u76f4\u8bf4\u200b\u7684\u8bdd\u200b\uff0c\u200b\u672c\u5730\u200b\u8fd0\u884c\u200b\u7684\u200b\u5c1d\u8bd5\u200b\u5931\u8d25\u200b\u4e86\u200b\ud83d\ude05

            "},{"location":"blog/Minisql/minisql_part0/#cmake","title":"Cmake","text":"

            \u200b\u7b2c\u4e00\u4e2a\u200b\u5751\u200b\u662f\u200b cmake \u200b\u9636\u6bb5\u200b \u200b\u6709\u200b\u5982\u4e0b\u200b\u7684\u200b\u7ecf\u5178\u200b\u62a5\u9519\u200b\uff08\u200b\u7ecf\u5178\u200b\u662f\u56e0\u4e3a\u200b\u6211\u89c1\u200b\u8fc7\u200b\u4ed6\u200b\u65e0\u6570\u6b21\u200b\u4e86\u200b\uff09\uff1a

            cmake ..                                                                                                                                                                                       \u2500\u256f\nCMake Error at /Users/xxx/opt/anaconda3/lib/cmake/GTest/GTestTargets.cmake:37 (message):\n  Some (but not all) targets in this export set were already defined.\n\n  Targets Defined: GTest::gtest;GTest::gtest_main\n\n  Targets not yet defined: GTest::gmock;GTest::gmock_main\n\nCall Stack (most recent call first):\n  /Users/xxx/opt/anaconda3/lib/cmake/GTest/GTestConfig.cmake:32 (include)\n  thirdparty/glog/CMakeLists.txt:71 (find_package)\n

            \u200b\u6211\u200b\u4e0d\u200b\u61c2\u200b cmake\uff0c\u200b\u4e5f\u200b\u641c\u200b\u4e0d\u5230\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u611f\u89c9\u200b\u53ef\u80fd\u200b\u8ddf\u200b\u7248\u672c\u200b\u517c\u5bb9\u200b\u5565\u200b\u7684\u200b\u6709\u5173\u200b\uff08\u200b\u6709\u200b\u77e5\u9053\u200b\u7684\u200b\u5927\u4f6c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u5728\u200b\u8bc4\u8bba\u200b\u533a\u91cc\u200b\u8bf4\u200b\u8bf4\u200b\uff0c\u200b\u611f\u8c22\u200b\uff01\uff09\u200b\u4e0d\u8fc7\u200b\u6211\u200b\u770b\u5230\u200b\u4e86\u200b\u62a5\u9519\u200b\u8def\u5f84\u200b\u4e0a\u200b\u4e86\u200b anaconda3\uff0c\u200b\u60f3\u200b\u8d77\u6765\u200b\u6211\u200b\u7ec8\u7aef\u200b\u7684\u200b\u73af\u5883\u200b\u8fd8\u662f\u200b conda base\uff0c\u200b\u6240\u4ee5\u200b\u6211\u200b\u4e00\u4e2a\u200bconda deactivae\u200b\u540e\u200b\uff0c\u200b\u91cd\u5efa\u200b build \u200b\u76ee\u5f55\u200b\uff0c\u200b\u518d\u200b cmake \u200b\u5c31\u200b\u6ca1\u6709\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u4e86\u200b\u3002

            \u200b\u4f46\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u53ea\u662f\u200b\u88ab\u200b\u6682\u65f6\u200b\u4fee\u590d\u200b\u4e86\u200b\u7b97\u662f\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u8c03\u7528\u200b VSCode \u200b\u7684\u200b cmake \u200b\u63d2\u4ef6\u200b\u5565\u200b\u7684\u200b\u8fd8\u662f\u200b\u4f1a\u200b\u8fd9\u6837\u200b\uff0c\u200b\u6211\u200b\u4e5f\u200b\u6ca1\u200b\u627e\u200b\u51fa\u6765\u200b\u8fd9\u91cc\u200b\u7684\u200b\u8981\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b\u3002

            "},{"location":"blog/Minisql/minisql_part0/#make","title":"Make","text":"

            Cmake \u200b\u901a\u200b\u4e86\u200b Make \u200b\u53c8\u200b\u4e0d\u901a\u200b\ud83d\ude05 \u200b\u62a5\u9519\u200b\u5982\u4e0b\u200b\uff1a

            In file included from /Users/xxx/Desktop/minisql/src/executor/execute_engine.cpp:1:\nIn file included from /Users/xxx/Desktop/minisql/src/include/executor/execute_engine.h:5:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/string:551:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/string_view:222:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/algorithm:1851:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__algorithm/ranges_sample.h:13:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__algorithm/sample.h:18:\n/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__random/uniform_int_distribution.h:162:5: error: static_assert failed due to requirement '__libcpp_random_is_valid_inttype<char>::value' \"IntType must be a supported integer type\"\n    static_assert(__libcpp_random_is_valid_inttype<_IntType>::value\uff0c \"IntType must be a supported integer type\");\n    ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n/Users/xxx/Desktop/minisql/test/include/utils/utils.h:24:41: note: in instantiation of template class 'std::uniform_int_distribution<char>' requested here\n    std::uniform_int_distribution<char> uniform_dist(33\uff0c 122);\n
            \u200b\u770b\u8d77\u6765\u200b\u662f\u200b\u6846\u67b6\u200b\u91cc\u200b\u5b9e\u4f8b\u200b\u5316\u200b\u6a21\u677f\u200b\u7684\u200b\u65f6\u5019\u200b\u7528\u200b\u7684\u200b\u7684\u200b char \u200b\u7c7b\u578b\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u91cc\u200b\u4e0d\u8ba9\u200b\u7528\u200b char \u200b\u7c7b\u578b\u200b\uff0c\u200b\u90a3\u200b\u600e\u4e48\u529e\u200b\uff0c\u200b\u8981\u200b\u6211\u200b\u53bb\u200b\u6539\u200b\u6846\u67b6\u200b\u5417\u200b\uff0c\u200b\u8fd9\u200b\u73a9\u610f\u200b\u4e07\u4e00\u200b\u8026\u5408\u200b\u7684\u200b\u5f88\u200b\u7d27\u200b\u6211\u200b\u7684\u200b\u7406\u89e3\u200b\u6210\u672c\u200b\u52a0\u200b\u4fee\u6539\u200b\u6210\u672c\u200b\u4f30\u8ba1\u200b\u90fd\u200b\u591f\u200b\u6211\u200b\u53d7\u200b\u7684\u200b\u4e86\u200b.\u200b\u8fd9\u91cc\u200b\u7684\u200b\u4e24\u4e2a\u200b\u9009\u62e9\u200b\u4e00\u4e2a\u200b\u662f\u200b\u6362\u4e2a\u200b SDK \u200b\u7248\u672c\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u4e0d\u200b\u77e5\u9053\u200b\u80fd\u200b\u4e0d\u80fd\u200b\u8d77\u6548\u200b\uff0c\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u5c31\u662f\u200b\u8dd1\u200b\u8def\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u8fd8\u6709\u200b\u4e00\u53f0\u200b Windows \u200b\u6e38\u620f\u200b\u672c\u200b\uff0c\u200b\u6240\u4ee5\u200b\u679c\u65ad\u200b\u6da6\u200b\u4e86\u200b\u3002

            "},{"location":"blog/Minisql/minisql_part0/#wsl2","title":"\u4e8c\u8bd5\u200b\uff1aWSL2","text":"

            \u200b\u6211\u200b\u7684\u200b Win \u200b\u672c\u200b\u65e9\u5c31\u200b\u88c5\u200b\u8fc7\u200b WSL2 \u200b\u4e86\u200b\uff0c\u200b\u4e4b\u524d\u200b\u8dd1\u200b\u4e00\u4e9b\u200b\u6a21\u578b\u200b\u7684\u200b\u65f6\u5019\u200b\u628a\u200b ssh \u200b\u5565\u200b\u7684\u200b\u4e5f\u200b\u914d\u597d\u200b\u4e86\u200b\uff08\u200b\u4e0d\u8fc7\u200b\u7389\u6e56\u200b\u53ea\u80fd\u200b\u7528\u200b\u52a8\u6001\u200b IP \u200b\u6211\u200b\u4e09\u5929\u4e24\u5934\u200b\u5c31\u200b\u5f97\u200b\u6362\u200b\u4e00\u4e0b\u200b\ud83d\ude05\uff09\uff0c\u200b\u6240\u4ee5\u200b\u6210\u672c\u200b\u5176\u5b9e\u200b\u4e0d\u200b\u5927\u200b\u3002 \u200b\u8fd9\u91cc\u200b\u9047\u5230\u200b\u4e24\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u4e00\u662f\u200b cmake \u200b\u9636\u6bb5\u200b\u8ddf\u200b\u4e0a\u9762\u200b\u4e00\u6837\u200b\u7684\u200b\u95ee\u9898\u200b\uff0c\u200b\u89e3\u51b3\u200b\u65b9\u6cd5\u200b\u8fd8\u662f\u200bconda deactivate\uff0c\u200b\u4e8c\u662f\u200b\u63d0\u793a\u200b\u6ca1\u6709\u200b gflag \u200b\u6a21\u5757\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u6700\u200b\u7b80\u5355\u200b\uff0c\u200b\u76f4\u63a5\u200b\u5b89\u88c5\u200b\u4e00\u4e0b\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b

            sudo apt-get install gflags\n

            \u200b\u7136\u540e\u200b\u5c31\u200b\u80fd\u200b\u8dd1\u200b\u4e86\u200b\uff0c\u200b\u867d\u7136\u200b\u5728\u200b\u8fd9\u91cc\u200b\u7528\u200b\u5404\u79cd\u200b Cmake \u200b\u63d2\u4ef6\u200b\u4e00\u7c7b\u200b\u7684\u200b\u8fd8\u662f\u200b\u6ca1\u200b\u4e00\u4e2a\u200b\u80fd\u200b\u8dd1\u200b\u7684\u200b\uff08\u200b\u62a5\u200b Cmake \u200b\u9636\u6bb5\u200b\u7684\u200b\u90a3\u4e2a\u200b\u9519\u200b\uff09\uff0c\u200b\u6211\u200b\u8bd5\u56fe\u7528\u200b Clion \u200b\u8fdc\u7a0b\u200b\u5f00\u53d1\u200b\u7ed3\u679c\u200b\u540e\u7aef\u200b\u4e5f\u200b\u5d29\u574f\u200b\u4e86\u200b\u5f00\u200b\u4e0d\u200b\u8d77\u6765\u200b\uff0c\u200b\u5404\u79cd\u200b\u4e8b\u60c5\u200b\u641e\u200b\u5f97\u200b\u6211\u200b\u5f88\u70e6\u200b\uff0c\u200b\u4f46\u200b\u603b\u7b97\u200b\u6709\u4e2a\u200b\u80fd\u200b\u7528\u200b\u7684\u200b VSCode + ssh + WSL2 \u200b\u7684\u200b\u65b9\u6848\u200b\u80fd\u200b\u8dd1\u200b\u4e86\u200b\uff0c\u200b\u4ed6\u200b\u7684\u200b\u4f18\u70b9\u200b\u662f\u200b\u80fd\u200b\u8dd1\u200b\uff0c\u200b\u7f3a\u70b9\u200b\u662f\u200b\u80fd\u200b\u8dd1\u200b\u7684\u200b\u8865\u96c6\u200b\uff0c\u200b\u4f46\u200b\u6211\u200b\u5b9e\u5728\u200b\u6298\u817e\u200b\u4e0d\u52a8\u200b\u4e86\u200b\u5c31\u200b\u5148\u200b\u8fd9\u6837\u200b\u4e86\u200b\u3002

            "},{"location":"blog/Minisql/minisql_part1/","title":"Minisql#1 Disk and BufferPoolManager","text":"

            \u200b\u7ea6\u200b 475 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

            Abstract

            \u200b\u8fd9\u200b\u4e00\u90e8\u5206\u200b\u4e3b\u8981\u200b\u8d1f\u8d23\u200b\u4e0e\u200b\u5185\u5b58\u200b\u78c1\u76d8\u7a7a\u95f4\u200b\u7533\u8bf7\u200b\u91ca\u653e\u200b\u7b49\u200b\u6253\u4ea4\u9053\u200b\uff0c\u200b\u5728\u200b\u9879\u76ee\u200b\u4e2d\u200b\u7684\u200b\u5730\u4f4d\u200b\u5927\u6982\u200b\u76f8\u5f53\u4e8e\u200bnew delete\uff0c\u200b\u6240\u4ee5\u200b\u8fd9\u200b\u4e00\u90e8\u5206\u200b\u5728\u200b\u540e\u7eed\u200b\u4f1a\u200b\u88ab\u200b\u9891\u7e41\u200b\u8c03\u7528\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u76f4\u63a5\u200b\u4e0e\u200b\u78c1\u76d8\u200b IO \u200b\u6253\u4ea4\u9053\u200b\u7684\u200b\uff0c\u200b\u5b9e\u73b0\u200b\u65e2\u200b\u8981\u6c42\u200b\u6b63\u786e\u200b\u53c8\u200b\u8981\u6c42\u200b\u6548\u7387\u200b

            "},{"location":"blog/Minisql/minisql_part1/#_1","title":"\u52a8\u673a","text":"

            \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u624b\u5934\u4e0a\u200b\u73b0\u5728\u200b\u6709\u200b 65536\uff084096*16\uff09\u200b\u9875\u200b\uff08\u200b\u4e00\u9875\u200b\u4e3a\u200b 4096Bytes\uff09\u200b\u7684\u200b\u6570\u636e\u200b\u9700\u8981\u200b\u5b58\u5728\u200b\u78c1\u76d8\u200b\u4e0a\u200b\uff0c\u200b\u6700\u200b\u81ea\u7136\u200b\u7684\u200b\u60f3\u6cd5\u200b\u5c31\u662f\u200b\u6570\u7ec4\u200b\uff0c\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u53d8\u957f\u200b\u6570\u7ec4\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u6587\u4ef6\u200b\u5c3e\u200b\u7ee7\u7eed\u200b\u5199\u5165\u200b\u65b0\u200b\u7684\u200b\u9875\u200b\u3002

            \u200b\u4f46\u662f\u200b\uff0c\u200b\u6570\u636e\u5e93\u200b\u4f1a\u200b\u5bf9\u200b\u6570\u636e\u200b\u8fdb\u884c\u200b\u5220\u9664\u200b.\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u5206\u914d\u200b\u51fa\u53bb\u200b\u7b2c\u200b 0-9 \u200b\u9875\u200b\u7528\u4e8e\u200b\u8bb0\u5f55\u200b\u67d0\u4e2a\u200b\u8868\u200b\uff0c\u200b\u7136\u540e\u200b\u5220\u9664\u200b\u4e86\u200b\u5176\u4e2d\u200b\u7b2c\u200b 2\uff0c4\uff0c6 \u200b\u9875\u200b\u7684\u200b\u6570\u636e\u200b\uff0c\u200b\u90a3\u4e48\u200b\u4e0b\u6b21\u200b\u518d\u200b\u8bf7\u6c42\u200b\u9875\u9762\u200b\u6765\u200b\u5b58\u50a8\u200b\u4fe1\u606f\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u200b\u7a7a\u95f2\u200b\u7684\u200b\u4e09\u9875\u200b\u6765\u200b\u5b58\u50a8\u200b.\u200b\u4e0d\u200b\u8fd9\u6837\u200b\u505a\u200b\uff0c\u200b\u90a3\u4e48\u200b\u9762\u5bf9\u200b\u7533\u8bf7\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u5220\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u7533\u8bf7\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u5220\u200b 100 \u200b\u9875\u200b\u8fd9\u6837\u200b\u7684\u200b\u64cd\u4f5c\u200b\uff0c\u200b\u672c\u6765\u200b\u53ea\u8981\u200b 100 \u200b\u9875\u200b\u7684\u200b\u7a7a\u95f4\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9e\u73b0\u200b\uff0c\u200b\u5b9e\u9645\u4e0a\u200b\u5374\u4f1a\u82b1\u200b\u7684\u200b\u591a\u5f97\u591a\u200b\u3002

            \u200b\u8fd9\u200b\u5c31\u200b\u5f15\u51fa\u200b\u4e86\u200b BitMap\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u62ff\u51fa\u200b\u4e00\u9875\u200b\u6765\u200b\uff0c\u200b\u628a\u200b\u8fd9\u200b\u4e00\u9875\u200b 4096 \u200b\u4e2a\u200b Byte\uff0c\u200b\u5373\u200b 32768 \u200b\u4e2a\u200b bit\uff0c\u200b\u6bcf\u4e2a\u200b bit \u200b\u7684\u200b 0 \u200b\u6307\u793a\u200b\u8be5\u9875\u200b\u672a\u200b\u88ab\u200b\u4f7f\u7528\u200b\uff0c1 \u200b\u6307\u793a\u200b\u5df2\u7ecf\u200b\u88ab\u200b\u4f7f\u7528\u200b\uff0c\u200b\u8fd9\u6837\u200b\u8fd9\u200b\u4e00\u9875\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7ba1\u7406\u200b\u5176\u540e\u200b\u7684\u200b 32768 \u200b\u9875\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u73b0\u5728\u200b\u5176\u4e2d\u200b\u627e\u200b 0\uff0c\u200b\u6ca1\u6709\u200b 0 \u200b\u4e86\u200b\uff0c\u200b\u624d\u200b\u53bb\u200b\u65b0\u5f00\u200b\u4e00\u9875\u200b\u3002

            \u200b\u5f53\u7136\u200b\u5b9e\u9645\u4e0a\u200b\u8fd9\u200b\u4e00\u9875\u200b\u7684\u200b 4096B \u200b\u6211\u4eec\u200b\u4e0d\u4f1a\u200b\u90fd\u200b\u62ff\u200b\u53bb\u200b\u7528\u6765\u200b\u8bb0\u5f55\u200b\u4f7f\u7528\u200b\u60c5\u51b5\u200b\uff0c\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u5143\u200b\u6570\u636e\u200b\u6bd4\u5982\u200b\u8bb0\u5f55\u200b\u76ee\u524d\u200b\u4ee5\u200b\u5360\u7528\u200b\u7684\u200b\u6709\u200b 10 \u200b\u9875\u200b\u7b49\u7b49\u200b\u3002

            \u200b\u4f46\u200b\u6ce8\u610f\u200b\u7b2c\u4e00\u6bb5\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b 65536 \u200b\u9875\u200b\u8981\u200b\u5b58\u200b\uff0c\u200b\u4e00\u9875\u200b BitMap \u200b\u4e0d\u591f\u200b\uff0c\u200b\u90a3\u200b\u5c31\u200b\u591a\u6765\u200b\u51e0\u4e2a\u200b.\u200b\u6211\u4eec\u200b\u628a\u200b 1 \u200b\u9875\u200b BitMap \u200b\u548c\u200b\u540e\u9762\u200b\u7684\u200b\uff08\u200b\u5927\u6982\u200b\uff0932767 \u200b\u9875\u200b\u79f0\u4e3a\u200b\u4e00\u6bb5\u200b(extent)\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4e24\u6bb5\u200b\u6765\u200b\u5b58\u50a8\u200b 65536 \u200b\u9875\u200b\uff0c\u200b\u5728\u200b\u6700\u200b\u524d\u9762\u200b\u6765\u4e2a\u200b Disk Meta Page \u200b\u6765\u200b\u7ba1\u7406\u200b\u6240\u6709\u200b\u9875\u200b\u3002

            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/","title":"\u8ba1\u7b97\u673a\u200b\u4f53\u7cfb\u7ed3\u6784\u200b - lab4 Cache","text":"

            Abstract

            \u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b Cache \u200b\u8bbe\u8ba1\u200b\u7684\u200b\u601d\u60f3\u200b\uff0c\u200b\u4ece\u200b\u6a21\u5757\u200b\u62bd\u8c61\u200b\u7684\u200b\u5c42\u9762\u200b\u8bb2\u8bb2\u200b\u5404\u200b\u6a21\u5757\u200b\u7684\u200b\u529f\u80fd\u200b\u548c\u200b\u4ea4\u4e92\u200b\u7684\u200b\u903b\u8f91\u200b\u3002

            \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

            \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

            \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

            \u200b\u672c\u6b21\u200b\u5b9e\u9a8c\u200b\u662f\u200b\u8981\u200b\u5b9e\u73b0\u200b\u4e00\u4e2a\u200b Cache\uff0c\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u4f1a\u200b\u5b9e\u73b0\u200b\u4e00\u4e2a\u200b CMU(Cache Management Unit)\u200b\u6765\u200b\u5b8c\u6210\u200b CPU\uff0c Memory\uff0c Cache \u200b\u4e4b\u95f4\u200b\u7684\u200b\u4ea4\u4e92\u200b\u548c\u200b\u63a7\u5236\u200b\uff0c\u200b\u7ed3\u6784\u200b\u5982\u4e0b\u200b\uff1a

            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#memory","title":"Memory","text":"

            \u200b\u5728\u200b\u672c\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b Memory \u200b\u53ea\u200b\u4e0e\u200b CMU \u200b\u4ea4\u4e92\u200b\u3002

            Memory \u200b\u4e0e\u200b CMU \u200b\u7684\u200b\u4ea4\u4e92\u200b\u53ea\u6709\u200b\u4e00\u79cd\u200b\uff1a

            • CMU \u200b\u628a\u200b\u8bfb\u5199\u200b\u9700\u8981\u200b\u7684\u200b\u5730\u5740\u200b\u548c\u200b\u6570\u636e\u200b\u7ed9\u200b Memory\uff0c Memory \u200b\u8fdb\u884c\u200b\u8bfb\u5199\u64cd\u4f5c\u200b\u7136\u540e\u200b\u8fd4\u56de\u200b\u6570\u636e\u200b\u7ed9\u200b CMU
            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#cache","title":"Cache","text":"

            Cache \u200b\u5185\u90e8\u200b\u7ef4\u62a4\u200b\u7740\u200b\u6240\u6709\u200b Cache line \u200b\u548c\u200b\u6807\u8bb0\u200b\u4f4d\u200b\uff0c\u200b\u5e76\u4e14\u200b\u4e0e\u200b CMU \u200b\u8fdb\u884c\u200b\u4ea4\u4e92\u200b\uff0c\u200b\u4e3b\u8981\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a

            • \u200b\u8fd4\u56de\u200b\u90e8\u5206\u200b\u63a7\u5236\u200b\u4fe1\u606f\u200b\u7ed9\u200b CMU\uff0c\u200b\u5305\u62ec\u200b
              • \u200b\u662f\u5426\u200b\u547d\u4e2d\u200b
              • \u200b\u88ab\u200b\u66ff\u6362\u200b\u7684\u200b Cache line \u200b\u662f\u5426\u200b\u6709\u6548\u200b\u4e14\u810f\u200b
              • \u200b\u88ab\u200b\u5199\u200b\u56de\u200b\u7684\u200b Cache line \u200b\u7684\u200b tag\uff08\u200b\u8fd9\u6837\u200b CMU \u200b\u624d\u80fd\u200b\u83b7\u5f97\u200b\u6b63\u786e\u200b\u7684\u200b\u5730\u5740\u200b\uff0c\u200b\u7136\u540e\u200b\u628a\u200b\u6570\u636e\u200b\u5199\u56de\u200b Memory\uff09
            • \u200b\u6267\u884c\u200b CMU \u200b\u8981\u6c42\u200b\u7684\u200b\u64cd\u4f5c\u200b\uff0c\u200b\u5305\u62ec\u200b
              • load: \u200b\u4e5f\u200b\u5c31\u200b\u662f\u4ece\u200b\u547d\u4e2d\u200b\u7684\u200b(1)Cache line \u200b\u4e2d\u8bfb\u200b\u4fe1\u606f\u200b\u548c\u200b\u6807\u8bb0\u200b(LRU)\uff0c\u200b\u8fd4\u56de\u200b
              • edit: \u200b\u4e5f\u200b\u5c31\u662f\u200b\u5bf9\u200b\u547d\u4e2d\u200b\u7684\u200b Cache line \u200b\u8fdb\u884c\u200b\u4fee\u6539\u200b\u548c\u200b\u6807\u8bb0\u200b(LRU\uff0c dirty)\uff0c\u200b\u8fd4\u56de\u200b
              • store: \u200b\u5c06\u200b CMU \u200b\u7684\u200b\u7ed9\u200b\u7684\u200b\u6570\u636e\u200b\u66ff\u6362\u200b\u8fdb\u200b Cache line\uff0c\u200b\u5e76\u4e14\u200b\u6807\u8bb0\u200b(valid\uff0c dirty\uff0c tag)\uff0c \u200b\u8fd4\u56de\u200b
              • invalid: \u200b\u6e05\u7a7a\u200b Cache
            1. \u200b\u547d\u4e2d\u200b\u4e86\u200b\u54ea\u4e2a\u200b Cache line \u200b\u6216\u8005\u200b\u54ea\u4e2a\u200b\u90fd\u200b\u6ca1\u200b\u547d\u4e2d\u200b\u7531\u200b Cache \u200b\u5185\u90e8\u200b\u903b\u8f91\u200b\u5206\u8fa8\u200b.\u200b\u5982\u679c\u200b\u90fd\u200b\u6ca1\u200b\u547d\u4e2d\u200b Cache \u200b\u6b64\u200b\u5468\u671f\u200b\u5c31\u200b\u5565\u200b\u90fd\u200b\u4e0d\u200b\u5e72\u200b\uff0c\u200b\u53ea\u200b\u8fd4\u56de\u200b\u63a7\u5236\u200b\u4fe1\u53f7\u200b\uff0c\u200b\u7b49\u5f85\u200b CMU \u200b\u540e\u7eed\u200b\u63a7\u5236\u200b

            \u200b\u4e3a\u4e86\u200b\u505a\u597d\u200b\u8fd9\u4e9b\u200b\u4e8b\u200b\uff0cCache \u200b\u5185\u90e8\u200b\u4f1a\u200b\u8fdb\u884c\u200b\u5b9e\u73b0\u200b\u5408\u9002\u200b\u7684\u200b\u7ec4\u5408\u200b\u903b\u8f91\u200b\u6765\u200b\u8fdb\u884c\u200b\u7d22\u5f15\u200b\uff0c\u200b\u6bd4\u8f83\u200b\u7b49\u7b49\u200b

            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#cpu","title":"CPU","text":"

            CPU \u200b\u4e0e\u200b CMU \u200b\u7684\u200b\u4ea4\u4e92\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a

            • CPU \u200b\u9700\u8981\u200b\u8bbf\u5b58\u200b\uff0c\u200b\u5c06\u200b\u8bfb\u5199\u200b\u5730\u5740\u200b\u548c\u200b\u6570\u636e\u200b\u7ed9\u200b CMU
            • CPU \u200b\u8fd8\u4f1a\u200b\u63a5\u53d7\u200b CMU \u200b\u7684\u200b\u7b49\u5f85\u200b\u4fe1\u53f7\u200b\uff0c\u200b\u963b\u585e\u200b\u6d41\u6c34\u7ebf\u200b\u7b49\u5f85\u200b\u6570\u636e\u200b\u5c31\u4f4d\u200b
            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#cmu","title":"CMU","text":"

            CMU \u200b\u5185\u90e8\u200b\u7ef4\u62a4\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u673a\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u72b6\u6001\u200b\u673a\u4f1a\u200b\u6839\u636e\u4e0a\u8ff0\u200b\u4e09\u4e2a\u200b\u7ec4\u4ef6\u200b\u7684\u200b\u63a7\u5236\u200b\u4fe1\u53f7\u200b\u8fdb\u884c\u200b\u8df3\u8f6c\u200b\uff1a

            • CPU \u200b\u662f\u5426\u200b\u6709\u200b\u8bfb\u5199\u200b\u8bf7\u6c42\u200b
            • Memory \u200b\u5bf9\u200b\u8bfb\u5199\u200b\u8bf7\u6c42\u200b\u7684\u200b\u5904\u7406\u200b
            • Cache \u200b\u7684\u200b\u63a7\u5236\u200b\u4fe1\u53f7\u200b\u53cd\u6620\u200b Cache \u200b\u662f\u200b\u547d\u4e2d\u200b\u4e86\u200b\uff0c\u200b\u9700\u8981\u200b\u8bbf\u5b58\u200b\u8fd8\u662f\u200b\u9700\u8981\u200b\u5199\u56de\u200b

            \u200b\u540c\u65f6\u200b CMU \u200b\u4e5f\u200b\u4f1a\u200b\u6839\u636e\u200b\u81ea\u5df1\u200b\u7684\u200b\u72b6\u6001\u200b\uff0c\u200b\u5bf9\u200b\u4e0a\u8ff0\u200b\u4e09\u4e2a\u200b\u7ec4\u4ef6\u200b\u8fdb\u884c\u200b\u63a7\u5236\u200b\uff1a

            • CPU \u200b\u662f\u5426\u200b\u5e94\u8be5\u200b stall(1)
            • Cache \u200b\u8981\u200b\u6267\u884c\u200b\u54ea\u4e2a\u200b\u64cd\u4f5c\u200b(2)
            • Memory \u200b\u8981\u200b\u6267\u884c\u200b\u54ea\u4e2a\u200b\u64cd\u4f5c\u200b(3)
            1. \u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u4e0b\u4e2a\u200b state \u200b\u4e0d\u662f\u200b IDLE \u200b\u5c31\u200b\u8be5\u200b stall \u200b\u4e86\u200b
              • load
              • edit
              • store
              • invalid
            2. \u200b\u8bfb\u5199\u64cd\u4f5c\u200b
            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/","title":"\u8ba1\u7b97\u673a\u200b\u4f53\u7cfb\u7ed3\u6784\u200b - lab5 Scoreboard","text":"

            Abstract

            \u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b Scoreboard \u200b\u8bbe\u8ba1\u200b\u7684\u200b\u601d\u60f3\u200b\uff0c\u200b\u5305\u62ec\u200b\u4e00\u4e9b\u200b\u8fd0\u884c\u200b\u7684\u200b\u539f\u5219\u200b\u548c\u200b\u5bf9\u200b\u5404\u79cd\u200b hazard \u200b\u7684\u200b\u5904\u7406\u200b\u3002\u200b\u5728\u200b\u4e00\u4e9b\u200b\u5177\u4f53\u200b\u7684\u200b\u7ec6\u8282\u200b\u4e0a\u5747\u200b\u6309\u7167\u200b\u5b9e\u9a8c\u200b\u7ed9\u4e88\u200b\u7684\u200b\u6846\u67b6\u200b\u8fdb\u884c\u200b\u89e3\u91ca\u200b\u3002\u200b\u5305\u62ec\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u7684\u200b\u5b89\u6392\u200b\u548c\u8868\u200b\u7684\u200b\u8bbe\u8ba1\u200b\u7b49\u200b\uff0c\u200b\u8be6\u60c5\u8bf7\u200b\u770b\u200b \u200b\u5b9e\u9a8c\u200b\u6307\u5bfc\u200b\u3002

            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/#_1","title":"\u57fa\u672c\u200b\u539f\u5219","text":"

            \u200b\u5728\u200b Scoreboard \u200b\u7b97\u6cd5\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3b\u8981\u200b\u7ef4\u62a4\u200b\u7684\u200b\u662f\u200b\u4e24\u5f20\u200b\u8868\u200b\uff0cFUS (1) \u200b\u548c\u200b RRS(2)\u3002\u200b\u6211\u4eec\u200b\u7528\u200b issue(3)\u200b\u4e00\u8bcd\u200b\u6765\u200b\u6307\u4ee3\u200b\u6211\u4eec\u200b\u5c06\u200b\u53d6\u5230\u200b\u7684\u200b\u6307\u4ee4\u200b\u653e\u5165\u200b FUS \u200b\u548c\u200b RRS \u200b\u7684\u200b\u8fc7\u7a0b\u200b

            1. Functional Unit Status\uff0c\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u6b63\u5728\u200b\u6bcf\u4e2a\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u4e0a\u200b\u8fd0\u884c\u200b\u6216\u200b\u7b49\u5f85\u200b\u8fd0\u884c\u200b\u7684\u200b\u6307\u4ee4\u200b\u7684\u200b\u72b6\u6001\u200b
            2. Register Result Status\uff0c\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u6bcf\u4e2a\u200b\u5bc4\u5b58\u5668\u200b\u6b63\u5728\u200b\u88ab\u200b FUS \u200b\u4e2d\u200b\u54ea\u4e2a\u200b\u5355\u5143\u200b\u4f5c\u4e3a\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\uff0c\u200b\u6216\u8005\u200b\u4e0d\u200b\u88ab\u200b\u4efb\u4f55\u200b\u5355\u5143\u200b\u4f5c\u4e3a\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b
            3. \u200b\u53d1\u5c04\u200b

            \u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u4e9b\u200b\u7b97\u6cd5\u200b\u6267\u884c\u200b\u7684\u200b\u57fa\u672c\u200b\u539f\u5219\u200b\uff1a

            • \u200b\u6211\u4eec\u200b\u4e0d\u4f1a\u200b\u5c06\u200b\u9519\u8bef\u200b\u53d6\u5740\u200b(1)\u200b\u7684\u200b\u6307\u4ee4\u200b\u53d1\u5c04\u200b
            • \u200b\u4ece\u200b\u6307\u4ee4\u200b\u88ab\u200b\u53d1\u5c04\u200b\u7684\u200b\u90a3\u200b\u4e00\u4e2a\u200b\u5468\u671f\u200b\u5230\u200b\u6267\u884c\u200b\u7ed3\u675f\u200b\u7684\u200b\u90a3\u200b\u4e00\u4e2a\u200b\u5468\u671f\u200b\uff0c\u200b\u6307\u4ee4\u200b\u90fd\u200b\u4f1a\u200b\u5b58\u5728\u200b\u4e8e\u200b\u4e0a\u8ff0\u200b\u4e24\u5f20\u200b\u8868\u4e2d\u200b
            • \u200b\u5728\u200b\u672c\u200b lab \u200b\u7684\u200b\u8bbe\u8ba1\u200b\u5b9e\u73b0\u200b\u4e2d\u200b\uff0c\u200b\u5f53\u524d\u200b IS \u200b\u6307\u4ee4\u200b\u88ab\u200b\u963b\u585e\u200b\u4f1a\u200b\u5bfc\u81f4\u200b\u540e\u7eed\u200b\u6307\u4ee4\u200b\u4e5f\u200b\u88ab\u200b\u963b\u585e\u200b\uff0c\u200b\u76f4\u81f3\u200b\u5f53\u524d\u200b IS \u200b\u6307\u4ee4\u200b\u88ab\u200b\u6210\u529f\u200b\u53d1\u5c04\u200b\u6216\u8005\u200b\u88ab\u200b flush
            • \u200b\u5728\u200b IF \u200b\u9636\u6bb5\u200b\u6211\u4eec\u200b\u53d6\u5f97\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\uff0c\u200b\u8be5\u200b\u6307\u4ee4\u200b\u4e0b\u200b\u4e00\u200b\u5468\u671f\u200b\u4f1a\u200b\u8fdb\u5165\u200b IS \u200b\u9636\u6bb5\u200b\u88ab\u200b\u51b3\u5b9a\u200b\u53d1\u5c04\u200b\u6216\u662f\u200b\u963b\u585e\u200b
            1. \u200b\u9519\u8bef\u200b\u53d6\u5740\u200b\u5c31\u662f\u6307\u200b\u8df3\u8f6c\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u53d6\u5f97\u200b\u7684\u200b\u5176\u5b9e\u200b\u4e0d\u5e94\u200b\u88ab\u200b\u6267\u884c\u200b\u7684\u200b\u6307\u4ee4\u200b
            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/#is","title":"\u53d1\u5c04\u200b\u539f\u5219\u200b(IS)","text":"

            \u200b\u6211\u4eec\u200b\u901a\u8fc7\u200b\u4ee5\u4e0b\u200b\u4e24\u6761\u200b\u89c4\u5219\u200b\u6765\u200b\u5728\u200b\u4e00\u822c\u200b\u60c5\u51b5\u200b\u4e0b\u200b\u51b3\u5b9a\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u662f\u5426\u200b\u53ef\u4ee5\u200b\u88ab\u200b\u53d1\u5c04\u200b\uff1a

            • \u200b\u5982\u679c\u200b\u5f53\u524d\u200b IS \u200b\u6307\u4ee4\u200b\u7684\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u540c\u65f6\u200b\u4e5f\u200b\u662f\u200b\u8868\u4e2d\u200b\u67d0\u6761\u200b\u6307\u4ee4\u200b\u7684\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\uff0c\u200b\u90a3\u4e48\u200b\u963b\u585e\u200b\u8be5\u200b\u6307\u4ee4\u200b\u7684\u200b\u53d1\u5c04\u200b\u76f4\u5230\u200b\u4e0d\u518d\u200b\u5b58\u5728\u200b\u51b2\u7a81\u200b
            • \u200b\u5982\u679c\u200b\u5f53\u524d\u200b IS \u200b\u6307\u4ee4\u200b\u9700\u8981\u200b\u4f7f\u7528\u200b\u7684\u200b\u8fd0\u884c\u200b\u5355\u5143\u200b\u5df2\u7ecf\u200b\u88ab\u8868\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\u5360\u636e\u200b\uff0c\u200b\u90a3\u4e48\u200b\u963b\u585e\u200b\u8be5\u200b\u6307\u4ee4\u200b\u76f4\u5230\u200b\u4e0d\u200b\u5728\u200b\u5b58\u5728\u200b\u8be5\u200b\u51b2\u7a81\u200b

            \u200b\u4ee5\u4e0a\u200b\u4e24\u4e2a\u200b\u8981\u6c42\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u68c0\u6d4b\u200b

            • RRS \u200b\u4e2d\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u662f\u5426\u200b\u4e3a\u7a7a\u200b
            • FUS \u200b\u4e2d\u200b\u8fd0\u884c\u200b\u5355\u5143\u200b\u662f\u5426\u200b busy

            \u200b\u6765\u200b\u51b3\u5b9a\u200b\u3002

            \u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\u4e0a\u8ff0\u200b\u4e24\u6761\u200b\u539f\u5219\u200b\u662f\u200b\u65e0\u8bba\u5982\u4f55\u200b\u8981\u200b\u88ab\u200b\u6ee1\u8db3\u200b\u7684\u200b\uff0c\u200b\u5426\u5219\u200b\u7684\u8bdd\u200b

            • RRS \u200b\u5bf9\u5e94\u72b6\u6001\u200b\u4f1a\u200b\u88ab\u200b\u65b0\u200b\u53d1\u5c04\u200b\u7684\u200b\u6307\u4ee4\u200b\u8986\u76d6\u200b
            • FUS \u200b\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\u4f1a\u200b\u88ab\u200b\u65b0\u200b\u53d1\u5c04\u200b\u7684\u200b\u6307\u4ee4\u200b\u8986\u76d6\u200b

            \u200b\u4ee5\u4e0a\u200b\u5c31\u662f\u200b\u5173\u4e8e\u200b\u53d1\u5c04\u200b\u7684\u200b\u4e00\u822c\u200b\u539f\u5219\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e3a\u4e86\u200b\u6ee1\u8db3\u200b\u53ea\u6709\u200b\u6b63\u786e\u200b\u53d6\u5740\u200b\u7684\u200b\u6307\u4ee4\u200b\u624d\u200b\u4f1a\u200b\u88ab\u200b\u53d1\u5c04\u200b\u7684\u200b\u539f\u5219\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4e00\u4e9b\u200b\u989d\u5916\u200b\u7684\u200b\u68c0\u6d4b\u200b\uff0c\u200b\u8fd9\u4e9b\u200b\u68c0\u6d4b\u200b\u4e3b\u8981\u200b\u8ddf\u200b\u8df3\u8f6c\u200b\u6307\u4ee4\u200b\u6709\u5173\u200b\uff0c\u200b\u4e00\u822c\u6765\u8bf4\u200b\uff1a

            • \u200b\u5982\u679c\u200b\u5f53\u524d\u200b FUS \u200b\u4e2d\u200b\u6ca1\u6709\u200b\u8df3\u8f6c\u200b\u6307\u4ee4\u200b
              • \u200b\u65e0\u200b\u963b\u585e\u200b
            • \u200b\u5982\u679c\u200b\u5f53\u524d\u200b FUS \u200b\u4e2d\u6709\u200b\u8df3\u8f6c\u200b\u6307\u4ee4\u200b
              • \u200b\u5982\u679c\u200b\u8be5\u200b\u8df3\u8f6c\u200b\u6307\u4ee4\u200b\u8fd8\u200b\u672a\u200b done
                • \u200b\u76ee\u524d\u200b IS \u200b\u548c\u200b IF \u200b\u9636\u6bb5\u200b\u6307\u4ee4\u200b\u6b63\u786e\u6027\u200b\u672a\u77e5\u200b\uff0c\u200b\u963b\u585e\u200b\u5176\u200b\u53d1\u5c04\u200b
              • \u200b\u5982\u679c\u200b\u8df3\u8f6c\u200b\u6307\u4ee4\u200b done \u200b\u5e76\u4e14\u200b
                • \u200b\u4e0d\u200b\u9700\u8981\u200b\u8df3\u8f6c\u200b
                  • \u200b\u5f53\u524d\u200b IS \u200b\u548c\u200b IF \u200b\u4e2d\u200b\u987a\u5e8f\u200b\u53d6\u5740\u200b\u7684\u200b\u662f\u200b\u5bf9\u200b\u7684\u200b\u6307\u4ee4\u200b\uff0c\u200b\u4e0d\u518d\u200b\u963b\u585e\u200b
                • \u200b\u9700\u8981\u200b\u8df3\u8f6c\u200b
                  • \u200b\u5f53\u524d\u200b IS \u200b\u548c\u200b IF \u200b\u4e2d\u200b\u987a\u5e8f\u200b\u53d6\u5740\u200b\u7684\u200b\u662f\u200b\u9519\u200b\u7684\u200b\uff0c\u200b\u5237\u65b0\u200b\u9519\u8bef\u200b IF \u200b\u548c\u200b IS\uff0c\u200b\u4e0b\u200b\u4e00\u200b\u5468\u671f\u200b IF \u200b\u4e2d\u4f1a\u53d6\u200b\u4e0a\u200b\u6b63\u786e\u200b\u7684\u200b\u6307\u4ee4\u200b

            \u200b\u5982\u679c\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u901a\u8fc7\u200b\u4e86\u200b\u8df3\u8f6c\u200b\u7684\u200b\u53d1\u5c04\u200b\u68c0\u6d4b\u200b\u548c\u200b\u4e00\u822c\u200b\u7684\u200b\u53d1\u5c04\u200b\u68c0\u6d4b\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u53d1\u5c04\u200b\u4e86\u200b\u3002\u200b\u5e76\u4e14\u200b\u6211\u4eec\u200b\u5e94\u5f53\u200b\u6ce8\u610f\u200b\u5230\u200b\u4e00\u822c\u200b\u539f\u5219\u200b\u7684\u200b\u7b2c\u4e00\u6761\u200b\u5c31\u200b\u963b\u6b62\u200b\u4e86\u200b WAW hazard \u200b\u7684\u200b\u53d1\u751f\u200b

            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/#ex","title":"\u6267\u884c\u200b\u539f\u5219\u200b(EX)","text":"

            \u200b\u6240\u6709\u200b\u521a\u200b\u8fdb\u5165\u200b FUS \u200b\u7684\u200b\u6307\u4ee4\u200b\u90fd\u200b\u8981\u200b\u7b49\u5f85\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u5747\u200b\u5c31\u4f4d\u200b(1)\uff0c\u200b\u800c\u540e\u200b\u53ef\u4ee5\u200b\u53d1\u9001\u200b\u4fe1\u53f7\u200b\u548c\u200b\u6570\u636e\u200b\u7ed9\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u5f00\u59cb\u200b\u6267\u884c\u200b\u3002

            1. \u200b\u8fd9\u91cc\u200b\u7684\u200b\u5c31\u4f4d\u200b\u5c31\u662f\u200b FUS \u200b\u4e2d\u200b\u7684\u200b Ready \u200b\u4f4d\u5747\u200b\u7f6e\u200b 1

            \u200b\u5177\u4f53\u200b\u800c\u8a00\u200b\uff0cFUS \u200b\u7684\u200b Ready \u200b\u4f4d\u200b\u7684\u200b\u8bbe\u7f6e\u200b\u9075\u5faa\u200b\u4ee5\u4e0b\u200b\u539f\u5219\u200b\uff1a

            • \u200b\u6307\u4ee4\u200b\u88ab\u200b\u53d1\u5c04\u200b\u8fdb\u5165\u200b FUS \u200b\u65f6\u200b\uff0c\u200b\u8868\u5185\u200b\u5df2\u6709\u200b\u7684\u200b\u6307\u4ee4\u200b\u90fd\u200b\u5fc5\u7136\u200b\u662f\u200b\u5148\u4e8e\u200b\u8be5\u200b\u6307\u4ee4\u200b\u7684\u200b(1)\uff0c\u200b\u5982\u679c\u200b\u8fd9\u4e9b\u200b\u5148\u524d\u200b\u7684\u200b\u6307\u4ee4\u200b\u9700\u8981\u200b\u5199\u200b\u65b0\u200b\u6307\u4ee4\u200b\u7684\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5c31\u200b\u5e94\u8be5\u200b\u7b49\u200b\uff0c\u200b\u521d\u59cb\u200b Ready \u200b\u7f6e\u200b 0
            • \u200b\u82e5\u200b\u65e0\u200b\u5148\u524d\u200b\u6307\u4ee4\u200b\u8981\u200b\u5199\u200b\u5f53\u524d\u200b\u7684\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\uff0c\u200b\u5176\u200b\u521d\u59cb\u200b Ready \u200b\u7f6e\u200b 1
            • \u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u5b8c\u5199\u200b\u540e\u200b\uff0c\u200b\u8981\u200b\u56de\u6765\u200b\u628a\u200b\u8868\u4e2d\u200b\u6240\u6709\u200b\u5728\u200b\u4ed6\u200b\u7684\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u4e0a\u200b\u7b49\u5f85\u200b\u7684\u200b\u6307\u4ee4\u200b\u7684\u200b\u5bf9\u5e94\u200b Ready \u200b\u4f4d\u7f6e\u200b 1\uff0c\u200b\u4ee5\u200b\u901a\u77e5\u200b\u8fd9\u4e9b\u200b\u6307\u4ee4\u200b\u65b0\u200b\u6570\u636e\u200b\u5df2\u200b\u5c31\u4f4d\u200b(2)
            1. \u200b\u53d1\u5c04\u200b\u4e0a\u200b\u5148\u4e8e\u200b\u4e00\u5b9a\u200b\u610f\u5473\u7740\u200b\u6307\u4ee4\u200b\u987a\u5e8f\u200b\u4e0a\u200b\u5148\u4e8e\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5728\u200b\u672c\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u53d1\u5c04\u200b\u53e3\u200b\uff0c\u200b\u524d\u9762\u200b\u7684\u200b\u6307\u4ee4\u200b\u53d1\u5c04\u200b\u5b8c\u200b\u4e86\u200b\u624d\u80fd\u200b\u8f6e\u200b\u5230\u200b\u540e\u9762\u200b\u7684\u200b
            2. \u200b\u7531\u4e8e\u200b\u53d1\u5c04\u200b\u7684\u200b\u7b2c\u4e00\u6761\u200b\u4e00\u822c\u200b\u539f\u5219\u200b\uff0c\u200b\u5bf9\u200b\u67d0\u200b\u4e00\u200b\u76ee\u6807\u200b\u5bc4\u5b58\u5668\u200b\u5199\u200b\u7684\u200b\u6307\u4ee4\u200b\u540c\u65f6\u200b\u5728\u200b\u8868\u4e2d\u200b\u53ea\u4f1a\u200b\u6709\u200b\u4e00\u6761\u200b

            \u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u628a\u200b\u6570\u636e\u200b\u548c\u200b\u4f7f\u200b\u80fd\u200b\u4fe1\u53f7\u200b\u7ed9\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u540e\u200b\uff0c\u200b\u6267\u884c\u200b\u5f00\u59cb\u200b\uff0c\u200b\u5c31\u200b\u53ea\u200b\u9700\u8981\u200b\u7b49\u200b\u6267\u884c\u200b\u7ed3\u675f\u200b\u800c\u200b\u4e0d\u518d\u200b\u8981\u8bfb\u200b\u5bc4\u5b58\u5668\u200b\u4e86\u200b\uff0c\u200b\u6b64\u65f6\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u628a\u200b Ready \u200b\u5168\u7f6e\u200b 0 \u200b\u5e76\u4e14\u200b\u6e05\u96f6\u200b Q \u200b\u4f4d\u6765\u200b\u8868\u660e\u200b\u8fd9\u200b\u4e00\u70b9\u200b(1)\u3002\u200b\u53e6\u5916\u200b\u7b49\u5f85\u200b\u6570\u636e\u200b\u5c31\u4f4d\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e5f\u200b\u662f\u200b\u5728\u200b\u89e3\u51b3\u200b RAW hazard

            1. \u200b\u6765\u200b\u8868\u660e\u200b\u6211\u200b\u4e0d\u518d\u200b\u9700\u8981\u200b\u6e21\u200b\u8fd9\u4e2a\u200b\u5bc4\u5b58\u5668\u200b\u4e86\u200b\uff0c\u200b\u4f60\u4eec\u200b\u60f3\u8981\u200b\u5199\u200b\u7684\u8bdd\u200b\u53ef\u4ee5\u200b\u5199\u200b\u4e86\u200b\uff0c\u200b\u4e0d\u5fc5\u200b\u963b\u585e\u200b

            Tip

            \u200b\u7531\u4e8e\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u5199\u200b\u5b8c\u540e\u200b\uff0c\u200b\u56de\u5934\u200b\u8fdb\u884c\u200b\u901a\u77e5\u200b\u53ef\u80fd\u200b\u540c\u65f6\u200b\u4ee4\u200b\u591a\u6761\u200b\u6307\u4ee4\u200b\u5c31\u4f4d\u200b\u3002\u200b\u6211\u4eec\u200b\u8981\u200b\u591a\u4e2a\u200b\u5468\u671f\u200b\u4f9d\u6b21\u200b\u628a\u200b\u8fd9\u4e9b\u200b\u6307\u4ee4\u200b\u7684\u200b Ready \u200b\u4f4d\u6e05\u200b 0 \u200b\u5e76\u200b\u5f00\u59cb\u200b\u6267\u884c\u200b\u3002\u200b\u4e3a\u4e86\u200b\u505a\u5230\u200b\u8fd9\u200b\u4e00\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u52a0\u4e0a\u200b else \u200b\u4fdd\u8bc1\u200b\u4e00\u200b\u5468\u671f\u200b\u53ea\u6709\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u5f00\u59cb\u200b\u6267\u884c\u200b\uff0c\u200b\u5e76\u4e14\u200b\u6211\u4eec\u200b\u7684\u200b\u8bbe\u8ba1\u200b\u9700\u8981\u200b\u4fdd\u8bc1\u200b\u672a\u200b\u88ab\u200b\u6267\u884c\u200b\u7684\u200b\u6307\u4ee4\u200b\u4fdd\u6301\u200b\u5f53\u524d\u200b\u72b6\u6001\u200b\u5230\u200b\u4e0b\u200b\u4e00\u200b\u5468\u671f\u200b

            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/#wb","title":"\u5199\u56de\u200b\u539f\u5219\u200b(WB)","text":"

            \u200b\u50cf\u200b\u6267\u884c\u200b\u539f\u5219\u200b\u4e2d\u200b\u63d0\u5230\u200b\u7684\u200b\u4e00\u6837\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u80fd\u200b\u6709\u200b\u591a\u4e2a\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u5728\u200b\u540c\u4e00\u200b\u5468\u671f\u200b\u540c\u65f6\u200b\u7ed3\u675f\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u591a\u4e2a\u200b\u5468\u671f\u200b\u8ba9\u200b\u4ed6\u4eec\u200b\u9010\u4e00\u200b\u5199\u56de\u200b\u3002\u200b\u9664\u6b64\u4ee5\u5916\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u9700\u8981\u200b\u89e3\u51b3\u200b WAR hazard\uff0c\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u53d1\u73b0\u200b\u67d0\u4e2a\u200b FUS \u200b\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\u7684\u200b Ready \u200b\u4f4d\u200b\u4ecd\u7136\u200b\u662f\u200b 1\uff0c\u200b\u90a3\u4e48\u200b\u5c31\u200b\u610f\u5473\u7740\u200b\uff1a

            • \u200b\u8be5\u200b\u5bc4\u5b58\u5668\u200b\u5f53\u524d\u200b\u503c\u200b\u5c31\u662f\u200b\u5b83\u200b\u9700\u8981\u200b\u62ff\u200b\u53bb\u200b\u8fd0\u7b97\u200b\u7684\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u7684\u200b\u503c\u200b
            • \u200b\u8be5\u200b\u6307\u4ee4\u200b\u8fd8\u200b\u672a\u200b\u8bfb\u53d6\u200b\u8be5\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u503c\u200b\u5e76\u200b\u62ff\u7ed9\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u6267\u884c\u200b(1)
            1. \u200b\u8fd9\u200b\u5c31\u200b\u89e3\u91ca\u200b\u4e86\u200b\u4e3a\u4ec0\u4e48\u200b\u6267\u884c\u200b\u539f\u5219\u200b\u4e2d\u200b\u628a\u200b\u6570\u636e\u200b\u8bfb\u200b\u8d70\u200b\u6267\u884c\u200b\u540e\u8981\u200b\u628a\u200b Ready \u200b\u7f6e\u200b 0 \u200b\u4e86\u200b\uff0c\u200b\u8fd9\u662f\u200b\u544a\u8bc9\u200b\u90a3\u4e9b\u200b\u7b49\u200b WAR \u200b\u7684\u200b\u6307\u4ee4\u200b\u8bf4\u200b\uff0c\u200b\u6211\u200b\u5df2\u7ecf\u200b\u8bfb\u5b8c\u200b\u4e86\u200b\uff0c\u200b\u73b0\u5728\u200b\u4f60\u200b\u628a\u200b\u65b0\u200b\u6570\u636e\u200b\u8986\u76d6\u200b\u4e0a\u53bb\u200b\u4e5f\u200b\u6ca1\u5173\u7cfb\u200b

            \u200b\u6240\u4ee5\u200b\u663e\u7136\u200b\u8fd9\u4e9b\u200b\u5bc4\u5b58\u5668\u200b\u6211\u4eec\u200b\u73b0\u5728\u200b\u662f\u200b\u4e0d\u80fd\u200b\u5199\u200b\u7684\u200b\uff0c\u200b\u5426\u5219\u200b FUS \u200b\u4e2d\u200b\u7684\u200b\u5bc4\u5b58\u5668\u200b\u5c31\u200b\u6ca1\u6cd5\u200b\u62ff\u200b\u6b63\u786e\u200b\u7684\u200b\u503c\u200b\u53bb\u200b\u6267\u884c\u200b\u4e86\u200b

            \u200b\u603b\u7684\u6765\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u68c0\u6d4b\u200b\uff1a

            • \u200b\u5bf9\u4e8e\u200b\u6240\u6709\u200b FUS \u200b\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\uff0c\u200b\u5982\u679c\u200b\u5176\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u8ddf\u200b\u6211\u200b\u7684\u200b\u76ee\u6807\u200b\u5bc4\u5b58\u5668\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u90a3\u4e48\u200b\u4e0d\u200b\u6784\u6210\u200b WAR hazard
            • \u200b\u5bf9\u4e8e\u200b\u6240\u6709\u200b FUS \u200b\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\uff0c\u200b\u5982\u679c\u200b\u5176\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u8ddf\u200b\u6211\u200b\u7684\u200b\u76ee\u6807\u200b\u5bc4\u5b58\u5668\u200b\u4e00\u6837\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5982\u679c\u200b\u5176\u200b Ready \u200b\u4f4d\u4e3a\u200b 0\uff0c\u200b\u90a3\u4e48\u200b\u4e0d\u200b\u6784\u6210\u200b WAR hazard
            • \u200b\u4e00\u65e6\u200b\u5b58\u5728\u200b\u67d0\u4e00\u200b FUS \u200b\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\u5176\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u8ddf\u200b\u6211\u200b\u7684\u200b\u76ee\u6807\u200b\u5bc4\u5b58\u5668\u200b\u4e00\u6837\u200b\uff0c\u200b\u4e14\u200b\u5176\u200b Ready \u200b\u4f4d\u4e3a\u200b 1\uff0c\u200b\u90a3\u4e48\u200b\u6784\u6210\u200b WAR hazard\uff0c\u200b\u963b\u585e\u200b\u5199\u56de\u200b
            \u200b\u8bc1\u660e\u200b WAR \u200b\u5b58\u5728\u200b \\(\\iff\\) FUS \u200b\u4e2d\u200b\u5b58\u5728\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u8ddf\u200b\u5199\u200b\u56de\u200b\u6307\u4ee4\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u4e00\u6837\u200b\u4e14\u200b Ready \u200b\u4f4d\u4e3a\u200b 1 \u200b\u7684\u200b\u6307\u4ee4\u200b

            (\\(\\Rightarrow\\)) WAR \u200b\u5b58\u5728\u200b\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b C \u200b\u6307\u4ee4\u200b\u8981\u200b\u5199\u200b\u56de\u200b\u7684\u8bdd\u200b\u4f1a\u200b\u628a\u200b B \u200b\u6307\u4ee4\u200b\u8fd8\u200b\u672a\u200b\u8bfb\u53d6\u200b\u7684\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u7684\u200b\u503c\u200b\u7ed9\u200b\u8986\u76d6\u200b\u6389\u200b\uff0c\u200b\u90a3\u4e48\u200b C \u200b\u7684\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u4e00\u5b9a\u200b\u548c\u200b B \u200b\u7684\u200b\u67d0\u200b\u4e00\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u76f8\u7b49\u200b\uff0c\u200b\u524d\u534a\u90e8\u200b\u5206\u8bc1\u200b\u6bd5\u200b\u3002

            \u200b\u56e0\u4e3a\u200b\u53d1\u5c04\u200b\u7684\u200b\u7b2c\u4e00\u6761\u200b\u4e00\u822c\u200b\u539f\u5219\u200b\uff0cC \u200b\u4e00\u5b9a\u200b\u662f\u200b FUS \u200b\u4e2d\u200b\u552f\u4e00\u200b\u4e00\u6761\u200b\u4ee5\u6b64\u200b\u5bc4\u5b58\u5668\u200b\u4e3a\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u7684\u200b\u3002\u200b\u90a3\u4e48\u200b B \u200b\u7684\u200b Ready \u200b\u4f4d\u200b\u4e00\u5b9a\u200b\u4e3a\u200b 1 \u200b\u800c\u200b\u4e0d\u662f\u200b 0\uff0c\u200b\u56e0\u4e3a\u200b\u60f3\u8981\u200b B \u200b\u7684\u200b Ready \u200b\u4f4d\u4e3a\u200b 0\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\uff1a

            • B \u200b\u4e4b\u524d\u200b\u5b58\u5728\u200b A \u200b\u6307\u4ee4\u200b\u8981\u200b\u5199\u200b\u540c\u4e00\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b
            • A \u200b\u8fd8\u200b\u6ca1\u200b\u5199\u200b

            \u200b\u4f46\u662f\u200b\u6b64\u65f6\u200b C \u200b\u5df2\u7ecf\u200b\u53d1\u5c04\u200b\u4e86\u200b\uff0c\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b A \u200b\u4e00\u5b9a\u200b\u5199\u200b\u5b8c\u200b\u4e86\u200b\uff0c\u200b\u5426\u5219\u200b AC \u200b\u7684\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u76f8\u540c\u200b C \u200b\u662f\u200b\u53d1\u200b\u4e0d\u200b\u51fa\u6765\u200b\u7684\u200b\u3002\u200b\u6240\u4ee5\u200b B \u200b\u7684\u200b Ready \u200b\u4f4d\u200b\u4e00\u5b9a\u200b\u4f4d\u4e3a\u200b 1

            (\\(\\Leftarrow\\)) Trivial\uff0c\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b\u5199\u56de\u200b\u539f\u5219\u200b\u4e2d\u200b\u7684\u200b\u8868\u8ff0\u200b

            "},{"location":"blog/%E6%88%91%E7%9A%84-cli-%E5%B7%A5%E5%85%B7/","title":"\u6211\u200b\u7684\u200b CLI \u200b\u5de5\u5177","text":"

            Abstract

            \u200b\u8fd9\u91cc\u200b\u5217\u51fa\u200b\u4e86\u200b\u5f88\u591a\u200b\u597d\u7528\u200b\u7684\u200b CLI(commandline interface)\u200b\u5de5\u5177\u200b

            \u200b\u5982\u679c\u200b\u4ed4\u7ec6\u200b\u770b\u770b\u200b\u7684\u200b\u5316\u4f1a\u200b\u53d1\u73b0\u200b\u5927\u591a\u6570\u200b\u90fd\u200b\u662f\u200b\u62ff\u200b Rust \u200b\u91cd\u5199\u200b\u7684\u200b(Rewrite it in Rust!)

            • dust
            • duf
            • procs
            • fd
            • btm
            • exa
            • autojump
            • ripgrep
            • bat
            • httpie
            • hyperfine
            • fzf
            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/","title":"\u8ba1\u7b97\u673a\u7f51\u7edc\u200b - lab2 \u200b\u4f7f\u7528\u200b\u4e8c\u200b\u5c42\u4ea4\u6362\u673a\u200b\u7ec4\u7f51","text":"

            Abstract

            \u200b\u56e0\u4e3a\u200b\u8fd9\u4e2a\u200b\u5b9e\u9a8c\u200b\u505a\u200b\u7684\u200b\u65f6\u5019\u200b\u51e0\u4e4e\u200b\u6ca1\u4ec0\u4e48\u200b\u6307\u5bfc\u200b\uff0c\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u795e\u79d8\u200b\u7684\u200b\u6587\u6863\u200b\uff0c\u200b\u4e00\u200b\u6574\u4e2a\u200b\u5b9e\u9a8c\u5ba4\u200b\u7684\u200b\u7ebf\u200b\u548c\u200b\u4e00\u200b\u7bb1\u5b50\u200b\u7684\u200b\u795e\u79d8\u200b\u673a\u5668\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5c31\u200b\u6fc0\u60c5\u200b\u5199\u4e2a\u200b\u7ecf\u9a8c\u200b

            \u200b\u4e3b\u8981\u200b\u662f\u200b\u8bb2\u200b\u4e86\u200b\u8bb2\u200b\u600e\u4e48\u200b\u8ba9\u200b\u5b9e\u9a8c\u200b\u8dd1\u200b\u8d77\u6765\u200b\uff0c\u200b\u8fd8\u6709\u200b\u5404\u79cd\u200b\u610f\u5916\u200b\u95ee\u9898\u200b\u7684\u200b\u5904\u7406\u200b\u4e4b\u7c7b\u200b\u7684\u200b

            \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

            \u200b\u5b9e\u9a8c\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u5e74\u79cb\u51ac\u200b

            \u200b\u5b9e\u9a8c\u62a5\u544a\u200b\u6a21\u677f\u200b\uff1a

            \u200b\u5f80\u671f\u200b\u53c2\u8003\u200b\uff1a \uff08\u200b\u6765\u81ea\u200b\u6d59\u6c5f\u5927\u5b66\u200b\u8bfe\u7a0b\u200b\u5171\u4eab\u200b\u8ba1\u5212\u200b\uff09

            \u200b\u6307\u5bfc\u8001\u5e08\u200b\uff1a\u200b\u9ec4\u6b63\u8c26\u200b

            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_1","title":"\u8ba4\u8bc6\u200b\u5b9e\u9a8c\u5ba4\u200b\u7684\u200b\u4eea\u5668","text":"

            \u200b\u679c\u200b\u54a9\u200b\u90a3\u200b\u585e\u200b\u8fd9\u91cc\u200b\u6ca1\u6709\u200b\u7167\u7247\u200b\uff0c\u200b\u4f46\u662f\u200b\u6bd4\u8f83\u200b\u5173\u952e\u200b\u7684\u200b\u51e0\u4e2a\u200b\u8bbe\u5907\u200b\u7684\u200b\u5916\u89c2\u200b\u90fd\u200b\u4f1a\u200b\u5927\u6982\u200b\u63cf\u8ff0\u200b\u4e00\u4e0b\u200b\uff1a

            \u200b\u4ea4\u6362\u673a\u200b\u8def\u7531\u5668\u200b\u7f51\u7ebf\u200bPC\u200b\u663e\u793a\u5c4f\u200b\u548c\u200b\u952e\u76d8\u200b

            \u200b\u6b63\u9762\u200b\u6709\u200b\u5f88\u591a\u200b\u7aef\u53e3\u200b\uff0c\u200b\u6ca1\u6709\u200b\u5f00\u200b\u5173\u952e\u200b\uff0c\u200b\u6b63\u9762\u200b\u6709\u200b mode \u200b\u952e\u200b

            \u200b\u6682\u65f6\u200b\u7528\u200b\u4e0d\u5230\u200b\uff0c\u200b\u6bd4\u8d77\u200b\u4ea4\u6362\u673a\u200b\u7aef\u53e3\u200b\u6ca1\u200b\u90a3\u4e48\u200b\u591a\u200b\uff0c\u200b\u6709\u5f00\u200b\u5173\u952e\u200b

            \u200b\u5b9e\u9a8c\u5ba4\u200b\u91cc\u200b\u770b\u8d77\u6765\u200b\u662f\u200b\u7f51\u7ebf\u200b\u7684\u200b\u57fa\u672c\u200b\u5c31\u662f\u200b\u7f51\u7ebf\u200b\uff08\u200b\u5e9f\u8bdd\u200b\uff09\uff0c

            \u200b\u6bd4\u8f83\u200b\u7279\u6b8a\u200b\u7684\u200b\u4e8b\u200b\u5982\u679c\u200b\u4e24\u7aef\u200b\u900f\u660e\u200b\u5934\u200b\u5185\u90e8\u200b\u7684\u200b\u7ebf\u200b\u7684\u200b\u989c\u8272\u200b\u987a\u5e8f\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\u4ea4\u53c9\u200b\u7f51\u7ebf\u200b\u3002

            \u200b\u5982\u679c\u200b\u4e00\u6839\u200b\u6241\u6241\u7684\u200b\u6de1\u84dd\u8272\u200b\u7684\u200b\uff0c\u200b\u53e6\u4e00\u7aef\u200b\u662f\u200b\u4e32\u53e3\u200b\u7684\u200b\u7ebf\u200b\uff0c\u200b\u90a3\u4e2a\u200b\u662f\u200b\u62ff\u6765\u200b\u8fde\u200b console \u200b\u548c\u200b PC \u200b\u7684\u200b\u3002

            \u200b\u673a\u7bb1\u200b\u91cc\u200b\u4e0a\u65b9\u200b\u8fde\u200b\u7740\u200b\u6446\u200b\u4e86\u200b\u56db\u53f0\u200b PC\uff0c\u200b\u4e00\u822c\u200b\u4ece\u200b\u4e0a\u200b\u5f80\u200b\u4e0b\u200b\u6807\u53f7\u200b 1-4

            \u200b\u5f00\u673a\u200b\u65b9\u5f0f\u200b\u5f88\u8ff7\u200b\uff0c\u200b\u6211\u200b\u662f\u200b\u6309\u200b F1 \u200b\u7136\u540e\u200b\u9000\u51fa\u200b\uff0c\u200b\u611f\u89c9\u200b\u80af\u5b9a\u200b\u4e0d\u662f\u200b\u6b63\u5e38\u200b\u9014\u5f84\u200b

            \u200b\u6700\u200b\u4e0b\u9762\u200b\u6446\u7740\u200b\u7684\u200b\u663e\u793a\u5c4f\u200b\u548c\u200b\u952e\u76d8\u200b\uff0c\u200b\u901a\u8fc7\u200b\u6309\u952e\u200b\u9009\u62e9\u200b\u53ef\u4ee5\u200b\u8fde\u63a5\u200b\u5230\u200b\u4e0d\u540c\u200b\u7684\u200b PC\uff0c\u200b\u987a\u7740\u200b\u663e\u793a\u5c4f\u200b\u7684\u200b\u7ebf\u200b\u5f80\u540e\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u56db\u53f0\u200b PC \u200b\u5728\u200b\u540e\u9762\u200b\u662f\u200b\u63d2\u200b\u5230\u200b\u4e86\u200b 1-4 \u200b\u53e3\u4e0a\u200b\u7684\u200b\uff08\u200b\u6211\u200b\u5f53\u65f6\u200b\u662f\u200b\u6ca1\u6709\u200b PC4\uff0c\u200b\u6709\u200b PC5 \u200b\u63d2\u200b\u5728\u200b 5 \u200b\u4e0a\u9762\u200b\uff0c\u200b\u6211\u200b\u7ed9\u200b\u6539\u200b\u63d2\u200b\u5230\u200b 4 \u200b\u4e86\u200b\uff09

            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_2","title":"\u8d77\u6b65","text":"

            \u200b\u5176\u5b9e\u200b\u4e5f\u200b\u5c31\u200b\u8d77\u6b65\u200b\u662f\u200b\u6700\u96be\u200b\u7684\u200b\uff0c\u200b\u540e\u9762\u200b\u57fa\u672c\u200b\u5c31\u200b\u6309\u7167\u200b\u6587\u6863\u200b\u6765\u200b\u505a\u200b\u5c31\u662f\u200b\u3002

            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_3","title":"\u8fde\u4e0d\u4e0a\u200b\u4ea4\u6362\u673a","text":"

            \u200b\u8fde\u63a5\u200b\u4ea4\u6362\u673a\u200b\u8981\u200b\u505a\u200b\u7684\u200b\u6709\u200b\uff1a

            • \u200b\u7528\u200b\u524d\u6587\u200b\u63d0\u5230\u200b\u7684\u200b\u4e32\u53e3\u200b-\u200b\u7f51\u53e3\u200b\u7ebf\u6765\u200b\u8fde\u63a5\u200b\u67d0\u200b PC \u200b\u548c\u200b\u4ea4\u6362\u673a\u200b\u7684\u200b console\u3001
            • \u200b\u5207\u6362\u200b\u5230\u200b\u90a3\u53f0\u200b PC\uff0c \u200b\u6253\u5f00\u200b\u684c\u9762\u4e0a\u200b\u7684\u200b putty\uff0c \u200b\u9009\u62e9\u200b serial\uff0c\u200b\u9ed8\u8ba4\u200b\u901f\u7387\u200b 9600 \u200b\u5373\u53ef\u200b\uff0c\u200b\u542f\u52a8\u200b
            • \u200b\u72c2\u200b\u6309\u200b\u56de\u8f66\u200b\uff0c\u200b\u51fa\u73b0\u200b\u547d\u4ee4\u884c\u200b\u63d0\u793a\u7b26\u200b\u5c31\u200b\u6210\u529f\u200b\u4e86\u200b\uff0c\u200b\u6ca1\u200b\u53cd\u5e94\u200b\u7528\u200b\u624b\u6276\u200b\u4e00\u4e0b\u200b console \u200b\u770b\u200b\u4e00\u4e0b\u200b\u63d2\u7d27\u200b\u4e86\u200b\u6ca1\u6709\u200b

            \u200b\u5c31\u200b\u6211\u200b\u800c\u8a00\u200b\uff0c\u200b\u673a\u7bb1\u200b\u91cc\u200b\u7684\u200b\u4e0b\u9762\u200b\u7684\u200b\u4e00\u53f0\u200b\u4ea4\u6362\u673a\u200b\u662f\u200b\u6b7b\u6d3b\u200b\u8fde\u4e0d\u4e0a\u200b\uff0c\u200b\u6700\u540e\u200b\u8bd5\u200b\u4e86\u200b\u534a\u5929\u200b\u662f\u200b\u4e0a\u9762\u200b\u7684\u200b\u53e6\u4e00\u53f0\u200b\u4ea4\u6362\u673a\u200b\u7528\u200b\u624b\u6276\u200b\u7a33\u200b\u4e86\u200b\u53ef\u4ee5\u200b\u4e0a\u200b\u3002

            \u200b\u5982\u679c\u200b\u4f60\u8bd5\u200b\u4e86\u200b\u5f88\u591a\u200b\u90fd\u200b\u4e0d\u884c\u200b\u7684\u8bdd\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b\u5b9e\u9a8c\u5ba4\u200b\u91cc\u200b\u6e9c\u8fbe\u200b\u4e00\u5708\u200b\u591a\u200b\u6478\u200b\u51e0\u4e2a\u200b\u4ea4\u6362\u673a\u200b\u56de\u6765\u200b.\u200b\u6211\u4eec\u200b\u7b2c\u4e8c\u6b21\u200b\u6478\u200b\u4e86\u200b\u4e24\u53f0\u200b\u767d\u8272\u200b\u7684\u200b\u5c0f\u5c0f\u7684\u200b\u4ea4\u6362\u673a\u200b\u6765\u200b\u7528\u200b\u3002

            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_4","title":"\u4ea4\u6362\u673a\u200b\u5bc6\u7801","text":"

            \u200b\u6211\u4eec\u200b\u6478\u6765\u200b\u7684\u200b\u4e24\u53f0\u200b\u4ea4\u6362\u673a\u200b\u90fd\u200b\u8981\u6c42\u200b enable \u200b\u5bc6\u7801\u200b\uff0c\u200b\u91cd\u7f6e\u200b\u5bc6\u7801\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6478\u200b\u7684\u200b\u6bd4\u8f83\u200b\u719f\u200b\u4e86\u200b\uff0c\u200b\u6ce8\u610f\u200b\u9002\u7528\u200b\u7684\u200b\u662f\u200b\u5c0f\u578b\u200b\u767d\u8272\u200b\u4ea4\u6362\u673a\u200b\uff0c\u200b\u6b63\u9762\u200b\u578b\u53f7\u200b\u5199\u200b\u7740\u200b C3560 \u200b\u6b65\u9aa4\u200b\uff1a

            • \u200b\u8fde\u63a5\u200b console \u200b\u548c\u200b PC\uff0c\u200b\u6253\u5f00\u200b putty\uff0c\u200b\u65ad\u7535\u200b
            • \u200b\u957f\u200b\u6309\u200b mode \u200b\u952e\u200b\uff0c\u200b\u4e0a\u7535\u200b
            • \u200b\u7ee7\u7eed\u200b\u6309\u200b mode\uff0c\u200b\u7b49\u5f85\u200b\uff0cputty \u200b\u4e0a\u200b\u5e94\u8be5\u200b\u9646\u7eed\u200b\u6709\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u8f93\u51fa\u200b\u4e86\u200b\uff0c\u200b\u773c\u5c16\u200b\u7684\u200b\u8fd8\u200b\u80fd\u200b\u770b\u5230\u200b password recovery mechanism is enabled\uff0c\u200b\u770b\u5230\u200b\u8fd9\u53e5\u200b\u8bdd\u200b\u7ee7\u7eed\u200b\u6309\u200b
            • \u200b\u7ee7\u7eed\u200b\u6309\u200b mode \u200b\u76f4\u5230\u200b\u5c4f\u5e55\u200b\u4e0a\u200b\u51fa\u73b0\u200b switch: \u200b\u63d0\u793a\u7b26\u200b\u548c\u200b\u4e24\u4e2a\u200b\u9009\u9879\u200b(flash_init\uff0c boot)
            • \u200b\u5148\u200bflash_init\uff0c\u200b\u7136\u540e\u200bren flash:config.text flash:config.old\uff0c\u200b\u7136\u540e\u200bboot
            • \u200b\u7b49\u5f85\u200b\u91cd\u542f\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u5dee\u4e0d\u591a\u200b\u5b8c\u200b\u4e86\u200b\u4f1a\u200b\u8ba9\u200b\u6309\u200b\u56de\u8f66\u200b\u786e\u8ba4\u200b\uff0c\u200b\u6309\u200b\u5b8c\u6709\u200b\u4e2a\u200b\u662f\u5426\u200b\u8fdb\u5165\u200b\u521d\u59cb\u5316\u200b\u914d\u7f6e\u200b\uff0c\u200b\u8f93\u5165\u200b no
            • \u200b\u91cd\u7f6e\u200b\u6210\u529f\u200b
            "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#pc-ip","title":"\u8bbe\u5b9a\u200b PC \u200b\u7684\u200b IP","text":"

            \u200b\u5b9e\u9a8c\u200b\u5f00\u59cb\u200b\u524d\u200b\u6211\u4eec\u200b\u8981\u200b\u67e5\u770b\u200b\u5404\u200b PC \u200b\u7684\u200b IP\uff0cwin + R\uff0c\u200b\u8f93\u5165\u200b cmd \u200b\u6253\u5f00\u200b\u547d\u4ee4\u884c\u200b\uff0c\u200b\u8f93\u5165\u200bipconfig\u200b\u5c31\u200b\u80fd\u200b\u770b\u5230\u200b ip \u200b\u4e86\u200b\uff0c\u200b\u6ca1\u6709\u200b\u7684\u8bdd\u200b\u68c0\u67e5\u200b\u8fde\u63a5\u200b\uff0c\u200b\u770b\u770b\u200b\u4fe1\u53f7\u706f\u200b\u53d8\u7eff\u200b\u4e86\u200b\u6ca1\u6709\u200b\u3002

            \u200b\u4e00\u822c\u800c\u8a00\u200b PC \u200b\u7684\u200b IP \u200b\u90fd\u200b\u633a\u200b\u6b63\u5e38\u200b\u7684\u200b\uff0c\u200b\u4e92\u76f8\u200b\u4e4b\u95f4\u200b\u90fd\u200b\u901a\u200b\uff08\u200b\u6bd4\u8f83\u200b\u6b63\u5e38\u200b\u7684\u200b IP 10.0.0.13 10.0.1.13 10.0.2.13 10.0.3.13 \u200b\u4ed6\u4eec\u200b\u663e\u7136\u200b\u90fd\u200b\u901a\u200b\uff09

            \u200b\u7136\u800c\u200b\u6211\u200b\u5f53\u65f6\u200b\u4e24\u4e2a\u200b PC \u200b\u662f\u200b 10 \u200b\u5f00\u5934\u200b\u4e24\u4e2a\u200b\u662f\u200b 192 \u200b\u5f00\u5934\u200b\uff0c\u200b\u4e0d\u901a\u200b\uff0c\u200b\u9700\u8981\u200b\u624b\u52a8\u200b\u8bbe\u5b9a\u200b

            \u200b\u8fd9\u65f6\u5019\u200b\u5343\u4e07\u522b\u200b\u53bb\u200b putty \u200b\u91cc\u9762\u200b\u6572\u200b\u547d\u4ee4\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u6211\u200b\u8fd9\u4e48\u200b\u641e\u200b\u56db\u53f0\u200b PC \u200b\u5168\u65ad\u200b\u8054\u200b\u4e86\u200b\uff0c\u200b\u8981\u200b\u5728\u200b windows \u200b\u7684\u200b\u63a7\u5236\u9762\u677f\u200b\u91cc\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u5177\u4f53\u6b65\u9aa4\u200b\u7f51\u4e0a\u200b\u90fd\u200b\u6709\u200b\uff0c\u200b\u8981\u200b\u628a\u200b\u56db\u53f0\u200b\u653e\u5230\u200b\u540c\u4e00\u200b\u7f51\u6bb5\u200b\u3002

            \u200b\u606d\u559c\u200b

            \u200b\u63a5\u4e0b\u6765\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8ddf\u7740\u200b\u6587\u6863\u200b\u4e00\u6b65\u6b65\u200b\u8d70\u200b\u5b8c\u200b\u5b9e\u9a8c\u200b\u4e86\u200b\u3002

            "},{"location":"blog/enable-chatgpt_academic/","title":"Enable ChatGPT_academic","text":"

            Abstract

            \u200b\u901b\u200b\u5927\u8857\u200b\u7684\u200b\u65f6\u5019\u200b\u5076\u7136\u200b\u770b\u5230\u200b\u7684\u200b\u5de5\u5177\u200b\uff0c\u200b\u8dd1\u200b\u8d77\u6765\u200b\u7528\u7528\u200b\u770b\u200b\uff01

            \u200b\u51c6\u5907\u200b\u5de5\u4f5c\u200b

            \u200b\u8bf7\u200b\u5728\u200b\u9605\u8bfb\u200b\u6b64\u6587\u200b\u524d\u200b\u51c6\u5907\u200b\u597d\u200b ChatGPT \u200b\u7684\u200b API Key \u200b\u548c\u200b\u597d\u200b\u7528\u200b\u7684\u200b\u4ee3\u7406\u200b.\uff08\u200b\u524d\u8005\u200b\u4e3b\u8981\u200b\u662f\u200b\u6ce8\u518c\u200b\u597d\u200b\u8d26\u53f7\u200b\u5c31\u884c\u200b\uff0c\u200b\u5408\u7406\u200b\u5229\u7528\u200b https://sms-activate.org/\uff09

            \u200b\u4e3b\u8981\u200b\u7684\u200b\u6d41\u7a0b\u200b\u5c31\u200b\u5728\u200b\u9879\u76ee\u200b\u7684\u200b\u6e90\u5730\u5740\u200b\u8bb2\u200b\u7684\u200b\u5f88\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u7167\u200b\u505a\u200b\u5373\u53ef\u200b\u3002

            \u200b\u7b14\u8005\u200b\u6ca1\u6709\u200b\u7528\u200b docker \u200b\u90e8\u7f72\u200b\uff0c\u200b\u90e8\u7f72\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u53ea\u200b\u9047\u5230\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u6362\u200b\u8fc7\u6e90\u200b\u540e\u200b pip \u200b\u627e\u200b\u4e0d\u5230\u200b\u9ad8\u200b\u7248\u672c\u200b\u7684\u200b gradio

            \u200b\u89e3\u51b3\u65b9\u6848\u200b\u662f\u200b\uff1a

            pip install --upgrade gradio -i https://pypi.org/simple\n

            -i \u200b\u662f\u200b --index-url \u200b\u7684\u200b\u7f29\u5199\u200b\uff0c\u200b\u610f\u601d\u200b\u662f\u4ece\u200b\u6307\u5b9a\u200b\u6e90\u200b\u4e0b\u8f7d\u200b

            "},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/","title":"\u7528\u200b Mac \u200b\u7684\u200b VSCode \u200b\u8c03\u8bd5\u200b C/C++\u200b\u7a0b\u5e8f","text":"

            Abstract

            \u200b\u5728\u200b Mac \u200b\u7684\u200b\u73af\u5883\u200b\u4e0a\u7528\u200b VSCode \u200b\u6765\u200b debug \u200b\u634f\u200b\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u4e5f\u200b\u78b0\u5230\u200b\u4e9b\u200b\u95ee\u9898\u200b\u7684\u8bdd\u200b\u4e0d\u59a8\u200b\u6765\u200b\u770b\u770b\u200b\ud83d\udc40

            \u200b\u73af\u5883\u200b

            MacOS: Ventura 13.2.1 VSCode: 1.76.2 x64 C/C++: 1.14.5 CodeLLDB: 1.8.0 Code Runner: 0.12.0

            "},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#cc","title":"C/C++","text":"

            \u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b VSCode \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u542f\u7528\u200b\u540e\u200b\uff0c\u200b\u4f1a\u200b\u5728\u200b VSCode \u200b\u4e2d\u200b\u6dfb\u52a0\u200b C/C++\u200b\u7684\u200b\u8bed\u6cd5\u200b\u9ad8\u4eae\u200b\u3001\u200b\u4ee3\u7801\u200b\u63d0\u793a\u200b\u3001\u200b\u4ee3\u7801\u200b\u8df3\u8f6c\u200b\u7b49\u200b\u529f\u80fd\u200b\u3002 \u200b\u540c\u65f6\u200b\u53f3\u4e0a\u89d2\u200b\u51fa\u73b0\u200b\u5982\u4e0b\u200b\u56fe\u6807\u200b\uff1a

            \u200b\u9009\u62e9\u200b run \u200b\u7684\u8bdd\u200b\uff0c\u200b\u63d2\u4ef6\u200b\u5c31\u200b\u4f1a\u200b\u63a5\u7740\u200b\u8ba9\u200b\u6211\u4eec\u200b\u9009\u62e9\u200b\u4f7f\u7528\u200b\u7684\u200b\u7f16\u8bd1\u5668\u200b

            \u200b\u6bd4\u5982\u200b\u6211\u200b\u9009\u62e9\u200b clang++\uff0c\u200b\u90a3\u4e48\u200b\u63d2\u4ef6\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u5f53\u524d\u5de5\u4f5c\u200b\u533a\u4e0b\u200b\u81ea\u52a8\u200b\u751f\u6210\u200b\u76f8\u5e94\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u5e76\u200b\u5f00\u59cb\u8fd0\u884c\u200b\u3002

            \u200b\u5bf9\u4e8e\u200b\u8c03\u8bd5\u200b\uff0c\u200b\u5f88\u200b\u9057\u61be\u200b\u7684\u200b\u662f\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u662f\u200b\u8fd0\u884c\u200b\u5728\u200b Debug Console \u200b\u4e2d\u200b\u7684\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\uff0c\u200b\u8fd0\u884c\u200b\u5728\u200b debug console \u200b\u4e2d\u200b\u7684\u200b\u95ee\u9898\u200b\u662f\u200b\u6ca1\u6709\u200b stdin \u200b\u8ba9\u200b\u6211\u4eec\u200b\u8f93\u5165\u200b\u3002

            \u200b\u7ecf\u8fc7\u200b\u67e5\u8be2\u200b\uff0c\u200b\u53d1\u73b0\u200b Mac \u200b\u4e0a\u200b C/C++\u200b\u63d2\u4ef6\u200b\u4e0d\u200b\u652f\u6301\u200b debugger \u200b\u8fd0\u884c\u200b\u5728\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\uff0csetting \u200b\u91cc\u200b\u4e5f\u200b\u6ca1\u6709\u200b\u4fee\u6539\u200b\u9009\u9879\u200b\uff0c\u200b\u53ea\u80fd\u200b\u8fd0\u884c\u200b\u5728\u200b debug console \u200b\u6216\u8005\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b.\u200b\u8be6\u89c1\u200b\u5b98\u7f51\u200b

            \u200b\u5982\u679c\u200b\u5e0c\u671b\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b\u8fd0\u884c\u200b\u8fdb\u884c\u200b\u8f93\u5165\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u5728\u200b launch.json \u200b\u4e2d\u200b\u914d\u7f6e\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u5f53\u524d\u200b\u7248\u672c\u200b\u9ed8\u8ba4\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u53ea\u4f1a\u200b\u751f\u6210\u200b task.json\uff0c\u200b\u6ca1\u6709\u200b launch.json\uff1a

            \u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u5148\u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b task.json.\u200b\u8fd9\u91cc\u200b\u7684\u200b\u4e00\u4e9b\u200b\u53c2\u6570\u200b\u662f\u200b\u53ef\u4ee5\u200b\u4fee\u6539\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u200b args\uff0c\u200b\u5c31\u662f\u200b\u7f16\u8bd1\u200b\u65f6\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5176\u4e2d\u200b-g\u200b\u53c2\u6570\u200b\uff0c\u200b\u4f1a\u200b\u8ba9\u200b\u7f16\u8bd1\u5668\u200b\u751f\u6210\u200b\u8c03\u8bd5\u4fe1\u606f\u200b\uff0c\u200b\u8fd9\u6837\u200b\u624d\u80fd\u200b\u8fdb\u884c\u200b debug.\u200b\u8fd8\u6709\u200b cwd \u200b\u53c2\u6570\u200b\uff0c\u200b\u8fd0\u884c\u200b\u7a0b\u5e8f\u200b\u7684\u200b\u6587\u4ef6\u5939\u200b\u4f4d\u7f6e\u200b\uff0c\u200b\u5982\u679c\u200b\u4e0d\u5199\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u9ed8\u8ba4\u200b\u5728\u200b\u5f53\u524d\u5de5\u4f5c\u200b\u533a\u200b\u7684\u200b\u6839\u76ee\u5f55\u200b\u4e0b\u200b\u8fd0\u884c\u200b\uff0c\u200b\u800c\u200b\u975e\u200b\u7a0b\u5e8f\u200b\u6240\u5728\u200b\u76ee\u5f55\u200b\uff0c\u200b\u8fd9\u200b\u5728\u200b\u4e00\u4e9b\u200b\u6253\u5f00\u200b\u6587\u4ef6\u200b\u7684\u200b\u64cd\u4f5c\u200b\u4e0a\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u5bfc\u81f4\u200b\u95ee\u9898\u200b.\u200b\u6700\u540e\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b label\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u522b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e2d\u200b\u901a\u8fc7\u200b\u8fd9\u4e2a\u200b label \u200b\u6765\u200b\u8c03\u7528\u200b\u8fd9\u4e2a\u200b task.

            \u200b\u6211\u4eec\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u914d\u7f6e\u6587\u4ef6\u200b launch.json\uff1a\u200b\u9009\u62e9\u200b\u4fa7\u680f\u200b\u7684\u200b debug \u200b\u56fe\u6807\u200b\uff0c\u200b\u70b9\u51fb\u200bcreate a launch.json file:

            \u200b\u521a\u200b\u5f00\u59cb\u200b\u662f\u200b\u7a7a\u200b\u7684\u200b\uff0c\u200b\u4ec0\u4e48\u200b\u90fd\u200b\u6ca1\u6709\u200b.\u200b\u70b9\u51fb\u200b\u53f3\u4e0b\u89d2\u200b\u7684\u200bAdd Configuration\uff0c\u200b\u5c31\u200b\u6709\u200b\u4e00\u4e9b\u200b\u9009\u9879\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6709\u200b\u63d2\u4ef6\u200b\u4e3a\u200b\u6211\u4eec\u200b\u51c6\u5907\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u6a21\u7248\u200b\uff0c\u200b\u6211\u4eec\u200b\u9009\u62e9\u200bC/C++ lldb\uff08\u200b\u542f\u52a8\u200b\uff09\uff0c\u200b\u610f\u601d\u200b\u662f\u200b C/C++\u200b\u63d2\u4ef6\u200b\u63d0\u4f9b\u200b\u7684\u200b\uff0c\u200b\u542f\u52a8\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u5e76\u200b\u5bf9\u200b\u5176\u200b debug \u200b\u7684\u200b\u914d\u7f6e\u200b\uff0c\u200b\u9009\u62e9\u200b\u9644\u52a0\u200b\u7684\u8bdd\u200b\u662f\u200b\u9644\u52a0\u200b\u5230\u200b\u4e00\u4e2a\u200b\u5df2\u7ecf\u200b\u5728\u200b\u6267\u884c\u200b\u7684\u200b\u8fdb\u7a0b\u200b\u4e0a\u200b\u7684\u200b\uff1a

            \u200b\u9ed8\u8ba4\u200b\u7684\u200b\u6a21\u677f\u200b\u957f\u200b\u8fd9\u4e2a\u200b\u6837\u5b50\u200b\uff1a

            \u200b\u8fd9\u200b\u5e76\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\uff0c\u200b\u9996\u5148\u200b\u4fee\u6539\u200b program \u200b\u4e3a\u200b

            \"program\": \"${workspaceFolder}/${fileBasenameNoExtension}\"\uff0c\n
            \uff0c\u200b\u8fd9\u6837\u200b\u4ed6\u200b\u8fd0\u884c\u200b\u7684\u200b\u5c31\u200b\u4f1a\u200b\u662f\u200b\u5f53\u524d\u76ee\u5f55\u200b\u4e0b\u200b\u7684\u200b\u5f53\u524d\u200b\u6587\u4ef6\u200b\uff08\u200b\u4e00\u822c\u200b\u5c31\u662f\u200b\u5149\u6807\u200b\u60ac\u505c\u200b\u7684\u200b\u90a3\u4e2a\u200b\u6587\u4ef6\u200b\uff09\u200b\u540c\u540d\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\uff08\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u6ca1\u200b\u540e\u7f00\u200b\uff09\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7f16\u8bd1\u200b\u51fa\u6765\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u53eb\u505a\u200ba.out\uff0c\u200b\u8fd9\u4e2a\u200b\u914d\u7f6e\u200b\u5c31\u200b\u4e0d\u200b\u9002\u7528\u200b\uff08\u200b\u4f1a\u200b\u8c03\u7528\u200ba\uff09\uff0c\u200b\u8bf7\u200b\u5728\u200b\u914d\u7f6e\u200b\u4e2d\u200b\u4fee\u6539\u200b\u4e3a\u200b/a.out\u200b\u6216\u8005\u200b\u8ba9\u200b\u7f16\u8bd1\u200b\u51fa\u6765\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u540d\u4e3a\u200ba.

            \u200b\u65b0\u52a0\u200b\u4e00\u5217\u200bpreLaunchTask\uff0c\u200b\u503c\u200b\u5c31\u662f\u200b\u4e4b\u524d\u200b task.json \u200b\u4e0a\u200b\u7684\u200b label\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u8fd0\u884c\u200b\u524d\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u524d\u5148\u200b\u8fd0\u884c\u200b task \u200b\u7f16\u8bd1\u200b\u5f53\u524d\u200b\u6587\u4ef6\u200b\uff08\u200b\u8fd9\u6837\u200b\u6bd4\u8f83\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u81ea\u52a8\u200b\u628a\u200b\u6700\u65b0\u200b\u7684\u200b\u6e90\u4ee3\u7801\u200b\u7f16\u8bd1\u200b\uff0c\u200b\u8981\u200b\u591a\u200b\u6587\u4ef6\u200b\u7f16\u8bd1\u200b\u7684\u8bdd\u200b\u4e5f\u200b\u5728\u200b task \u200b\u8bbe\u7f6e\u200b.\u200b\u5982\u679c\u200b\u4e0d\u200b\u4f7f\u7528\u200b task \u200b\u624b\u52a8\u200b\u7f16\u8bd1\u200b\u7684\u8bdd\u200b\uff0c\u200b\u8bb0\u5f97\u200b\u52a0\u4e0a\u200b-g\uff09.\u200b\u6700\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u628a\u200b\"externalConsole\": false\uff0c\u200b\u6539\u4e3a\u200b\"externalConsole\": true\uff0c\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\u8fd0\u884c\u200b\u4e86\u200b\u3002

            \u200b\u7b14\u8005\u200b\u5230\u200b\u8fd9\u200b\u4e00\u6b65\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b debug \u200b\u5566\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5728\u200b watch \u200b\u7a97\u53e3\u200b\u6267\u884c\u547d\u4ee4\u200b\u6765\u200b\u76d1\u89c6\u200b\u53d8\u91cf\u200b\uff0c\u200b\u5982\u200b\u5168\u5c40\u53d8\u91cf\u200b\u4e00\u7c7b\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b C/C++\u200b\u5bf9\u200b\u4e00\u4e9b\u200b\u7c7b\u578b\u200b\u7684\u200b\u53d8\u91cf\u200b\u7684\u200b\u76d1\u89c6\u200b\u652f\u6301\u200b\u4e0d\u662f\u200b\u5f88\u200b\u597d\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b string\uff1a \u200b\u76d1\u89c6\u200b\u4fe1\u606f\u200b\u5c31\u662f\u200b\u4e00\u5768\u200b\u3002

            "},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#code-runner","title":"Code Runner","text":"

            \u200b\u53e6\u200b\u4e00\u4e2a\u200b VSCode \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u542f\u7528\u200b\u540e\u200b\u53f3\u4e0a\u89d2\u200b\u53c8\u200b\u4f1a\u200b\u591a\u200b\u4e00\u4e2a\u200b\u6807\u200b\uff1a

            \u200b\u8fd9\u4e2a\u200b\u662f\u200b\u53ef\u4ee5\u200b\u8dd1\u200b\u5728\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\u91cc\u200b\u7684\u200b\uff1a

            "},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#codelldb","title":"CodeLLDB \ud83d\udc4d","text":"

            \u200b\u8fd9\u4e2a\u200b\u63d2\u4ef6\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b debug\uff0c\u200b\u6211\u200b\u611f\u89c9\u200b\u6bd4\u200b C/C++\u200b\u597d\u7528\u200b\u591a\u200b\u4e86\u200b\u3002

            \u200b\u542f\u7528\u200b\u63d2\u4ef6\u200b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b launch.json \u200b\u4e2d\u53ef\u9009\u200b\u914d\u7f6e\u200b\u5c31\u200b\u591a\u200b\u4e86\u200b\u51e0\u4e2a\u200b\uff0c\u200b\u6211\u4eec\u200b\u4f7f\u7528\u200bCodeLLDB (launch)\u200b\u6a21\u677f\u200b\uff1a

            \u200b\u540c\u6837\u200b\u7a0d\u5fae\u200b\u4fee\u6539\u200b\uff1a

            \u200b\u56de\u5230\u200b\u4fa7\u8fb9\u200b\u680f\u200b debug \u200b\u6a21\u5757\u200b\uff0c\u200b\u9009\u62e9\u200b\u65b0\u200b\u7684\u200b\u542f\u52a8\u200b\u914d\u7f6e\u200b\uff08\u200b\u8fd9\u91cc\u200b\u9009\u200b\u7684\u200b\u662f\u200b launch.json \u200b\u91cc\u200b\u5199\u200b\u597d\u200b\u7684\u200b\u51e0\u4e2a\u200b\u914d\u7f6e\u200b\uff09\uff1a

            \u200b\u8fd9\u4f1a\u200b\u5728\u200b\u6211\u4eec\u200b\u542f\u7528\u200b debug \u200b\u7684\u200b\u65f6\u5019\u200b\u53bb\u200b launch.json \u200b\u91cc\u9762\u200b\u627e\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u7684\u200b\u914d\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u8fdb\u884c\u200b debug.

            \u200b\u6709\u65f6\u5019\u200b debug \u200b\u5f39\u200b\u51fa\u200b\u5947\u602a\u200b\u7684\u200b\u62a5\u9519\u200b\uff0c\u200b\u662f\u56e0\u4e3a\u200b\u5f53\u524d\u200b\u6253\u5f00\u200b\u7684\u200b\u662f\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u8bd5\u56fe\u200b\u5bf9\u200b launch.json \u200b\u8fdb\u884c\u200b debug\uff0c\u200b\u6240\u4ee5\u200b\u62a5\u9519\u200b\u4e86\u200b.\u200b\u6211\u4eec\u200b\u6253\u5f00\u200b\u8981\u200b debug \u200b\u7684\u200b\u6e90\u4ee3\u7801\u200b\u6587\u4ef6\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b.

            CodeLLDB \u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\uff1a

            \u200b\u53ef\u4ee5\u200b\u5728\u200b\u76d1\u89c6\u200b\u91cc\u200b\u76f4\u63a5\u200b\u7528\u200b\u53d8\u91cf\u540d\u200b\u76d1\u89c6\u200b\u53d8\u91cf\u200b\uff1a

            \u200b\u53ef\u4ee5\u200b\u5728\u200b debug console \u200b\u4e2d\u200b\u8f93\u5165\u200b\u547d\u4ee4\u200b\uff1a

            \u200b\u53d8\u91cf\u200b\u91cc\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u652f\u6301\u200b\u4e5f\u597d\u200b\u4e00\u4e9b\u200b\uff1a

            \u200b\u8fd9\u91cc\u200b\u8fd8\u6709\u200b\u5b98\u65b9\u200b\u6587\u6863\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u770b\u200b\u3002

            \u200b\u624b\u52a8\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b task.json

            \u200b\u5728\u200b\u83dc\u5355\u200b terminal > Configure Tasks \u200b\u9009\u62e9\u200b C/C++\u200b\u6765\u200b\u751f\u6210\u200b\u6a21\u677f\u200b

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab1-%E6%97%B6%E9%92%9F%E4%B8%AD%E6%96%AD/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab1 \u200b\u65f6\u949f\u200b\u4e2d\u65ad","text":"

            Abstract

            \u200b\u4e00\u4e2a\u200b kernel \u200b\u7684\u200b\u8fd0\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b

            \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

            \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

            \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab1-%E6%97%B6%E9%92%9F%E4%B8%AD%E6%96%AD/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
            - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\n- start_kernel: \u200b\u8fdb\u884c\u200b\u4e00\u4e9b\u200b\u8f93\u51fa\u200b\uff0c\u200b\u8fdb\u5165\u200b test()\u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- _traps: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u597d\u200b\u4e0a\u4e0b\u6587\u200b\u540e\u200b\u8c03\u7528\u200b\u4e2d\u65ad\u200b\u5904\u7406\u7a0b\u5e8f\u200b trap_handler\n- trap_handler: \u200b\u786e\u8ba4\u200b\u662f\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u540e\u200b\u8c03\u7528\u200b clock_set_next\n- clock_set_next: \u200b\u5229\u7528\u200b sbi_ecall \u200b\u8bbe\u7f6e\u200b\u4e0b\u200b\u4e00\u6b21\u200b\u4e2d\u65ad\u200b\u65f6\u95f4\u200b\n- _traps: \u200b\u8fd4\u56de\u200b_traps \u200b\u540e\u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b sret \u200b\u8fd4\u56de\u200b\u6b7b\u5faa\u73af\u200b\n- test: \u200b\u6b7b\u5faa\u73af\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u91cd\u590d\u200b\u4e0a\u8ff0\u200b\u6d41\u7a0b\u200b\n
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab2 \u200b\u7ebf\u7a0b\u200b\u8c03\u5ea6","text":"

            Abstract

            \u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u7684\u200b\u8fd0\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b

            \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

            \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

            \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
            - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n    - mm_init: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n    - task_init: \u200b\u5b8c\u6210\u200b\u5bf9\u200b\u6240\u6709\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB \u200b\u7684\u200b\u521d\u59cb\u5316\u200b(1)\uff0c\u200b\u5305\u62ec\u200b\u5f53\u524d\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b idle \u200b\u7ebf\u7a0b\u200b\n        - test_init: \u200b\u8be5\u200b\u51fd\u6570\u8c03\u7528\u200b\u4f1a\u586b\u200b\u597d\u200b task_test_counter \u200b\u548c\u200b 1task_test_priority \u200b\u4e24\u4e2a\u200b\u6570\u7ec4\u200b\u7528\u4e8e\u200b\u7ed9\u200b\u6211\u4eec\u200b\u540e\u7eed\u200b\u521d\u59cb\u5316\u200b\u4f7f\u7528\u200b\n        - \u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\u4f5c\u4e3a\u200b idle \u200b\u7684\u200b PCB\uff0c\u200b\u586b\u5199\u200b\u5e76\u4e14\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b current\n        - \u200b\u8fed\u4ee3\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7ebf\u7a0b\u200b\u5206\u914d\u200b\u5e76\u200b\u586b\u5199\u200b PCB\uff0c\u200b\u6ce8\u610f\u200b\u5176\u4e2d\u200b ra \u200b\u548c\u200b sp \u200b\u7684\u200b\u8bbe\u7f6e\u200b\n            - ra: ra \u200b\u56fa\u5b9a\u200b\u4e3a\u200b__dummy\uff0c\u200b\u8fd9\u662f\u200b\u6211\u4eec\u200b\u4e3a\u200b\u7ebf\u7a0b\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u540e\u200b\u8bbe\u7f6e\u200b\u7684\u200b\u8fd4\u56de\u200b\u5730\u5740\u200b\n            - sp: \u200b\u76f4\u63a5\u200b\u7528\u200b\u5206\u914d\u200b\u7ed9\u200b PCB \u200b\u7684\u200b\u8fd9\u200b\u4e00\u9875\u200b\u505a\u6808\u200b\uff0c\u200b\u6808\u9876\u200b\u81ea\u7136\u200b\u5c31\u662f\u200b PCB \u200b\u5730\u5740\u200b+4K\n- start_kernel: \u200b\u8fdb\u5165\u200b test()\u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- _traps: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u597d\u200b\u4e0a\u4e0b\u6587\u200b\u540e\u200b\u8c03\u7528\u200b\u4e2d\u65ad\u200b\u5904\u7406\u7a0b\u5e8f\u200b trap_handler\n- trap_handler: \u200b\u786e\u8ba4\u200b\u662f\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u540e\u200b\uff0c\u200b\u8bbe\u7f6e\u200b\u4e0b\u6b21\u200b\u4e2d\u65ad\u200b\u65f6\u95f4\u200b\uff0c\u200b\u8fdb\u5165\u200b do_timer()\u200b\u68c0\u67e5\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u5269\u4f59\u65f6\u95f4\u200b\n- do_timer: \u200b\u5982\u679c\u200b\u662f\u200b idle \u200b\u6216\u8005\u200b\u65f6\u95f4\u200b\u7528\u5c3d\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule()\u200b\u8c03\u5ea6\u200b\u8d70\u200b\uff0c\u200b\u5426\u5219\u200b\u65f6\u95f4\u200b\u51cf\u4e00\u200b\n- schedule: \u200b\u6839\u636e\u200b policy \u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u8c03\u7528\u200b switch_to()\u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b(2)\uff0c\u200b\u5982\u679c\u200b\u6240\u6709\u200b\u7ebf\u7a0b\u200b\u65f6\u95f4\u200b\u90fd\u200b\u7528\u200b\u5b8c\u200b\u4e86\u200b\u5c31\u200b\u5148\u200b\u521d\u59cb\u5316\u200b\u65f6\u95f4\u200b\u518d\u200b\u9009\u62e9\u200b\n- switch_to: \u200b\u524d\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- __switch_to: \u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB(3)\n- __dummy: \u200b\u4ece\u200b__switch_to \u200b\u8fd4\u56de\u200b\uff0c\u200b\u8fd4\u56de\u200b\u5730\u5740\u200b\u5c31\u662f\u200b PCB \u200b\u4e2d\u200b\u6062\u590d\u200b\u7684\u200b__dummy.\u200b\u6211\u4eec\u200b\u5728\u200b dummy \u200b\u4e2d\u200b\u7ed3\u675f\u200b\u6b64\u6b21\u200b\u4e2d\u65ad\u200b\u7528\u200b sret \u200b\u56de\u5230\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u6267\u884c\u200b\u7684\u200b\u51fd\u6570\u200b dummy\n- dummy: \u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u4e3b\u200b\u51fd\u6570\u200b\uff0c\u200b\u5207\u6362\u200b\u56de\u6765\u200b\u540e\u200b\u8fdb\u884c\u200b\u4e00\u6b21\u200b\u8f93\u51fa\u200b\u7136\u540e\u200b\u5faa\u73af\u200b\u7b49\u5f85\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- _traps: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4e00\u822c\u200b\u662f\u200b\u5269\u4f59\u65f6\u95f4\u200b\u51cf\u4e00\u200b\u7136\u540e\u200b\u7ee7\u7eed\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u95f4\u200b\u7528\u200b\u5b8c\u200b\uff0c\u200b\u518d\u6b21\u200b\u8fdb\u5165\u200b schedule \u200b\u5faa\u73af\u200b\n
            1. \u200b\u4e5f\u200b\u5c31\u662f\u200b\u5e2e\u200b\u6bcf\u4e2a\u200b\u7ebf\u7a0b\u200b\u586b\u597d\u200b task_struct
            2. \u200b\u5bf9\u4e8e\u200b\u8fd9\u4e2a\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u8d70\u200b\u7684\u200b\u7ebf\u7a0b\u200b\u6765\u8bf4\u200b\uff0c\u200b\u4ed6\u200b\u53ea\u662f\u200b\u8c03\u7528\u200b\u4e86\u200b switch_to \u200b\u51fd\u6570\u200b\uff0c\u200b\u7136\u540e\u200b\u7b49\u200b\u7740\u200b\u518d\u200b\u8fd4\u56de\u200b\u7f62\u4e86\u200b.\u200b\u867d\u7136\u200b\u5b9e\u9645\u4e0a\u200b CPU \u200b\u628a\u200b\u6b64\u200b\u7ebf\u7a0b\u200b\u8e22\u200b\u5f00\u53bb\u200b\u5e72\u200b\u522b\u7684\u200b\u6d3b\u200b\u4e86\u200b\uff0c\u200b\u4f46\u672c\u200b\u7ebf\u7a0b\u200b\u5e76\u4e0d\u77e5\u9053\u200b.\u200b\u6240\u4ee5\u200b CPU \u200b\u518d\u6b21\u200b\u8c03\u5ea6\u200b\u56de\u6b64\u200b\u7ebf\u7a0b\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u5c31\u200b\u8be5\u200b\u4ece\u200b switch_to \u200b\u51fd\u6570\u200b\u8fd4\u56de\u200b\uff0c\u200b\u4ece\u800c\u200b\u8ba9\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u65e0\u611f\u200b\u8854\u63a5\u200b\u3002
            3. \u200b\u52a0\u8f7d\u200b\u540e\u200b\u6211\u4eec\u200b\u7684\u200b sp \u200b\u4f1a\u8bbe\u200b\u4e3a\u200b\u4e4b\u524d\u200b\u5206\u914d\u200b\u9875\u200b\u7684\u200b\u9876\u7aef\u200b\uff0cra \u200b\u4f1a\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b__dummy\uff0c\u200b\u8fd9\u200b\u90fd\u200b\u662f\u200b\u521d\u59cb\u5316\u200b\u65f6\u200b\u8bbe\u8ba1\u200b\u7684\u200b
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/#_1","title":"\u6ce8\u610f\u4e8b\u9879","text":"

            \u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u5bf9\u4e8e\u200b\u975e\u200b idle \u200b\u7ebf\u7a0b\u200b\u7b2c\u4e00\u6b21\u200b\u4ece\u200b __switch_to \u200b\u8fd4\u56de\u200b\u7684\u200b\u90fd\u200b\u662f\u200b __dummy\uff0c \u200b\u8fd9\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b PCB \u200b\u88ab\u200b\u6062\u590d\u200b\u51fa\u6765\u200b\u7684\u200b ra \u200b\u51b3\u5b9a\u200b\u7684\u200b

            \u200b\u4f46\u662f\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u7b2c\u4e8c\u6b21\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u5b83\u200b\u6062\u590d\u200b\u7684\u200b PCB \u200b\u5c31\u662f\u200b\u5b83\u200b\u4e4b\u524d\u200b\u81ea\u5df1\u200b\u5b58\u200b\u4e0b\u6765\u200b\u7684\u200b\u800c\u200b\u4e0d\u518d\u200b\u662f\u200b\u521d\u59cb\u5316\u200b\u7684\u200b.\u200b\u8fd9\u4e2a\u200b\u5b58\u200b\u4e0b\u6765\u200b\u7684\u200b ra \u200b\u5c31\u662f\u200b switch_to\uff0c__switch_to \u200b\u51fd\u6570\u200b\u8fd0\u884c\u200b\u65f6\u200b\u7684\u200b ra \u200b\u5f53\u7136\u200b\u662f\u200b__switch_to \u200b\u7684\u200b\u8c03\u7528\u8005\u200b

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab3 \u200b\u865a\u62df\u5185\u5b58","text":"

            Abstract

            \u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b

            \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

            \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

            \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
            - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b(1)\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n    - setup_vm: \u200b\u586b\u5199\u200b\u9875\u8868\u200b(2)\n    - relocate: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u81f3\u6b64\u200b\u865a\u62df\u5185\u5b58\u200b\u5df2\u7ecf\u200b\u542f\u52a8\u200b\n    - mm_init: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n    - setup_vm_final: \u200b\u5229\u7528\u200b mm \u200b\u4e2d\u200b\u7684\u200b\u51fd\u6570\u200b\u5206\u914d\u200b\u65b0\u200b\u7684\u200b\u9875\u200b\u6765\u200b\u8bbe\u7f6e\u200b\u591a\u7ea7\u200b\u5206\u6bb5\u200b\u9875\u8868\u200b\uff0c\u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b(3)\n    - task_init: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n- start_kernel: \u200b\u8fdb\u5165\u200b test \u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u7b49\u5f85\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u8d70\u200b\n
            1. \u200b\u6ce8\u610f\u200b\u8981\u200b\u4f7f\u7528\u200b\u6808\u200b\u7684\u200b\u7269\u7406\u5730\u5740\u200b\uff0c\u200b\u6b64\u65f6\u200b\u7b26\u53f7\u8868\u200b\u91cc\u200b\u7684\u200b\u90fd\u200b\u662f\u200b\u865a\u62df\u5730\u5740\u200b
            2. \u200b\u6ce8\u610f\u200b\u8fd9\u91cc\u200b\u8df3\u200b\u586b\u8868\u200b\u8981\u200b\u586b\u200b\u76f4\u63a5\u200b\u6620\u5c04\u200b\u548c\u200b\u7b49\u503c\u200b\u6620\u5c04\u200b\u4e24\u6bb5\u200b
            3. \u200b\u786e\u5b9a\u200b\u597d\u200b\u4e0d\u540c\u200b\u6bb5\u200b\u7684\u200b\u7269\u7406\u200b\u865a\u62df\u5730\u5740\u200b\u548c\u200b\u6743\u9650\u200b\u7b49\u200b\uff0c\u200b\u8c03\u7528\u200b creat_mapping \u200b\u51fd\u6570\u200b\u5206\u914d\u200b\u5e76\u200b\u586b\u5199\u200b\u9875\u8868\u200b\uff0c\u200b\u6ce8\u610f\u200b\u9875\u8868\u200b\u9879\u5747\u200b\u4f7f\u7528\u200b\u7269\u7406\u5730\u5740\u200b
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#satp","title":"\u5199\u200b satp","text":"

            \u200b\u6211\u4eec\u200b\u542f\u7528\u200b\u865a\u62df\u5185\u5b58\u200b\u7684\u200b\u90a3\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5199\u200b satp \u200b\u7684\u200b\u90a3\u200b\u4e00\u6b65\u200b\u53ea\u662f\u200b\u4e00\u53e5\u200bcsrw\uff0c\u200b\u6307\u4ee4\u200b\u5199\u200b\u5b8c\u200b\u5bc4\u5b58\u5668\u200b\u4e5f\u200b\u4e0d\u4f1a\u200b\u5e72\u4ec0\u4e48\u200b\u989d\u5916\u200b\u7684\u200b\u4e8b\u60c5\u200b\uff0cCP \u200b\u8fd8\u662f\u200b\u8981\u200b\u7ee7\u7eed\u200b\u53bb\u200b PC+4 \u200b\u6267\u884c\u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u3002

            \u200b\u6240\u4ee5\u200b PC+4 \u200b\u8fd9\u4e2a\u200b\u5730\u5740\u200b\u5728\u200b\u865a\u62df\u5185\u5b58\u200b\u4e0b\u8be5\u200b\u600e\u4e48\u200b\u53d6\u6307\u200b(1)\uff0c\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u5c31\u662f\u200b\u601d\u8003\u9898\u200b\u6240\u200b\u5173\u5fc3\u200b\u7684\u200b\u3002

            1. \u200b\u6709\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6620\u5c04\u200b\u5417\u200b\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u7528\u200b\u4e2d\u65ad\u200b\u5904\u7406\u200b\uff1f
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#_1","title":"\u4e3a\u4ec0\u4e48\u200b\u7b2c\u4e00\u6b21\u200b\u6211\u4eec\u200b\u542f\u7528\u200b\u7684\u200b\u9875\u8868\u200b\u662f\u200b\u4e00\u7ea7\u200b\u7684","text":"

            \u200b\u6587\u6863\u200b\u4e2d\u200b\u5176\u5b9e\u200b\u5df2\u7ecf\u200b\u6709\u200b\u94fe\u63a5\u200b\u6307\u5411\u200b\u4e86\u200b\u89e3\u91ca\u200b\u8fd9\u200b\u4e00\u70b9\u200b\u7684\u200b\u6587\u6863\u200b\uff0c\u200b\u5177\u4f53\u200b\u800c\u8a00\u200b\uff0c\u200b\u5728\u200b\u8fd9\u6bb5\u200b\u63cf\u8ff0\u200b\u8f6c\u5316\u200b\u865a\u62df\u5185\u5b58\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u7684\u200b\u624b\u518c\u200b\u4e2d\u200b

            \u200b\u4ed4\u7ec6\u9605\u8bfb\u200b\uff0c\u200b\u5176\u4e2d\u200b\u7b2c\u56db\u70b9\u200b\u63d0\u5230\u200b\u82e5\u200b\u5f53\u524d\u9875\u200b\u8868\u9879\u200b\u7684\u200b\u6743\u9650\u200b\u8868\u660e\u200b\u4e86\u200b\u53ef\u8bfb\u200b\u6216\u8005\u200b\u53ef\u200b\u6267\u884c\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5c31\u200b\u4f1a\u200b\u5f53\u4f5c\u200b\u662f\u200b\u6700\u540e\u200b\u4e00\u7ea7\u200b\u9875\u8868\u200b\uff0c\u200b\u5426\u5219\u200b\u624d\u200b\u4f1a\u200b\u628a\u200b\u5b83\u200b\u5f53\u4f5c\u200b\u67d0\u200b\u4e00\u7ea7\u200b\u7684\u200b\u9875\u8868\u200b

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#debug","title":"debug \u200b\u6ce8\u610f","text":"
            • \u200b\u5f53\u200b\u6211\u4eec\u200b\u6309\u7167\u200b\u6587\u6863\u200b\u4fee\u6539\u200b\u4e86\u200b\u94fe\u63a5\u200b\u6587\u4ef6\u200b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b gdb \u200b\u4e2d\u200b\u76f4\u63a5\u200b\u7528\u200b\u7b26\u53f7\u200b\u6765\u200b\u6253\u65ad\u200b\u70b9\u200b\u4e4b\u7c7b\u200b\u7684\u200b\u64cd\u4f5c\u200b\u5c31\u200b\u90fd\u200b\u662f\u200b\u6309\u7167\u200b\u4fee\u6539\u200b\u4e86\u200b\u94fe\u63a5\u200b\u6587\u4ef6\u200b\u4e4b\u540e\u200b\u7684\u200b\u865a\u62df\u5730\u5740\u200b\u4e86\u200b\uff0c\u200b\u6240\u4ee5\u200b\u542f\u7528\u200b\u865a\u62df\u5185\u5b58\u200b\u4e4b\u524d\u200b\u4e3a\u4e86\u200b\u5728\u200b\u6b63\u786e\u200b\u7684\u200b\u7269\u7406\u5730\u5740\u200b\u6253\u65ad\u200b\u70b9\u200b\uff0c\u200b\u9700\u8981\u200b\u624b\u52a8\u200b\u8f93\u5165\u200b\u5730\u5740\u200b\u3002
            • \u200b\u5982\u679c\u200b\u4f60\u200b\u8ddf\u200b\u6211\u200b\u4e00\u6837\u200b\u6539\u5b8c\u200b\u9875\u8868\u200b\u6ca1\u4e8b\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e00\u200b\u5237\u65b0\u200b tlb \u200b\u5c31\u200b\u5bc4\u200b\u4e86\u200b.\u200b\u4e8e\u200b\u6211\u200b\u7684\u200b\u7ecf\u9a8c\u200b\u800c\u8a00\u200b\uff0c\u200b\u662f\u200b\u9875\u8868\u200b\u5199\u200b\u7684\u200b\u6709\u200b\u95ee\u9898\u200b\u3002
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab4 \u200b\u7528\u6237\u200b\u6001","text":"

            Abstract

            \u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b

            \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

            \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

            \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
            - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus(1) \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n    - setup_vm: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n    - relocate: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n    - mm_init: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n    - setup_vm_final: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n    - task_init: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n        - \u200b\u5bf9\u4e8e\u200b idle \u200b\u4ee5\u5916\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u9700\u8981\u200b\u5728\u200b task_struct \u200b\u4e2d\u200b\u989d\u5916\u200b\u7ed9\u5b9a\u200b\u4ee5\u4e0b\u200b\u4fe1\u606f\u200b\uff1a\n            - sepc: \u200b\u6b64\u200b\u7ebf\u7a0b\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u540e\u200b\u4ece\u200b S Mode \u200b\u56de\u200b U Mode \u200b\u7684\u200b\u5730\u5740\u200b\uff0c\u200b\u663e\u7136\u200b\u5c31\u662f\u200b\u7528\u6237\u7a0b\u5e8f\u200b\u8d77\u59cb\u200b\u5730\u5740\u200b USER_START\n            - sscratch: \u200b\u7528\u6237\u200b\u6808\u9876\u200b\uff0c\u200b\u7ea6\u5b9a\u200b\u4e3a\u200b USER_END\n            - sstatus: \u200b\u8fdb\u884c\u200b\u8bbe\u7f6e\u200b\u4f7f\u5f97\u200b sret \u200b\u540e\u200b\u6211\u4eec\u200b\u56de\u5230\u200b U Mode \u200b\u800c\u200b\u975e\u200b S Mode\n            - satp: \u200b\u6bcf\u4e2a\u200b\u8fdb\u7a0b\u200b\u90fd\u200b\u6709\u200b\u81ea\u5df1\u200b\u7684\u200b\u7269\u7406\u5730\u5740\u200b\u7a7a\u95f4\u200b\u548c\u200b\u865a\u62df\u5730\u5740\u200b\u7a7a\u95f4\u200b\uff0c\u200b\u5f7c\u6b64\u200b\u9694\u79bb\u200b\n                - \u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u5404\u200b\u8fdb\u7a0b\u200b\u95f4\u200b\u9694\u79bb\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u200b\u9700\u8981\u200b\u6bcf\u4e2a\u200b\u8fdb\u7a0b\u200b\u5404\u81ea\u200b\u6709\u200b\u4e00\u4efd\u200b\u4e8c\u8fdb\u5236\u200b\u7684\u200b\u6587\u4ef6\u200b\u7684\u200b\u62f7\u8d1d\u200b(2)\n                - \u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\u62f7\u8d1d\u200b\u4e8c\u8fdb\u5236\u200b\u6587\u4ef6\u200b\u540e\u200b\uff0c\u200b\u65b0\u5efa\u200b\u9875\u8868\u200b\uff0c\u200b\u628a\u200b\u8fd9\u4e9b\u200b\u9875\u200b\u7684\u200b\u7269\u7406\u200b\u5730\u5740\u6620\u5c04\u200b\u5230\u200b USER_START \u200b\u5f00\u5934\u200b\u7684\u200b\u865a\u62df\u5730\u5740\u200b\n                - \u200b\u5206\u914d\u200b\u65b0\u7684\u4e00\u9875\u200b\u4f5c\u6808\u200b\uff0c\u200b\u628a\u200b\u8fd9\u200b\u4e00\u9875\u200b\u7684\u200b\u7269\u7406\u200b\u5730\u5740\u6620\u5c04\u200b\u5230\u200b USER_END-4K\n                - \u200b\u6839\u636e\u200b\u65b0\u200b\u9875\u8868\u200b\u5730\u5740\u200b\u8ba1\u7b97\u200b satp\n- start_kernel: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b(3)\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- schedule: \u200b\u6839\u636e\u200b policy \u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- switch_to: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB \u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- __switch_to: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB(6)\n- __dummy: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b(4)\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b USER_START(5)\n- USER_START: \u200b\u5f00\u59cb\u200b\u6267\u884c\u200b\u7528\u6237\u200b\u6001\u200b\u4ee3\u7801\u200b\uff0c\u200b\u5305\u62ec\u200b\u5404\u79cd\u200b\u7cfb\u7edf\u200b\u8c03\u7528\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u95f4\u200b\u7247\u7528\u200b\u5b8c\u200b\n- _traps: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u5207\u200b\u7cfb\u7edf\u200b\u6808\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u8c03\u5ea6\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\n- __switch_to: \u200b\u540c\u200b\u4e0a\u200b\uff0c\u200b\u6b64\u540e\u200b\u8f6e\u6d41\u200b\u8c03\u5ea6\u200b\n
            1. \u200b\u6ce8\u610f\u200b\u5bf9\u200b sstatus \u200b\u7684\u200b\u8bbe\u7f6e\u200b\u7981\u6b62\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b\u6211\u4eec\u200b\u7684\u200b idle \u200b\u8fdb\u7a0b\u200b\u4e0d\u4f1a\u200b\u88ab\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u8c03\u5ea6\u200b\u8d70\u200b
            2. \u200b\u4e8c\u8fdb\u5236\u200b\u6587\u4ef6\u200b\u91cc\u200b\u6709\u200b\u4ee3\u7801\u200b\u548c\u200b\u6570\u636e\u200b\u7b49\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u90a3\u4e9b\u200b\u5168\u5c40\u53d8\u91cf\u200b\u6211\u4eec\u200b\u5f53\u7136\u200b\u5e0c\u671b\u200b\u5404\u200b\u8fdb\u7a0b\u200b\u9694\u79bb\u200b.\u200b\u65b9\u4fbf\u200b\u8d77\u200b\u89c1\u200b\u6211\u4eec\u200b\u5168\u90fd\u200b\u62f7\u8d1d\u200b
            3. \u200b\u56e0\u4e3a\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u4e4b\u524d\u200b\u5df2\u7ecf\u200b ban \u200b\u6389\u200b\u4e86\u200b
            4. \u200b\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b\u540e\u200b\u4e2d\u65ad\u200b\u624d\u200b\u91cd\u65b0\u200b\u4f7f\u80fd\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u76f4\u63a5\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u4e86\u200b sstatus \u200b\u7684\u200b SPIE
            5. sepc \u200b\u5728\u200b__switch_to \u200b\u4e2d\u200b\u5c31\u200b\u5df2\u7ecf\u200b load \u200b\u597d\u200b\u4e86\u200b
            6. \u200b\u8fd9\u91cc\u200b\u52a0\u8f7d\u200b\u7684\u200b PCB \u200b\u5c31\u662f\u200b\u6211\u4eec\u200b task_init \u200b\u7684\u200b\u65f6\u5019\u200b\u5199\u200b\u597d\u200b\u7684\u200b\uff0c\u200b\u6ce8\u610f\u200b\u8fd9\u91cc\u200b\u52a0\u8f7d\u200b\u7684\u200b ra \u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u65f6\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b__dummy
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#uapp","title":"uapp \u200b\u7684\u200b\u52a0\u8f7d","text":"

            \u200b\u5728\u200b vmlinux.lds \u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u7684\u200b uapp.S \u200b\u6587\u4ef6\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\u5230\u200b _sramdisk\uff0c_eramdisk \u200b\u4e4b\u95f4\u200b

            • \u200b\u5982\u679c\u200b uapp.S \u200b\u4e2d\u200b\u6211\u4eec\u200b\u7528\u200b\u7684\u200b\u662f\u200b\u7eaf\u200b\u4e8c\u8fdb\u5236\u200b\u6587\u4ef6\u200b\uff0c\u200b\u90a3\u4e48\u200b_sramdisk \u200b\u7b2c\u4e00\u884c\u200b\u5c31\u662f\u200b\u7a0b\u5e8f\u200b\u7b2c\u4e00\u884c\u200b
            • \u200b\u5982\u679c\u200b uapp.S \u200b\u4e2d\u200b\u6211\u4eec\u200b\u7528\u200b\u7684\u200b\u662f\u200b elf \u200b\u6587\u4ef6\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u89e3\u7801\u200b elf \u200b\u5934\u6765\u200b\u5b9a\u4f4d\u200b\u5177\u4f53\u200b\u7684\u200b\u4e8c\u8fdb\u5236\u200b\u4f4d\u7f6e\u200b\uff0c \u200b\u540c\u65f6\u200b elf \u200b\u4e2d\u200b\u4e5f\u200b\u5236\u5b9a\u200b\u4e86\u200b\u7a0b\u5e8f\u200b\u5165\u53e3\u200b\u4e00\u7c7b\u200b\u7684\u200b\u4fe1\u606f\u200b
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#phdr-p_flags","title":"phdr->p_flags","text":"

            \u200b\u6ce8\u610f\u200b\u8fd9\u200b\u4e00\u9879\u200b\u867d\u7136\u200b\u662f\u200b\u58f0\u660e\u200b\u6743\u9650\u200b\u7684\u200b\u7684\u200b\u4f46\u200b\u5b9a\u4e49\u200b\u4e0d\u200b\u7b49\u540c\u4e8e\u200b\u9875\u8868\u200b\u9879\u200b\u7684\u200b perm\uff0c\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_1","title":"\u6267\u884c\u200b\u6743\u9650","text":"

            \u200b\u6ce8\u610f\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u9875\u8868\u200b\u548c\u200b sstatus \u200b\u4fdd\u8bc1\u200b\u8fd0\u884c\u200b\u7528\u6237\u200b\u6001\u200b\u4ee3\u7801\u200b\u65f6\u200b\u6743\u9650\u200b\u68c0\u67e5\u200b\u80fd\u591f\u200b\u901a\u8fc7\u200b\uff0c\u200b\u5426\u5219\u200b\u4f1a\u200b\u5bfc\u81f4\u200b scause = 0xc \u200b\u7684\u200b inst page fault \u200b\u6b64\u65f6\u200b\u4e5f\u8bb8\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b gdb \u200b\u4e2d\u8bfb\u200b\u4fe1\u606f\u200b\u4f46\u662f\u200b\u4e00\u200b\u6267\u884c\u200b\u5c31\u200b\u51fa\u9519\u200b

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_2","title":"\u62f7\u8d1d\u200b\u95ee\u9898","text":"

            \u200b\u865a\u62df\u5185\u5b58\u200b\u6620\u5c04\u200b\u662f\u200b\u4ee5\u9875\u200b\u4e3a\u200b\u5355\u4f4d\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u200b 0x00010000 \u200b\u8d77\u200b\u7684\u200b\u865a\u62df\u200b\u9875\u200b\u6620\u5c04\u200b\u5230\u200b 0x80000000 \u200b\u8d77\u200b\u7684\u200b\u7269\u7406\u200b\u9875\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u5165\u53e3\u200b\u5728\u200b 0x100e8\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5e94\u8be5\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u5165\u53e3\u200b\u62f7\u8d1d\u200b\u81f3\u200b 0x800000e8 \u200b\u800c\u200b\u4e0d\u662f\u200b 0x80000000

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_3","title":"\u6808\u200b\u5207\u6362","text":"

            \u200b\u5728\u200b_traps \u200b\u4e2d\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u4e00\u4e9b\u200b\u5185\u6838\u200b\u7ebf\u7a0b\u200b\u53d1\u8d77\u200b\u7684\u200b\u5f02\u5e38\u200b\u662f\u200b\u4e0d\u200b\u9700\u8981\u200b\u5207\u6362\u200b\u6808\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u901a\u8fc7\u200b\u68c0\u67e5\u200b sscratch \u200b\u4e3a\u200b 0 \u200b\u6765\u200b\u786e\u8ba4\u200b\u8fd9\u200b\u4e00\u70b9\u200b

            \u200b\u8fd9\u4e00\u200b\u68c0\u67e5\u200b\u9700\u8981\u200b\u7528\u5230\u200b\u989d\u5916\u200b\u7684\u200b\u5bc4\u5b58\u5668\u200b\uff08\u200b\u5982\u200b t0\uff09\uff0c\u200b\u4f46\u662f\u200b\u6211\u4eec\u200b\u662f\u200b\u8981\u200b\u4fdd\u8bc1\u200b t0 \u200b\u7684\u200b\u503c\u200b\u5728\u200b\u4e2d\u65ad\u200b\u524d\u540e\u200b\u503c\u200b\u4e0d\u53d8\u200b\uff0c\u200b\u6240\u4ee5\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u7528\u200b\uff0c\u200b\u9700\u8981\u200b\u5148\u538b\u6808\u200b\uff0c\u200b\u8fd4\u56de\u200b\u4e4b\u524d\u200b\u8bb0\u5f97\u200b\u6062\u590d\u200b

            Bug

            \u200b\u8fd9\u91cc\u200b\u63d0\u5230\u200b\u7684\u200b\u538b\u6808\u200b\u7684\u200b\u529e\u6cd5\u200b\u5728\u200b\u6b64\u5904\u200b\u4ecd\u7136\u200b\u53ef\u884c\u200b\uff0c\u200b\u4f46\u200b\u5728\u200b Lab5 \u200b\u4e2d\u200b\u4f1a\u200b\u9047\u5230\u200b\u95ee\u9898\u200b\uff0c\u200b\u73b0\u5728\u200b\u6709\u200b\u4e00\u4e2a\u200b\u66f4\u597d\u200b\u7528\u200b\u4e5f\u200b\u66f4\u200b\u7b80\u6d01\u200b\u7684\u200b\u65b9\u6cd5\u200b

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab5 Demand Paging","text":"

            Abstract

            \u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b

            \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

            \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

            \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
            - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n    - setup_vm: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n    - relocate: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n    - mm_init: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n    - setup_vm_final: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n    - task_init: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n        - \u200b\u5bf9\u4e8e\u200b idle \u200b\u4ee5\u5916\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u5728\u200b task_struct \u200b\u4e2d\u200b\u6dfb\u52a0\u200b stack \u200b\u548c\u200b segment-01(1)\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4e24\u6bb5\u200b vma\n- start_kernel: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- schedule: \u200b\u6839\u636e\u200b policy \u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- switch_to: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB \u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- __switch_to: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB\n- __dummy: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b ENTRY\n- ENTRY: PC \u200b\u8df3\u8f6c\u200b\u81f3\u200b ENTRY\uff0c\u200b\u4f46\u662f\u200b\u6b64\u65f6\u200b\u8be5\u9875\u200b\u7684\u200b\u6620\u5c04\u200b\u5e76\u672a\u200b\u5b8c\u6210\u200b\uff0cPAGE FAULT\n- _traps: PAGE FAULT\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\u8fdb\u5165\u200b trap_handler\n- trap_handler: \u200b\u786e\u8ba4\u200b\u662f\u200b PAGE FAULT \u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200b do_page_fault\n- do_page_fault: \u200b\u6839\u636e\u200b current \u200b\u7684\u200b vma \u200b\u786e\u8ba4\u200b\u662f\u200b\u6bb5\u200b\u9519\u8bef\u200b\u3001\u200b\u6587\u4ef6\u200b\u9875\u200b\u7f3a\u9875\u200b\u8fd8\u662f\u200b\u533f\u540d\u200b\u9875\u200b\u7f3a\u9875\u200b\uff0c\u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\uff0c\u200b\u586b\u5199\u5185\u5bb9\u200b(2)\uff0c\u200b\u586b\u5199\u200b\u9875\u8868\u200b\uff0c\u200b\u8fd4\u56de\u200b\n- _traps: \u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b\uff0c\u200b\u6b64\u540e\u200b\u5bf9\u5e94\u200b\u9875\u200b\u5df2\u6709\u200b\u6620\u5c04\u200b\n- ENTRY: \u200b\u6062\u590d\u200b\u6267\u884c\u200b\uff0c\u200b\u6b64\u540e\u200b\u8c03\u5ea6\u200b\u6216\u8005\u200b\u9047\u5230\u200b\u65b0\u200b\u7684\u200b\u7f3a\u9875\u200b\u5747\u200b\u540c\u4e0a\u200b\u5904\u7406\u200b\n
            1. \u200b\u4e5f\u200b\u5373\u200b readelf \u200b\u65f6\u200b\u5f97\u5230\u200b\u7684\u200b segment-01\uff0c\u200b\u5305\u62ec\u200b.text .rodata .bss
            2. \u200b\u6e05\u96f6\u200b\u6216\u8005\u200b\u62f7\u8d1d\u200b\u6587\u4ef6\u200b\u5185\u5bb9\u200b
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/#_1","title":"\u6808\u200b\u5207\u6362\u200b\u95ee\u9898","text":"

            \u200b\u6587\u6863\u200b\u4e2d\u200b\u6307\u51fa\u200b\uff0c\u200b\u7531\u200b\u7528\u6237\u200b\u53d1\u8d77\u200b\u7684\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5728\u200b_traps\u200b\u5f00\u5934\u200b\u5207\u6362\u200b\u5230\u200b\u5185\u6838\u200b\u6808\u200b\uff0c\u200b\u4f46\u662f\u200b\u5bf9\u4e8e\u200b\u5185\u6838\u200b\u53d1\u8d77\u200b\u7684\u200b\u4e2d\u65ad\u200b\u5c31\u200b\u4e0d\u200b\u9700\u8981\u200b\u3002\u200b\u800c\u200b\u8981\u200b\u5224\u65ad\u200b\u4e2d\u65ad\u200b\u662f\u5426\u200b\u7531\u200b\u5185\u6838\u200b\u53d1\u8d77\u200b\u5c31\u8981\u200b\u5224\u65ad\u200bsscratch\u200b\u662f\u5426\u200b\u4e3a\u200b 0\uff0c\u200b\u5728\u200b lab4 \u200b\u4e2d\u200b\u6211\u200b\u628a\u200b t0 \u200b\u538b\u6808\u200b\u540e\u200b\u7528\u200b t0 \u200b\u6765\u200b\u68c0\u9a8c\u200b\u3002

            \u200b\u4f46\u662f\u200b\u5728\u200b lab5 \u200b\u4e2d\u200b\u8fd9\u200b\u4e00\u200b\u65b9\u6cd5\u200b\u884c\u4e0d\u901a\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5f53\u200b\u6211\u4eec\u200b\u8bd5\u56fe\u200b\u628a\u200b t0 \u200b\u538b\u6808\u200b\u7684\u200b\u65f6\u5019\u200b\u6211\u4eec\u200b\u7684\u200b\u6808\u200b\u53ef\u80fd\u200b\u6839\u672c\u5c31\u662f\u200b\u6ca1\u200b\u5206\u914d\u200b\u7684\u200b\u7528\u6237\u200b\u6808\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u538b\u6808\u200b\u7684\u200b\u884c\u4e3a\u200b\u53ea\u4f1a\u200b\u5f15\u53d1\u200b\u65b0\u200b\u7684\u200b PAGE FAULT\uff0c\u200b\u5982\u6b64\u200b\u6c38\u8fdc\u200b\u5faa\u73af\u200b\u3002

            \u200b\u4e3a\u4e86\u200b\u5bfb\u627e\u200b\u89e3\u51b3\u200b\u65b9\u6cd5\u200b\u53ef\u4ee5\u200b\u5148\u200b\u8bd5\u56fe\u200b\u53bb\u200b\u67e5\u770b\u200b linux \u200b\u65f6\u200b\u5982\u4f55\u200b\u89e3\u51b3\u200b\u8fd9\u4e00\u200b\u95ee\u9898\u200b\u7684\u200b\uff0c\u200b\u8fd9\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4ee3\u7801\u200b

            \u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b linux \u200b\u4f7f\u7528\u200b\u4e86\u200b tp\uff08thread pointer\uff09\u200b\u4ee5\u53ca\u200b\u6307\u4ee4\u200bcsrwr,\u200b\u524d\u8005\u200b\u5012\u200b\u4e0d\u662f\u200b\u5fc5\u8981\u200b\u7684\u200b\u4f7f\u7528\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3b\u8981\u200b\u5173\u6ce8\u200b\u5230\u200bcsrwr\u200b\u6307\u4ee4\u200b\u53ef\u4ee5\u200b\u5b9e\u73b0\u200b csr \u200b\u4e0e\u200b\u5176\u4ed6\u200b\u5bc4\u5b58\u5668\u200b\u7684\u200b\u4ea4\u6362\u200b\uff0c\u200b\u4ece\u800c\u200b\u6211\u4eec\u200b sp \u200b\u4e0e\u200bsscratch\u200b\u7684\u200b\u5207\u6362\u200b\u5c31\u200b\u4e0d\u200b\u9700\u8981\u200b\u5176\u4ed6\u200b\u5bc4\u5b58\u5668\u200b\u4e86\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u6b63\u786e\u200b\u7684\u200b\u89e3\u51b3\u200b\u65b9\u5f0f\u200b\u3002

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/#vmas","title":"vmas","text":"

            \u200b\u5728\u200b kernel \u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u5206\u914d\u200b\u4e86\u200b\u4e00\u200b\u6574\u9875\u200b\uff0c\u200b\u5176\u4e2d\u200b\u7684\u200b\u4f4e\u200b\u5730\u5740\u200b\u653e\u200b\u4e86\u200b\u4e2a\u200b task_struct\uff0c\u200b\u9ad8\u200b\u5730\u5740\u200b\u5c31\u662f\u200b\u6808\u9876\u200b\uff08\u200b\u5982\u4e0b\u200b\u56fe\u200b\uff0c\u200b\u6765\u81ea\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff09\u3002\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u7a0d\u5fae\u200b\u9650\u5236\u200b\u4e00\u4e0b\u200b vmas \u200b\u7684\u200b\u5927\u5c0f\u200b\uff0c\u200b\u4e0d\u80fd\u200b\u628a\u200b\u5206\u914d\u200b\u7684\u200b\u4e00\u9875\u200b\u5168\u7ed9\u200b\u7528\u200b\u4e86\u200b\uff0c\u200b\u8fd8\u8981\u200b\u7559\u70b9\u200b\u7ed9\u200b\u6808\u7528\u200b\u3002

                                \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u25c4\u2500\u2500\u2500 High Address\n                    \u2502             \u2502\n                    \u2502    stack    \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n              sp \u2500\u2500\u25ba\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n                    \u2502      \u2502      \u2502\n                    \u2502      \u25bc      \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n    4KB Page        \u2502             \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u2502 task_struct \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u25c4\u2500\u2500\u2500 Low Address\n
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab6 fork","text":"

            Abstract

            \u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b

            \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

            \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

            \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
            - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n    - setup_vm: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n    - relocate: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n    - mm_init: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n    - setup_vm_final: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n    - task_init: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n- start_kernel: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- schedule: \u200b\u6839\u636e\u200b policy \u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- switch_to: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB \u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- __switch_to: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB\n- __dummy: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b ENTRY\n- ENTRY: PC \u200b\u8df3\u8f6c\u200b\u81f3\u200b ENTRY\uff0c\u200b\u4f46\u662f\u200b\u6b64\u65f6\u200b\u8be5\u9875\u200b\u7684\u200b\u6620\u5c04\u200b\u5e76\u672a\u200b\u5b8c\u6210\u200b\uff0cPAGE FAULT\n- _traps: PAGE FAULT\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\u8fdb\u5165\u200b trap_handler\n- trap_handler: \u200b\u786e\u8ba4\u200b\u662f\u200b PAGE FAULT \u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200b do_page_fault\n- do_page_fault: \u200b\u6839\u636e\u200b current \u200b\u7684\u200b vma \u200b\u786e\u8ba4\u200b\u662f\u200b\u6bb5\u200b\u9519\u8bef\u200b\u3001\u200b\u6587\u4ef6\u200b\u9875\u200b\u7f3a\u9875\u200b\u8fd8\u662f\u200b\u533f\u540d\u200b\u9875\u200b\u7f3a\u9875\u200b\uff0c\u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\uff0c\u200b\u586b\u5199\u5185\u5bb9\u200b\uff0c\u200b\u586b\u5199\u200b\u9875\u8868\u200b\uff0c\u200b\u8fd4\u56de\u200b\n- _traps: \u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b\uff0c\u200b\u6b64\u540e\u200b\u5bf9\u5e94\u200b\u9875\u200b\u5df2\u6709\u200b\u6620\u5c04\u200b\n- ENTRY: \u200b\u6062\u590d\u200b\u6267\u884c\u200b\uff0c\u200b\u76f4\u5230\u200b\u8c03\u7528\u200b fork\n- _traps: \u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u8fdb\u5165\u200b trap_handler\n- trap_handler: \u200b\u786e\u8ba4\u200b\u662f\u200b fork \u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200b sys_clone\n- sys_clone: \u200b\u8fdb\u884c\u200b\u4e00\u5b9a\u200b\u7684\u200b\u62f7\u8d1d\u200b\u4ee5\u200b\u521d\u59cb\u5316\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u521d\u59cb\u5316\u200b\u5b8c\u6210\u200b\u540e\u200b\u52a0\u5165\u200b\u8c03\u5ea6\u200b\u961f\u5217\u200b\n    -  \u200b\u5c06\u7236\u200b\u8fdb\u7a0b\u200b kernel stack \u200b\u6240\u5728\u200b\u9875\u200b\u62f7\u8d1d\u200b\u4e00\u4efd\u200b\u7ed9\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5305\u62ec\u200b\n          - task_struct: \u200b\u4f4d\u4e8e\u200b\u8be5\u9875\u200b\u4f4e\u200b\u5730\u5740\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5185\u5bb9\u200b\u5728\u200b__switch_to \u200b\u5230\u200b\u81f3\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u65f6\u5019\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u9879\u200b\u9700\u8981\u200b\u6539\u52a8\u200b\n              - pid: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u65b0\u200b pid\n              - thread.sp: \u200b\u6362\u5230\u5b50\u200b\u8fdb\u7a0b\u200b\u540e\u200b\u7cfb\u7edf\u200b\u6808\u200b\u7684\u200b\u8d77\u59cb\u200b\u5730\u5740\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5207\u6362\u200b\u8fc7\u6765\u200b\u65f6\u6808\u200b\u5185\u200b\u5df2\u6709\u200b\u6570\u636e\u200b\n              - thread.ra: __switch_to \u200b\u5230\u5b50\u200b\u8fdb\u7a0b\u200b\u540e\u200b\uff0c__switch_to \u200b\u51fd\u6570\u200b\u7ed3\u675f\u200b\uff0c\u200b\u5e94\u8be5\u200b ret \u200b\u5230\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b__return_from_fork\n              - thread.sscratch: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u5728\u200b\u5185\u6838\u200b\u6001\u200b\u7684\u200b sscratch\uff0c\u200b\u5728\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u200b\u65f6\u4f1a\u200b\u4e0e\u200b sp \u200b\u4ea4\u6362\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5b9e\u8d28\u200b\u662f\u5b50\u200b\u8fdb\u7a0b\u200b\u7528\u6237\u200b\u6001\u200b\u7684\u200b sp (1)\n              - satp: \u200b\u6839\u636e\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u9875\u8868\u200b\u4fee\u6539\u200b\n              - pgd: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u9875\u8868\u200b\n          - pt_regs: \u200b\u4f4d\u4e8e\u200b\u8be5\u9875\u200b\u9ad8\u200b\u5730\u5740\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5185\u5bb9\u200b\u5728\u5b50\u200b\u8fdb\u7a0b\u200b\u4ece\u200b\u5185\u6838\u200b\u6001\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u65f6\u200b\u5c06\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u9879\u200b\u9700\u8981\u200b\u6539\u52a8\u200b\n              - a0: \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u540e\u200b\u643a\u5e26\u200b\u7684\u200b\u8c03\u7528\u200b\u8fd4\u56de\u503c\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u5f97\u5230\u200b\u7684\u200b fork \u200b\u8fd4\u56de\u503c\u200b\uff0c0\n              - sepc: fork \u200b\u5bf9\u5e94\u200b ecall \u200b\u7684\u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\n    - \u200b\u5c06\u7236\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u7528\u6237\u200b\u6001\u9875\u200b\u5185\u5bb9\u200b\u90fd\u200b\u62f7\u8d1d\u200b\u4e00\u4efd\u200b\u7ed9\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u5e76\u200b\u5728\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u9875\u8868\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\u8fd9\u4e9b\u200b\u9875\u200b\u7684\u200b\u6620\u5c04\u200b\n- _traps: \u200b\u7236\u200b\u8fdb\u7a0b\u200b fork \u200b\u5b8c\u6bd5\u200b\uff0c\u200b\u643a\u5e26\u200b\u5b50\u200b\u8fdb\u7a0b\u200b pid \u200b\u6062\u590d\u200b\u7528\u6237\u200b\u6001\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b ecall \u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\n- fork: \u200b\u56de\u5230\u200b\u7528\u6237\u200b\u6001\u200b\uff0c\u200b\u7ee7\u7eed\u6267\u884c\u200b\u7236\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u6253\u5370\u4fe1\u606f\u200b\u76f4\u5230\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u8d70\u200b\uff0c\u200b\u968f\u540e\u200b\u8c03\u5ea6\u200b\u7b97\u6cd5\u200b\u9009\u62e9\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\n- __switch_to: \u200b\u4fdd\u5b58\u200b\u7236\u200b\u8fdb\u7a0b\u200b\u4e0a\u4e0b\u6587\u200b\u81f3\u7236\u200b\u8fdb\u7a0b\u200b task_struct,\u200b\u4ece\u5b50\u200b\u8fdb\u7a0b\u200b task_struct \u200b\u4e2d\u200b\u6062\u590d\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u5185\u6838\u200b\u6001\u200b\u4e0a\u4e0b\u6587\u200b(2)\uff0cret \u200b\u8fd4\u56de\u200b\u5230\u200b__return_from_fork \u200b\u7ee7\u7eed\u6267\u884c\u200b\u7528\u6237\u200b\u6001\u200b\u4ee3\u7801\u200b\n- __return_from_fork: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u4ece\u200b pt_regs \u200b\u4e2d\u200b\u6062\u590d\u200b\u7528\u6237\u200b\u6001\u200b\u4e0a\u4e0b\u6587\u200b(3)\uff0c\u200b\u5305\u62ec\u200b\u8fd4\u56de\u503c\u200b 0\uff0c\u200b\u4ece\u200b trap \u200b\u8fd4\u56de\u200b ecall \u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\uff0c\u200b\u7ee7\u7eed\u6267\u884c\u200b\n
            1. \u200b\u6b63\u5e38\u200b\u6765\u8bf4\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u200b\u7684\u200b sp \u200b\u5e94\u8be5\u200b\u4ece\u200b pt_regs \u200b\u4e2d\u200b\u6062\u590d\u200b\uff08\u200b\u6587\u6863\u200b\u4e2d\u200b\u4e5f\u200b\u662f\u200b\u8fd9\u4e48\u200b\u8bf4\u200b\u7684\u200b\uff09\uff0c\u200b\u4f46\u200b\u6211\u200b\u5b9e\u8df5\u200b\u4e0a\u200b\u662f\u4ece\u200b sscratch \u200b\u6062\u590d\u200b\u7684\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u5e94\u8be5\u200b\u6839\u636e\u200b\u5177\u4f53\u200b\u5b9e\u73b0\u200b\u4fee\u6539\u200b\u3002
            2. \u200b\u6b64\u5904\u200b\u7684\u200b\u4e0a\u4e0b\u6587\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5728\u200b fork \u200b\u4e2d\u200b\u8bbe\u7f6e\u200b\u7684\u200b
            3. \u200b\u6b64\u5904\u200b\u7684\u200b\u4e0a\u4e0b\u6587\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5728\u200b fork \u200b\u4e2d\u200b\u8bbe\u7f6e\u200b\u7684\u200b
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/#_1","title":"\u8c03\u5ea6\u200b\u7b97\u6cd5","text":"

            \u200b\u6211\u4eec\u200b\u7684\u200b task \u200b\u6570\u7ec4\u200b\u5927\u5c0f\u200b\u662f\u200bNR_TASKS,\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u505a\u5230\u200b

            • \u200b\u53ea\u200b\u521d\u59cb\u5316\u200b\u6307\u5b9a\u200b\u6570\u91cf\u200b\u7684\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u586b\u6ee1\u200b\u6574\u4e2a\u200b\u6570\u7ec4\u200b
            • \u200b\u8c03\u5ea6\u200b\u7684\u200b\u65f6\u5019\u200b\u8981\u200b\u904d\u5386\u200b\u6570\u7ec4\u200b\uff0c\u200b\u4f46\u662f\u200b\u53ea\u4f1a\u200b\u8c03\u5ea6\u200b\u90a3\u4e9b\u200b\u6709\u6548\u200b\u7684\u200b task
            "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/#_2","title":"\u8fd4\u56de\u503c\u200b\u5f02\u5e38","text":"

            \u200b\u5982\u679c\u200b\u5fd8\u200b\u4e86\u200b\u5c06\u5b50\u200b\u8fdb\u7a0b\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u200b\u7684\u200b\u5730\u5740\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b ecall \u200b\u4e0b\u200b\u4e00\u6761\u200b\uff0c\u200b\u53ef\u80fd\u200b\u5bfc\u81f4\u200b fork \u200b\u8fd4\u56de\u503c\u200b\u5f02\u5e38\u200b\u3002\u200b\u8bbe\u60f3\u200b\u5982\u4e0b\u200b\u60c5\u51b5\u200b\uff1a

            • idle \u200b\u8fdb\u7a0b\u200b pid \u200b\u4e3a\u200b 0\uff0c\u200b\u7236\u200b\u8fdb\u7a0b\u200b\u4e3a\u200b 1\uff0c\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u4e3a\u200b 2
            • \u200b\u8c03\u5ea6\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u540e\u200b sepc \u200b\u6307\u5411\u200b ecall\uff0c\u200b\u6240\u4ee5\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u540e\u200b\u7ee7\u7eed\u6267\u884c\u200b ecall
            • \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u6267\u884c\u200b ecall \u200b\u518d\u6b21\u200b\u8fdb\u884c\u200b fork\uff0cfork \u200b\u51fa\u65b0\u200b\u7684\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u5728\u200b\u6b64\u6b21\u200b fork \u200b\u4e2d\u200b\uff0c\u200b\u7236\u200b\u8fdb\u7a0b\u200b\u4e3a\u200b 2\uff0c\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u4e3a\u200b 3
            • 2 \u200b\u8fdb\u7a0b\u200b\u5b8c\u6210\u200b fork \u200b\u8fd4\u56de\u200b\uff0c\u200b\u6b64\u65f6\u200b\u8fd4\u56de\u200b\u7684\u200b\u662f\u200b ecall \u200b\u7684\u200b\u4e0b\u200b\u4e00\u6761\u200b\uff08\u200b\u56e0\u4e3a\u200b\u7cfb\u7edf\u200b\u8c03\u7528\u200b\u4e2d\u4f1a\u200b\u5c06\u200b sepc+4\uff09\uff0c\u200b\u8fd4\u56de\u503c\u200b\u4e3a\u200b 3

            \u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b 2 \u200b\u8fdb\u7a0b\u200b\u56e0\u4e3a\u200b\u989d\u5916\u200b\u8fdb\u884c\u200b\u4e86\u200b\u4e00\u6b21\u200b fork \u200b\u6240\u4ee5\u200b\u8fd4\u56de\u503c\u200b\u4e0d\u518d\u200b\u662f\u200b\u5176\u200b\u4f5c\u4e3a\u200b 1 \u200b\u7684\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u62ff\u5230\u200b\u7684\u200b 0\uff0c\u200b\u800c\u662f\u200b\u4f5c\u4e3a\u200b 3 \u200b\u7684\u200b\u7236\u200b\u8fdb\u7a0b\u200b\u62ff\u5230\u200b\u7684\u200b 3\uff0c\u200b\u8fd9\u200b\u5c31\u200b\u53d1\u751f\u200b\u4e86\u200b\u9519\u8bef\u200b

            "},{"location":"blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/","title":"Y-combinator \u200b\u4e0e\u200b\u9012\u5f52","text":"

            Abstract

            \u200b\u4ecb\u7ecd\u200b\u4e86\u200b lambda \u200b\u6f14\u7b97\u200b\u4e2d\u200b\u7684\u200b Y-combinator\uff0c\u200b\u4e3b\u8981\u200b\u662f\u200b\u5e0c\u671b\u200b\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\u6765\u200b\u5e2e\u52a9\u200b\u7406\u89e3\u200b

            \u200b\u9996\u5148\u200b\u8bf7\u200b\u770b\u200b xg \u200b\u7684\u200b\u7b14\u8bb0\u200b1\uff0c\u200b\u63a8\u5bfc\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u8bb2\u200b\u7684\u200b\u5f88\u200b\u6e05\u695a\u200b\u4e86\u200b

            \u200b\u8fd9\u91cc\u200b\u4e3b\u8981\u200b\u8ba8\u8bba\u200b\u53e6\u5916\u200b\u51e0\u4e2a\u200b\u95ee\u9898\u200b

            "},{"location":"blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/#y-combinator_1","title":"\u4e0d\u7528\u200b Y-combinator \u200b\u53ef\u4ee5\u200b\u5417","text":"

            \u200b\u5f53\u7136\u200b\u53ef\u4ee5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u6587\u4e2d\u200b\u7684\u200bproto proto\u200b\u672c\u6765\u200b\u5c31\u662f\u200b\u7b49\u4ef7\u200b\u4e8e\u200bY u\u200b\u7684\u200b\uff0c\u200b\u8981\u200b\u7528\u200b\u8fd9\u79cd\u200b\u65b9\u5f0f\u200b\u5b9e\u73b0\u200b\u9012\u5f52\u200b\u4e3b\u8981\u200b\u8d70\u200b\u4ee5\u4e0b\u200b\u56db\u6b65\u200b

            1. \u200b\u5199\u51fa\u200b\u8c03\u7528\u200b\u81ea\u5df1\u200b\u7684\u200b\u90a3\u200b\u4e00\u7248\u200b\u7684\u200b lambda: \\(fact_1 = \\lambda n . is0\\ n\\ 1\\ ( *\\ n\\ (fact_1\\ (pred\\ n)))\\)
            2. \u200b\u628a\u200b\u5bf9\u200b\u81ea\u5df1\u200b\u7684\u200b\u8c03\u7528\u200b\u6539\u6210\u200b\u5bf9\u200b\u53c2\u6570\u200b f \u200b\u7684\u200b\u8c03\u7528\u200b\uff1a\\(fact_2 = \\lambda f. \\lambda n . is0\\ n\\ 1\\ ( *\\ n\\ (f\\ (pred\\ n)))\\)
            3. \u200b\u628a\u200b f \u200b\u6539\u5199\u200b\u6210\u200b f f: \\(fact_3 = \\lambda f. \\lambda n . is0\\ n\\ 1\\ ( *\\ n\\ (f\\ f\\ (pred\\ n)))\\)
            4. \u200b\u5bf9\u200b\u5f97\u5230\u200b\u7684\u200b\u65b0\u200b\u7684\u200b lambda \u200b\u8868\u8fbe\u5f0f\u200b\u5e94\u7528\u200b\u81ea\u5df1\u200b\uff1a\\(fact = fact_3\\ fact_3\\)

            \u200b\u76f4\u63a5\u200b\u770b\u200b\u8fd9\u200b\u73a9\u610f\u200b\u8fd8\u662f\u200b\u6709\u70b9\u200b\u62bd\u8c61\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\u6765\u200b\u770b\u770b\u200b\u8fd9\u4e2a\u200b\u4e1c\u897f\u200b\u6709\u200b\u54ea\u4e9b\u200b\u6027\u8d28\u200b\uff0c\u200b\u800c\u200b\u820d\u53bb\u200b\u4e2d\u95f4\u200b\u5316\u7b80\u200b\u7684\u200b\u7ec6\u8282\u200b

            \\(fact_3\\ fact_3\\ 0 \\rightarrow 1\\)\\(fact_3\\ fact_3\\ 2 \\rightarrow *\\ 2\\ (fact_3\\ fact_3\\ 1)\\) \\[\\begin{align} &fact_3\\ fact_3\\ 0 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ f\\ (pred\\ n))))\\ fact_3\\ 0 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (fact_3\\ fact_3\\ (pred\\ n))))\\ 0 \\\\ =& is0\\ 0\\ 1\\ ( *\\ 0\\ (fact_3\\ fact_3\\ (pred\\ 0))) \\\\ =& 1 \\end{align}\\] \\[\\begin{align} &fact_3\\ fact_3 2 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ f\\ (pred\\ n))))\\ fact_3\\ 2 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (fact_3\\ fact_3\\ (pred\\ n))))\\ 2 \\\\ =& is0\\ 2\\ 1\\ ( *\\ 2\\ (fact_3\\ fact_3\\ (pred\\ 2))) \\\\ =& *\\ 2\\ (fact_3\\ fact_3\\ 1) \\\\ \\end{align}\\]

            \u200b\u4ee5\u4e0a\u200b\uff0c\u200b\u7b2c\u4e00\u4e2a\u200b\u6027\u8d28\u200b\u662f\u200b base case\uff0c\u200b\u7b2c\u4e8c\u4e2a\u200b\u6027\u8d28\u200b\u662f\u200b indection case\uff0c\u200b\u53ef\u4ee5\u200b\u663e\u7136\u200b\u770b\u51fa\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b

            "},{"location":"blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/#y-combinator_2","title":"Y-combinator \u200b\u7684\u200b\u5b9e\u4f8b","text":"

            \u200b\u4e0a\u9762\u200b\u90a3\u6837\u200b\u5df2\u7ecf\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b\uff0c\u200b\u4e3a\u4ec0\u4e48\u200b\u8fd8\u200b\u9700\u8981\u200b Y-combinator? \u200b\u56e0\u4e3a\u200b\u4e0a\u9762\u200b\u7684\u200b\u5b9e\u73b0\u200b\u65b9\u6cd5\u200b\u4e2d\u200b\u9012\u5f52\u200b\u7684\u200b\u903b\u8f91\u200b\u548c\u200b\u51fd\u6570\u200b\u7684\u200b\u903b\u8f91\u200b\u6df7\u5728\u200b\u4e86\u200b\u4e00\u8d77\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u9012\u5f52\u200b\u7684\u200b\u903b\u8f91\u200b\u62bd\u8c61\u200b\u6210\u200b Y\uff0c\u200b\u628a\u200b\u51fd\u6570\u200b\u7684\u200b\u903b\u8f91\u200b\u62bd\u8c61\u200b\u6210\u200b u\uff0c\u200b\u5bf9\u200b Y \u200b\u5e94\u7528\u200b u \u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u9012\u5f52\u200b\u7684\u200b u.\u200b\u5177\u4f53\u6765\u8bf4\u200b\u53ef\u4ee5\u200b\u5206\u6210\u200b\u4ee5\u4e0b\u200b\u4e09\u6b65\u200b

            1. \u200b\u5199\u51fa\u200b\u8c03\u7528\u200b\u81ea\u5df1\u200b\u7684\u200b\u90a3\u200b\u4e00\u7248\u200b\u7684\u200b lambda: \\(fact_1 = \\lambda n . is0\\ n\\ 1\\ ( *\\ n\\ (fact_1\\ (pred\\ n)))\\)
            2. \u200b\u628a\u200b\u5bf9\u200b\u81ea\u5df1\u200b\u7684\u200b\u8c03\u7528\u200b\u6539\u6210\u200b\u5bf9\u200b\u53c2\u6570\u200b f \u200b\u7684\u200b\u8c03\u7528\u200b\uff1a\\(fact_2 = \\lambda f. \\lambda n . is0\\ n\\ 1\\ ( *\\ n\\ (f\\ (pred\\ n)))\\)
            3. \u200b\u5e94\u7528\u200b\u4e8e\u200b Y-combinator: \\(fact = Y\\ fact_2\\)

            \u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u7b80\u6d01\u200b\u4e86\u200b\u8bb8\u591a\u200b\uff0c\u200b\u4e0b\u9762\u200b\u518d\u200b\u6765\u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b Y-combinator \u200b\u672c\u8eab\u200b\uff0c\u200b\u76f4\u63a5\u200b\u770b\u200b\u4ed6\u200b\u7684\u200b\u5185\u5bb9\u200b\u7684\u8bdd\u200b\u4e5f\u200b\u662f\u200b\u4e00\u200b\u5768\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5229\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\uff0c\u200b\u4e0d\u7ba1\u200b\u4ed6\u200b\u7684\u200b\u5185\u5bb9\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u5728\u4e4e\u200b\u5316\u7b80\u200b\u7684\u200b\u7ec6\u8282\u200b\uff0c\u200b\u53ea\u200b\u770b\u200b\u51e0\u4e2a\u200b\u6027\u8d28\u200b\uff1a

            \\(Y\\ fact_2 \\rightarrow fact_2\\ (Y\\ fact_2)\\)\\(Y\\ fact_2\\ 0 \\rightarrow 1\\)\\(Y\\ fact_2\\ 2 \\rightarrow *\\ 2\\ (Y\\ fact_2\\ 1)\\) \\[\\begin{aligned} &Y\\ fact_2 \\\\ =& (\\lambda f. fact_2\\ (f\\ f)) (\\lambda f. fact_2\\ (f\\ f)) \\\\ =& fact_2\\ ((\\lambda f. fact_2\\ (f\\ f)) (\\lambda f. fact_2\\ (f\\ f))) \\\\ =& fact_2\\ (Y\\ fact_2) \\\\ \\end{aligned}\\] \\[\\begin{aligned} &Y\\ fact_2\\ 0 \\\\ =& fact_2\\ (Y\\ fact_2)\\ 0 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ (pred\\ n))))\\ (Y\\ fact_2)\\ 0 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ ((Y\\ fact_2)\\ (pred\\ n))))\\ 0 \\\\ =& is0\\ 0\\ 1\\ ( *\\ 0\\ ((Y\\ fact_2)\\ (pred\\ 0))) \\\\ =& 1 \\end{aligned}\\] \\[\\begin{aligned} &Y\\ fact_2\\ 2 \\\\ =& fact_2\\ (Y\\ fact_2)\\ 2 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1 ( *\\ n\\ (f\\ (pred\\ n)))) (Y\\ fact_2)\\ 2 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ ((Y\\ fact_2)\\ (pred\\ n))))\\ 2 \\\\ =& is0\\ 2\\ 1\\ ( *\\ 2\\ ((Y\\ fact_2)\\ (pred\\ 2))) \\\\ =& *\\ 2\\ (Y\\ fact_2\\ 1) \\end{aligned}\\]

            \u200b\u4ee5\u4e0a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u5176\u200b\u6027\u8d28\u200b\u6709\u200b

            1. \u200b\u5728\u200b\u524d\u9762\u200b\u51ed\u7a7a\u200b\u591a\u200b\u5e94\u7528\u200b\u4e00\u6b21\u200b fact_2
            2. base case
            3. induction case

            \u200b\u4ee5\u4e0a\u200b\u63a8\u5bfc\u200b\u7684\u200b\u6bd4\u8f83\u200b\u540a\u200b\u8be1\u200b\u7684\u200b\u5730\u65b9\u200b\u662f\u200b\u9700\u8981\u200b\u4ee5\u200b\u8fd9\u79cd\u200b\u8fd0\u7b97\u200b\u987a\u5e8f\u200b\u624d\u200b\u597d\u200b\u51fa\u200b\u7ed3\u679c\u200b2\uff0c\u200b\u867d\u7136\u200b\u6211\u4eec\u200b\u8fd9\u91cc\u200b\u5bf9\u200b\u6709\u200b\u597d\u51e0\u4e2a\u200b\u5b50\u9879\u200b\u7684\u200b\u65f6\u5019\u200b\u5148\u200b\u6f14\u7b97\u200b\u4ec0\u4e48\u200b\u5e76\u200b\u6ca1\u6709\u200b\u89c4\u5b9a\u200b

            \u200b\u6709\u200b\u4ee5\u4e0a\u200b\u6027\u8d28\u200b\uff0c\u200b\u6beb\u65e0\u7591\u95ee\u200b\\(Y fact_2\\)\u200b\u4e5f\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b

            1. \u200b\u8fd9\u91cc\u200b\u662f\u200b xg \u200b\u7684\u200b\u7b14\u8bb0\u200b \u21a9

            2. \u200b\u4ee5\u4e0a\u200b\u7684\u200b\u63a8\u5bfc\u200b\u53c2\u8003\u200b\u4e86\u200b\u8fd9\u7bc7\u200b \u200b\u535a\u5ba2\u200b \u21a9

            "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/","title":"\u5728\u200b VSCode \u200b\u4e0a\u200b\u5199\u200b Markdown","text":"

            Abstract

            markdown \u200b\u771f\u200b\u65b9\u4fbf\u200b\u554a\u200b\u771f\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb2\u200b\u4e86\u200b\u600e\u4e48\u200b\u5728\u200b VSCode \u200b\u4e0a\u200b\u914d\u7f6e\u200b\u4e00\u4e2a\u200b\u597d\u7528\u200b\u7684\u200b\u5199\u200b markdown \u200b\u7684\u200b\u73af\u5883\u200b

            "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/#_1","title":"\u8d77\u6b65","text":"

            \u200b\u9996\u5148\u200b\u542f\u7528\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u4e24\u4e2a\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5f00\u59cb\u200b\u5199\u200b markdown\uff0c\u200b\u5e76\u200b\u5728\u200b\u53f3\u4fa7\u200b\u9884\u89c8\u200b\u4e86\u200b

            \u200b\u6548\u679c\u56fe\u200b

            \u200b\u6ce8\u610f\u200b\u9884\u89c8\u200b\u9700\u8981\u200b\u5728\u200b\u7f16\u8f91\u5668\u200b\u53f3\u4e0a\u89d2\u200b\u70b9\u51fb\u200b\u9884\u89c8\u200b\u6309\u94ae\u200b\u5f00\u542f\u200b\u6216\u8005\u200b\u4f7f\u7528\u200b\u5feb\u6377\u952e\u200b

            \u200b\u5982\u679c\u200b\u9700\u8981\u200b\u4fdd\u5b58\u200b\u6210\u200b PDF \u200b\u6216\u8005\u200b\u522b\u7684\u200b\u683c\u5f0f\u200b\uff0c\u200b\u5728\u200b\u9884\u89c8\u200b\u754c\u9762\u200b\u53f3\u952e\u200b\u5c31\u200b\u597d\u200b\uff0cChrome \u200b\u4e00\u680f\u200b\u7684\u200b\u4e09\u4e2a\u200b\u9009\u9879\u200b\u90fd\u200b\u662f\u200b\u4e0d\u200b\u9700\u8981\u200b\u989d\u5916\u200b\u5b89\u88c5\u200b\u7684\u200b\uff1a

            \u200b\u6570\u5b66\u516c\u5f0f\u200b\u6e32\u67d3\u200b\u95ee\u9898\u200b

            \u200b\u6709\u65f6\u5019\u200b\u4fdd\u5b58\u200b\u6210\u200b PDF \u200b\u65f6\u4f1a\u200b\u53d1\u73b0\u200b\u6570\u5b66\u516c\u5f0f\u200b\u6e32\u67d3\u200b\u5931\u8d25\u200b\u4e86\u200b\uff0c\u200b\u8c03\u67e5\u200b\u4e86\u200b\u4e00\u4e0b\u200b\u53d1\u73b0\u200b\u662f\u200b\u751f\u6210\u200b\u7684\u200b\u901f\u5ea6\u200b\u592a\u5feb\u200b\u4e86\u200b\u6570\u5b66\u516c\u5f0f\u200b\u6765\u4e0d\u53ca\u200b\u6e32\u67d3\u200b\uff0c\u200b\u8c03\u8282\u200b\u4ee5\u4e0b\u200b\u53c2\u6570\u200b\u53ef\u4ee5\u200b\u89e3\u51b3\u95ee\u9898\u200b\uff1a

            "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/#_2","title":"\u5feb\u6377\u200b\u5730\u200b\u63d2\u5165\u200b\u56fe\u7247","text":"

            \u200b\u5c31\u200b\u6700\u200b\u539f\u6559\u65e8\u4e3b\u4e49\u200b\u7684\u200b\u63d2\u5165\u65b9\u5f0f\u200b\u800c\u8a00\u200b\uff0c\u200b\u9700\u8981\u200b\u628a\u200b\u56fe\u7247\u200b\u4fdd\u5b58\u200b\u5230\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u5939\u200b\uff0c\u200b\u8d77\u597d\u200b\u540d\u5b57\u200b\uff0c\u200b\u518d\u200b\u5229\u7528\u200b![](url)\u200b\u683c\u5f0f\u200b\u63d2\u5165\u200b\uff0c\u200b\u6b65\u9aa4\u200b\u76f8\u5f53\u200b\u7e41\u7410\u200b\uff0c\u200b\u8ddf\u200b Word \u200b\u7684\u200b\u56fe\u7247\u200b\u63d2\u5165\u200b\u5b8c\u5168\u200b\u662f\u200b\u4e24\u4e2a\u200b\u91cf\u7ea7\u200b\u7684\u200b\u5de5\u4f5c\u91cf\u200b\u3002

            \u200b\u63a8\u8350\u200b\u4f7f\u7528\u200bPaste Image\u200b\u63d2\u4ef6\u200b\uff1a

            \u200b\u4fee\u6539\u200b\u5982\u4e0b\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff1a \u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u56fe\u7247\u200b\u63d2\u5165\u200b\u5230\u200b\u5f53\u524d\u200b md \u200b\u6587\u4ef6\u200b\u4e0b\u200b\u7684\u200b images/mdfilename/time.png \u200b\u4f4d\u7f6e\u200b\u3002

            \u200b\u7528\u200b\u7cfb\u7edf\u200b\u81ea\u5e26\u200b\u7684\u200b\u622a\u5c4f\u200b\u5de5\u5177\u200b\u622a\u5c4f\u200b\u5230\u200b\u7c98\u8d34\u677f\u200b\u540e\u200b Command+Option+v \u200b\u5373\u53ef\u200b\u5b58\u5165\u200b\u6587\u4ef6\u5939\u200b\u5e76\u200b\u81ea\u52a8\u200b\u5f15\u7528\u200b\u6b63\u786e\u200b\u7684\u200b\u8def\u5f84\u200b\u3002

            \u200b\u8bbe\u7f6e\u200b\u9ed8\u8ba4\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b

            \u200b\u672c\u4eba\u200b\u4f7f\u7528\u200b mkdocs for material \u200b\u642d\u5efa\u200b\u6b64\u200b\u7f51\u9875\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7ed9\u200b\u6b64\u200b\u63d2\u4ef6\u200b\u6dfb\u52a0\u200b\u7684\u200b\u56fe\u7247\u200b\u6dfb\u52a0\u200b\u7edf\u4e00\u200b\u6837\u5f0f\u200b\uff1a

            • \u200b\u8bbe\u7f6e\u200b css\uff1a\u200b\u6bd4\u5982\u200b\u9634\u5f71\u200b\u5706\u89d2\u200b\u7b49\u200b \u200b\u6211\u200b\u6b63\u5728\u200b\u4f7f\u7528\u200b\u7684\u200b
              img[src*=\"pic\"] {\n    box-shadow: 2px 2px 10px #666;\n    border-radius: 4px;\n    width: 98%;\n    display: block;\n    margin: 10px auto;\n}\n
            • \u200b\u5728\u200b mkdocs.yml \u200b\u6dfb\u52a0\u200b css \u200b\u4f5c\u4e3a\u200b\u989d\u5916\u200b css\uff1a
              extra_css:\n- css/extra.css\n
            • \u200b\u8bbe\u7f6e\u200b Paste Imgae \u200b\u81ea\u52a8\u200b\u6dfb\u52a0\u200b\u540e\u7f00\u200b\uff1a
              \"pasteImage.suffix\": \"#pic\"\n
            • \u200b\u53ef\u4ee5\u200b\u6dfb\u52a0\u200b\u591a\u4e2a\u200b\u6837\u5f0f\u200b\uff0c\u200b\u5e76\u200b\u6539\u53d8\u200b#\u200b\u540e\u200b\u7684\u200b\u540d\u79f0\u200b\u6765\u200b\u5207\u6362\u200b
            "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%AD%E4%BD%BF%E7%94%A8-conda-%E7%9A%84%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E9%97%AE%E9%A2%98/","title":"\u5728\u200b VSCode \u200b\u4e2d\u200b\u4f7f\u7528\u200b conda \u200b\u7684\u200b\u865a\u62df\u73af\u5883\u200b\u95ee\u9898","text":"

            Abstract

            \u200b\u7528\u200b conda \u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u7684\u200b\u4e00\u4e2a\u200b\u795e\u79d8\u200b\u95ee\u9898\u200b \ud83e\udd14

            "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%AD%E4%BD%BF%E7%94%A8-conda-%E7%9A%84%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E9%97%AE%E9%A2%98/#_1","title":"\u65b0\u200b\u65b9\u6cd5","text":"

            \u200b\u4e0b\u9762\u200b\u7684\u200b\u65e7\u200b\u65b9\u6cd5\u200b\u662f\u200b\u597d\u4e45\u200b\u4ee5\u524d\u200b\u4e0d\u200b\u77e5\u9053\u200b\u4ece\u200b\u54ea\u4e2a\u200b\u7284\u89d2\u200b\u65ee\u65ef\u200b\u91cc\u200b\u627e\u200b\u51fa\u6765\u200b\u7684\u200b\uff0c\u200b\u6211\u200b\u4f7f\u7528\u200b\u5230\u200b\u76ee\u524d\u200b\u4e5f\u200b\u6ca1\u6709\u200b\u95ee\u9898\u200b\u3002

            \u200b\u4f46\u200b\u6700\u8fd1\u200b\u770b\u5230\u200b \u200b\u5efa\u8bae\u200b\uff0c\u200b\u8bd5\u7740\u200b\u6362\u200b\u4e86\u200b\u5176\u4e2d\u200b\u5efa\u8bae\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u53d1\u73b0\u200b\u4e5f\u200b\u662f\u200b\u53ef\u884c\u200b\u7684\u200b\u3002

            \u200b\u8bf7\u200b\u5728\u200b setting.json \u200b\u4e2d\u200b\u52a0\u5165\u200b
              \"terminal.integrated.inheritEnv\": false,\n
            "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%AD%E4%BD%BF%E7%94%A8-conda-%E7%9A%84%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E9%97%AE%E9%A2%98/#_2","title":"\u65e7\u200b\u65b9\u6cd5","text":"

            \u200b\u6700\u8fd1\u200b\u5f00\u59cb\u200b\u4f7f\u7528\u200b conda\uff0c\u200b\u8bd5\u56fe\u200b\u5728\u200b VSCode \u200b\u7ec8\u7aef\u200b\u91cc\u200b\u5207\u6362\u200b\u865a\u62df\u73af\u5883\u200b\uff0c\u200b\u547d\u4ee4\u884c\u200b\u63d0\u793a\u200b\u5df2\u7ecf\u200b\u5207\u6362\u200b\uff0c\u200b\u4f46\u662f\u200b python \u200b\u73af\u5883\u200b\u5b9e\u9645\u4e0a\u200b\u6ca1\u6709\u200b\u53d8\u200b\u3002 \u200b\u89e3\u51b3\u65b9\u6848\u200b\u5982\u4e0b\u200b\uff1a

            1. \u200b\u5feb\u6377\u952e\u200bcommand shift p\uff0c\u200b\u641c\u7d22\u200b settings\uff0c\u200b\u6253\u5f00\u200b user settings json
            2. \u200b\u52a0\u5165\u200b\u5982\u4e0b\u200b\u5185\u5bb9\u200b\uff1a
                \"terminal.integrated.env.osx\": {\n      \"PATH\": \"\"\n  }\uff0c\n
            1. \u200b\u91cd\u542f\u200b VSCode \u200b\u5373\u53ef\u200b
            "},{"location":"blog/vscode-snippet/","title":"VSCode Snippet","text":"

            Abstract

            \u200b\u5728\u200b VSCode \u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u81ea\u5b9a\u4e49\u200b Snippet\uff0c\u200b\u8fd9\u200b\u53ef\u4ee5\u200b\u6781\u5927\u5730\u63d0\u9ad8\u200b\u6211\u4eec\u200b\u5728\u200b\u8f93\u5165\u200b\u67d0\u79cd\u200b\u91cd\u590d\u200b\u7684\u200b\u4ee3\u7801\u200b\u65f6\u200b\u7684\u200b\u6548\u7387\u200b

            "},{"location":"blog/vscode-snippet/#snippet","title":"Snippet \u200b\u7b80\u4ecb","text":"

            \u200b\u5176\u5b9e\u200b Snippet \u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5728\u200b\u81ea\u52a8\u200b\u8865\u5168\u200b\u4e2d\u200b\u7ecf\u5e38\u200b\u770b\u89c1\u200b\u7684\u200b\u9009\u9879\u200b\u4e4b\u4e00\u200b\uff0c\u200b\u4e00\u822c\u200b Snippet \u200b\u4f1a\u200b\u81ea\u52a8\u200b\u8865\u5145\u200b\u51fa\u200b\u4e00\u79cd\u200b\u6846\u67b6\u200b\uff0c\u200b\u81ea\u52a8\u200b\u586b\u5145\u200b\u5176\u4e2d\u200b\u4e00\u4e9b\u200b\u4fe1\u606f\u200b(1)\uff0c\u200b\u7136\u540e\u200b\u518d\u200b\u628a\u200b\u6211\u4eec\u200b\u7684\u200b\u5149\u6807\u200b\u4f9d\u6b21\u200b\u79fb\u52a8\u200b\u5230\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u8fdb\u884c\u200b\u8f93\u5165\u200b\u3002

            1. \u200b\u6bd4\u5982\u8bf4\u200b\u65e5\u671f\u200b\uff0c\u200b\u5f53\u524d\u200b\u6587\u4ef6\u540d\u200b\uff0c\u200b\u6216\u8005\u200b\u526a\u8d34\u677f\u200b\u5185\u5bb9\u200b\u7b49\u200b

            \u200b\u4f46\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5bf9\u200b\u6307\u5b9a\u200b\u7684\u200b\u8bed\u8a00\u200b\u8bbe\u7f6e\u200b\u6211\u4eec\u200b\u81ea\u5df1\u200b\u7684\u200b Snippet\uff0c\u200b\u8fd9\u6837\u200b\u4ee5\u540e\u200b\u6211\u4eec\u200b\u5728\u200b\u8f93\u5165\u200b\u7684\u200b\u65f6\u5019\u200b\u81ea\u52a8\u200b\u8865\u5168\u200b\u4e2d\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6211\u4eec\u200b\u81ea\u5df1\u200b\u7684\u200b Snippet \u200b\u4e86\u200b\u3002

            \u200b\u5177\u4f53\u200b\u7684\u200b\u8bed\u6cd5\u200b\u548c\u200b\u4ecb\u7ecd\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b \u200b\u5b98\u65b9\u200b\u6587\u6863\u200b

            "},{"location":"blog/vscode-snippet/#markdown","title":"Markdown \u200b\u4e2d\u200b\u7684\u200b\u81ea\u52a8\u200b\u8865\u5168\u200b\u95ee\u9898","text":"

            \u200b\u4f60\u200b\u6216\u8bb8\u200b\u6ce8\u610f\u200b\u5230\u200b\u4e86\u200b markdown \u200b\u4e2d\u200b\u8f93\u5165\u200b\u6587\u672c\u200b\u5e76\u200b\u4e0d\u4f1a\u200b\u89e6\u53d1\u200b\u81ea\u52a8\u200b\u8865\u5168\u200b(1)\uff0c\u200b\u8fd9\u4e00\u200b\u73b0\u8c61\u200b\u5728\u200b\u8fd9\u4e2a\u200b \u200b\u95ee\u9898\u200b \u200b\u4e2d\u200b\u5df2\u6709\u200b\u8ba8\u8bba\u200b

            1. \u200b\u53c8\u200b\u6216\u8005\u200b\u5176\u5b9e\u200b\u4f60\u200b\u6ca1\u200b\u6ce8\u610f\u200b\u5230\u200b\uff08\u200b\u4e50\u200b\uff09

            \u200b\u89e3\u51b3\u200b\u65b9\u6cd5\u200b\u6b63\u5982\u200b\u56de\u7b54\u200b\u4e2d\u200b\u6240\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u624b\u52a8\u200b\u4e3a\u200b markdown \u200b\u5f00\u542f\u200b\u81ea\u52a8\u200b\u8865\u5168\u200b\uff1b

            settings.json
              \"[markdown]\": {\n    \"editor.quickSuggestions\": {\n      \"other\": true,\n      \"comments\": false,\n      \"strings\": true\n    },\n  }\n

            \u200b\u8fd9\u200b\u6837\u5b50\u200b Snippet \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u6b63\u5e38\u200b\u4f7f\u7528\u200b\u4e86\u200b\u3002

            "},{"location":"blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E4%BC%98%E5%8C%96%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88/","title":"\u7528\u200b Vim \u200b\u6279\u91cf\u200b\u4f18\u5316\u200b\u4e2d\u6587\u200b\u6392\u7248","text":"

            Abstract

            \u200b\u4f17\u6240\u5468\u77e5\u200b\u4e2d\u82f1\u6587\u200b\u6df7\u6742\u200b\u7684\u200b\u6392\u7248\u200b\u5176\u5b9e\u200b\u662f\u200b\u6709\u200b\u8bb2\u7a76\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b\u5b9e\u9645\u64cd\u4f5c\u200b\u8d77\u6765\u200b\u8f93\u5165\u6cd5\u200b\u5207\u6765\u5207\u200b\u53bb\u200b\u9ebb\u70e6\u200b\u5f97\u200b\u5f88\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb2\u200b\u7684\u200b\u662f\u200b\u7528\u200b vim \u200b\u7684\u200b Pangu \u200b\u63d2\u4ef6\u200b\u6765\u200b\u6279\u91cf\u200b\u81ea\u52a8\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u65b9\u6cd5\u200b

            "},{"location":"blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E4%BC%98%E5%8C%96%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88/#vim-pangu","title":"\u5b89\u88c5\u200b Vim \u200b\u5de5\u5177\u200b Pangu","text":"

            \u200b\u9996\u5148\u200b\u5b89\u88c5\u200b vim-plug\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u53ef\u4ee5\u200b\u5e2e\u52a9\u200b\u6211\u4eec\u200b\u65b9\u4fbf\u200b\u7684\u200b\u5b89\u88c5\u200b vim \u200b\u63d2\u4ef6\u200b\u7684\u200b\u63d2\u4ef6\u200b

            \u200b\u968f\u540e\u200b\u5b89\u88c5\u200b Pangu \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5728\u200b ~/.vimrc \u200b\u4e2d\u200b\u6dfb\u52a0\u200b

            Plug 'hotoo/pangu.vim'\uff0c { 'for': ['markdown'\uff0c 'vimwiki'\uff0c 'text'] }\nlet g:pangu_rule_date = 1\n

            \u200b\u968f\u540e\u200b\u5728\u200b vim \u200b\u4e2d\u200b\u6267\u884c\u200b:PlugInstall\u200b\u5373\u53ef\u200b\u5b89\u88c5\u200b

            Pangu \u200b\u7684\u200b \u200b\u5b98\u65b9\u200b\u9996\u9875\u200b \u200b\u4e0a\u200b\u5df2\u7ecf\u200b\u6709\u200b\u6bd4\u8f83\u200b\u8be6\u7ec6\u200b\u7684\u200b\u8bf4\u660e\u200b\u4e86\u200b\uff0c\u200b\u60f3\u8981\u200b\u542f\u7528\u200b\u5176\u4e2d\u200b\u7684\u200b\u529f\u80fd\u200b\u7167\u7740\u200b\u505a\u200b\u5c31\u662f\u200b\u4e86\u200b

            "},{"location":"blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E4%BC%98%E5%8C%96%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88/#pangu","title":"\u6279\u91cf\u200b\u4f7f\u7528\u200b Pangu \u200b\u683c\u5f0f\u5316","text":"

            \u200b\u9996\u5148\u200b\u7528\u200b vim \u200b\u6279\u91cf\u200b\u6253\u5f00\u200b\u60f3\u8981\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u4e00\u822c\u6765\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u662f\u200b\u6587\u4ef6\u5939\u200b\u4e0b\u200b\u7684\u200b\u6240\u6709\u200b markdown \u200b\u6587\u4ef6\u200b

            vim **/*.md\n

            \u200b\u90a3\u4e48\u200b\u6240\u6709\u200b\u7b26\u5408\u200b\u683c\u5f0f\u200b\u7684\u200b\u6587\u4ef6\u200b\u90fd\u200b\u88ab\u200b\u6253\u5f00\u200b\u5728\u200b\u7f13\u5b58\u200b(buffer)\u200b\u4e2d\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b:ls\u200b\u6765\u200b\u67e5\u770b\u200b\uff0c\u200b\u7528\u200b:n\u200b\u6765\u200b\u5207\u6362\u200b

            \u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b vim \u200b\u7684\u200b\u7f13\u5b58\u200b\u548c\u200b\u6587\u4ef6\u200b\u7684\u200b\u5173\u7cfb\u200b\u7406\u89e3\u200b\u6210\u200b\u5185\u5b58\u200b\u548c\u200b\u78c1\u76d8\u200b\u7684\u200b\u5173\u7cfb\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b\u7f13\u5b58\u200b\u4e2d\u200b\u53ef\u4ee5\u200b\u4fee\u6539\u200b\u6587\u4ef6\u200b\uff0c\u200b\u4f46\u200b\u76f4\u5230\u200bupdate\u200b\u6216\u200bw\u200b\u4e4b\u524d\u200b\u90fd\u200b\u4e0d\u4f1a\u200b\u5199\u5165\u200b\u78c1\u76d8\u200b

            \u200b\u8981\u200b\u6279\u91cf\u200b\u5904\u7406\u200b\uff0c\u200b\u4f7f\u7528\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b

            :bufdo PanguAll\n:bufdo update\n:q\n

            \u200b\u5176\u4e2d\u200b\u7684\u200b bufdo \u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u5bf9\u200b\u6240\u6709\u200b\u7f13\u5b58\u200b\u4e2d\u200b\u7684\u200b\u6587\u4ef6\u200b\u6267\u884c\u547d\u4ee4\u200b

            \u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u8fd9\u200b\u4e00\u200b\u903b\u8f91\u200b\u5199\u5165\u200b bash \u200b\u811a\u672c\u200b\u4e2d\u200b\uff0c\u200b\u4e0b\u9762\u200b\u662f\u200b\u4e00\u4e2a\u200b\u793a\u4f8b\u200b\uff1a

            vim **/*.md -c ':silent! bufdo execute  \"PanguAll\" | update' -c ':q'\n
            \u200b\u5176\u4e2d\u200b\u7684\u200b silent!\u200b\u53ef\u4ee5\u200b\u8ba9\u200b vim \u200b\u5728\u200b\u6267\u884c\u547d\u4ee4\u200b\u65f6\u200b\u4e0d\u200b\u8f93\u51fa\u200b\u4efb\u4f55\u200b\u4fe1\u606f\u200b\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u4e0d\u7528\u200b\u6309\u200b more \u200b\u4e86\u200b

            \u200b\u4e4b\u6240\u4ee5\u200b\u7528\u200b execute \u200b\u800c\u200b\u4e0d\u200b\u76f4\u63a5\u200b PanguAll \u200b\u662f\u56e0\u4e3a\u200b\u597d\u50cf\u200b\u540e\u8005\u200b\u4f1a\u200b\u5bfc\u81f4\u200b bufdo \u200b\u4e0d\u200b\u6267\u884c\u200b\u540e\u7eed\u200b\u7684\u200b update\uff0c\u200b\u5177\u4f53\u200b\u4e3a\u5565\u200b\u6211\u200b\u8fd8\u200b\u83dc\u83dc\u200b\u770b\u4e0d\u51fa\u6765\u200b

            \u200b\u6700\u540e\u200b\u7684\u200b\u9000\u51fa\u200b\u653e\u5728\u200b\u53e6\u200b\u4e00\u4e2a\u200b-c \u200b\u53ef\u4ee5\u200b\u4fdd\u8bc1\u200b\u662f\u200b\u5728\u200b\u524d\u8005\u200b\u6267\u884c\u200b\u5b8c\u200b\u4e86\u200b\u624d\u200b\u9000\u51fa\u200b\u800c\u200b\u4e0d\u662f\u200b\u6bcf\u5199\u200b\u4e00\u4e2a\u200b\u6587\u4ef6\u200b\u5c31\u8bd5\u200b\u7740\u200b\u9000\u51fa\u200b\u4e00\u6b21\u200b

            \u200b\u5982\u679c\u200b\u4f60\u200b\u8fd8\u6709\u200b\u5176\u4ed6\u200b\u7684\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u9700\u6c42\u200b\u53ef\u4ee5\u200b\u7ee7\u7eed\u200b\u6dfb\u52a0\u200b\u6307\u4ee4\u200b\uff0c\u200b\u4e0d\u51fa\u610f\u5916\u200b\u7684\u8bdd\u200b\u4e0a\u9762\u200b\u7684\u200b\u811a\u672c\u200b\u662f\u200b\u80fd\u591f\u200b\u76f4\u63a5\u200b\u8dd1\u200b\u7684\u200b

            "},{"location":"blog/arch-linux-day1/","title":"Arch Linux Day1","text":"

            Abstract

            \u200b\u5f00\u59cb\u200b\u6298\u817e\u200b Arch Linux \u200b\u7684\u200b\u7b2c\u4e00\u5929\u200b\uff01

            "},{"location":"blog/arch-linux-day1/#_1","title":"\u5f15\u8a00","text":"

            \u200b\u4e3a\u4ec0\u4e48\u200b\u7a81\u7136\u200b\u5f00\u59cb\u200b\u60f3\u8981\u200b\u6298\u817e\u200b Linux \u200b\u4e86\u200b\uff1f\u200b\u5176\u5b9e\u200b\u6709\u200b\u591a\u65b9\u9762\u200b\u7684\u200b\u539f\u56e0\u200b\uff1a

            • \u200b\u7b2c\u4e00\u4e2a\u200b\u539f\u56e0\u200b\u5c31\u662f\u200b\u4e00\u76f4\u200b\u7f3a\u5c11\u200b\u4e00\u4e2a\u200b\u7eed\u822a\u200b\u957f\u200b\u7684\u200b\u8f7b\u8584\u200b\u7b14\u8bb0\u672c\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e00\u76f4\u200b\u6ca1\u6709\u200b\u5b9e\u73b0\u200b\uff0c\u200b\u5927\u5b66\u200b\u5f00\u59cb\u200b\u7684\u200b\u65f6\u5019\u200b\u4e70\u200b\u7684\u200b\u662f\u200b\u4e00\u4e2a\u200b 2.1kg \u200b\u7684\u200b\u6e38\u620f\u200b\u672c\u200b\uff0c\u200b\u7eed\u822a\u200b 2h \u200b\u4e0d\u5230\u200b\u3002\u200b\u81f3\u4eca\u200b\u90fd\u200b\u8fd8\u200b\u8bb0\u5f97\u200b\u5927\u4e00\u200b\u8d39\u52b2\u200b\u7684\u200b\u80cc\u7740\u200b\u7535\u8111\u200b\u53bb\u200b\u4e0a\u200b\u7a0b\u7b97\u200b\u7ed3\u679c\u200b\u8fd8\u200b\u6ca1\u200b\u4e0b\u8bfe\u200b\u5c31\u200b\u5173\u673a\u200b\u4e86\u200b\ud83d\ude07\u3002

              \u200b\u540e\u6765\u200b\u6211\u7238\u200b\u7a81\u7136\u200b\u7ed9\u200b\u6211\u200b\u4e70\u200b\u4e86\u200b\u53f0\u200b macbook pro 16 \u200b\u82f1\u5bf8\u200b\uff0c\u200b\u91cd\u91cf\u200b\u51cf\u8f7b\u200b\u4e86\u200b\u8db3\u8db3\u200b 0.1kg\uff0c\u200b\u5e76\u4e14\u200b intel \u200b\u82af\u7247\u200b\u7684\u200b macbook \u200b\u561b\u200b\uff0c\u200b\u7eed\u822a\u200b\u4e5f\u200b\u5f88\u96be\u8bf4\u200b\u8fbe\u5230\u200b\u4e86\u200b\u4ee4\u4eba\u6ee1\u610f\u200b\u7684\u200b\u6c34\u5e73\u200b\uff083-4h \u200b\u5427\u200b\uff09\u3002

              \u200b\u6240\u4ee5\u200b\u4e3a\u4e86\u200b\u6ee1\u8db3\u200b\u8fd9\u65b9\u9762\u200b\u7684\u200b\u9700\u6c42\u200b\uff0c\u200b\u5c31\u200b\u4e00\u76f4\u200b\u5728\u200b\u89c2\u5bdf\u200b\u7740\u200b\u65b0\u51fa\u200b\u7684\u200b\u7b14\u8bb0\u672c\u200b\uff0c\u200b\u5e76\u4e14\u200b\u7531\u4e8e\u200b\u7eed\u822a\u200b\u7684\u200b\u539f\u56e0\u200b\u5927\u90e8\u5206\u200b\u65f6\u5019\u200b\u90fd\u200b\u5728\u200b\u76ef\u200b\u7740\u200b macbook\uff0c\u200b\u56e0\u4e3a\u200b\u5176\u4ed6\u200b\u9635\u8425\u200b\u7684\u200b\u7eed\u822a\u200b\u8fd8\u200b\u771f\u200b\u5c31\u200b\u6ca1\u200b\u4e00\u4e2a\u200b\u80fd\u200b\u6253\u200b\u7684\u200b\u3002

              \u200b\u4f46\u524d\u200b\u4e00\u6bb5\u65f6\u95f4\u200b\u65b0\u200b\u53d1\u5e03\u200b\u7684\u200b m3 mbp \u200b\u4ea7\u54c1\u7ebf\u200b\u5b9e\u5728\u200b\u662f\u200b\u5200\u6cd5\u200b\u592a\u200b\u6076\u5fc3\u200b\u4eba\u200b\u4e86\u200b\uff0c\u200b\u75af\u72c2\u200b\u9609\u5272\u200b\uff0c\u200b\u5c31\u662f\u200b\u8981\u200b\u8ba9\u200b\u4eba\u200b\u8bf4\u200b\u7740\u200b\u867d\u7136\u200b\u8fd9\u8fb9\u200b\u9609\u200b\u4e00\u70b9\u200b\u90a3\u8fb9\u200b\u9609\u200b\u4e00\u70b9\u200b\u95ee\u9898\u200b\u4e5f\u200b\u4e0d\u200b\u5927\u200b\u5566\u200b\u7136\u540e\u200b\u4e3a\u4e86\u200b\u65b0\u200b\u82af\u7247\u200b\u53bb\u200b\u8d2d\u4e70\u200b\u5b83\u200b\uff0c\u200b\u597d\u50cf\u200b\u975e\u8981\u200b\u5230\u200b m3max \u200b\u624d\u80fd\u200b\u611f\u89c9\u200b\u6ca1\u200b\u88ab\u200b\u6076\u5fc3\u200b\u5230\u200b\uff0c\u200b\u4f46\u200b\u90a3\u200b\u6027\u80fd\u200b\u5c31\u200b\u6ea2\u51fa\u200b\u592a\u591a\u200b\u4e86\u200b\u3002\u200b\u800c\u200b mbp m1pro \u200b\u7b97\u662f\u200b\u8ddf\u200b\u65b9\u9762\u200b\u90fd\u200b\u6ca1\u6709\u200b\u9609\u5272\u200b\u7684\u200b\u4e00\u7248\u200b\u4f46\u200b\u53c8\u200b\u4f1a\u200b\u611f\u89c9\u200b\u82af\u7247\u200b\u7565\u200b\u6709\u70b9\u200b\u65e7\u200b\u4e86\u200b\u3002

              \u200b\u4e00\u770b\u200b PC \u200b\u9635\u8425\u200b\uff0c\u200b\u673a\u68b0\u200b\u9769\u547d\u200b\u7684\u200b\u65e0\u754c\u200b 14pro \u200b\u9996\u53d1\u200b 3999 \u200b\u5b9e\u5728\u200b\u662f\u200b\u9999\u200b\uff0c\u200b\u73b0\u5728\u200b\u7684\u8bdd\u200b\u65e0\u200b\u754c\u200b 13+\u200b\u642d\u8f7d\u200b AMD R7-7840HS \u200b\u53ea\u8981\u200b 2599\uff0c\u200b\u642d\u8f7d\u200b 2.8K \u200b\u5c4f\u200b 120HZ\uff08\u200b\u867d\u7136\u200b\u89c2\u611f\u200b\u4e00\u822c\u200b\uff09\u200b\u4f46\u200b\u90fd\u200b\u8fd9\u200b\u4ef7\u4f4d\u200b\u4e86\u200b\u8fd8\u8981\u200b\u4ec0\u4e48\u200b\u81ea\u884c\u8f66\u200b\u3002\u200b\u76f8\u6bd4\u4e4b\u4e0b\u200b 10000 \u200b\u7684\u200b mbp m1pro \u200b\u5c31\u200b\u663e\u5f97\u200b\u6709\u70b9\u200b\u51a4\u79cd\u200b\u4e86\u200b\u3002

              \u200b\u4e0d\u8fc7\u200b\u4e00\u5927\u200b\u95ee\u9898\u200b\u662f\u200b\uff0c\u200b\u7528\u200b\u4e86\u200b\u8fd9\u4e48\u4e45\u200b MacOS \u200b\u5b9e\u5728\u200b\u662f\u200b\u89c9\u5f97\u200b windows \u200b\u7684\u200b\u7cfb\u7edf\u200b\u6ca1\u6709\u200b\u8fbe\u5230\u200b\u53ef\u7528\u200b\u7684\u200b\u6c34\u5e73\u200b\ud83d\ude07\uff0c\u200b\u7eed\u822a\u200b\u4e5f\u200b\u4e0d\u884c\u200b\uff0c\u200b\u9664\u4e86\u200b\u6253\u6e38\u620f\u200b\u975e\u5e38\u200b\u65b9\u4fbf\u200b\u5f88\u96be\u8bf4\u200b\u6709\u200b\u522b\u7684\u200b\u4f18\u70b9\u200b\u3002

              \u200b\u90a3\u4e48\u200b\u600e\u529e\u200b\u5462\u200b\uff0c\u200b\u5f53\u7136\u200b\u662f\u200b\u4e70\u200b\u4e00\u53f0\u200b\u4fbf\u5b9c\u200b\u5f3a\u52b2\u200b\uff08\u200b\u5982\u65e0\u754c\u200b 14+\uff09\u200b\u7684\u200b\u7535\u8111\u200b\u540c\u65f6\u200b\u914d\u7f6e\u200b\u4e00\u4e2a\u200b\u6bd4\u8f83\u200b\u597d\u7528\u200b\u7684\u200b\u7cfb\u7edf\u200b\u5566\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5c31\u8981\u200b\u5f00\u59cb\u200b\u6298\u817e\u200b Linux

            • \u200b\u7b2c\u4e8c\u4e2a\u200b\u539f\u56e0\u200b\u5c31\u662f\u200b\u6700\u8fd1\u200b\u5728\u200b\u5907\u6218\u200b\u6258\u798f\u200b\u4f46\u662f\u200b\u653e\u5bd2\u5047\u200b\u4e86\u200b\u53c8\u200b\u60f3\u200b\u6478\u9c7c\u200b\uff0c\u200b\u7136\u540e\u200b\u5c31\u200b\u5728\u200b\u6cb9\u7ba1\u200b\u4e0a\u200b\u770b\u200b\u4e86\u200b\u4e0d\u5c11\u200b\u82f1\u6587\u200b\u89c6\u9891\u200b\u3002\u200b\u5f53\u65f6\u200b\u5c31\u200b\u6ce8\u610f\u200b\u5230\u200b\u4e86\u200b\u975e\u5e38\u200b\u6d41\u7545\u200b\u7684\u200b hyperland\uff08tiling window manager\uff09\uff0c\u200b\u7136\u540e\u200b\u6e10\u6e10\u200b\u7684\u200b\u5c31\u200b\u5bf9\u200b\u8fd9\u65b9\u9762\u200b\u611f\u5174\u8da3\u200b\u4e86\u200b\u3002

            • \u200b\u6700\u540e\u200b\u4e00\u4e2a\u200b\u539f\u56e0\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u6211\u200b\u672c\u8eab\u200b\u5c31\u200b\u633a\u200b\u559c\u6b22\u200b\u8fd9\u79cd\u200b customizable \u200b\u7684\u200b\u4e1c\u897f\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6298\u817e\u200b\u8d77\u6765\u200b\u4e5f\u200b\u611f\u89c9\u200b\u4e0d\u9519\u200b\u3002
            • \u200b\u8fd9\u200b\u5b66\u671f\u200b\u521a\u597d\u200b\u5b66\u5b8c\u200b\u4e86\u200b OS
            "},{"location":"blog/arch-linux-day1/#arch-linux","title":"\u4e3a\u4ec0\u4e48\u200b\u662f\u200b Arch Linux","text":"
            • \u200b\u9996\u5148\u200b\u611f\u89c9\u200b\u5f88\u9177\u200b\uff0c\u200b\u5e76\u4e14\u200b\u53ef\u4ee5\u200b\u5728\u200b\u73a9\u200b\u7cfb\u7edf\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u5b66\u200b\u70b9\u200b\u4e1c\u897f\u200b
            • \u200b\u7136\u540e\u200b\u60f3\u8981\u200b\u4f7f\u7528\u200b hyperland \u200b\u7684\u8bdd\u200b\u662f\u200b\u9700\u8981\u200b\u4e00\u4e9b\u200b\u6700\u65b0\u200b\u7684\u200b\u8f6f\u4ef6\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u53ea\u200b\u5bf9\u200b Arch Linux\uff0c NixOS \u200b\u4e00\u7c7b\u200b\u7684\u200b\u7cfb\u7edf\u200b\u652f\u6301\u200b\u6bd4\u8f83\u200b\u597d\u200b
            • \u200b\u6211\u200b\u6bd4\u8f83\u200b\u7231\u200b\u6298\u817e\u200b
            "},{"location":"blog/arch-linux-day1/#_2","title":"\u4eca\u5929\u200b\u9047\u5230\u200b\u7684\u200b\u95ee\u9898","text":"

            \u200b\u662f\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u63a5\u4e0b\u6765\u200b\u5c31\u200b\u9047\u5230\u200b\u95ee\u9898\u200b\u4e86\u200b\ud83d\ude07\u3002

            \u200b\u9996\u5148\u200b\u662f\u200b intel \u200b\u7684\u200b mbp\uff0c\u200b\u5b83\u200b\u4e0d\u8ba9\u200b\u6211\u88c5\u200b\uff0c\u200b\u6211\u9009\u200b\u4e86\u200b\u4ece\u200b U \u200b\u76d8\u200b\u542f\u52a8\u200b\u5b83\u200b\u5c31\u200b\u8df3\u200b\u8d70\u200b\u95ee\u200b\u6211\u200b\u662f\u4e0d\u662f\u200b\u8981\u200b\u5728\u200b\u4e0a\u9762\u200b\u88c5\u200b\u4e00\u4e2a\u200b MacOS\uff08\uff1f\uff09

            \u200b\u7136\u540e\u200b\u7528\u200b\u6e38\u620f\u200b\u672c\u200b\u5462\u200b\uff0c\u200b\u6b64\u65f6\u200b\u552f\u4e00\u200b\u9047\u5230\u200b\u7684\u200b\u95ee\u9898\u200b\u662f\u200b\u5b89\u88c5\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9009\u62e9\u200b\u78c1\u76d8\u200b\u65f6\u200b\u6ca1\u6709\u200b SSD\uff0c\u200b\u53ea\u200b\u8ba9\u200b\u6211\u200b\u88c5\u200b\u5728\u200b U \u200b\u76d8\u200b\u4e0a\u200b\uff0c\u200b\u5954\u524d\u200b\u8d70\u200b\u540e\u200b\u4e5f\u200b\u4e0d\u200b\u77e5\u9053\u200b\u8be5\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b\uff08\u200b\u4f5c\u200b\u7684\u200b\ud83d\ude07\uff09

            "},{"location":"blog/arch-linux-day1/#_3","title":"\u6210\u529f\u200b\u505a\u5230\u200b\u7684","text":""},{"location":"blog/arch-linux-day1/#_4","title":"\u865a\u62df\u673a","text":"

            \u200b\u4e0b\u5348\u200b\u53c8\u200b\u5c0f\u200b\u6363\u9f13\u200b\u4e86\u200b\u4e00\u4f1a\u513f\u200b\u5728\u200b pd \u200b\u4e0a\u88c5\u200b\u597d\u200b\u4e86\u200b arch linux

            \u200b\u7b97\u662f\u200b\u521d\u6b65\u200b\u8dd1\u200b\u8d77\u6765\u200b\u4e86\u200b\u5427\u200b\uff0c \u200b\u540e\u9762\u200b\u8981\u200b\u600e\u4e48\u529e\u200b\u6211\u200b\u4e5f\u200b\u4e0d\u200b\u592a\u200b\u6e05\u695a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5148\u200b\u5728\u200b\u865a\u62df\u673a\u200b\u4e0a\u5148\u200b\u6363\u9f13\u200b\u6363\u9f13\u200b\u770b\u770b\u200b\u6548\u679c\u200b\u5982\u4f55\u200b\u3002

            \u200b\u54e6\u200b\u5bf9\u200b\u4e86\u200b\uff0c\u200b\u5728\u200b pd \u200b\u4e0a\u200b\u8dd1\u200b\u6211\u200b\u9047\u200b\u5f97\u5230\u200b\u95ee\u9898\u200b\u662f\u200b\u6ca1\u6cd5\u200b cmd+q \u200b\u547c\u200b\u51fa\u200b kitty \u200b\u7ec8\u7aef\u200b\uff0c\u200b\u65b9\u6cd5\u200b\u662f\u200b\u7528\u200b cmd+r \u200b\u624b\u52a8\u200b\u542f\u52a8\u200b kitty\uff0c\u200b\u7136\u540e\u200b\u53bb\u200b\u914d\u7f6e\u200b\u91cc\u200b\u53e6\u8bbe\u200b\u4e00\u4e2a\u200b\u5feb\u6377\u952e\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u5feb\u6377\u952e\u200b\u542f\u52a8\u200b kitty \u200b\u4e86\u200b\u3002

            "},{"location":"blog/arch-linux-day1/#_5","title":"\u79fb\u52a8\u786c\u76d8","text":"

            \u200b\u4f46\u662f\u200b\u865a\u62df\u673a\u200b\u4e0a\u200b\u5728\u200b\u592a\u5361\u200b\u4e86\u200b\uff0c\u200b\u4e8e\u662f\u200b\u6211\u200b\u4e00\u8f6c\u200b\u79fb\u52a8\u786c\u76d8\u200b\uff0c\u200b\u867d\u7136\u200b\u8bf4\u200b 90 \u200b\u5757\u200b\u7684\u200b\u5c0f\u200b\u786c\u76d8\u76d2\u200b\u6700\u9ad8\u200b\u8bfb\u5199\u200b\u901f\u5ea6\u200b\u4e5f\u200b\u5c31\u200b 1GBps \u200b\u5de6\u53f3\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e5f\u200b\u5c06\u200b\u5c06\u200b\u591f\u7528\u200b\u4e86\u200b\u3002

            \u200b\u6709\u200b\u51e0\u6b65\u200b\u53ef\u80fd\u200b\u8981\u200b\u6ce8\u610f\u200b\u7684\u200b\uff1a

            \u200b\u5f00\u59cb\u200b\u5b89\u88c5\u200b\u4e4b\u524d\u200b\u53ef\u4ee5\u200b\u6362\u6e90\u200b\uff0c\u200b\u867d\u7136\u200b\u6211\u200b\u6ca1\u6362\u200b\u3002

            \u200b\u65e0\u7ebf\u7f51\u200b\u7684\u8bdd\u200b\u8981\u200b\u7528\u200biwctl\u200b\u5148\u200b\u8054\u7f51\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200bbaidu.com\u200b\u6d4b\u8bd5\u200b

            \u200b\u7136\u540e\u200b\u53ef\u4ee5\u200b\u8bbe\u7f6e\u200bhttp_proxy https_proxy all_proxy\u200b\u7b49\u200b\u73af\u5883\u53d8\u91cf\u200b\u5230\u200b\u540c\u4e00\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u5141\u8bb8\u200b\u5c40\u57df\u7f51\u200b\u8fde\u63a5\u200b\u7684\u200b\u68af\u5b50\u200b\u7684\u200b\u5bf9\u5e94\u200b\u7aef\u53e3\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8d70\u200b\u4ee3\u7406\u200b\u4e86\u200b\u3002

            \u200b\u63a5\u4e0b\u6765\u200b\u90fd\u200b\u662f\u200b\u5e38\u89c4\u200b\u8bbe\u7f6e\u200b\uff0cprofile\u200b\u4e2d\u200bwindow\u200b\u6211\u200b\u9009\u62e9\u200b\u7684\u200b\u662f\u200bhyperland

            \u200b\u5982\u679c\u200b\u5f00\u59cb\u200b\u5b89\u88c5\u200b\u4e86\u200b\u4e4b\u540e\u200b\u5361\u200b\u5728\u200b\u4e86\u200b\u67d0\u200b\u4e00\u6b65\u200b reflector \u200b\u4e00\u7c7b\u200b\u7684\u8bdd\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8bd5\u8bd5\u200b\u5728\u200b\u5b89\u88c5\u200b\u4e4b\u524d\u200b\u8f93\u5165\u200b

            systemctl mask reflector.service\nsystemctl stop reflector\n
            \u200b\u8d77\u7801\u200b\u8fd9\u200b\u5bf9\u200b\u6211\u200b\u662f\u200b\u6709\u6548\u200b\u7684\u200b\u3002

            \u200b\u5b89\u88c5\u200b\u5b8c\u6210\u200b\u540e\u200b\u4ec0\u4e48\u200b post installation \u200b\u9009\u200b no\uff0c\u200b\u7136\u540e\u200b\u91cd\u542f\u200b\u5373\u53ef\u200b\u3002

            "},{"location":"blog/arch-linux-day1/#_6","title":"\u7f51\u7edc","text":"

            \u200b\u521a\u200b\u8fdb\u6765\u200b\u5e76\u200b\u6ca1\u6709\u200b\u7f51\u200b\uff0c\u200b\u4f5c\u4e3a\u200b\u5c0f\u767d\u200b\u8ddf\u200b\u5b89\u88c5\u200b\u7684\u200b\u65f6\u5019\u200b\u4e00\u6837\u200b\u76f4\u63a5\u200b\u7528\u200biwctl\u200b\u7ed3\u679c\u200b\u7b49\u200b daemon \u200b\u7b49\u200b\u4e86\u200b\u534a\u5929\u200b\uff0c\u200b\u539f\u6765\u200b daemon \u200b\u8981\u200b\u81ea\u5df1\u200b\u624b\u52a8\u200b\u5f00\u200b\ud83d\udca6

            systemctl start iwd\n

            \u200b\u4f46\u662f\u200b\u7528\u200b\u4e86\u200b iwctl \u200b\u4e5f\u200b\u4e0d\u80fd\u200b\u50cf\u200b\u4e4b\u524d\u200b\u90a3\u6837\u200b\u76f4\u63a5\u200b\u8fde\u4e0a\u200b\u4e86\u200b\uff0c\u200b\u6211\u200b\u4e5f\u200b\u4e0d\u200b\u77e5\u9053\u200b\u4e3a\u5565\u200b

            \u200b\u6700\u540e\u200b\u8f6c\u800c\u200b\u4f7f\u7528\u200bnmcli,\u200b\u5176\u5b9e\u200b\u4e5f\u200b\u6ca1\u200b\u5565\u200b\u719f\u6089\u200b\u4e00\u4e0b\u200b\u8bed\u6cd5\u200b\u5c31\u884c\u4e86\u200b\uff0c\u200b\u987a\u4fbf\u200b\u4e00\u63d0\u200biwctl\u200b\u627e\u200b\u4e0d\u5230\u200b\u6211\u200b\u7684\u200b\u70ed\u70b9\u200b\u4f46\u662f\u200bnmcli\u200b\u53ef\u4ee5\u200b

            \u200b\u8fd8\u6709\u200b\u5f88\u200b\u8be1\u5f02\u200b\u7684\u200b\u4e8b\u60c5\u200b\u662f\u200b\u8fde\u63a5\u200b\u6821\u7f51\u200b\u4e0d\u200b\u9700\u8981\u200b\u8d26\u53f7\u5bc6\u7801\u200b

            "},{"location":"blog/arch-linux-day1/#_7","title":"\u5927\u6742\u70e9","text":"

            \u200b\u521d\u8fdb\u200b hyperland \u200b\u7684\u200b\u5b57\u4f53\u200b\u5bf9\u200b\u6211\u200b\u6765\u8bf4\u200b\u592a\u5927\u200b\u4e86\u200b\uff0c\u200b\u53bb\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e2d\u5c06\u200b monitor \u200b\u4e00\u9879\u200b\u7684\u200b\u6700\u540e\u200b\u4e00\u4e2a\u200b auto \u200b\u6539\u6210\u200b 1 \u200b\u4f1a\u200b\u597d\u200b\u5f88\u591a\u200b\uff0c\u200b\u8fd9\u200b\u4e00\u9879\u200b\u662f\u200b\u7f29\u653e\u200b\u7cfb\u6570\u200b\uff0c\u200b\u7cfb\u6570\u200b\u8d8a\u5927\u200b\uff0c\u200b\u5b57\u4f53\u200b\u8d8a\u5927\u200b

            \u200b\u968f\u540e\u200b\u8bd5\u7740\u200b\u5b89\u88c5\u200b\u4e86\u200b nix \u200b\u6765\u200b\u8fdb\u884c\u200b\u5305\u200b\u7ba1\u7406\u200b\uff0c\u200b\u4f46\u200b\u611f\u89c9\u200b\u5e76\u200b\u4e0d\u7b97\u200b\u7279\u522b\u200b\u65b9\u4fbf\u200b\ud83e\udd14

            \u200b\u9996\u5148\u200b\u662f\u200b zsh \u200b\u88c5\u5728\u200b\u4e86\u200b\u5947\u602a\u200b\u7684\u200b\u5730\u65b9\u200b\uff0c\u200b\u6211\u7528\u200b\u4e86\u200b\u8f6f\u200b\u8fde\u63a5\u200b\u8fde\u200b\u5230\u200b/bin/zsh\u200b\u53bb\u200b\u4e86\u200b

            nix \u200b\u4f3c\u4e4e\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u88c5\u200b\u5b57\u4f53\u200b\uff0c\u200b\u4f46\u200b\u6211\u200b\u4e0d\u200b\u77e5\u9053\u200b\u88c5\u200b\u5230\u54ea\u53bb\u200b\u4e86\u200b\uff0c\u200b\u8d77\u7801\u200b\u6211\u200b\u7ffb\u200b\u4e86\u200b\u4e00\u4e0b\u200b\u5b57\u4f53\u200b\u6587\u4ef6\u5939\u200b\u6ca1\u200b\u770b\u89c1\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6700\u540e\u200b\u7528\u200bpacman\u200b\u88c5\u200b\u4e86\u200b meslo\uff0c\u200b\u7136\u540e\u200b\u5728\u200b kitty \u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e2d\u52a0\u200b\u4e86\u200b\u4e00\u884c\u200bfont_family MesloLGS NF\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u4e86\u200b

            \u200b\u7ec8\u7aef\u200b\u7f8e\u5316\u200b\u53c2\u8003\u200b\u4e4b\u524d\u200b\u7684\u200b \u200b\u535a\u5ba2\u200b\u3002

            nix \u200b\u88c5\u200bautojump\u200b\u540c\u6837\u200b\u4e0d\u884c\u200b\uff0c\u200b\u5e76\u200b\u4e0d\u200b\u76f4\u63a5\u200b\u63d0\u4f9b\u200b j \u200b\u800c\u662f\u200b\u63d0\u4f9b\u200b autojump\uff0c\u200b\u5e76\u4e14\u200b\u597d\u50cf\u200b\u6ca1\u6709\u200b\u5305\u542b\u200b script \u200b\u6240\u4ee5\u200b\u8dd1\u200b\u4e0d\u901a\u200b\u3002

            \u200b\u6211\u200b\u6700\u540e\u200b\u9009\u62e9\u200b\u7528\u200b pacman \u200b\u4ece\u200b aur \u200b\u4e2d\u200b\u5b89\u88c5\u200b\uff1a

            # first install base-devel\nsudo pacman -S base-devel\n# then clone the repo from aur\ngit clone https://aur.archlinux.org/autojump.git\n# then cd into the repo\ncd autojump\n# then build the package\nmakepkg -si\n

            \u200b\u4e0a\u9762\u200b\u7684\u200b\u505a\u200b\u5b8c\u200b\u4e86\u200b\u4e4b\u540e\u200b\u8fd8\u4f1a\u200b\u63d0\u793a\u200b\u5c06\u200b\u4e00\u884c\u200b\u547d\u4ee4\u200b\u52a0\u5165\u200b bashrc \u200b\u4e2d\u200b\u3002

            \u200b\u63a5\u4e0b\u6765\u200b\u662f\u200b\u5b89\u88c5\u200b QQ\uff0c\u200b\u6211\u200b\u662f\u200b\u76f4\u63a5\u200b\u7528\u200b nix\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u4e2d\u6587\u200b\u521a\u200b\u5f00\u59cb\u200b\u663e\u793a\u200b\u4e0d\u200b\u51fa\u6765\u200b\uff0c\u200b\u5728\u200b wiki \u200b\u4e2d\u200b\u63d0\u793a\u200b\u4f7f\u7528\u200bwinetricks fakechinese\u200b\u53ef\u200b\u89e3\u51b3\u200b

            \u200b\u622a\u56fe\u200b\u5de5\u5177\u200b\u4f3c\u4e4e\u200b\u8981\u200b\u81ea\u5df1\u200b\u5907\u200b\uff0c\u200b\u6211\u9009\u200b\u4e86\u200bgrimblast

            "},{"location":"blog/arch-linux-day2/","title":"Arch Linux Day2","text":"

            Abstract

            \u200b\u5f00\u59cb\u200b\u6298\u817e\u200b Arch Linux \u200b\u7684\u200b\u7b2c\u4e8c\u5929\u200b\uff01\u200b\u4eca\u5929\u200b\u5c31\u662f\u200b\u4e00\u4e9b\u200b\u5e38\u89c4\u200b\u7684\u200b\u73af\u5883\u200b\u914d\u7f6e\u200b

            "},{"location":"blog/arch-linux-day2/#_1","title":"\u6742\u9879","text":""},{"location":"blog/arch-linux-day2/#_2","title":"\u7b80\u5355\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177","text":"

            \u200b\u7528\u200b bat \u200b\u66ff\u4ee3\u200b cat\uff0c\u200b\u7528\u200b eza \u200b\u4ee3\u66ff\u200b ls\uff0c\u200b\u5e76\u200b\u8bbe\u7f6e\u200b\u597d\u200b alias\u3002

            "},{"location":"blog/arch-linux-day2/#_3","title":"\u4ee3\u7406","text":"

            \u200b\u672c\u6765\u200b\u4ee3\u7406\u200b\u8fd9\u4e2a\u200b\u4e8b\u200b\u8fd8\u200b\u633a\u200b\u7b80\u5355\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b\u524d\u200b\u51e0\u4e2a\u200b\u6708\u200b clash \u200b\u4e00\u200b\u7cfb\u200b\u5168\u90fd\u200b\u5220\u5e93\u200b\u8dd1\u200b\u8def\u200b\u4e86\u200b\uff0c\u200b\u6240\u4ee5\u200b\u521a\u200b\u5f00\u59cb\u200b\u5c31\u200b\u8bd5\u56fe\u200b\u627e\u200b\u4e00\u4e2a\u200b\u66ff\u4ee3\u200b\u65b9\u6848\u200b

            \u200b\u627e\u5230\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u633a\u591a\u4eba\u200b\u63a8\u8350\u200b\u7684\u200b\u65b9\u6848\u200b\u662f\u200b\u4f7f\u7528\u200b nekoray\uff0c\u200b\u76f8\u5173\u200b\u7684\u200b\u6559\u7a0b\u200b\u6211\u200b\u89c9\u5f97\u200b\u5b98\u65b9\u200b\u7684\u200b\u6587\u6863\u200b\u8bf4\u200b\u7684\u200b\u4e0d\u7b97\u200b\u6e05\u695a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u53bb\u200b\u6cb9\u7ba1\u200b\u4e0a\u200b\u770b\u770b\u200b\u76f8\u5173\u200b\u7684\u200b\u89c6\u9891\u200b\uff0c\u200b\u6bd4\u8f83\u6e05\u695a\u200b

            \u200b\u4f46\u662f\u200b\u5bf9\u4e8e\u200b\u6211\u200b\u6765\u8bf4\u200b\uff0csockboom \u200b\u7ed9\u200b\u7684\u200b\u94fe\u63a5\u200b nekoray \u200b\u4e00\u76f4\u200b\u53ea\u80fd\u200b\u66f4\u65b0\u200b\u51fa\u200b nothing\uff0c\u200b\u6211\u200b\u4e5f\u200b\u4e0d\u200b\u592a\u200b\u6e05\u695a\u200b\u662f\u200b\u54ea\u91cc\u200b\u7684\u200b\u95ee\u9898\u200b\u53ef\u80fd\u200b\u8ba2\u9605\u200b\u94fe\u63a5\u200b\u8fd4\u56de\u200b\u7684\u200b\u683c\u5f0f\u200b nekoray \u200b\u5e76\u200b\u4e0d\u200b\u5b8c\u5168\u200b\u8ba4\u200b\uff1f\u200b\u603b\u4e4b\u200b\u6700\u540e\u200b\u653e\u5f03\u200b\u4e86\u200b\u8fd9\u4e2a\u200b\u65b9\u6848\u200b

            \u200b\u6700\u540e\u200b\u7684\u200b\u65b9\u6848\u200b\u662f\u200b\u4f7f\u7528\u200b clash\uff08\u200b\u6ca1\u9519\u200b\u8fd8\u662f\u200b\u5b83\u200b\uff09\u200b\u52a0\u200b webui\uff0cwebui \u200b\u5c31\u662f\u200b\u65f6\u4e0d\u65f6\u200b\u62ff\u6765\u200b\u5207\u4e2a\u200b\u8282\u70b9\u200b\u7684\u200b\uff0cclash \u200b\u53ea\u8981\u200b\u628a\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u5728\u200b~/.config/clash/config.yaml(1)\u200b\u91cc\u9762\u200b\u653e\u200b\u597d\u200b\uff0c\u200b\u7136\u540e\u200b\u8fd0\u884c\u200b clash \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002

            1. wget -O ~/.config/clash/config.yaml YOUR_SUBSCRIBE_URL

            \u200b\u4e3a\u4e86\u200b\u5168\u5c40\u200b\u5f00\u542f\u200b\u4ee3\u7406\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u5728\u200b/etc/environment \u200b\u91cc\u9762\u200b\u52a0\u4e0a\u200b

            http_proxy=http://127.0.0.1:7890\nhttps_proxy=http://127.0.0.1:7890\nall_proxy=http://127.0.0.1:7890\n
            "},{"location":"blog/arch-linux-day2/#python","title":"python \u200b\u73af\u5883","text":"

            python \u200b\u5e94\u8be5\u200b\u662f\u200b\u9884\u88c5\u200b\u7684\u200b

            anaconda \u200b\u901a\u8fc7\u200b\uff1a

            yay -S anaconda\n

            \u200b\u5b89\u88c5\u200b

            \u200b\u7136\u540e\u200b\u7528\u200b conda \u200b\u5b89\u88c5\u200b pip\uff0cpacman \u200b\u88c5\u200b\u7684\u200b pip \u200b\u7591\u4f3c\u200b\u8ddf\u200b conda \u200b\u914d\u5408\u200b\u5f97\u200b\u4e0d\u662f\u200b\u5f88\u200b\u597d\u200b

            VSCode \u200b\u4e5f\u200b\u4e00\u5e76\u200b\u88c5\u200b\u4e86\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/","title":"Arch Linux + Hyprland \u200b\u5b89\u88c5\u200b\u5168\u200b\u6d41\u7a0b","text":"

            Abstract

            \u200b\u4eca\u5929\u200b\u5f88\u200b\u4e0d\u5e78\u200b\u7684\u200b\u7ecf\u5386\u200b\u4e86\u200b\u7b2c\u4e8c\u200b\u548c\u200b\u7b2c\u4e09\u6b21\u200b\u7684\u200b\u91cd\u88c5\u7cfb\u7edf\u200b\ud83d\ude07\uff0c\u200b\u5728\u200b\u95f4\u9699\u200b\u51b3\u5b9a\u200b\u628a\u200b\u4e00\u200b\u6574\u4e2a\u200b\u6d41\u7a0b\u200b\u5199\u200b\u4e0b\u6765\u200b\uff0c\u200b\u4f9b\u200b\u5927\u5bb6\u200b\uff08\u200b\u4ee5\u53ca\u200b\u4ee5\u540e\u200b\u7684\u200b\u6211\u200b\uff09\u200b\u53c2\u8003\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_1","title":"\u542f\u52a8\u76d8","text":"
            • \u200b\u524d\u5f80\u200b arch linux \u200b\u5b98\u7f51\u200b\u4e0b\u8f7d\u200b\u6700\u65b0\u200b\u955c\u50cf\u200b\uff0c\u200b\u540e\u7f00\u200b iso
            • \u200b\u968f\u673a\u200b\u9009\u200b\u4e00\u4e2a\u200b\u70e7\u5f55\u200b\u5de5\u5177\u200b\uff08\u200b\u6700\u200b\u5e38\u89c1\u200b\u7684\u200b ecther\uff09\u200b\u548c\u200b\u4e00\u4e2a\u200b\u7a7a\u200b\u7684\u200b U \u200b\u76d8\u200b/\u200b\u79fb\u52a8\u786c\u76d8\u200b
            • \u200b\u9009\u62e9\u200b\u4e0b\u8f7d\u200b\u7684\u200b iso \u200b\u6587\u4ef6\u200b\u548c\u200b\u63d2\u8fdb\u53bb\u200b\u7684\u200b\u542f\u52a8\u76d8\u200b\uff0c\u200b\u70e7\u5f55\u200b
            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_2","title":"\u4ece\u200b\u542f\u52a8\u76d8\u200b\u542f\u52a8","text":"

            \u200b\u91cd\u542f\u200b\u7b14\u8bb0\u672c\u200b\u6309\u200b f2 \u200b\u8fdb\u5165\u200b bios\uff0c\u200b\u5173\u95ed\u200b secure boot\uff08\u200b\u53ef\u80fd\u200b\u9700\u8981\u200b\u5148\u200b\u8bbe\u7f6e\u200b\u5bc6\u7801\u200b\u624d\u80fd\u200b\u5173\u200b\uff09\uff0c\u200b\u9009\u62e9\u200b\u4f18\u5148\u200b\u4ece\u200b\u542f\u52a8\u76d8\u200b\u542f\u52a8\u200b\u800c\u200b\u975e\u200b ssd \u200b\u4e0a\u200b\u7684\u200b windows

            \u200b\u4fdd\u5b58\u200b\u5e76\u200b\u9000\u51fa\u200b

            \u200b\u63a5\u4e0b\u6765\u200b\u5c31\u200b\u4f1a\u200b\u8fdb\u53bb\u200b\u542f\u52a8\u76d8\u200b\u4e0a\u200b\u7684\u200b\u7cfb\u7edf\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u7cfb\u7edf\u200b\u662f\u200b\u62ff\u6765\u200b\u7ed9\u200b\u6211\u4eec\u200b\u5b89\u88c5\u200b\u7528\u200b\u7684\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_3","title":"\u51c6\u5907\u200b\u5de5\u4f5c","text":"

            \u200b\u8fdb\u5165\u200b\u542f\u52a8\u76d8\u200b\u7684\u200b\u7ec8\u7aef\u200b

            \u200b\u65e0\u7ebf\u7f51\u200b\u7684\u8bdd\u200b\uff0c\u200b\u9996\u5148\u200b\u7528\u200b iwctl \u200b\u8054\u7f51\u200b\uff0c\u200b\u53c2\u8003\u200b \u200b\u8fd9\u7bc7\u200b \uff0c\u200b\u6709\u7ebf\u200b\u4e0d\u200b\u9700\u8981\u200b\u8fd9\u200b\u4e00\u6b65\u200b

            \u200b\u6b64\u65f6\u200b curl baidu.com \u200b\u5e94\u8be5\u200b\u662f\u200b\u901a\u200b\u7684\u200b

            \u200b\u7136\u540e\u200b\u8fd8\u200b\u9700\u8981\u200b\u4ee3\u7406\u200b\uff08\u200b\u6216\u8005\u200b\u6362\u6e90\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\uff1f\u200b\u6211\u200b\u4e00\u76f4\u200b\u662f\u200b\u4ee3\u7406\u200b\uff09\uff0c\u200b\u5728\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u8bbe\u5907\u200b\u4e0a\u200b\u5f00\u542f\u200b clash \u200b\u7684\u200b\u5141\u8bb8\u200b\u5c40\u57df\u7f51\u200b\u8054\u673a\u200b\uff0c\u200b\u5e76\u4e14\u200b\u8bb0\u4f4f\u200b\u8be5\u200b\u8bbe\u5907\u200b\u7684\u200b ip \u200b\u548c\u200b\u7aef\u53e3\u200b\uff08\u200b\u4e00\u822c\u200b\u662f\u200b 7890 \u200b\u7aef\u53e3\u200b\uff09

            \u200b\u7136\u540e\u200b\u7528\u200b\u73af\u5883\u53d8\u91cf\u200b\u8bbe\u7f6e\u200b\u4ee3\u7406\u200b\uff0c\u200b\u6211\u200b\u4e00\u822c\u200b\u8bbe\u7f6e\u200b http_proxy,https_proxy,all_proxy \u200b\u4e09\u4e2a\u200b\uff0c\u200b\u683c\u5f0f\u200b\u4e3a\u200b

            export http_proxy=http://ip:7890 https_proxy=...\n

            \u200b\u6b64\u65f6\u200b curl google.com \u200b\u5e94\u8be5\u200b\u662f\u200b\u901a\u200b\u7684\u200b

            \u200b\u7136\u540e\u200b vim /etc/pacman.conf \u200b\u628a\u200b\u5e76\u884c\u200b\u4e0b\u8f7d\u200b\u7684\u200b\u6ce8\u91ca\u200b\u53bb\u6389\u200b\uff0c\u200b\u5f00\u542f\u200b\u5e76\u884c\u200b\u4e0b\u8f7d\u200b

            \u200b\u6700\u540e\u200b archinstall \u200b\u5f00\u59cb\u200b\u5b89\u88c5\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#archinstall","title":"archinstall","text":"

            Wanrning

            \u200b\u5982\u679c\u200b archinstall \u200b\u540e\u5361\u200b\u5728\u200b\u4e86\u200b\u67d0\u4e2a\u200b reflector \u200b\u90a3\u91cc\u200b\u52a8\u200b\u4e0d\u4e86\u200b\u7684\u8bdd\u200b\uff0c\u200b\u8bd5\u8bd5\u200b

            systemctl mask reflector.service\n
            \u200b\u6216\u8005\u200b
            systemctl stop reflector\n

            \u200b\u8fdb\u5165\u200b archinstall \u200b\u8bbe\u7f6e\u200b\u9875\u9762\u200b

            mirrors \u200b\u8fdb\u53bb\u200b\u7b2c\u4e00\u9879\u200b\u7136\u540e\u200b\u9009\u62e9\u200b\u5730\u533a\u200b\u5c31\u200b\u597d\u200b\uff0c\u200b\u6211\u200b\u9009\u62e9\u200b\u4e2d\u56fd\u200b\uff0c\u200b\u5b8c\u6bd5\u200b\u540e\u200b locales \u200b\u4e5f\u200b\u4e00\u5e76\u200b\u88ab\u200b defined \u200b\u4e86\u200b

            disk configuration \u200b\u8fdb\u5165\u200b\u540e\u200b\u9009\u62e9\u200b\u7b2c\u4e00\u9879\u200b\u6700\u5927\u5316\u200b\u5229\u7528\u200b\uff0c\u200b\u7136\u540e\u200b\u9009\u62e9\u200b\u4f60\u200b\u60f3\u8981\u200b\u5b89\u88c5\u200b\u7684\u200b\u76d8\u200b\uff0c\u200b\u6587\u4ef6\u7cfb\u7edf\u200b\u6211\u9009\u200b btrfs\uff0c\u200b\u540e\u7eed\u200b\u7684\u200b\u9009\u9879\u200b\u90fd\u200b\u662f\u200b\u9ed8\u8ba4\u200b

            Bug

            \u200b\u6b64\u5904\u200b\u6211\u200b\u4e0d\u200b\u77e5\u9053\u200b\u4e3a\u4ec0\u4e48\u200b\u662f\u200b\u65e0\u6cd5\u200b\u9009\u62e9\u200b\u7535\u8111\u200b\u5185\u90e8\u200b\u7684\u200b\u76d8\u200b\u800c\u200b\u53ea\u80fd\u200b\u9009\u62e9\u200b\u8fd9\u4e2a\u200b\u5b89\u88c5\u200b\u4ecb\u8d28\u200b\uff0c\u200b\u6211\u200b\u8fd8\u200b\u4e0d\u200b\u77e5\u9053\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u73b0\u5728\u200b\u6211\u200b\u7684\u200b\u7cfb\u7edf\u200b\u5c31\u200b\u88c5\u200b\u5728\u200b\u5f53\u65f6\u200b\u7684\u200b\u5b89\u88c5\u200b\u4ecb\u8d28\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u4e00\u5757\u200b\u79fb\u52a8\u786c\u76d8\u200b\u4e0a\u9762\u200b

            \u200b\u53ef\u4ee5\u200b\u4e0d\u200b\u52a0\u200b root password \u200b\u53ea\u8981\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b user \u200b\u5e76\u4e14\u200b\u52a0\u5165\u200b sudo \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b

            profile \u200b\u9009\u62e9\u200b desktop \uff0c hyprland\uff0c\u200b\u540e\u7eed\u200b\u9009\u9879\u200b\u4e2d\u200b\u552f\u4e00\u200b\u6ce8\u610f\u200b\u7684\u200b\u662f\u200b\u663e\u5361\u200b\u9a71\u52a8\u200b\u4f7f\u7528\u200b\u5f00\u6e90\u200b\u9a71\u52a8\u200b\u8fd8\u662f\u200b n \u200b\u5361\u200b\u4e13\u6709\u200b\u9a71\u52a8\u200b\uff0cn \u200b\u5361\u200b\u4e13\u6709\u200b\u9a71\u52a8\u200b\u66f4\u200b\u5f3a\u5927\u200b\u4e00\u70b9\u200b\u4f46\u662f\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u6709\u4f4d\u200b\u672a\u77e5\u200b\u7684\u200b\u95ee\u9898\u200b\uff08\u200b\u517c\u5bb9\u6027\u200b\u4e0d\u597d\u200b\uff09

            network configuration \u200b\u9009\u62e9\u200b use network management

            timzezone \u200b\u9009\u200b\u4e0a\u6d77\u200b

            optional repo \u200b\u9009\u62e9\u200b multilib

            \u200b\u7136\u540e\u200b\u5b89\u88c5\u200b

            \u200b\u7ed3\u675f\u200b\u540e\u200b post-installation configuration \u200b\u76f4\u63a5\u200b\u9009\u200b no \u200b\u7136\u540e\u200b reboot \u200b\u91cd\u542f\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_4","title":"\u521d\u6b65\u200b\u914d\u7f6e","text":""},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#hyprland","title":"hyprland \u200b\u672c\u8eab","text":"

            \u200b\u8fdb\u5165\u200b\u540e\u200b super+q\uff08win+q\uff09\u200b\u547c\u200b\u51fa\u200b\u7ec8\u7aef\u200b

            \u200b\u9996\u5148\u200b\u4fee\u6539\u200b~/.confi/hypr/hyperlnd.conf

            \u200b\u628a\u200b autogenerated \u200b\u90a3\u200b\u4e00\u884c\u200b\u6ce8\u91ca\u200b\u6389\u200b\uff0c\u200b\u53bb\u6389\u200b\u9876\u90e8\u200b\u901a\u77e5\u200b\u680f\u200b

            \u200b\u628a\u200b monitor \u200b\u7684\u200b\u6700\u540e\u200b\u4e00\u4e2a\u200b auto\uff08\u200b\u7f29\u653e\u200b\u500d\u6570\u200b\uff09\u200b\u6539\u6210\u200b 1\uff0c\u200b\u9000\u51fa\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_5","title":"\u8054\u7f51","text":"

            \u200b\u4e0d\u200b\u63a8\u8350\u200b\u7ee7\u7eed\u200b\u4f7f\u7528\u200b iwctl\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u7528\u200b\u4e86\u200b\u4ee5\u540e\u200b\u8fde\u4e0d\u4e0a\u200b\u5e76\u4e14\u200b\u5b83\u200b\u641c\u200b\u4e0d\u5230\u200b\u70ed\u70b9\u200b\uff0c\u200b\u5982\u679c\u200b\u8981\u200b\u7528\u200b\u7684\u8bdd\u200b\u8981\u200b\u8bb0\u5f97\u200b\u5148\u200b\u7528\u200b systemctl start iwd \u200b\u5f00\u542f\u200b daemon

            \u200b\u4f7f\u7528\u200b nmcli\uff0c\u200b\u6559\u7a0b\u200b\u7f51\u4e0a\u200b\u90fd\u200b\u662f\u200b\uff0c\u200b\u6211\u7528\u200b\u7684\u200b\u662f\u200b

            nmcli dev wifi connect ZJUWLAN\n

            \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b

            \u200b\u7136\u540e\u200b\u4e00\u6837\u200b\u7684\u200b\u4ee3\u7406\u200b\uff0c\u200b\u6d4b\u8bd5\u200b baidu \u200b\u548c\u200b google \u200b\u7684\u200b\u8fde\u901a\u6027\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#pacman","title":"Pacman\u200b\u8bbe\u7f6e","text":"

            \u200b\u5176\u5b9e\u200b\u9700\u8981\u200b\u6539\u5f97\u200b\u4e0d\u200b\u591a\u200b\uff0c\u200b\u4e4b\u524d\u200b\u63d0\u5230\u200b\u7684\u200b\u5e76\u884c\u200b\u4e0b\u8f7d\u200b\uff0c\u200b\u8fd8\u6709\u200bColor\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u50cf\u200b\u5f00\u542f\u200b

            \u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u52a0\u5165\u200b\u4e00\u884c\u200bILOveCandy\u200b\u6765\u200b\u628a\u200b\u8fdb\u5ea6\u6761\u200b\u5207\u6362\u200b\u6210\u200bpacman\u200b\u7279\u6709\u200b\u7684\u200b\u5403\u200b\u8c46\u5b50\u200b\u6837\u5f0f\u200b

            \u200b\u63a5\u4e0b\u6765\u200b\u662f\u200b\u6362\u6e90\u200b\uff0c\u200b\u9996\u5148\u200b\u5b89\u88c5\u200breflector(1)

            1. extra/reflector 2023-1 A Python 3 module and script to retrieve and filter the latest Pacman mirror list.
            sudo pacman -S reflector\n

            \u200b\u7136\u540e\u200b\u5907\u4efd\u200b

            sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak\n

            \u200b\u7136\u540e\u200b\u4f7f\u7528\u200b\u8be5\u200b\u6307\u4ee4\u200b\u5bfb\u627e\u200b\u5341\u4e2a\u200b\u6700\u5feb\u200b\u7684\u200b\u6e90\u200b\uff1a

            sudo reflector --verbose --latest 10 --country China --protocol http --sort rate --save /etc/pacman.d/mirrorlist\n

            \u200b\u6700\u540e\u200b\u66f4\u65b0\u200b\u4e00\u4e0b\u200bpacman

            sudo pacman -Sy\n
            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#shell","title":"shell \u200b\u5207\u6362","text":"
            sudo pacman -S zsh firefox ttf-meslo-nerd git\nchsh -s zsh\n

            \u200b\u7136\u540e\u200b\u5207\u6362\u200b kitty \u200b\u7684\u200b\u9ed8\u8ba4\u200b\u5b57\u4f53\u200b

            \u200b\u5728\u200b~/.config/kitty/kitty.conf \u200b\u4e2d\u200b\u52a0\u5165\u200b

            font_family MesloLGS NF\n

            \u200b\u7136\u540e\u200b\u53c2\u8003\u200b\u6211\u200b\u7684\u200b\u8fd9\u7bc7\u200b \u200b\u535a\u5ba2\u200b \u200b\u8fdb\u884c\u200b\u7f8e\u5316\u200b\uff0c\u200b\u4f7f\u7528\u200b firefox \u200b\u6253\u5f00\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u590d\u5236\u200b\u547d\u4ee4\u200b

            \u200b\u6211\u200b\u662f\u200b\u8dd1\u200b\u5b8c\u200b powerlevel10k \u200b\u90a3\u200b\u4e00\u6bb5\u200b\u540e\u200b\u76f4\u63a5\u200b\u4ee4\u5f00\u200b\u4e00\u4e2a\u200b\u7ec8\u7aef\u200b\u8fdb\u5165\u200b zsh \u200b\u5f00\u59cb\u200b\u521d\u59cb\u5316\u200b powerlevel10k \u200b\u4e86\u200b

            \u200b\u65b0\u200b\u7684\u200b shell \u200b\u4e2d\u200b proxy \u200b\u53c8\u200b\u5931\u6548\u200b\u4e86\u200b\uff0c\u200b\u76f4\u63a5\u200b\u628a\u200b export \u200b\u90a3\u200b\u4e00\u884c\u200b\u5728\u200b zshrc \u200b\u4e2d\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b proxy \u200b\u7684\u200b alias\uff0c\u200b\u6b64\u540e\u200b\u5c31\u200b\u7528\u200b proxy \u200b\u76f4\u63a5\u200b\u542f\u52a8\u200b\u4ee3\u7406\u200b\uff0c\u200b\u76f4\u5230\u200b\u6211\u4eec\u200b\u8dd1\u200b\u8d77\u6765\u200b\u672c\u200b\u8ba1\u7b97\u673a\u200b\u7684\u200b\u4ee3\u7406\u200b

            \u200b\u65b0\u200b\u7684\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\u7ee7\u7eed\u200b\u5b8c\u6210\u200b\u7ec8\u7aef\u200b\u7684\u200b\u4f18\u5316\u200b

            \u200b\u5176\u4e2d\u200b autojump \u200b\u4f4d\u4e8e\u200b aur \u200b\u4e2d\u200b\uff0c\u200b\u901a\u8fc7\u200b

            # first install base-devel\nsudo pacman -S base-devel\n# then clone the repo from aur\ngit clone https://aur.archlinux.org/autojump.git\n# then cd into the repo\ncd autojump\n# then build the package\nmakepkg -si\n

            \u200b\u5b89\u88c5\u200b\uff0c\u200b\u5e76\u200b\u4f9d\u7167\u200b\u63d0\u793a\u200b\u628a\u200b\u54cd\u5e94\u200b\u547d\u4ee4\u200b\u8f93\u5165\u200b.zshrc

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_6","title":"\u8f93\u5165\u6cd5","text":"
            sudo pacman -S fcitx5-im fcitx5-chinese-addons\n

            Warning

            fcitx5-im \u200b\u5185\u90e8\u200b\u5305\u542b\u200b\u56db\u4e2a\u200b\u5305\u200b\uff0c\u200b\u6211\u200b\u7684\u200b\u5efa\u8bae\u200b\u662f\u200b\u5168\u90fd\u200b\u4e0b\u200b\uff0c\u200b\u6211\u200b\u4e4b\u524d\u200b\u53ea\u4e0b\u200b\u4e86\u200b\u524d\u200b\u4e24\u4e2a\u200b\u7ed3\u679c\u200b qq\uff0cvscode \u200b\u4e00\u7c7b\u200b\u7684\u200b xwayland \u200b\u7684\u200b\u7a0b\u5e8f\u200b\u6b7b\u6d3b\u200b\u6ca1\u6cd5\u7528\u200b\u8f93\u5165\u6cd5\u200b\uff0c\u200b\u6211\u200b\u628a\u200b\u540e\u200b\u4e24\u4e2a\u200b\u5305\u200b\u52a0\u88c5\u200b\u56de\u53bb\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b

            \u200b\u5148\u8dd1\u200b

            fcitx5 --replace -d\n

            Bug

            \u200b\u5bf9\u200b\u6211\u200b\u800c\u8a00\u200b\u6b64\u5904\u200b\u4f1a\u200b\u6709\u200b\u4e00\u4e2a\u200b DBus call error\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u4e09\u4e2a\u200b\uff0c\u200b\u4f46\u200b\u5176\u5b9e\u200b\u4e0d\u7528\u200b\u7ba1\u200b\uff0c\u200b\u867d\u7136\u200b\u6709\u200b\u8fd9\u4e2a\u200b error \u200b\u4f46\u662f\u200b\u8f93\u5165\u6cd5\u200b\u8fd8\u662f\u200b\u7167\u6837\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u7684\u200b\uff0c\u200b\u6211\u200b\u4e24\u6b21\u200b\u91cd\u88c5\u7cfb\u7edf\u200b\u5c31\u662f\u200b\u56e0\u4e3a\u200b\u65e0\u6cd5\u200b\u53bb\u6389\u200b\u8fd9\u4e2a\u200b error \uff0c\u200b\u8fd8\u200b\u4ee5\u4e3a\u200b\u8f93\u5165\u6cd5\u200b\u5c31\u200b\u8dd1\u4e0d\u4e86\u200b\u4e86\u200b\uff0c\u200b\u91cd\u88c5\u200b\u662f\u200b\u4e3a\u4e86\u200b\u4ece\u200b nvidia \u200b\u7684\u200b\u4e13\u6709\u200b\u9a71\u52a8\u200b\u6362\u200b\u5230\u200b\u5f00\u6e90\u200b\u9a71\u52a8\u200b\u770b\u770b\u200b\u80fd\u200b\u4e0d\u80fd\u200b\u89e3\u51b3\u95ee\u9898\u200b\uff0c\u200b\u7b54\u6848\u200b\u662f\u200b\u4e0d\u80fd\u200b\ud83d\ude07

            \u200b\u542f\u52a8\u200b fcitx5-configtool\uff0c\u200b\u53bb\u6389\u200b only show current languages,\u200b\u6ed1\u200b\u5230\u5e95\u200b\u53cc\u51fb\u200b pinyin\uff0capply

            \u200b\u4e0d\u51fa\u610f\u5916\u200b\u6b64\u65f6\u200b ctrl+space \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5207\u6362\u200b\u5230\u200b\u8f93\u5165\u6cd5\u200b\u4e86\u200b\uff0c\u200b\u867d\u7136\u200b\u770b\u8d77\u6765\u200b\u5168\u662f\u200b\u4e71\u7801\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u9700\u8981\u200b\u4e2d\u6587\u200b\u73af\u5883\u200b

            \u200b\u5b89\u88c5\u200b\u4e2d\u6587\u5b57\u4f53\u200b

            sudo pacman -S noto-fonts-cjk\n

            \u200b\u5728\u200b/etc/locale.gen \u200b\u4e2d\u200b\u53bb\u6389\u200b zh_CN.UTF8 \u200b\u90a3\u200b\u4e00\u884c\u200b\u7684\u200b\u6ce8\u91ca\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u540e\u200b\u6267\u884c\u200b locale-gen \u200b\u6307\u4ee4\u200b\uff0c\u200b\u7136\u540e\u200b\u91cd\u542f\u200b

            \u200b\u73b0\u5728\u200b\u53ea\u8981\u200b\u6211\u4eec\u200b\u50cf\u200b\u4e0a\u9762\u200b\u4e00\u6837\u200b\u542f\u52a8\u200b fcitx5 --replace -d \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5207\u6362\u200b\u8f93\u5165\u6cd5\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5427\u200b\u8fd9\u200b\u4e00\u9879\u200b\u96c6\u6210\u200b\u8fdb\u200b hyprland \u200b\u542f\u52a8\u9879\u200b\u4e2d\u200b

            hyprland.conf
            exec-once=fcitx5 --replace -d\n

            \u200b\u6309\u7167\u200b\u4e00\u822c\u200b\u7684\u200b\u6559\u7a0b\u200b\uff0c\u200b\u8fd8\u200b\u9700\u8981\u200b\u6dfb\u52a0\u200b\u4ee5\u4e0b\u200b\u73af\u5883\u53d8\u91cf\u200b\u5230\u200b/etc/environment \u200b\u4e2d\u200b

            QT_IM_MODULE=fcitx\nXMODIFIERS=@im=fcitx\nSDL_MOULE=fcitx\n

            \u200b\u4f5c\u7528\u200b\u662f\u200b\u4ec0\u4e48\u200b\u6682\u65f6\u200b\u8fd8\u200b\u4e0d\u200b\u77e5\u9053\u200b

            \u200b\u91cd\u542f\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\u5df2\u7ecf\u200b\u81ea\u52a8\u200b\u542f\u52a8\u200b\u4e86\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#qq","title":"QQ","text":"

            qq \u200b\u5e76\u200b\u4e0d\u200b\u5728\u200b extra \u200b\u76ee\u5f55\u200b\u4e2d\u200b\uff0c\u200b\u800c\u662f\u200b\u8ddf\u200b autojump \u200b\u4e00\u6837\u200b\u5728\u200b aur \u200b\u4e2d\u200b\uff0c\u200b\u4e3a\u4e86\u200b\u4ece\u200b aur \u200b\u4e2d\u200b\u5b89\u88c5\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u50cf\u200b autojump \u200b\u90a3\u6837\u200b clone repo \u200b\u7136\u540e\u200b makepkg\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4e00\u4e9b\u200b\u81ea\u52a8\u5316\u200b\u5de5\u5177\u200b\u6765\u200b\u5e2e\u200b\u6211\u200b\u4e13\u95e8\u200b\u505a\u200b\u8fd9\u4ef6\u200b\u4e8b\u200b\uff0c\u200b\u6bd4\u5982\u200b yay \u200b\u6216\u8005\u200b paru\uff08\u200b\u7528\u200b rust \u200b\u91cd\u5199\u200b\u7684\u200b\uff09

            \u200b\u5b89\u88c5\u200b yay
            git clone https://aur.archlinux.org/yay.git\ncd yay\nmakepkg -si\n

            \u200b\u7136\u540e\u200b\u7528\u200b yay \u200b\u5b89\u88c5\u200b qq

            yay -S qq\n

            \u200b\u4e24\u4e2a\u200b\u9009\u9879\u200b\u4e00\u822c\u200b\u9009\u200b None

            \u200b\u5b89\u88c5\u200b\u5b8c\u6bd5\u200b\u540e\u200b\u7528\u200b linuxqq \u200b\u547d\u4ee4\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u542f\u52a8\u200b qq \u200b\u4e86\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#python","title":"python \u200b\u73af\u5883","text":"

            \u200b\u9996\u5148\u200b\u7528\u200b yay \u200b\u5b89\u88c5\u200b anaconda

            yay -S anaconda\n
            \u200b\u5b89\u88c5\u200b\u5b8c\u6210\u200b\u540e\u200b\u6309\u7167\u200b\u6307\u793a\u200b activate \u200b\u4e86\u200b\u4e4b\u540e\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5728\u200b\u547d\u4ee4\u884c\u200b\u4f7f\u7528\u200b conda \u200b\u4e86\u200b

            \u200b\u7136\u540e\u200b\u5982\u5e38\u200b\u4f7f\u7528\u200b\u5373\u53ef\u200b\uff0c\u200b\u6211\u200b\u7684\u200b pip \u200b\u4e5f\u200b\u662f\u200b\u7528\u200b conda \u200b\u88c5\u200b\u7684\u200b\u56e0\u4e3a\u200b pacman \u200b\u88c5\u200b\u7684\u200b\u4f3c\u4e4e\u200b\u548c\u200b conda \u200b\u914d\u5408\u200b\u5f97\u200b\u4e0d\u662f\u200b\u5f88\u200b\u597d\u200b

            IDE \u200b\u9009\u62e9\u200b code

            sudo pacman -S code\n
            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_7","title":"\u547d\u4ee4\u884c\u200b\u5de5\u5177","text":"

            \u200b\u6709\u4e9b\u200b\u7528\u200b rust \u200b\u91cd\u5199\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b\u90fd\u200b\u8fd8\u200b\u633a\u597d\u7528\u200b\u7684\u200b

            • bottom
            • eza
            • bat

            \u200b\u5e76\u4e14\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b alias \u200b\u65e0\u611f\u200b\u4ee3\u66ff\u200b\u5b83\u4eec\u200b\u7684\u200b\u539f\u7248\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_8","title":"\u4ee3\u7406","text":"

            \u200b\u5f88\u200b\u4e0d\u5e78\u200b\u7684\u200b\u662f\u200b clash \u200b\u4e00\u200b\u7cfb\u200b\u524d\u4e0d\u4e45\u200b\u5220\u5e93\u200b\u8dd1\u200b\u8def\u200b\u4e86\u200b\uff0c\u200b\u4e0d\u8fc7\u200b\u8fd8\u6709\u200b\u4e00\u652f\u200b clash-verge-rev \u200b\u4ecd\u7136\u200b\u5728\u200b\u7ef4\u62a4\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4ece\u200b aur \u200b\u5b89\u88c5\u200b

            git clone https://aur.archlinux.org/clash-verge-rev-bin.git\ncd clash-verge-rev-bin\nmakepkg -si\n

            \u200b\u5b8c\u6210\u200b\u540e\u200b\u4f7f\u7528\u200b clash-verge \u200b\u542f\u52a8\u200b\u5373\u53ef\u200b\uff0c\u200b\u7528\u6cd5\u200b\u662f\u200b\u4f7f\u7528\u200b\u673a\u573a\u200b\u7ed9\u200b\u7684\u200b url

            \u200b\u4f46\u200b\u6211\u200b\u8c8c\u4f3c\u200b\u5f00\u542f\u200b\u4e86\u200b system proxy \u200b\u4e4b\u540e\u200b\u5176\u4ed6\u200b\u7684\u200b\u5e94\u7528\u200b\u4ecd\u7136\u200b\u6ca1\u6709\u200b\u76f4\u63a5\u200b\u8d70\u200b\u68af\u5b50\u200b\uff1f

            \u200b\u5bf9\u4e8e\u200b\u8fd9\u6837\u200b\u7684\u200b\u60c5\u51b5\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u624b\u52a8\u200b\u8bbe\u7f6e\u200b system proxy

            \u200b\u5728\u200b/etc/environment \u200b\u4e2d\u200b\u52a0\u5165\u200b

            http_proxy=http://127.0.0.1:7897\nhttps_proxy=http://127.0.0.1:7897\nall_proxy=http://127.0.0.1:7897\n

            \u200b\u91cd\u542f\u200b\u5b9e\u9a8c\u200b\u5373\u53ef\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_9","title":"\u5916\u200b\u63a5\u663e\u793a\u5668","text":"

            \u200b\u8fd9\u4e2a\u200b hyprland \u200b\u7684\u200b\u5b98\u7f51\u200b\u8bf4\u200b\u7684\u200b\u6bd4\u8f83\u6e05\u695a\u200b\u4e86\u200b\uff0ctldr\uff1a

            \u200b\u9996\u5148\u200b\u7528\u200b hyprctl monitors list \u200b\u5217\u51fa\u200b\u6240\u6709\u200b\u8fde\u63a5\u200b\u7684\u200b\u663e\u793a\u5668\u200b\uff0c\u200b\u627e\u5230\u200b\u4f60\u200b\u8981\u200b\u8bbe\u7f6e\u200b\u7684\u200b\u663e\u793a\u5668\u200b\u7684\u200b\u6807\u8bc6\u7b26\u200b\uff0c\u200b\u6bd4\u5982\u200b\u6211\u200b\u8fd9\u91cc\u200b\u662f\u200b HDMI-A-1

            \u200b\u7136\u540e\u200b\u5728\u200b~/.config/hypr/hyperland.conf \u200b\u4e2d\u200b\u4fee\u6539\u200b monitor \u200b\u7684\u200b\u914d\u7f6e\u200b \u200b\u6bd4\u5982\u200b\u6211\u200b\u7684\u200b\u7b2c\u4e8c\u5757\u200b\u5c4f\u5e55\u200b\u7684\u200b\u914d\u7f6e\u200b\u5c31\u662f\u200b

            monitor=HDMI-A-1,preferred,auto,1.666667\n
            \u200b\u66f4\u200b\u591a\u200b\u8bf8\u5982\u200b\u5237\u65b0\u7387\u200b\u8272\u6df1\u200b\u4e4b\u7c7b\u200b\u7684\u200b\u8bf7\u200b\u53c2\u8003\u200b\u5b98\u7f51\u200b

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_10","title":"\u622a\u56fe","text":"

            \u200b\u4f7f\u7528\u200b yay \u200b\u5b89\u88c5\u200b grimblast\uff0c\u200b\u5982\u679c\u200b\u6ca1\u6709\u200b wl-clipboard \u200b\u7684\u8bdd\u200b\uff0c\u200b\u8fd8\u200b\u9700\u8981\u200b\u7528\u200b Pacman \u200b\u6765\u200b\u5b89\u88c5\u200b wl-clipboard

            "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_11","title":"\u5176\u4ed6","text":"

            \u200b\u5176\u4ed6\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u5b89\u88c5\u200b\u7684\u200b\u5de5\u5177\u200b\u6709\u200b

            • neofetch
            • flatpak
            • preload
            "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/","title":"\u7528\u200b Docker \u200b\u642d\u5efa\u200b minisql \u200b\u73af\u5883","text":"

            Abstract

            \u200b\u4e00\u4e2a\u200b\u7b80\u6613\u200b\u7684\u200b\u6559\u7a0b\u200b\u6765\u200b\u4ecb\u7ecd\u200b\u5982\u4f55\u200b\u5728\u200b MacOS \u200b\u4e0a\u7528\u200b docker \u200b\u642d\u5efa\u200b minisql \u200b\u73af\u5883\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6709\u4eba\u200b\u8981\u200b\u95ee\u200b\u4e86\u200b\uff0c\u200b\u4e3a\u4ec0\u4e48\u200b\u4e0d\u200b\u76f4\u63a5\u200b\u672c\u5730\u200b\u90e8\u7f72\u200b\u5462\u200b\u3002 \u200b\u6211\u200b\u4e5f\u200b\u60f3\u200b\u672c\u5730\u200b\u90e8\u7f72\u200b\u554a\u200b\uff0c\u200b\u4f46\u662f\u200b\u7f16\u8bd1\u200b\u8d77\u6765\u200b\u7834\u4e8b\u200b\u592a\u591a\u200b\u4e86\u200b\ud83d\ude05\uff0c\u200b\u7d22\u6027\u200b\u8bd5\u200b\u4e00\u79cd\u200b\u8de8\u5e73\u53f0\u200b\u7684\u200b\u65b9\u6848\u200b\u3002

            \u200b\u73af\u5883\u200b

            MacOS: Ventura 13.4.1 Docker: 4.16.2 Ubuntu: 20.04

            "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#1","title":"1.\u200b\u542f\u52a8\u200b\u5bb9\u5668","text":""},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#11-docker","title":"1.1 \u200b\u4e0b\u8f7d\u200b Docker","text":"

            \u200b\u9996\u5148\u200b\u4f60\u200b\u8981\u200b\u6709\u200b docker \u200b\u8f6f\u4ef6\u200b\uff0c\u200b\u5148\u53bb\u200b\u5b98\u7f51\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u3002

            "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#12","title":"1.2 \u200b\u62c9\u53d6\u200b\u955c\u50cf","text":"

            \u200b\u542f\u52a8\u200b docker \u200b\u8f6f\u4ef6\u200b.\u200b\u6765\u5230\u200b\u547d\u4ee4\u884c\u200b\u4e2d\u200b\u8f93\u5165\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b\u6765\u62c9\u53d6\u200b ubuntu:20.04 \u200b\u955c\u50cf\u200b\uff08minisql \u200b\u5f53\u524d\u200b\u63a8\u8350\u200b\u90e8\u7f72\u200b\u5728\u200b ubuntu:20.04\uff09\uff1a

            docker pull ubuntu:20.04\n

            \u200b\u955c\u50cf\u200b

            \u200b\u955c\u50cf\u200b\uff08Image\uff09\u200b\u662f\u200b\u4e00\u4e2a\u200b\u9759\u6001\u200b\u7684\u200b\u3001\u200b\u53ea\u8bfb\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5b83\u200b\u5305\u542b\u200b\u4e86\u200b\u64cd\u4f5c\u7cfb\u7edf\u200b\u3001\u200b\u6587\u4ef6\u7cfb\u7edf\u200b\u548c\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u7684\u200b\u6240\u6709\u200b\u6587\u4ef6\u200b\u548c\u200b\u8bbe\u7f6e\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u6784\u5efa\u200b\u5bb9\u5668\u200b\u7684\u200b\u57fa\u7840\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u4f5c\u200b\u662f\u200b\u4e00\u4e2a\u200b\u6a21\u677f\u200b\u6216\u8005\u200b\u84dd\u56fe\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u901a\u8fc7\u200b Dockerfile \u200b\u6587\u4ef6\u200b\u5b9a\u4e49\u200b\u548c\u200b\u6784\u5efa\u200b\u7684\u200b\uff0cDockerfile \u200b\u4e2d\u200b\u5305\u542b\u200b\u4e86\u200b\u4e00\u7cfb\u5217\u200b\u6307\u4ee4\u200b\u548c\u200b\u914d\u7f6e\u200b\uff0c\u200b\u7528\u4e8e\u200b\u521b\u5efa\u200b\u955c\u50cf\u200b.\u200b\u955c\u50cf\u200b\u53ef\u4ee5\u200b\u5b58\u50a8\u200b\u5728\u200b Docker Registry \u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u955c\u50cf\u200b\u540d\u79f0\u200b\u548c\u200b\u6807\u7b7e\u200b\u6765\u200b\u552f\u4e00\u200b\u6807\u8bc6\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u4e0d\u53ef\u200b\u4fee\u6539\u200b\u7684\u200b\uff0c\u200b\u5982\u679c\u200b\u9700\u8981\u200b\u5bf9\u200b\u955c\u50cf\u200b\u8fdb\u884c\u200b\u66f4\u6539\u200b\uff0c\u200b\u9700\u8981\u200b\u91cd\u65b0\u200b\u6784\u5efa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u955c\u50cf\u200b\u3002

            docker imagesdocker pulldocker rmi

            \u200b\u4f7f\u7528\u200bdocker images\u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u5f53\u524d\u200b\u5df2\u6709\u200b\u7684\u200b\u955c\u50cf\u200b\u5217\u8868\u200b.\u200b\u8fd9\u200b\u5c06\u200b\u663e\u793a\u200b\u6240\u6709\u200b\u5df2\u200b\u4e0b\u8f7d\u200b\u548c\u200b\u6784\u5efa\u200b\u7684\u200b\u955c\u50cf\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5b83\u4eec\u200b\u7684\u200b\u76f8\u5173\u200b\u4fe1\u606f\u200b\uff0c\u200b\u5982\u200b\u955c\u50cf\u200b ID\u3001\u200b\u540d\u79f0\u200b\u3001\u200b\u6807\u7b7e\u200b\u3001\u200b\u5927\u5c0f\u200b\u7b49\u200b.

            \u200b\u4f7f\u7528\u200bdocker pull\u200b\u547d\u4ee4\u200b\u4ece\u200b Docker Registry \u200b\u4e2d\u62c9\u53d6\u200b\u955c\u50cf\u200b.\u200b\u5982\u679c\u200b\u4e0d\u200b\u6307\u5b9a\u200b\u6807\u7b7e\u200b\uff0c\u200b\u9ed8\u8ba4\u200b\u62c9\u53d6\u200b latest \u200b\u6807\u7b7e\u200b\u7684\u200b\u955c\u50cf\u200b.\u200b\u4f8b\u5982\u200b\uff0cdocker pull ubuntu:20.04\u200b\u5c06\u62c9\u53d6\u200b Ubuntu 20.04 \u200b\u955c\u50cf\u200b\u3002

            \u200b\u4f7f\u7528\u200bdocker rmi\u200b\u547d\u4ee4\u200b\u5220\u9664\u200b\u955c\u50cf\u200b.\u200b\u4f8b\u5982\u200b\uff0cdocker rmi ubuntu:20.04\u200b\u5c06\u200b\u5220\u9664\u200b Ubuntu 20.04 \u200b\u955c\u50cf\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b ID \u200b\u6307\u5b9a\u200b\u8981\u200b\u5220\u9664\u200b\u7684\u200b\u955c\u50cf\u200b\u3002

            "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#13","title":"1.3 \u200b\u542f\u52a8\u200b\u5bb9\u5668","text":"

            \u200b\u7528\u200bdocker run\u200b\u542f\u52a8\u200b\u4e00\u4e2a\u200b\u5bb9\u5668\u200b\uff0c\u200b\u53c2\u6570\u200b-it\u200b\u8868\u793a\u200b\u542f\u52a8\u200b\u5b8c\u540e\u200b\u76f4\u63a5\u200b\u542f\u52a8\u200b\u5bb9\u5668\u200b\u7684\u200b\u7ec8\u7aef\u200b\u4ee5\u4f9b\u200b\u64cd\u4f5c\u200b\uff0c-p\u200b\u8868\u793a\u200b\u7aef\u53e3\u6620\u5c04\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u628a\u200b loclahost:2333 \u200b\u6620\u5c04\u200b\u4e3a\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\uff0c--name\u200b\u540e\u63a5\u200b\u5bb9\u5668\u200b\u540d\u5b57\u200b\uff0cubuntu:20.04\u200b\u8868\u793a\u200b\u4f7f\u7528\u200b\u7684\u200b\u955c\u50cf\u200b\u3002

            docker run -it  -p 2333:22 --name minisql ubuntu:20.04\n
            \u200b\u6267\u884c\u200b\u5b8c\u200b\u547d\u4ee4\u200b\u5e94\u200b\u770b\u5230\u200b\u6211\u4eec\u200b\u4ee5\u200b root \u200b\u7528\u6237\u200b\u8fdb\u5165\u200b\u4e86\u200b\u5bb9\u5668\u200b\u7684\u200b\u7ec8\u7aef\u200b\uff1a

            \u200b\u7aef\u53e3\u6620\u5c04\u200b

            \u200b\u7aef\u53e3\u6620\u5c04\u200b\u662f\u200b\u4e00\u79cd\u200b\u5c06\u200b\u4e3b\u673a\u200b\uff08\u200b\u5bbf\u4e3b\u673a\u200b\uff09\u200b\u7aef\u53e3\u200b\u4e0e\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u7aef\u53e3\u200b\u8fdb\u884c\u200b\u7ed1\u5b9a\u200b\u7684\u200b\u6280\u672f\u200b.\u200b\u5b83\u200b\u5141\u8bb8\u200b\u4ece\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u7684\u200b\u7279\u5b9a\u200b\u7aef\u53e3\u200b\u8bbf\u95ee\u200b\u5bb9\u5668\u200b\u5185\u200b\u8fd0\u884c\u200b\u7684\u200b\u670d\u52a1\u200b\u6216\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u3002

            \u200b\u5728\u200b Docker \u200b\u4e2d\u200b\uff0c\u200b\u901a\u8fc7\u200b\u4f7f\u7528\u200b-p\u200b\u6216\u200b--publish\u200b\u53c2\u6570\u200b\u6765\u200b\u8fdb\u884c\u200b\u7aef\u53e3\u6620\u5c04\u200b.\u200b\u53c2\u6570\u200b\u7684\u200b\u683c\u5f0f\u200b\u4e3a\u200b\u4e3b\u673a\u200b\u7aef\u53e3\u200b\uff1a\u200b\u5bb9\u5668\u200b\u7aef\u53e3\u200b\uff0c\u200b\u5176\u4e2d\u200b\u4e3b\u673a\u200b\u7aef\u53e3\u200b\u662f\u200b\u60a8\u200b\u5e0c\u671b\u200b\u5728\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u66b4\u9732\u200b\u7684\u200b\u7aef\u53e3\u53f7\u200b\uff0c\u200b\u5bb9\u5668\u200b\u7aef\u53e3\u200b\u662f\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u670d\u52a1\u200b\u6240\u200b\u76d1\u542c\u200b\u7684\u200b\u7aef\u53e3\u53f7\u200b\u3002

            docker run -it -p 2333:22 --name minisql ubuntu:20.04\u200b\u547d\u4ee4\u200b\u5c06\u200b\u4e3b\u673a\u200b\u7684\u200b 2333 \u200b\u7aef\u53e3\u6620\u5c04\u200b\u5230\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b.\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u7684\u200b\u4efb\u4f55\u200b\u8bf7\u6c42\u200b\u53d1\u9001\u5230\u200b 2333 \u200b\u7aef\u53e3\u200b\u65f6\u200b\uff0c\u200b\u5c06\u200b\u88ab\u200b\u8f6c\u53d1\u200b\u5230\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\uff0c22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\u662f\u200b SSH \u200b\u4f7f\u7528\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u7aef\u53e3\u200b.\u200b\u56e0\u6b64\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u8bbf\u95ee\u200b\u4e3b\u673a\u200b\u7684\u200b 2333 \u200b\u7aef\u53e3\u200b\u6765\u200b\u8bbf\u95ee\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u8fd0\u884c\u200b\u7684\u200b SSH \u200b\u670d\u52a1\u200b\uff0c\u200b\u4ee5\u4fbf\u200b\u8fdb\u884c\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u548c\u200b\u64cd\u4f5c\u200b\u3002

            "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#2","title":"2.\u200b\u73af\u5883\u200b\u521d\u6b65\u200b\u8bbe\u7f6e","text":""},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#21","title":"2.1\uff08\u200b\u53ef\u200b\u9009\u200b\uff09\u200b\u6362\u6e90","text":"\u53ef\u80fd\u200b\u5b58\u5728\u200b\u7684\u200b\u95ee\u9898\u200b

            \u200b\u6709\u65f6\u5019\u200b\u76f4\u63a5\u200b\u6362\u6e90\u4f1a\u200b\u9047\u5230\u200b\u62a5\u9519\u200b\uff1a \u200b\u8fd9\u200b\u9700\u8981\u200b\u6211\u4eec\u200b\u5148\u200b\u4f7f\u7528\u200b http\uff0c\u200b\u8fd0\u884c\u200b\u5982\u4e0b\u200b\u547d\u4ee4\u200b\u6362\u200b http \u200b\u6e90\u200b\uff1a

            echo \"\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n\" > /etc/apt/sources.list\n
            \u200b\u8fd9\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b\u4e0b\u200b\u4e00\u6b65\u200b\u4e86\u200b\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u5e0c\u671b\u200b\u5728\u200b\u4e4b\u540e\u200b\u6362\u56de\u200b https \u200b\u6e90\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5728\u200b\u6267\u884c\u200b\u5b8c\u200b 2.2 \u200b\u540e\u200b\uff0c\u200b\u9700\u8981\u200b\u5148\u200b

            \u200b\u66f4\u65b0\u200b\u8bc1\u4e66\u200b\uff1a

            apt install --reinstall ca-certificates\n
            \u200b\u6362\u56de\u200b https \u200b\u6e90\u200b\uff1a
            echo \"\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n\" > /etc/apt/sources.list\n
            \u200b\u518d\u6b21\u200b\u66f4\u65b0\u200b apt\uff1a
            apt update\napt upgrade\n
            \u200b\u5373\u53ef\u200b\uff08\u200b\u8be5\u200b\u65b9\u6cd5\u200b\u6765\u81ea\u200b\u6b64\u200b\u535a\u5ba2\u200b)

            \u200b\u76f4\u63a5\u200b\u6267\u884c\u547d\u4ee4\u200b\u5373\u53ef\u200b

            cp /etc/apt/sources.list /etc/apt/sources.list.bak\necho \"\n    deb https://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\n    deb https://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\n    deb https://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\n    deb https://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n    \" > /etc/apt/sources.list\n

            \u200b\u6362\u6e90\u200b

            \u200b\u6362\u6e90\u200b\u662f\u200b\u6307\u200b\u5c06\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\uff08\u200b\u955c\u50cf\u200b\uff09\u200b\u66ff\u6362\u200b\u4e3a\u200b\u7279\u5b9a\u200b\u5730\u533a\u200b\u6216\u200b\u7f51\u7edc\u200b\u73af\u5883\u200b\u4e0b\u200b\u66f4\u200b\u5feb\u901f\u200b\u3001\u200b\u53ef\u9760\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b.\u200b\u8fd9\u662f\u200b\u4e3a\u4e86\u200b\u63d0\u9ad8\u200b\u8f6f\u4ef6\u5305\u200b\u7684\u200b\u4e0b\u8f7d\u901f\u5ea6\u200b\u3001\u200b\u89e3\u51b3\u200b\u7f51\u7edc\u200b\u8bbf\u95ee\u200b\u9650\u5236\u200b\u6216\u200b\u8bbf\u95ee\u200b\u7279\u5b9a\u200b\u5730\u533a\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u800c\u200b\u91c7\u53d6\u200b\u7684\u200b\u63aa\u65bd\u200b\u3002

            \u200b\u66f4\u6362\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\u7684\u200b\u5177\u4f53\u65b9\u6cd5\u200b\u4f1a\u56e0\u200b\u4e0d\u540c\u200b\u7684\u200b\u64cd\u4f5c\u7cfb\u7edf\u200b\u548c\u200b\u8f6f\u4ef6\u5305\u200b\u7ba1\u7406\u5de5\u5177\u200b\u800c\u200b\u6709\u6240\u200b\u5dee\u5f02\u200b.\u200b\u5728\u200b\u57fa\u4e8e\u200b Ubuntu \u200b\u7684\u200b Docker \u200b\u5bb9\u5668\u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7f16\u8f91\u200b /etc/apt/sources.list \u200b\u6587\u4ef6\u200b\uff0c\u200b\u5c06\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\u66ff\u6362\u200b\u4e3a\u200b\u56fd\u5185\u200b\u7684\u200b\u955c\u50cf\u200b\u6e90\u200b\uff0c\u200b\u5982\u200b\u6d59\u6c5f\u5927\u5b66\u200b\u3001\u200b\u6e05\u534e\u5927\u5b66\u200b\u7b49\u200b.\u200b\u8fd9\u6837\u4e00\u6765\u200b\uff0c\u200b\u901a\u8fc7\u200b\u5bb9\u5668\u200b\u4e2d\u200b\u7684\u200b apt-get \u200b\u6216\u200b apt \u200b\u547d\u4ee4\u200b\u5b89\u88c5\u200b\u8f6f\u4ef6\u200b\u65f6\u200b\uff0c\u200b\u5c06\u200b\u4ece\u200b\u56fd\u5185\u200b\u955c\u50cf\u200b\u6e90\u200b\u4e0b\u8f7d\u200b\u8f6f\u4ef6\u5305\u200b\uff0c\u200b\u63d0\u9ad8\u200b\u901f\u5ea6\u200b\u548c\u200b\u7a33\u5b9a\u6027\u200b\u3002

            "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#22","title":"2.2 \u200b\u5b89\u88c5\u200b\u5fc5\u8981\u200b\u5de5\u5177","text":"

            \u200b\u9996\u5148\u200b\u66f4\u65b0\u200b apt

            apt update\napt upgrade\n

            \u200b\u5b89\u88c5\u200b\u4e00\u4e9b\u200b\u5fc5\u8981\u200b\u7684\u200b\u5de5\u5177\u200b\uff1a

            apt install openssh-server vim git cmake gcc g++ gdb sudo\n

            "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#3-ssh-vscode","title":"3.\u200b\u914d\u7f6e\u200b SSH\uff0c\u200b\u4f7f\u7528\u200b VSCode \u200b\u5f00\u53d1","text":""},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#31","title":"3.1\uff08\u200b\u53ef\u200b\u9009\u200b\uff09\u200b\u521b\u5efa\u200b\u7528\u6237","text":"

            \u200b\u5982\u679c\u200b\u5e0c\u671b\u200b\u7528\u975e\u200b root \u200b\u7528\u6237\u200b\u767b\u9646\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5148\u200b\u521b\u5efa\u200b\u5e76\u200b\u8bbe\u7f6e\u200b\u4e00\u4e2a\u200b\u7528\u6237\u200b\uff1a

            useradd -m stormckey\npasswd stormckey\n
            \u200b\u8fd9\u91cc\u200b\u7684\u200b stormckey \u200b\u6362\u6210\u200b\u4f60\u200b\u81ea\u5df1\u200b\u8d77\u200b\u7684\u200b\u7528\u6237\u540d\u200b

            \u200b\u7ed9\u200b\u7528\u6237\u200b\u6dfb\u52a0\u200b sudo \u200b\u6743\u9650\u200b\uff0c\u200b\u9700\u8981\u200b\u5728\u200b/etc/sudoers\u200b\u6587\u4ef6\u200b\u4e2d\u200b# User privilege specification\u200b\u6dfb\u52a0\u200b\uff1a

            "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#32","title":"3.2 \u200b\u914d\u7f6e\u200b\u514d\u5bc6\u200b\u767b\u9646","text":"

            \u200b\u6765\u5230\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u7684\u200b\u53d1\u8d77\u8005\u200b\u7aef\u200b\uff08\u200b\u8fd9\u91cc\u200b\u5c31\u662f\u200b\u5bbf\u4e3b\u673a\u200b\uff09\uff0c\u200b\u6267\u884c\u200b\u4e0b\u9762\u200b\u547d\u4ee4\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u8f93\u5165\u200b paseephrase \u200b\u65f6\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff08\u200b\u4e3a\u7a7a\u200b\uff09

            ssh-keygen\n
            \u200b\u6765\u5230\u200b\u63d0\u793a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u590d\u5236\u200b id_rsa.pub \u200b\u7684\u200b\u5185\u5bb9\u200b\uff0c\u200b\u5c06\u200b\u5b83\u200b\u5199\u5165\u200b\u88ab\u200b\u8fde\u63a5\u7aef\u200b\uff08\u200b\u8fd9\u91cc\u200b\u662f\u200b\u5bb9\u5668\u200b\uff09\u200b\u7684\u200b/home/stormckey/.ssh/authorized_keys\u200b\u6587\u4ef6\u200b\u4e2d\u200b

            \u200b\u53e6\u200b\u4e00\u79cd\u200b\u66f4\u200b\u65b9\u4fbf\u200b\u7684\u200b\u65b9\u6848\u200b

            \u200b\u5728\u200b\u53ef\u4ee5\u200b\u7528\u200b\u5bc6\u7801\u200b\u767b\u5f55\u200b\u4e86\u200b\u4e4b\u540e\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200bssh-copy-id\u200b\u547d\u4ee4\u200b\u4e00\u952e\u200b\u628a\u200b\u5bc6\u94a5\u200b\u653e\u7f6e\u200b\u5230\u200b\u670d\u52a1\u5668\u200b\u5e76\u200b\u505a\u597d\u200b\u76f8\u5e94\u200b\u7684\u200b\u8bbe\u7f6e\u200b

            ssh-copy-id -i ~/.ssh/id_rsa.pub stormckey@localhost -p 2333\n

            \u200b\u63a5\u7740\u200b\u914d\u7f6e\u200b\u5bb9\u5668\u200b\u7684\u200b sshd: vim /etc/ssh/sshd_config

            \u200b\u53bb\u6389\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u6ce8\u91ca\u200b\uff1a \u200b\u6ce8\u610f\u200b\u7b2c\u4e8c\u5f20\u200b\u56fe\u4e2d\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e00\u5b9a\u200b\u662f\u200b\u4f60\u200b\u4e4b\u524d\u200b\u653e\u516c\u94a5\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u8def\u5f84\u200b\u4ece\u200b\u7528\u6237\u200b\u6839\u76ee\u5f55\u200b\u5f00\u59cb\u200b

            \u200b\u66f4\u6539\u200b\u5b8c\u200b\u914d\u7f6e\u200b\u540e\u200b\u542f\u52a8\u200b/\u200b\u91cd\u542f\u200b sshd

            service ssh start\n
            \u200b\u6211\u4eec\u200b\u6700\u597d\u200b\u628a\u200b\u81ea\u52a8\u200b\u542f\u52a8\u200b ssh \u200b\u670d\u52a1\u200b\u52a0\u5165\u200b bashrc\uff0c\u200b\u8fd9\u6837\u200b\u542f\u52a8\u200b\u5bb9\u5668\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u4f1a\u200b\u81ea\u52a8\u200b\u542f\u52a8\u200b ssh \u200b\u670d\u52a1\u200b\u4e86\u200b
            echo \"service ssh start\" >> /root/.bashrc\n

            \u200b\u6b64\u65f6\u200b\u4f60\u200b\u5728\u200b\u5bbf\u4e3b\u673a\u200b\u4e0a\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200bssh stormckey@localhost -p 2333\u200b\u767b\u9646\u200b\u5bb9\u5668\u200b\u4e86\u200b\uff1a

            "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#33-vscode","title":"3.3 \u200b\u914d\u7f6e\u200b VSCode","text":"

            \u200b\u4e0b\u8f7d\u200b\u63d2\u4ef6\u200b Remote-SSH \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u70b9\u51fb\u200b\u53f3\u8fb9\u200b\u51fa\u73b0\u200b\u7684\u200b\u63d2\u4ef6\u200b\u56fe\u6807\u200b\uff0c\u200b\u5728\u200b\u4fa7\u680f\u200b\u4e2d\u200b\u9009\u62e9\u200b\u8bbe\u7f6e\u200b SSH\uff1a

            \u200b\u5199\u5165\u200b\u5982\u4e0b\u200b\u7684\u200b\u914d\u7f6e\u200b\u4fe1\u606f\u200b\uff1a

            \u200b\u8fde\u63a5\u200b\uff01

            \u200b\u6b64\u540e\u200b\u5c31\u200b\u6ca1\u6709\u200b\u4ec0\u4e48\u200b\u7279\u522b\u200b\u7684\u200b\u4e86\u200b\uff0c\u200b\u6253\u5f00\u200b\u7ec8\u7aef\u200b\u76f4\u63a5\u200b\u6309\u7167\u200b\u52a9\u6559\u200b\u7684\u200b\u6587\u6863\u200b\u914d\u7f6e\u200b minisql \u200b\u5373\u53ef\u200b\u3002

            "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#4","title":"4.\u200b\u66f4\u200b\u591a\u200b\u8bbe\u7f6e","text":"

            \u200b\u73b0\u5728\u200b\u4f60\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u4e2a\u200b\u7b80\u964b\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5f00\u59cb\u200b\u5de5\u4f5c\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u5982\u679c\u200b\u4f60\u200b\u559c\u6b22\u200b\u7684\u8bdd\u200b\u53ef\u4ee5\u200b\u52a0\u5165\u200b\u66f4\u200b\u591a\u200b\u8bbe\u7f6e\u200b\uff01

            \u200b\u7ec8\u7aef\u200b\u7f8e\u5316\u200b

            \u200b\u89c1\u6b64\u200b\u535a\u5ba2\u200b

            "},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/","title":"\u914d\u7f6e\u200b Github Profile","text":"

            Abstract

            \u200b\u6211\u200b\u914d\u7f6e\u200b Github \u200b\u4e3b\u9875\u200b Profile \u200b\u7684\u200b\u65b9\u6848\u200b\uff0c\u200b\u7075\u611f\u200b\u6765\u81ea\u200bTonycrane \u200b\u7684\u200b GitHub \u200b\u4e3b\u9875\u200b

            "},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/#github-profile_1","title":"\u542f\u7528\u200b Github \u200b\u4e3b\u9875\u200b Profile","text":"

            \u200b\u6211\u4eec\u200b\u5148\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u8ddf\u200b\u81ea\u5df1\u200b\u8d26\u53f7\u200b\u540c\u540d\u200b\u7684\u200b\u516c\u5f00\u200b\u4ed3\u5e93\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u7684\u200b\u7528\u4f5c\u200b\u4e3b\u9875\u200b\u4ed3\u5e93\u200b Github \u200b\u4f1a\u200b\u5728\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u663e\u793a\u200b\u8fd9\u4e00\u200b\u4ed3\u5e93\u200b\u7684\u200b README \u200b\u6587\u6863\u200b\u4f5c\u4e3a\u200b Profile\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u7f16\u5199\u200b\u8fd9\u4e2a\u200b README \u200b\u6587\u6863\u200b\u5373\u53ef\u200b

            \u200b\u672c\u4eba\u200b\u4e3b\u9875\u200b\u9884\u89c8\u200b

            "},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/#metrics-profile","title":"\u542f\u7528\u200b Metrics \u200b\u751f\u6210\u200b Profile \u200b\u56fe\u7247","text":"

            \u200b\u63a8\u8350\u200b\u4f7f\u7528\u200bMetrics\u200b\u6765\u200b\u751f\u6210\u200b\u597d\u770b\u200b\u7684\u200b Profile

            Metrics \u200b\u4f7f\u7528\u200b GitHub Action \u200b\u81ea\u52a8\u66f4\u65b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u7167\u7740\u200b\u94fe\u63a5\u200b\u91cc\u200b\u7684\u200b\u4ecb\u7ecd\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b8c\u6210\u200b\u90e8\u7f72\u200b.Metrics \u200b\u8fd8\u200b\u652f\u6301\u200b\u8bb8\u591a\u200b\u4e0d\u540c\u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5927\u5bb6\u200b\u53ef\u4ee5\u200b\u968f\u610f\u200b\u9009\u62e9\u200b\u81ea\u5df1\u200b\u559c\u6b22\u200b\u7684\u200b\uff0c\u200b\u6700\u540e\u200b\u8d34\u200b\u4e0a\u200b\u7b14\u8005\u200b\u6ce8\u91ca\u200b\u7684\u200b\u7684\u200b Action \u200b\u914d\u7f6e\u200b\u548c\u200b README \u200b\u6e90\u4ee3\u7801\u200b\uff0c\u200b\u6b22\u8fce\u200b\u501f\u9274\u200b\u4f7f\u7528\u200b\uff01

            \u200b\u53c2\u8003\u200b\u914d\u7f6e\u200b Metrics.ymlREADME.md
            name: Metrics\non:\n# Schedule updates per hour\nschedule: [{cron: \"0 * * * *\"}]\n# (optional) Run workflow manually\nworkflow_dispatch:\n# (optional) Run workflow when pushing on master/main\npush: {branches: [\"master\"\uff0c \"main\"]}\njobs:\n#generate the left picture\ngithub-left-metrics:\n    runs-on: ubuntu-latest\n    permissions:\n    contents: write\n    steps:\n    - name: left\n        # use the official generator\n        uses: lowlighter/metrics@latest\n        with:\n        token: ${{ secrets.METRICS_TOKEN }}\n\n        # the file this action generates\n        filename: matrics-left.svg\n        config_timezone: Asia/Shanghai\n\n\n        # enable plugins\n        plugin_followup: yes\n\n\n        plugin_languages: yes\n        # repositories that wont be accounted\n        plugin_languages_skipped: stormckey/dotfiles\n        plugin_languages_ignored: html\uff0c css\uff0c ruby\uff0c perl\uff0c javascript\n        # show the size of source code and percentage of each language\n        plugin_languages_details: bytes-size\uff0c percentage\n\n\n        plugin_starlists: yes\n        plugin_starlists_languages: yes\n\n\n        config_order: followup\uff0c languages\uff0c starlists\n\ngithub-right-metrics:\n    runs-on: ubuntu-latest\n    permissions:\n    contents: write\n    steps:\n    - name: right\n        uses: lowlighter/metrics@latest\n        with:\n        #disable the basic metrics\n        base: \"\"\n        token: ${{ secrets.METRICS_TOKEN }}\n        filename: matrics-right.svg\n        config_timezone: Asia/Shanghai\n\n        plugin_topics: yes\n        plugin_topics_mode: icons\n\n\n        plugin_isocalendar: yes\n\n\n        plugin_anilist: yes\n        plugin_anilist_user: stormckey\n        plugin_anilist_sections: favorites\uff0c characters\n\n\n        config_order: topics\uff0c isocalendar\uff0c anilist\n
            <h3 align=\"center\"> Stormckey </h3>\n\n<p align=\"center\">\n<samp>\n    <a href=\"https://stormckey.github.io/\">home page</a> \u2219\n</samp>\n</p>\n\n<p align=\"center\">\n<a href=\"https://github.com/stormckey\">\n    <img width=\"400\" align=\"top\" src=\"https://github.com/stormckey/stormckey/blob/main/matrics-left.svg\" />\n</a>\n&emsp;\n<a href=\"https://github.com/stormckey\">\n    <img width=\"400\" align=\"top\" src=\"https://github.com/stormckey/stormckey/blob/main/matrics-right.svg\" />\n</a>\n</p>\n
            "},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/","title":"Linux \u200b\u7ec8\u7aef\u200b\u914d\u7f6e","text":"

            Abstract

            \u200b\u4e00\u4e9b\u200b\u6781\u5927\u200b\u5730\u200b\u589e\u5f3a\u200b linux \u200b\u7ec8\u7aef\u200b\u6613\u7528\u6027\u200b\u7684\u200b\u5de5\u5177\u200b

            \u200b\u5bf9\u200b\u6211\u200b\u6765\u8bf4\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u8981\u200b\u65b0\u5f00\u200b\u4e00\u4e2a\u200b\u7528\u200b\u4e00\u6bb5\u65f6\u95f4\u200b\u7684\u200b\u73af\u5883\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u628a\u200b\u8fd9\u4e9b\u200b\u914d\u7f6e\u200b\u5148\u8dd1\u200b\u4e00\u904d\u200b

            "},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#zsh","title":"\u542f\u7528\u200b zsh","text":"

            sudo apt install zsh\nchsh -s /bin/zsh\n
            \u200b\u91cd\u542f\u200b\u7ec8\u7aef\u200b\uff08docker \u200b\u4e2d\u8bf7\u200b\u91cd\u542f\u200b\u5bb9\u5668\u200b\uff09

            "},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#zsh_1","title":"\u5b89\u88c5\u200b zsh \u200b\u63d2\u4ef6","text":"

            \u200b\u5b89\u88c5\u200b p10k

            git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~/.zsh/powerlevel10k\necho 'source ~/.zsh/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc\n
            \u200b\u91cd\u542f\u200b shell

            \u200b\u5b89\u88c5\u200b autosuggestion

            git clone https://gitee.com/renkx/zsh-autosuggestions.git ~/.zsh/plugins/zsh-autosuggestions\necho '#Enable autosuggestion' >> ~/.zshrc\necho 'source ~/.zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc\n

            \u200b\u5b89\u88c5\u200b syntaxhighlight

            git clone https://gitee.com/renkx/zsh-syntax-highlighting.git ~/.zsh/plugins/zsh-syntax-highlighting\necho '#Enable syntax highlight' >> ~/.zshrc\necho 'source ~/.zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc\n

            \u200b\u5b89\u88c5\u200b autojump

            sudo apt install autojump\necho '#Enable autojump' >> ~/.zshrc\necho 'source  /usr/share/autojump/autojump.sh'>>~/.zshrc\n

            "},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#vi","title":"\u5728\u200b\u547d\u4ee4\u884c\u200b\u4e2d\u200b\u542f\u7528\u200b vi","text":"
            git clone https://github.com/soheilpro/zsh-vi-search.git ~/.zsh/plugins/zsh-vi-search\necho \"#Enable vi mode\" >> ~/.zshrc\necho \"bindkey -v\" >> ~/.zshrc\necho \"source ~/.zsh/plugins/zsh-vi-search/src/zsh-vi-search.zsh\" >> ~/.zshrc\n
            "},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/","title":"\u7528\u200b ssh \u200b\u8fde\u63a5\u200b\u540c\u4e00\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u7684\u200b Wsl2","text":"

            Abstract

            \u200b\u4e3a\u4ec0\u4e48\u200b\u4f1a\u200b\u6709\u200b\u8fd9\u4e2a\u200b\u9700\u6c42\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u5927\u5b66\u200b\u5165\u5b66\u200b\u5e26\u200b\u7684\u200b\u7535\u8111\u5ba4\u200b\u662f\u200b\u4e00\u4e2a\u200b\u7eed\u822a\u200b\u7a00\u788e\u200b\u7684\u200b\u5de8\u91cd\u200b\u7684\u200b\u6e38\u620f\u200b\u672c\u200b\uff0c\u200b\u540e\u6765\u200b\u6709\u200b\u4e86\u200b mac \u200b\u4e4b\u540e\u200b\u6e38\u620f\u200b\u672c\u200b\u57fa\u672c\u200b\u6210\u200b\u53f0\u5f0f\u200b\u4e86\u200b\uff08\u200b\u4e0d\u662f\u200b\uff09\uff0c\u200b\u7528\u200b ssh \u200b\u8fde\u4e0a\u53bb\u200b\u4e3b\u8981\u200b\u662f\u200b\u7528\u200b\u4e00\u4e0b\u200b\u663e\u5361\u200b\u5565\u200b\u7684\u200b

            Abstract

            \u200b\u57fa\u7840\u200b\u7684\u200b\u6d41\u7a0b\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b\u535a\u5ba2\u200b\u5c31\u200b\u597d\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb0\u5f55\u200b\u4e00\u4e0b\u200b\u8e29\u200b\u7684\u200b\u96f7\u200b\u548c\u200b\u66f4\u200b\u8fdb\u9636\u200b\u7684\u200b\u8bbe\u7f6e\u200b

            "},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#_1","title":"\u68c0\u67e5\u200b\u901a\u8def","text":"

            \u200b\u8fd9\u200b\u4e00\u6b65\u200b\u6211\u4eec\u200b\u8981\u200b\u68c0\u67e5\u200b\u6211\u4eec\u200b\u5230\u200b\u8981\u200b\u8fde\u63a5\u200b\u7684\u200b\u7cfb\u7edf\u200b\u7684\u200b\u7f51\u7edc\u200b\u901a\u8def\u200b\u662f\u200b\u6b63\u5e38\u200b\u7684\u200b

            Windows \u200b\u4f1a\u200b\u7ed9\u200b Wsl2 \u200b\u5206\u914d\u200b\u4e00\u4e2a\u200b\u865a\u62df\u200b\u7684\u200b\u672c\u5730\u200b\u7684\u200b\u5730\u5740\u200b\uff0c\u200b\u5728\u200b Windows \u200b\u8f93\u5165\u200bipconfig\u200b\u4ee5\u200b\u67e5\u770b\u200b\u8be5\u200b\u5730\u5740\u200b\u3002 \u200b\u6211\u4eec\u200b\u5728\u200b Wsl \u200b\u4e2d\u200b\u542f\u7528\u200b ssh \u200b\u670d\u52a1\u200b\u540e\u200b\uff0c\u200b\u60f3\u8981\u200b\u9a8c\u8bc1\u200b Wsl \u200b\u662f\u5426\u200b\u53ef\u200b\u88ab\u200b\u8fde\u63a5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5148\u200b\u5728\u200b Windows \u200b\u4e2d\u8bd5\u200b\u7740\u200b\u7528\u200b ssh \u200b\u8fde\u63a5\u200b ifconfig \u200b\u4e2d\u200b\u770b\u5230\u200b\u7684\u200b\u5730\u5740\u200b

            \u200b\u968f\u540e\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u4ece\u200b\u5c40\u57df\u7f51\u200b\u8fde\u63a5\u200b Windows \u200b\u4e5f\u200b\u662f\u200b\u901a\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u7528\u200bipconfig\u200b\u5f97\u5230\u200b\u670d\u52a1\u5668\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u8fd9\u53f0\u200b\u673a\u5668\u200b\uff09ip\uff0c\u200b\u5728\u200b\u53e6\u4e00\u53f0\u200b\u673a\u5668\u200b\u4e0a\u200b\uff08\u200b\u5ba2\u6237\u200b\uff09\u200b\u5c1d\u8bd5\u200bping <ip>\u200b\u6765\u8bd5\u200b\u7740\u200b\u8fde\u63a5\u200b\uff0c\u200b\u6216\u8005\u200b\u76f4\u63a5\u200b\u7528\u200b ssh \u200b\u8fde\u63a5\u200b Windows\uff0c\u200b\u4fdd\u8bc1\u200b\u5c40\u57df\u7f51\u200b\u5230\u200b Windows \u200b\u8fd9\u6761\u200b\u8def\u200b\u90fd\u200b\u662f\u200b\u901a\u200b\u7684\u200b\u3002

            Warning

            \u200b\u4e00\u4e9b\u200b\u6807\u660e\u200b\u4e3a\u200b\u201cSecure\u201d\u200b\u7684\u200b\u5c40\u57df\u7f51\u200b\u53ef\u80fd\u200b\u4e0d\u200b\u5141\u8bb8\u200b\u5c40\u57df\u7f51\u200b\u5185\u200b\u8fde\u63a5\u200b\uff0c\u200b\u5728\u200b\u8fd9\u4e9b\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u662f\u200b\u4e92\u76f8\u200b ping \u200b\u4e0d\u901a\u200b\u7684\u200b\uff0c\u200b\u5c1d\u8bd5\u200b\u6362\u4e2a\u200b\u5c40\u57df\u7f51\u200b\uff01\u200b\u8fd9\u70b9\u200b\u5751\u200b\u4e86\u200b\u6211\u200b\u5f88\u200b\u4e45\u200b\u3002

            \u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u786e\u4fdd\u200b\u628a\u200b\u5c40\u57df\u7f51\u200b\uff0cWindows\uff0cwsl \u200b\u90fd\u200b\u8fde\u63a5\u8d77\u6765\u200b\uff0c\u200b\u9700\u8981\u200b Windows \u200b\u628a\u200b\u6211\u4eec\u200b\u4ece\u200b ssh \u200b\u53d1\u6765\u200b\u7684\u200b\u8fde\u63a5\u200b\u8bf7\u6c42\u200b\u8f6c\u200b\u5230\u200b\u5185\u90e8\u200b\u7684\u200b wsl \u200b\u7684\u200b\u7aef\u53e3\u200b\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u901a\u200b\u4e86\u200b.\uff08\u200b\u5bf9\u5e94\u200b\u7684\u200b\u64cd\u4f5c\u200b\u5728\u4e0a\u6587\u200b\u7684\u200b\u535a\u5ba2\u200b\u4e2d\u200b\u5df2\u7ecf\u200b\u63d0\u53ca\u200b\uff0c\u200b\u5982\u679c\u200b\u8fd8\u6709\u200b\u95ee\u9898\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5c1d\u8bd5\u200b\u8fd9\u7bc7\u200b\u770b\u770b\u200b\u662f\u4e0d\u662f\u200b\u5c40\u57df\u7f51\u200b\u5230\u200b Windows \u200b\u7684\u200b\u95ee\u9898\u200b\uff09

            "},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#_2","title":"\u8bbe\u7f6e\u200b\u514d\u5bc6\u200b\u767b\u9646","text":"

            \u200b\u514d\u5bc6\u200b\u767b\u9646\u200b\u4e5f\u200b\u53ef\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b

            \u200b\u6765\u5230\u200b\u5ba2\u6237\u7aef\u200b\uff0c\u200b\u6267\u884c\u200b\u4e0b\u9762\u200b\u547d\u4ee4\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u8f93\u5165\u200b passephrase \u200b\u65f6\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff08\u200b\u4e3a\u7a7a\u200b\uff09

            ssh-keygen\n

            \u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u63d0\u793a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e0b\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u9009\u62e9\u200b\u5176\u516c\u94a5\u200b\uff08.pub \u200b\u540e\u7f00\u200b\uff09\uff0c\u200b\u628a\u200b\u5b83\u200b\u5199\u5165\u200b\u670d\u52a1\u5668\u200b\u767b\u9646\u200b\u7528\u6237\u200b\u7684\u200b ssh \u200b\u914d\u7f6e\u200b\u6587\u4ef6\u5939\u200b\u4e0b\u200b\u7684\u200b\u201cauthorized_keys\"\u200b\u6587\u4ef6\u200b\uff08\u200b\u4e00\u822c\u200b\u4e3a\u200b~/.ssh/authorized_keys\uff09\uff0c\u200b\u6ce8\u610f\u200b\u4fee\u6539\u200b\"authorized_keys\"\u200b\u7684\u200b\u6743\u9650\u200b\u6539\u4e3a\u200b 600\uff0c\u200b\u6240\u5728\u200b\u6587\u4ef6\u5939\u200b\u6743\u9650\u200b\u6539\u4e3a\u200b 700.

            \u200b\u5982\u679c\u200b\u4e0a\u8ff0\u200b\u90fd\u200b\u505a\u200b\u4e86\u200b\u4e4b\u540e\u200b\u4ecd\u7136\u200b\u65e0\u6cd5\u200b\u514d\u5bc6\u200b\u767b\u9646\u200b\uff0c\u200b\u6bd4\u5982\u200bssh -v user@ip -p port\u200b\u540e\u200b\u770b\u5230\u200b\u8fde\u63a5\u200b\u65f6\u200b\u8bd5\u56fe\u200b\u4f7f\u7528\u200b\u516c\u94a5\u200b\u9a8c\u8bc1\u200b\u4f46\u662f\u200b\u5931\u8d25\u200b\u4e86\u200b\uff0c\u200b\u90a3\u4e48\u200b\u9700\u8981\u200b\u518d\u200b\u5b9a\u4f4d\u95ee\u9898\u200b.\u200b\u5728\u200b\u670d\u52a1\u5668\u7aef\u200b\u4f7f\u7528\u200b\u4e0b\u5217\u200b\u8bed\u53e5\u200b\u542f\u7528\u200b sshd \u200b\u76d1\u542c\u200b\u8fde\u63a5\u200b\u67d0\u4e2a\u200b\u7aef\u53e3\u200b

            sudo /usr/sbin/sshd -d  -p 4444\n
            \u200b\u6ce8\u610f\u200b\u4e0d\u80fd\u200b\u4f7f\u7528\u200b\u5df2\u7ecf\u200b\u88ab\u200b\u5360\u7528\u200b\u7684\u200b\u7aef\u53e3\u200b \u200b\u542f\u7528\u200b\u540e\u200b\u53bb\u200b powershell \u200b\u8fdb\u884c\u200b\u7aef\u53e3\u200b\u8f6c\u53d1\u200b\uff0c\u200b\u4fbf\u200b\u53ef\u4ee5\u200b\u5728\u200b\u7ec8\u7aef\u200b\u91cc\u200b\u770b\u5230\u200b\u670d\u52a1\u5668\u7aef\u200b\u8ba4\u8bc1\u200b\u7684\u200b\u5168\u8fc7\u7a0b\u200b\u4e86\u200b

            "},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#wsl2-ip","title":"\u8bbe\u7f6e\u200b Wsl2 \u200b\u9759\u6001\u200b ip","text":"

            \u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b

            \u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u987a\u5e26\u200b\u8bbe\u7f6e\u200b\u4e00\u4e0b\u200b Wsl2 \u200b\u5f00\u673a\u200b\u542f\u52a8\u200b\u548c\u200b\u81ea\u52a8\u200b\u5f00\u59cb\u200b ssh \u200b\u670d\u52a1\u200b

            "},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/","title":"\u5728\u200b WSL2 \u200b\u4e0a\u200b\u542f\u7528\u200b CUDA","text":"

            Abstract

            \u200b\u522b\u8bf4\u200b\u4e86\u200b\uff0c\u200b\u5f00\u70bc\u200b\uff01

            \u200b\u4e3b\u8981\u200b\u662f\u200b\u53c2\u8003\u200b\u4e86\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b

            "},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/#1-windows","title":"1.\u200b\u5728\u200b Windows \u200b\u4e0a\u200b\u5b89\u88c5\u200b\u663e\u5361\u200b\u9a71\u52a8","text":"

            \u200b\u8fd9\u6b65\u200b\u5f88\u200b\u7b80\u5355\u200b\uff0c\u200b\u5728\u200b\u5b98\u200b\u7f51\u4e0a\u200b\u627e\u5230\u200b\u9002\u5408\u200b\u81ea\u5df1\u200b\u663e\u5361\u200b\u7684\u200b\u7248\u672c\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\u3002 Download Type \u200b\u9009\u9879\u200b\u9009\u200b Game Ready Driver \u200b\u5c31\u200b\u597d\u200b\u3002 \u200b\u60f3\u8981\u200b\u67e5\u770b\u200b\u81ea\u5df1\u200b\u7535\u8111\u200b\u663e\u5361\u200b\u578b\u53f7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5148\u200b win+R\uff0c\u200b\u8f93\u5165\u200b dxdiag\uff0c\u200b\u9009\u62e9\u200b dispaly \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u4e86\u200b\u3002

            "},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/#2-wsl","title":"2.\u200b\u5728\u200b wsl \u200b\u4e0a\u200b\u5b89\u88c5\u200b\u9a71\u52a8","text":"

            \u200b\u4e0a\u200b\u4e00\u6b65\u200b\u7ed3\u675f\u200b\u4e4b\u540e\u200btorch.cuda.is_available()\u200b\u5c31\u200b\u5df2\u7ecf\u200b True \u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u76f4\u63a5\u200b\u6267\u884c\u200b\u8fd8\u662f\u200b\u4f1a\u200b\u62a5\u9519\u200b\u3002 \u200b\u542f\u52a8\u200b wsl\uff0c\u200b\u6267\u884c\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b

            wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin\nsudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600\nwget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb\nsudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb\nsudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub\napt-get update\nsudo apt-get -y install cuda\n
            \u200b\u6709\u4e9b\u200b\u5b89\u88c5\u200b\u6bd4\u8f83\u6162\u200b\uff0c\u200b\u6ca1\u6709\u200b\u6362\u200b\u8fc7\u6e90\u200b\u7684\u200b\u53ef\u4ee5\u200b\u6362\u4e0b\u200b\u56fd\u5185\u200b\u955c\u50cf\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200b\u6d59\u5927\u200b\u6e90\u200b

            \u200b\u7b14\u8005\u200b\u5728\u200b\u4e0a\u9762\u200b\u7684\u200b\u547d\u4ee4\u200b\u6267\u884c\u200b\u4e2d\u200b\u8fd8\u200b\u9047\u5230\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u6700\u540e\u200b\u4e00\u6b65\u200b\u62a5\u9519\u200b liburcu6 \u200b\u6ca1\u6709\u200b\u5b89\u88c5\u200b\u3002 \u200b\u53ef\u4ee5\u200b\u5728\u200b\u5b98\u65b9\u200b\u8f6f\u4ef6\u200b\u6e90\u4e0a\u200b\u53ef\u4ee5\u200b\u4e0b\u8f7d\u200b\uff0c\u200b\u6d4f\u89c8\u5668\u200b\u53ef\u80fd\u200b\u63d0\u793a\u200b\u4e0b\u8f7d\u200b\u4e0d\u200b\u5b89\u5168\u200b.\u200b\u5982\u679c\u200b\u53ef\u4ee5\u200b\u7684\u8bdd\u200b\uff0c\u200b\u9009\u62e9\u200b\u5408\u9002\u200b\u7684\u200b\u7248\u672c\u200b\u4e0b\u8f7d\u200b.\u200b\u7528\u200bcat /proc/version \u200b\u67e5\u770b\u200b\u6211\u4eec\u200b\u7cfb\u7edf\u200b\u7684\u200b\u7248\u672c\u200b\uff0cx86_64 \u200b\u7528\u200b amd64 \u200b\u5373\u53ef\u200b\u3002 \u200b\u5982\u679c\u200b\u65e0\u6cd5\u200b\u89e3\u51b3\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u91cc\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u4f7f\u7528\u200b\u547d\u4ee4\u200b\uff1a

            sudo add-apt-repository ppa:cloudhan/liburcu6\nsudo apt update\nsudo apt install liburcu6\n
            \u200b\u7b2c\u4e00\u6761\u200b\u547d\u4ee4\u200b\u4f3c\u4e4e\u200b\u9700\u8981\u200b\u79d1\u5b66\u200b\u4e0a\u7f51\u200b\uff0c\u200b\u6211\u200b\u6ca1\u5f00\u200b\u7684\u200b\u65f6\u5019\u200b\u8fde\u63a5\u200b\u8d85\u65f6\u200b\u4e86\u200b\u3002 \u200b\u968f\u540e\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7ee7\u7eed\u200b\u4e0a\u200b\u4e00\u6b65\u200b\u7684\u200b\u5b89\u88c5\u200b cuda \u200b\u4e86\u200b.\u200b\u5b89\u88c5\u200b\u5b8c\u6bd5\u200b\u540e\u200b\u7528\u200b nvidia-smi \u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u662f\u5426\u200b\u6210\u529f\u200b\u3002

            \u200b\u6b64\u65f6\u200b\u4ecd\u7136\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b cuda\uff0c\u200b\u9700\u8981\u200b\u518d\u200b\u5b89\u88c5\u200b nvcc\uff0c\u200b\u76f4\u63a5\u200b\u4e0b\u8f7d\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\u3002

            \u200b\u81f3\u6b64\u200b\u5b89\u88c5\u200b\u7ed3\u675f\u200b\u3002

            "},{"location":"blog/zsh-%E7%9A%84%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92/","title":"ZSH \u200b\u7684\u200b\u53c2\u6570\u4f20\u9012","text":"

            Abstract

            zsh \u200b\u4e2d\u200b\u4e00\u4e2a\u200b\u53c2\u6570\u4f20\u9012\u200b\u7684\u200b\u65f6\u5019\u200b\u9047\u5230\u200b\u7684\u200b\u795e\u79d8\u200b\u95ee\u9898\u200b\ud83e\udd14

            \u200b\u4eca\u5929\u200b\u5728\u200b\u8c03\u7528\u200b DDPM \u200b\u6a21\u578b\u200b\u7684\u200b\u65f6\u5019\u200b\u4f7f\u7528\u200b\u5b98\u65b9\u200b\u4ee3\u7801\u200b\uff0c\u200b\u7adf\u7136\u200b\u62a5\u9519\u200b\u8bf4\u200b\u53c2\u6570\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff1a \u200b\u547d\u4ee4\u200b\u662f\u200b

            MODEL_FLAGS=\"--attention_resolutions 32\uff0c16\uff0c8 --class_cond True --diffusion_steps 1000 --dropout 0.1 --image_size 64 --learn_sigma True --noise_schedule cosine --num_channels 192 --num_head_channels 64 --num_res_blocks 3 --resblock_updown True --use_new_attention_order True --use_fp16 True --use_scale_shift_norm True\"\npython classifier_sample.py $MODEL_FLAGS --classifier_scale 1.0 --classifier_path models/64x64_classifier.pt --classifier_depth 4 --model_path models/64x64_diffusion.pt $SAMPLE_FLAGS\n
            \u200b\u62a5\u9519\u200b\u4e3a\u200b\uff1a
            python classifier_sample.py $MODEL_FLAGS --classifier_scale 1.0 --classifier_path models/64x64_classifier.pt --classifier_depth 4 --model_path models/64x64_diffusion.pt $SAMPLE_FLAGS\nusage: classifier_sample.py [-h] [--clip_denoised CLIP_DENOISED] [--num_samples NUM_SAMPLES] [--batch_size BATCH_SIZE]\n                            [--use_ddim USE_DDIM] [--model_path MODEL_PATH] [--classifier_path CLASSIFIER_PATH]\n                            [--classifier_scale CLASSIFIER_SCALE] [--image_size IMAGE_SIZE]\n                            [--num_channels NUM_CHANNELS] [--num_res_blocks NUM_RES_BLOCKS] [--num_heads NUM_HEADS]\n                            [--num_heads_upsample NUM_HEADS_UPSAMPLE] [--num_head_channels NUM_HEAD_CHANNELS]\n                            [--attention_resolutions ATTENTION_RESOLUTIONS] [--channel_mult CHANNEL_MULT]\n                            [--dropout DROPOUT] [--class_cond CLASS_COND] [--use_checkpoint USE_CHECKPOINT]\n                            [--use_scale_shift_norm USE_SCALE_SHIFT_NORM] [--resblock_updown RESBLOCK_UPDOWN]\n                            [--use_fp16 USE_FP16] [--use_new_attention_order USE_NEW_ATTENTION_ORDER]\n                            [--learn_sigma LEARN_SIGMA] [--diffusion_steps DIFFUSION_STEPS]\n                            [--noise_schedule NOISE_SCHEDULE] [--timestep_respacing TIMESTEP_RESPACING]\n                            [--use_kl USE_KL] [--predict_xstart PREDICT_XSTART]\n                            [--rescale_timesteps RESCALE_TIMESTEPS] [--rescale_learned_sigmas RESCALE_LEARNED_SIGMAS]\n                            [--classifier_use_fp16 CLASSIFIER_USE_FP16] [--classifier_width CLASSIFIER_WIDTH]\n                            [--classifier_depth CLASSIFIER_DEPTH]\n                            [--classifier_attention_resolutions CLASSIFIER_ATTENTION_RESOLUTIONS]\n                            [--classifier_use_scale_shift_norm CLASSIFIER_USE_SCALE_SHIFT_NORM]\n                            [--classifier_resblock_updown CLASSIFIER_RESBLOCK_UPDOWN]\n                            [--classifier_pool CLASSIFIER_POOL]\nclassifier_sample.py: error: unrecognized arguments: --attention_resolutions 32\uff0c16\uff0c8 --class_cond True --diffusion_steps 1000 --dropout 0.1 --image_size 64 --learn_sigma True --noise_schedule cosine --num_channels 192 --num_head_channels 64 --num_res_blocks 3 --resblock_updown True --use_new_attention_order True --use_fp16 True --use_scale_shift_norm True\n
            \u200b\u8c8c\u4f3c\u200b\u662f\u56e0\u4e3a\u200b\u7528\u200b\u8fd9\u79cd\u200b\u65b9\u5f0f\u200b\u4f20\u9012\u200b\u7684\u200b\u53c2\u6570\u200b\u4e0d\u4f1a\u200b\u88ab\u200b\u6309\u200b\u7a7a\u683c\u200b\u5206\u5f00\u200b\uff0c\u200b\u6240\u4ee5\u200b\u65e0\u6cd5\u200b\u8bc6\u522b\u200b \u200b\u6211\u200b\u8fd8\u200b\u8bd5\u8fc7\u200b\u6362\u7528\u200b bash\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u4f7f\u7528\u200b\"$FLAG\"\uff0c\u200b\u90fd\u200b\u6ca1\u7528\u200b\ud83d\ude21

            \u200b\u89e3\u51b3\u200b\u7684\u200b\u529e\u6cd5\u200b\u662f\u200b\u4f7f\u7528\u200b$=FLAG \uff08\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b\u89e3\u7b54\u200b\uff09

            "},{"location":"blog/archive/2024/","title":"2024","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/archive/2023/","title":"2023","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/arch/","title":"Arch","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/linux/","title":"Linux","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/hyprland/","title":"Hyprland","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/%E6%95%88%E7%8E%87/","title":"\u6548\u7387","text":"

            \u200b\u7ea6\u200b 2 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/vscode/","title":"VSCode","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/lab/","title":"Lab","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/","title":"\u8ba1\u7b97\u673a\u200b\u4f53\u7cfb\u7ed3\u6784","text":"

            \u200b\u7ea6\u200b 7 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/os/","title":"OS","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/pl/","title":"PL","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/vim/","title":"Vim","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/%E7%8E%AF%E5%A2%83/","title":"\u73af\u5883","text":"

            \u200b\u7ea6\u200b 2 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/cool/","title":"Cool","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/category/bug/","title":"Bug","text":"

            \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"blog/page/2/","title":"Blog","text":""},{"location":"blog/page/3/","title":"Blog","text":""},{"location":"blog/archive/2023/page/2/","title":"2023","text":""},{"location":"blog/archive/2023/page/3/","title":"2023","text":""}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Index","text":""},{"location":"#hi","title":"\uff08 \u0e51> \u0602 < \uff09 Hi!","text":"

            \u200b\u6b22\u8fce\u200b\u6765\u5230\u200b\u6211\u200b\u7684\u200b\u4e3b\u9875\u200b\uff01\u200b\u968f\u4fbf\u200b\u901b\u901b\u200b\u5427\u200b

            \u200b\u66f4\u65b0\u200b\u65e5\u5fd7\u200b | \u200b\u6837\u5f0f\u200b\u4e00\u89c8\u200b | \u200b\u5efa\u200b\u7ad9\u200b\u6307\u5357\u200b

            "},{"location":"Build_this_website/","title":"\u5982\u4f55\u200b\u6784\u5efa\u200b\u4e00\u4e2a\u200b\u50cf\u200b\u8fd9\u6837\u200b\u7684\u200b\u7f51\u7ad9\u200b\uff01","text":"

            \u200b\u7ea6\u200b 1315 \u200b\u4e2a\u200b\u5b57\u200b 210 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 7 \u200b\u5206\u949f\u200b

            \u200b\u7f51\u7ad9\u200b\u642d\u5efa\u200b\u6559\u7a0b\u200b

            \u200b\u672c\u200b\u7ad9\u70b9\u200b\u4f7f\u7528\u200b mkdocs \u200b\u642d\u5efa\u200b\uff0c\u200b\u90e8\u7f72\u200b\u4e8e\u200b Github Pages\uff0c\u200b\u4f7f\u7528\u200b\u4e86\u200bmaterial\u200b\u4e3b\u9898\u200b

            "},{"location":"Build_this_website/#1","title":"1.\u200b\u73af\u5883\u200b\u51c6\u5907","text":"

            \u200b\u5b89\u88c5\u200b python

            sudo apt install python3 python3-pip\n

            pip \u200b\u6362\u6e90\u200b

            pip install pip -U\npip config set global.index-url https://mirrors.zju.edu.cn/pypi/web/simple\n

            \u200b\u542f\u7528\u200b\u865a\u62df\u73af\u5883\u200b\uff1a

            sudo apt install python3.8-venv\npip install virtualenv\npython -m venv webenv\nsource webenv/bin/activate\n

            \u200b\u5b89\u88c5\u200b mkdocs

            pip install mkdocs-material\n

            \u200b\u51fa\u73b0\u200b\u62a5\u9519\u200b\uff1a

            ERROR: mkdocs 1.4.3 has requirement markdown<3.4\uff0c>=3.2.1\uff0c but you'll have markdown 3.4.3 which is incompatible.\n

            \u200b\u4fee\u6539\u200b markdown \u200b\u7248\u672c\u200b\uff0c\u200b\u7136\u540e\u200b\u91cd\u65b0\u5b89\u88c5\u200b mkdocs\uff1a

            pip install markdown==3.2.1\npip install mkdocs-material\n

            \u200b\u56fe\u7247\u200b\u5904\u7406\u200b\u7684\u200b\u4f9d\u8d56\u200b\u5e93\u200b\uff1a

            pip install pillow cairosvg\n

            \u200b\u53ef\u200b\u9009\u200b\u4f18\u5316\u200b\uff1ayaml \u200b\u8865\u5168\u200b
            1. \u200b\u5b89\u88c5\u200b VSCode-yaml
            2. \u200b\u628a\u200b\u4e0b\u9762\u200b\u8bbe\u7f6e\u200b\u5199\u5165\u200b settings.json:
              {\n\"yaml.schemas\": {\n    \"https://squidfunk.github.io/mkdocs-material/schema.json\": \"mkdocs.yml\"\n}\uff0c\n\"yaml.customTags\": [\n    \"!ENV scalar\"\uff0c\n    \"!ENV sequence\"\uff0c\n    \"tag:yaml.org\uff0c2002:python/name:materialx.emoji.to_svg\"\uff0c\n    \"tag:yaml.org\uff0c2002:python/name:materialx.emoji.twemoji\"\uff0c\n    \"tag:yaml.org\uff0c2002:python/name:pymdownx.superfences.fence_code_format\"\n]\n}\n
            "},{"location":"Build_this_website/#2-github-pages","title":"2.\u200b\u90e8\u7f72\u200b\u5230\u200b Github Pages","text":"

            \u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u7a7a\u200b\u7684\u200b\u516c\u5f00\u200b\u4ed3\u5e93\u200b\uff0c\u200b\u5e76\u4e14\u200b\u514b\u9686\u200b\u5230\u200b\u672c\u5730\u200b\uff0c\u200b\u5728\u200b\u5176\u4e2d\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b mkdocs site\uff1a

            git clone repo\ncd repo\nmkdocs new .\n

            \u200b\u5728\u200b mkdocs.yml \u200b\u4e2d\u200b\u542f\u7528\u200b\u4e3b\u9898\u200b\uff1a

            theme:\n  name: material\n

            \u200b\u5982\u679c\u200b\u4f60\u200b\u5e0c\u671b\u200b\u5c06\u200b markdown \u200b\u6e90\u6587\u4ef6\u200b\u4e5f\u200b\u4fdd\u5b58\u200b\u5728\u200b\u540c\u4e00\u4e2a\u200b\u4ed3\u5e93\u200b\u91cc\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5148\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u5ffd\u7565\u200bsite/\u200b\u7684\u200b.gitignore\u200b\u6587\u4ef6\u200b\uff0c\u200b\u7136\u540e\u200b\u63d0\u4ea4\u200b\uff0c\u200b\u63a8\u9001\u200b\uff1a

            echo \"site/\" > .gitignore\ngit add .\ngit commit -m \"init\"\ngit push -u origin master\n

            \u200b\u7136\u540e\u200b\u7528\u200bgh-deploy\u200b\u547d\u4ee4\u200b\u4e00\u952e\u200b\u90e8\u7f72\u200b\u5230\u200b Github Pages:

            mkdocs gh-deploy\n
            \u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u7684\u200b\u4ed3\u5e93\u200b\u6709\u200b\u4e24\u4e2a\u200b\u5206\u652f\u200b\u4e86\u200b\uff0cmaster \u200b\u5206\u652f\u200b\u50a8\u5b58\u200b markdown \u200b\u6e90\u6587\u4ef6\u200b\uff0cgh-pages \u200b\u5206\u652f\u200b\u50a8\u5b58\u200b\u7f16\u8bd1\u200b\u540e\u200b\u7684\u200b\u7f51\u7ad9\u200b

            \u200b\u5728\u200b settings-pages \u200b\u4e2d\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u7f51\u7ad9\u200b\u7684\u200b\u7f51\u5740\u200b\u4e86\u200b\uff0c\u200b\u4e00\u822c\u200b\u4e3a\u200busername.github.io/repo\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u521b\u5efa\u200b\u7684\u200b\u4ed3\u5e93\u200b\u662f\u200b\u7279\u6b8a\u200b\u7684\u200b\uff0c\u200b\u540d\u4e3a\u200busername.github.io\uff0c\u200b\u90a3\u4e48\u200b\u7f51\u5740\u200b\u5c31\u662f\u200busername.github.io\u200b\u4e86\u200b \u200b\u5f53\u524d\u200b\u7684\u200b\u7f51\u7ad9\u200b\u4e3a\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\uff1a

            \u200b\u53ef\u200b\u9009\u200b\u4f18\u5316\u200b\uff1a\u200b\u81ea\u52a8\u200b\u7f16\u8bd1\u200b\u90e8\u7f72\u200b

            \u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b GitHub action \u200b\u6765\u200b\u5e2e\u52a9\u200b\u6211\u4eec\u200b\u6bcf\u6b21\u200b\u66f4\u65b0\u200b master \u200b\u5206\u652f\u200b\u540e\u200b\u81ea\u52a8\u200b\u7f16\u8bd1\u200b\u7f51\u7ad9\u200b\u5e76\u200b\u63a8\u9001\u200b\u5230\u200b gh-pages \u200b\u5206\u652f\u200b\uff0c\u200b\u8fd9\u6837\u200b\u6211\u4eec\u200b\u5c31\u200b\u4e0d\u7528\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u624b\u52a8\u200b\u6267\u884c\u200bmkdocs gh-deploy\u200b\u4e86\u200b\uff0c\u200b\u800c\u200b\u53ea\u200b\u9700\u8981\u200b\u5c06\u200b\u65b0\u200b\u5199\u200b\u7684\u200b markdown \u200b\u63a8\u9001\u200b\u81f3\u200b\u4ed3\u5e93\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002 \u200b\u8fd9\u6837\u200b\u505a\u200b\u7684\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u597d\u5904\u200b\u662f\u200b\u5176\u4ed6\u4eba\u200b\u5e0c\u671b\u200b\u5bf9\u200b\u4ed3\u5e93\u200b\u505a\u200b\u8d21\u732e\u200b\u7684\u200b\u65f6\u5019\u200b\u53ef\u4ee5\u200b\u53ea\u200b\u5bf9\u200b\u6587\u672c\u200b\u5185\u5bb9\u200b\u8fdb\u884c\u200b\u4fee\u6539\u200b\uff0c\u200b\u800c\u200b\u4e0d\u5fc5\u200b\u5728\u4e4e\u200b\u4fbf\u200b\u5df2\u200b\u90e8\u7f72\u200b\u7684\u200b\u95ee\u9898\u200b\u3002\u200b\u53ea\u6709\u200b\u5f53\u200b\u8d21\u732e\u8005\u200b\u5e0c\u671b\u200b\u9884\u89c8\u200b\u7684\u200b\u65f6\u5019\u200b\u9700\u8981\u200b\u5b8c\u6574\u200b\u7684\u200b\u5b89\u88c5\u200b\u73af\u5883\u200b\u3002 1. \u200b\u5728\u200b\u4ed3\u5e93\u200b\u4e2d\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b.github/workflows/auto-deploy.yml\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5185\u5bb9\u200b\u5982\u4e0b\u200b\uff1a

            name: ci\non:\npush:\n    branches:\n    - master\n    - main\npermissions:\ncontents: write\njobs:\ndeploy:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v3\n        with:\n        fetch-depth: '0'\n    - uses: actions/setup-python@v4\n        with:\n        python-version: 3.x\n    - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV\n    - uses: actions/cache@v3\n        with:\n        key: mkdocs-material-${{ env.cache_id }}\n        path: .cache\n        restore-keys: |\n            mkdocs-material-\n    - run: pip install  mkdocs-material mkdocs-changelog-plugin mkdocs-glightbox jieba pillow cairosvg mkdocs-tooltips mkdocs-statistics-plugin mkdocs-table-reader-plugin mkdocs-git-revision-date-localized-plugin mkdocs-meta-manager mkdocs-macros-plugin\n    - run: mkdocs gh-deploy --force\n
            \u200b\u6ce8\u610f\u200b\uff0c\u200b\u63a8\u9001\u200b\u5230\u200b Github \u200b\u7684\u8bdd\u200b\u9700\u8981\u200b\u4f60\u200b\u7684\u200b token \u200b\u6709\u200b workflow \u200b\u6743\u9650\u200b \u200b\u6b64\u200b Action \u200b\u5df2\u7ecf\u200b\u662f\u200b\u6839\u636e\u200b\u672c\u7ad9\u200b\u5b89\u88c5\u200b\u7684\u200b\u63d2\u4ef6\u200b\u7b49\u200b\u8fdb\u884c\u200b\u4e86\u200b\u989d\u5916\u200b\u5b89\u88c5\u200b\u7684\u200b\uff0c\u200b\u8bf7\u200b\u6309\u200b\u9700\u200b\u4f7f\u7528\u200b\u3002\u200b\u5982\u679c\u200b\u4f60\u200b\u4f9d\u8d56\u200b\u4e86\u200b\u989d\u5916\u200b\u7684\u200b\u5e93\u200b\uff0c\u200b\u9700\u8981\u200b\u4fee\u6539\u200b Action

            "},{"location":"Build_this_website/#3","title":"3.\u200b\u5e38\u89c4\u200b\u7279\u6027","text":""},{"location":"Build_this_website/#31-css","title":"3.1 \u200b\u4fee\u6539\u200b\u7f51\u7ad9\u200b\u7684\u200b css \u200b\u6837\u5f0f","text":"

            \u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u65b0\u589e\u200b\u7684\u200b\u6837\u5f0f\u200b\u5747\u200b\u653e\u7f6e\u200b\u4e8e\u200bdocs/css/\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u6bcf\u4e2a\u200b css \u200b\u6587\u4ef6\u200b\u90fd\u200b\u8981\u200b\u5728\u200bmkdocs.yml\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a

            extra_css:\n  - css/extra.css\n
            \u200b\u6211\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b\u6837\u5f0f\u200b
            [data-md-color-primary=P] {\n    --md-primary-fg-color:  #FFACA6;\n}\n[data-md-color-accent=P] {\n--md-accent-fg-color: #FFACA6;\n}\n[data-md-color-scheme=default] {\n    --md-typeset-a-color: #000000;\n    --my-changlog-color: #EFEFEF;\n}\n[data-md-color-scheme=slate] {\n    --md-typeset-a-color: #FFFFFF;\n    --my-changlog-color: #161616;\n}\n.md-grid {\nmax-width: 1400px;\n}/* make the page wider */\n/* changelog config*/\n.timeline-card{\nbackground-color: var(--my-changlog-color);\n}\n.timeline-content::before{\nbackground-color: var(--my-changlog-color);\n}\n.changelog-type{\nbackground-color: #CC9052;\n}\n.changelog-type-newpage{\nbackground-color: #FF9C80;\n}\n.changelog-type-refactor::before {\ncontent: \"\u200b\u6587\u6863\u200b\u66f4\u65b0\u200b\";\n}\n\n/* \u200b\u56fe\u7247\u200b\u653e\u5927\u200b start */\n/* .shadow {\nbox-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n.zoom {\ntransition: transform ease-in-out 0.5s;\ncursor: zoom-in;\n}\n\n.image-zoom-large {\ntransform: scale(1.9);\ncursor: zoom-out;\nbox-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\nz-index: 100;\nposition: relative;\n} */\n/* \u200b\u56fe\u7247\u200b\u653e\u5927\u200b end */\n\n\n\n/*\u200b\u56fe\u7247\u683c\u5f0f\u200b\u8bbe\u7f6e\u200b*/\n/*\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b*/\nimg[src*=\"pic\"] {\nbox-shadow: 2px 2px 10px #666;\nborder-radius: 4px;\nwidth: 98%;\ndisplay: block;\nmargin: 10px auto;\n}\n/*\u200b\u6837\u5f0f\u200b 1 \u200b\u540c\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b*/\nimg[src*=\"pic1\"] {\nbox-shadow: 4px 4px 15px #666;\nborder-radius: 10px;\n}\n\n/* beat like a heart */\n@keyframes heart {\n0%, 40%, 80%, 100% {\n    transform: scale(1);\n}\n20%, 60% {\n    transform: scale(1.15);\n}\n}\n.heart {\nanimation: heart 1000ms infinite;\n}\n\n/* new admonitions */\n:root {\n--md-admonition-icon--definition: url('../icons/define.svg')\n}\n.md-typeset .admonition.definition,\n.md-typeset details.definition {\nborder-color: rgb(43, 155, 70);\n}\n.md-typeset .definition > .admonition-title,\n.md-typeset .definition > summary {\nbackground-color: rgba(43, 155, 70, 0.1);\n}\n.md-typeset .definition > .admonition-title::before,\n.md-typeset .definition > summary::before {\nbackground-color: rgb(43, 155, 70);\n-webkit-mask-image: var(--md-admonition-icon--definition);\n        mask-image: var(--md-admonition-icon--definition);\n}\n\n:root {\n--md-admonition-icon--reference: url('../icons/reference.svg')\n}\n.md-typeset .admonition.reference,\n.md-typeset details.reference {\nborder-color: rgb(223, 251, 13);\n}\n.md-typeset .reference > .admonition-title,\n.md-typeset .reference > summary {\nbackground-color: rgba(249, 249, 90, 0.1);\n}\n.md-typeset .reference > .admonition-title::before,\n.md-typeset .reference > summary::before {\nbackground-color: rgb(223, 251, 13);\n-webkit-mask-image: var(--md-admonition-icon--reference);\n        mask-image: var(--md-admonition-icon--reference);\n}\n/* new code highlight lines*/\nspan.hll {\nwidth: 150%;\n}\n\n/*see https://xuan-insr.github.io/%E6%9D%82%E9%A1%B9/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA%E8%AE%B0%E5%BD%95/#%E8%A7%A3%E5%86%B3%E5%85%AC%E5%BC%8F%E5%B8%A6%E7%BA%B5%E5%90%91%E6%BB%9A%E5%8A%A8%E6%9D%A1%E7%9A%84%E9%97%AE%E9%A2%98*/\n.md-typeset div.arithmatex {\noverflow-y: hidden;\n}\n
            \u200b\u81ea\u5df1\u200b\u5b9a\u4e49\u200b\u6837\u5f0f\u200b

            \u200b\u6211\u4eec\u200b\u53ef\u80fd\u200b\u4e0d\u200b\u719f\u6089\u200b css\uff0c\u200b\u6ca1\u4e8b\u200b\uff0c\u200b\u6211\u200b\u4e5f\u200b\u5b8c\u5168\u200b\u4e0d\u200b\u61c2\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u4e00\u4e9b\u200b\u7b80\u5355\u200b\u7684\u200b\u4fee\u6539\u200b\u989c\u8272\u200b\u4fee\u6539\u200b\u5b57\u200b\uff0c\u200b\u76f4\u63a5\u200b\u7528\u200b F12 \u200b\u67e5\u770b\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6837\u5f0f\u200b\u6539\u6210\u200b\u81ea\u5df1\u200b\u559c\u6b22\u200b\u7684\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\uff0c\u200b\u6d4f\u89c8\u5668\u200b\u4e00\u822c\u200b\u90fd\u200b\u652f\u6301\u200b\u76f4\u63a5\u200b\u6539\u200b\u5e76\u4e14\u200b\u663e\u793a\u200b\u4fee\u6539\u200b\u540e\u200b\u7684\u200b\u6548\u679c\u200b\u7684\u200b \u200b\u53e6\u200b\u4e00\u4e2a\u200b\u597d\u7528\u200b\u7684\u200b\u8bbe\u7f6e\u200b\u5c31\u662f\u200b\u4fee\u6539\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u50cf\u200b\u8fd9\u6837\u200b\u5f15\u7528\u200b\u56fe\u7247\u200b

            ![](images/Build_this_website/2023-07-02-02-35-34.png#pic)\n
            \u200b\u4e5f\u200b\u5c31\u662f\u200b\u5728\u200b\u7ed3\u5c3e\u200b\u52a0\u4e0a\u200b#pic\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5bf9\u200b\u56fe\u7247\u200b\u5e94\u7528\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\u4e86\u200b\uff0c\u200b\u6211\u7528\u200b\u7684\u200b\u662f\u200b\u5706\u89d2\u200b+\u200b\u9634\u5f71\u200b.\u200b\u8fd9\u4e00\u200b\u6dfb\u52a0\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u53ef\u4ee5\u200b\u7528\u200b VSCode \u200b\u63d2\u4ef6\u200b Paste Image \u200b\u81ea\u52a8\u200b\u5b9e\u73b0\u200b\uff0c\u200b\u6211\u200b\u5728\u200b\u8fd9\u91cc\u200b\u6709\u200b\u4ecb\u7ecd\u200b

            "},{"location":"Build_this_website/#32-javascript","title":"3.2 \u200b\u6dfb\u52a0\u200b\u989d\u5916\u200b\u7684\u200b javascript","text":"

            \u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u65b0\u589e\u200b\u7684\u200b js \u200b\u6587\u4ef6\u200b\u653e\u7f6e\u200b\u4e8e\u200bdocs/js/\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u6bcf\u4e2a\u200b js \u200b\u6587\u4ef6\u200b\u90fd\u200b\u8981\u200b\u5728\u200bmkdocs.yml\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a

            extra_javascript:\n  - js/extra.js\n
            \u200b\u8fd9\u91cc\u200b\u7684\u200b url \u200b\u53ef\u4ee5\u200b\u6307\u5411\u200b\u7f51\u7edc\u200b\u4e0a\u200b\u7684\u200b js \u200b\u6587\u4ef6\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u662f\u200b\u672c\u5730\u200b\u7684\u200b

            \u200b\u6211\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b js extra.jsmathjax.jstablesort.js
            document.querySelectorAll('.zoom').forEach(item => {\n    item.addEventListener('click'\uff0c function () {\n        this.classList.toggle('image-zoom-large');\n    })\n});\n
            window.MathJax = {\n    tex: {\n    inlineMath: [[\"\\\\(\"\uff0c \"\\\\)\"]]\uff0c\n    displayMath: [[\"\\\\[\"\uff0c \"\\\\]\"]]\uff0c\n    processEscapes: true\uff0c\n    processEnvironments: true\n    }\uff0c\n    options: {\n    ignoreHtmlClass: \".*|\"\uff0c\n    processHtmlClass: \"arithmatex\"\n    }\n};\n\ndocument$.subscribe(() => {\n    MathJax.typesetPromise()\n})\n
            document$.subscribe(function() {\n    var tables = document.querySelectorAll(\"article table:not([class])\")\n    tables.forEach(function(table) {\n    new Tablesort(table)\n    })\n})\n
            "},{"location":"Build_this_website/#33","title":"3.3 \u200b\u542f\u7528\u200b\u7f51\u7ad9\u200b\u6570\u636e\u5206\u6790","text":"

            \u200b\u5728\u200bmkdocs.yml\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a

            extra:\n  analytics:\n    provider: google\n    property: G-XXXXXXXXXX\n

            \u200b\u968f\u540e\u200b\u524d\u5f80\u200b Google Analytics \u200b\u6ce8\u518c\u200b\u4f7f\u7528\u200b\uff0c\u200b\u5e76\u200b\u5c06\u200b\u5bf9\u5e94\u200b\u4ee3\u7801\u200b\u63d2\u5165\u200b\u9996\u9875\u200b\u5373\u53ef\u200b\u3002

            "},{"location":"Build_this_website/#34","title":"3.4 \u200b\u542f\u7528\u200b\u8bc4\u8bba\u200b\u533a","text":"

            \u200b\u539f\u200b\u6587\u6863\u200b\u4ecb\u7ecd\u200b\u7684\u200b\u5f88\u200b\u6e05\u695a\u200b\u4e86\u200b

            "},{"location":"Build_this_website/#35-blog","title":"3.5 \u200b\u542f\u7528\u200b blog","text":"

            \u200b\u5b98\u65b9\u200b\u7684\u200b\u8d77\u6b65\u200b\u6307\u5bfc\u200b\u5f88\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u7167\u7740\u200b\u8d70\u200b\u5c31\u200b\u597d\u200b\uff01

            "},{"location":"Build_this_website/#36","title":"3.6 \u200b\u542f\u7528\u200b\u7279\u6b8a\u200b\u7684\u200b\u5b57\u4f53","text":"

            \u200b\u672c\u200b\u6587\u6863\u200b\u76ee\u524d\u200b\u91c7\u7528\u200b\u7684\u200b\u662f\u200b \u200b\u971e\u9e5c\u200b\u6587\u6977\u200b\uff0c\u200b\u4f46\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\u8be5\u200b\u5b57\u4f53\u200b\u76f4\u63a5\u200b\u4fee\u6539\u200b\u3002

            \u200b\u9700\u8981\u200b\u5148\u200b\u5728\u200bmkdocs.yml\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a

            extra_css:\n  - https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css\n

            \u200b\u7136\u540e\u200b\u518d\u200b\u5207\u6362\u200b\u8bed\u8a00\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u6b63\u5e38\u200b\u6e32\u67d3\u200b\u4e86\u200b\u3002

            theme:\n  font:\n    text: LXGW WenKai Screen\n
            "},{"location":"Build_this_website/#4","title":"4.\u200b\u5176\u4ed6\u200b\u63d2\u4ef6\u200b\u4e0e\u200b\u75db\u70b9\u200b\u89e3\u51b3","text":""},{"location":"Build_this_website/#41","title":"4.1 \u200b\u542f\u7528\u200b\u6700\u65b0\u66f4\u65b0\u200b\u65f6\u95f4","text":"

            \u200b\u5b89\u88c5\u200b\u5e93\u200b\uff1a

            pip install mkdocs-git-revision-date-localized-plugin\n
            \u200b\u6dfb\u52a0\u200b\u8bbe\u7f6e\u200b\u5230\u200bmkdocs.yml\uff1a
            plugins:\n  - git-revision-date-localized:\n      enable_creation_date: true\n

            "},{"location":"Build_this_website/#42","title":"4.2 \u200b\u56fe\u7247\u200b\u653e\u5927","text":"

            \u200b\u5148\u200b\u5b89\u88c5\u200b\u63d2\u4ef6\u200b\uff1a

            pip install mkdocs-glightbox\n

            \u200b\u7136\u540e\u200b\u52a0\u5165\u200b\u914d\u7f6e\u200b\uff1a

            plugins:\n  - glightbox\n

            "},{"location":"Build_this_website/#43-snippets","title":"4.3 \u200b\u4f7f\u7528\u200b snippets \u200b\u8f85\u52a9\u200b\u5199\u4f5c","text":"

            \u200b\u5728\u200b\u6587\u6863\u200b\u4e2d\u200b\u6211\u4eec\u200b\u6709\u200b\u8bb8\u591a\u200b\u56fa\u5b9a\u200b\u683c\u5f0f\u200b\u7684\u200b\u5185\u5bb9\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\u6211\u200b\u5728\u200b\u6587\u6863\u200b\u4e2d\u200b\u6240\u6709\u200b\u7684\u200b\u8fde\u63a5\u200b\u51e0\u4e4e\u200b\u90fd\u200b\u662f\u200b

            [:octicons-link-16:\u200b\u6587\u5b57\u200b](\u200b\u94fe\u63a5\u200b)\n

            \u200b\u6216\u8005\u8bf4\u200b\u6211\u200b\u6240\u6709\u200b\u535a\u5ba2\u200b\u7684\u200b post \u200b\u7684\u200b\u5f00\u5934\u200b\u90fd\u200b\u662f\u200b

            ---\ncomments: true\nauthors:\n    - stormckey\ncategories:\n    -\ndate: 2023-12-18\nnostatistics: true\n---\n

            \u200b\u91cd\u590d\u6027\u200b\u5f88\u200b\u9ad8\u200b\u3002\u200b\u5982\u679c\u200b\u4f60\u200b\u50cf\u200b\u6211\u200b\u4e00\u6837\u200b\u4f7f\u7528\u200b MacOS \u200b\u7684\u8bdd\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b raycast \u200b\u7684\u200b snippet \u200b\u529f\u80fd\u200b\u6765\u200b\u7b80\u5316\u200b\u8fd9\u4e00\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u524d\u8005\u200b\uff0c\u200b\u6211\u200b\u8bbe\u7f6e\u200b\u4e86\u200b\u5982\u4e0b\u200b\u7684\u200b snippet\uff1a

            \u200b\u8fd9\u6837\u200b\u53ef\u4ee5\u200b\u5728\u200b\u6572\u5165\u200b\uff01!lk \u200b\u540e\u200b\u81ea\u52a8\u200b\u8f6c\u5316\u200b\u4e3a\u200b\u6307\u5b9a\u200b\u683c\u5f0f\u200b\uff0c\u200b\u63d2\u5165\u200b\u526a\u5207\u677f\u200b\u6587\u5b57\u200b\u5e76\u4e14\u200b\u5c06\u200b\u5149\u6807\u200b\u79fb\u52a8\u200b\u5230\u200b\u6307\u5b9a\u200b\u4f4d\u7f6e\u200b\u3002\u200b\u5bf9\u4e8e\u200b post \u200b\u7684\u200b\u5f00\u5934\u200b\u5143\u200b\u6570\u636e\u200b\uff0c\u200b\u6211\u200b\u7684\u200b\u8bbe\u7f6e\u200b\u662f\u200b\uff1a

            \u200b\u7c7b\u4f3c\u200b\u7684\u200b\u53ef\u4ee5\u200b\u8bbe\u7f6e\u200b\u522b\u7684\u200b snippet\u3002

            \u200b\u5982\u679c\u200b\u4f60\u200b\u4e0d\u200b\u4f7f\u7528\u200b MacOS\uff0cVSCode \u200b\u5e94\u8be5\u200b\u4e5f\u200b\u6709\u200b\u7c7b\u4f3c\u200b\u7684\u200b snippet \u200b\u7684\u200b\u529f\u80fd\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u81ea\u884c\u200b\u63a2\u7d22\u200b\u3002

            "},{"location":"Build_this_website/#44","title":"4.4 \u200b\u81ea\u52a8\u200b\u7ed9\u200b\u63d2\u5165\u200b\u56fe\u7247\u200b\u8bbe\u7f6e\u200b\u6837\u5f0f","text":"

            \u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u53c2\u8003\u200b\u6b64\u7bc7\u200b\u535a\u5ba2\u200b\u4e2d\u200b\u6700\u540e\u200b\u7684\u200b\u4e3a\u200b\u56fe\u7247\u200b\u8bbe\u7f6e\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\u4e00\u680f\u200b

            \u200b\u672c\u7ad9\u200b\u91c7\u7528\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\u4e3a\u200b\u5706\u89d2\u200b+\u200b\u9634\u5f71\u200b\uff0c\u200b\u53e6\u5e26\u200b\u5c45\u4e2d\u200b\u548c\u200b\u66f4\u200b\u5408\u9002\u200b\u7684\u200b\u95f4\u9694\u200b

            "},{"location":"Build_this_website/#45","title":"4.5 \u200b\u81ea\u52a8\u200b\u4e2d\u6587\u200b\u6392\u7248\u200b\u4f18\u5316","text":"

            \u200b\u5173\u4e8e\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u6211\u200b\u4e4b\u524d\u200b\u5199\u8fc7\u200b\u4e00\u7bc7\u200b \u200b\u535a\u5ba2\u200b\uff0c\u200b\u6b22\u8fce\u200b\u53c2\u8003\u200b\u3002

            "},{"location":"Format/","title":"\u6837\u5f0f\u200b\u4e00\u89c8","text":"

            \u200b\u7ea6\u200b 302 \u200b\u4e2a\u200b\u5b57\u200b 25 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

            Abstraction

            \u200b\u6b64\u200b\u9875\u9762\u200b\u5c06\u4f1a\u200b\u5217\u51fa\u200b\u672c\u200b\u7ad9\u70b9\u200b\u76ee\u524d\u200b\u652f\u6301\u200b\u7684\u200b\u6240\u6709\u200b\u663e\u793a\u200b\u6837\u5f0f\u200b \u200b\u8bb8\u591a\u200b\u90fd\u200b\u6765\u81ea\u200b Material for Mkdocs

            int main(){\n    printf(\"Hello World\");\n    printf(\"!/n\");\n}\n
            #include <iostream>\nusing namespace std;\n

            The range() function is used to generate a sequence of numbers.

            inlcude a file: .gitignore
            site/\n.DS_Store\n*.docx\n*.pdf\nsrc/*\n*pycache*\n
            col1 col2 col3 r1c1 r1c2 r1c3 r2c1 r2c2 r2c3 r3c1 r3c2 r3c3
            graph LR\n  A[What to eat?] --> B{Hesitate};\n  B -->|KFC| C[Hmm...];\n  C --> D[Bad!];\n  D --> B;\n  B ---->|Mcdonald's| E[Yay!];

            \u200b\u6587\u6863\u200b\u4ecb\u7ecd\u200b\u4e86\u200b\u6240\u6709\u200b\u652f\u6301\u200b\u7684\u200b\u56fe\u200b

            my title

            something

            no title

            my title

            something

            no inline

            Now it suppports Note\uff0cAbstract\uff0cInfo\uff0cTip\uff0cSuccess\uff0cQuestion\uff0cWarining\uff0cFailure\uff0cDanger\uff0cBug\uff0cExample\uff0cQuote

            inline

            somthing

            Subscribe to our newsletter

            Subscribe to our newsletter

            CC++
            #include <stdio.h>\n\nint main(void) {\n  printf(\"Hello world!\\n\");\n  return 0;\n}\n
            #include <iostream>\n\nint main(void) {\n  std::cout << \"Hello world!\" << std::endl;\n  return 0;\n}\n

            Note

            Search for emojis here

            Definition

            Define sth

            Text can be deleted and replacement text added. This can also be combined into onea single operation. Highlighting is also possible and comments can be added inline.

            Formatting can also be applied to blocks by putting the opening and closing tags on separate lines and adding new lines between the tags and the content.

            • This was marked
            • This was inserted
            • This was deleted

            • H2O

            • ATA

            Ctrl+Alt+Del

            Image caption

            • Lorem ipsum dolor sit amet\uff0c consectetur adipiscing elit
            • Vestibulum convallis sit amet nisi a tincidunt
              • In hac habitasse platea dictumst
              • In scelerisque nibh non dolor mollis congue sed et metus
              • Praesent sed risus massa
            • Aenean pretium efficitur erat\uff0c donec pharetra\uff0c ligula non scelerisque
            \\[ \\operatorname{ker} f=\\{g\\in G:f(g)=e_{H}\\}{\\mbox{.}} \\]

            The HTML specification is maintained by the W3C.

            Lorem ipsum dolor sit amet

            Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus tellus non sem sollicitudin\uff0c quis rutrum leo facilisis.

            Cras arcu libero

            Aliquam metus eros\uff0c pretium sed nulla venenatis\uff0c faucibus auctor ex. Proin ut eros sed sapien ullamcorper consequat. Nunc ligula ante.

            Duis mollis est eget nibh volutpat\uff0c fermentum aliquet dui mollis. Nam vulputate tincidunt fringilla. Nullam dignissim ultrices urna non auctor.

            Method Description GET Fetch resource PUT Update resource DELETE Delete resource"},{"location":"changelog/","title":"\u66f4\u65b0\u200b\u8bb0\u5f55","text":""},{"location":"changelog/#2023","title":"2023","text":"2023-12-18\u00b6

            \u200b\u7ed9\u200b\u94fe\u63a5\u200b\u7740\u8272\u200b

            2023-12-13\u00b6

            \u200b\u4f18\u5316\u200b\u4e86\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b

            2023-11-28\u00b6

            \u200b\u4f7f\u7528\u200b\u4e86\u200bmeta-manager\u200b\u63d2\u4ef6\u200b,\u200b\u7b80\u5316\u200b\u4e86\u200bmetadata\u200b\u7684\u200b\u4f7f\u7528\u200b

            Blog > PL > Y-combinator

            2023-11-26\u00b6

            \u200b\u65b0\u589e\u200b\u4e86\u200bDefinition\u200b\u6837\u5f0f\u200b

            \u200b\u542f\u7528\u200bblog\u200b\u63d2\u4ef6\u200b

            \u200b\u4f7f\u7528\u200bPangu.vim\u200b\u63d2\u4ef6\u200b\u8fdb\u884c\u200b\u6587\u6863\u200b\u683c\u5f0f\u5316\u200b

            Blog > Cool > \u200b\u7528\u200bVim\u200b\u6279\u91cf\u200b\u683c\u5f0f\u5316\u200b

            2023-11-25\u00b6

            \u200b\u91cd\u6784\u200b\u4e86\u200bBlog\u200b\u7684\u200b\u5c42\u7ea7\u200b,\u200b\u52a0\u5165\u200b\u4e86\u200bLab\u200b\u90e8\u5206\u200b

            \u200b\u52a0\u5165\u200b\u4e86\u200b\u8ba1\u7f51\u200b\u5b9e\u9a8c\u200b\u6307\u5357\u200b

            2023-11-20\u00b6

            \u200b\u65b0\u589e\u200b\u4e86\u200b\u6570\u636e\u200b\u5efa\u6a21\u200b\u4e0e\u200b\u5206\u6790\u200b\u7684\u200b\u7b14\u8bb0\u200b

            2023-11-07\u00b6

            \u200b\u597d\u200b\u670b\u53cb\u200bPeiPei\u200b\u6765\u200b\u5bc4\u5c45\u200b\u4e86\u200b!

            2023-07-08\u00b6

            \u200b\u66f4\u6362\u200b\u4e86\u200b\u66f4\u65b0\u200b\u65e5\u5fd7\u200b\u7684\u200b\u8272\u5f69\u200b

            \u200b\u79fb\u9664\u200bDS\u200b\u7b14\u8bb0\u200b

            2023-07-04\u00b6

            \u200b\u6da6\u8272\u200b\u4e86\u200b\u535a\u5ba2\u200b\u548c\u200b\u7b14\u8bb0\u200b\u7684\u200b\u5185\u5bb9\u200b

            Home > Build_this_page

            \u200b\u91cd\u6784\u200b\u4e86\u200b\u7f51\u7ad9\u200b\u7684\u200b\u7ed3\u6784\u200b\uff0c\u200b\u542f\u7528\u200b\u4e86\u200b\u65b0\u200b\u7684\u200bmaterial\u200b\u529f\u80fd\u200b

            Blog > docker_minisql

            2023-04-06\u00b6

            Blog > \u200b\u5728\u200bMac\u200b\u4e0a\u200b\u4f7f\u7528\u200bVSCode\u200b\u8fdb\u884c\u200bC/C++\u200b\u8c03\u8bd5\u200b

            2023-04-01\u00b6

            Blog > \u200b\u6211\u200b\u7684\u200bCLI\u200b\u5de5\u5177\u200b

            2023-03-30\u00b6

            Note > \u200b\u8ba1\u7ec4\u200b\u62fe\u9057\u200b

            2023-03-29\u00b6

            Blog > \u200b\u542f\u7528\u200bchatGPT-academic

            2023-03-27\u00b6

            Note > Missiing Semester > Commandline Environment

            2023-03-23\u00b6

            \u200b\u91cd\u6784\u200b\u4e86\u200b\u5168\u7ad9\u200b\u7684\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b\uff0c\u200b\u73b0\u5728\u200b\u662f\u200b\u9ed8\u8ba4\u200b\u5706\u89d2\u200b\u77e9\u5f62\u200b\u52a0\u200b\u9634\u5f71\u200b

            Blog > \u200b\u5728\u200bVSCode\u200b\u4e0b\u200b\u7f16\u5199\u200bMarkdown

            Blog > \u200b\u914d\u7f6e\u200bGithub\u200b\u4e2a\u4eba\u200bProfile

            2023-03-22\u00b6

            Blog > \u200b\u7528\u200bssh\u200b\u8fde\u63a5\u200b\u540c\u4e00\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u7684\u200bwsl

            Blog > wsl\u200b\u7ec8\u7aef\u200b\u914d\u7f6e\u200b

            2023-03-21\u00b6

            Blog > wsl\u200b\u4e0a\u200b\u542f\u7528\u200bcuda

            Blog > VSCode\u200b\u7ec8\u7aef\u200b\u4e0a\u200b\u65e0\u6cd5\u200b\u542f\u7528\u200bconda\u200b\u865a\u62df\u73af\u5883\u200b

            2023-03-20\u00b6

            Blog > zsh\u200b\u4e2d\u200b\u7684\u200b\u53c2\u6570\u4f20\u9012\u200b

            2023-03-18\u00b6

            Home > \u200b\u6700\u8fd1\u200b\u66f4\u65b0\u200b

            \u200b\u4fee\u6539\u200b\u4e86\u200b\u7f51\u7ad9\u200b\u7684\u200b\u8272\u5f69\u200b,\u200b\u4f7f\u7528\u200b\u4e86\u200b\u66f4\u200b\u591a\u6837\u200b\u7684\u200b\u56fe\u6807\u200b

            Research > Diffusion > DDPM

            Research > Diffusion > DDIM

            "},{"location":"Note/","title":"\u7b14\u8bb0\u672c\u200b\uff01","text":"

            \u200b\u5927\u5b66\u200b\u671f\u95f4\u200b\u7684\u200b\u7b14\u8bb0\u200b\u5408\u96c6\u200b

            \u200b\u5176\u5b9e\u200b\u6211\u200b\u4e00\u76f4\u200b\u4ee5\u6765\u200b\u90fd\u200b\u4e0d\u600e\u4e48\u200b\u8bb0\u7b14\u8bb0\u200b\uff0c\u200b\u4f46\u200b\u4e4b\u524d\u200b\u51e0\u6b21\u200b\u6570\u5b66\u8bfe\u200b\u4e0d\u200b\u8bb0\u7b14\u8bb0\u200b\u5dee\u70b9\u200b\u66b4\u6bd9\u200b\u4e86\u200b\uff0c\u200b\u6240\u4ee5\u200b\u504f\u200b\u6570\u5b66\u200b\u7684\u200b\u8bfe\u200b\u8fd8\u662f\u200b\u4fdd\u7559\u200b\u4e86\u200b\u8bb0\u7b14\u8bb0\u200b\u7684\u200b\u4e60\u60ef\u200b\u7684\u200b\u3002

            \u200b\u53e6\u5916\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u671f\u672b\u200b\u590d\u4e60\u200b\u4ea7\u751f\u200b\u7684\u200b\u7b14\u8bb0\u200b\uff0c\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u6613\u200b\u5fd8\u200b\u77e5\u8bc6\u200b\u7684\u200b\u6574\u7406\u200b

            "},{"location":"Note/CO_review/","title":"\u8ba1\u7b97\u673a\u200b\u7ec4\u6210","text":"

            \u200b\u7ea6\u200b 431 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

            \u200b\u6781\u5176\u200b\u7b80\u7565\u200b\uff0c\u200b\u53ea\u6709\u200b\u90e8\u5206\u200b\u6613\u200b\u5fd8\u200b\u3001\u200b\u6216\u200b\u4e0d\u200b\u90a3\u4e48\u200b\u663e\u7136\u200b\u7684\u200b\u77e5\u8bc6\u70b9\u200b\uff08\u200b\u62ff\u6765\u200b\u67e5\u8868\u200b\uff09\uff0c\u200b\u6240\u4ee5\u200b\u796d\u7956\u200b\u53ea\u7528\u200b\u4e86\u200b\u4e00\u9875\u200b

            \u200b\u8bb8\u591a\u200b\u5185\u5bb9\u200b\u6458\u81ea\u200b\u54b8\u9c7c\u200b\u6684\u200b\u7684\u200b\u4ee3\u7801\u200b\u7a7a\u95f4\u200b

            \u200b\u8fd9\u91cc\u200b\u662f\u200b\u8bfe\u672c\u200b\u4f5c\u4e1a\u200b\u7b54\u6848\u200b

            "},{"location":"Note/CO_review/#ch2-instructions","title":"Ch2 Instructions","text":"
            • PC relative addressing: PC + offset \u200b\u800c\u200b\u975e\u200b PC + 4 + offset
            • I \u200b\u7c7b\u578b\u200b\u7684\u200b\u7acb\u5373\u200b\u6570\u5747\u200b\u4e3a\u200b\u7b26\u53f7\u200b\u6269\u5c55\u200b\uff0c\u200b\u4f46\u200b\u8981\u200b\u6ce8\u610f\u200b\u79fb\u4f4d\u6307\u4ee4\u200b\u53ea\u200b\u622a\u53d6\u200b\u4f4e\u4f4d\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u8fc7\u200b\u591a\u4f4d\u6570\u200b\u7684\u200b\u4f4d\u79fb\u200b\u65e0\u200b\u610f\u4e49\u200b
            • SB \u200b\u548c\u200b UJ \u200b\u7c7b\u578b\u200b\u90fd\u200b\u4e0d\u5b58\u200b\u6700\u4f4e\u200b\u4f4d\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u4ed6\u4eec\u200b\u7684\u200b\u76ee\u7684\u5730\u200b\u662f\u200b\u6307\u4ee4\u200b\uff08word alignment\uff09\uff0c\u200b\u4e00\u822c\u200b\u6700\u540e\u200b\u4e24\u4f4d\u200b\u90fd\u200b\u662f\u200b 0\uff08\u200b\u56e0\u4e3a\u200b\u5b58\u5728\u200b 16 \u200b\u4f4d\u200b\u7684\u200b\u6307\u4ee4\u200b\u6240\u4ee5\u200b\u53ea\u6709\u200b\u6700\u540e\u200b\u4e00\u4f4d\u200b\u5fc5\u7136\u200b\u662f\u200b 0\uff09
            • \u200b\u5408\u7406\u200b\u5229\u7528\u200bbgeu\u200b\u6765\u200b\u68c0\u6d4b\u200b\u8d8a\u754c\u200b\uff08\u200b\u5c0f\u4e8e\u200b\u96f6\u200b\u6216\u8005\u200b\u5927\u4e8e\u200b\u67d0\u4e2a\u200b\u6570\u200b\uff09
            • lui\u200b\u52a0\u8f7d\u200b\u4e86\u200b\u7acb\u5373\u200b\u6570\u200b\u7684\u200b\u9ad8\u200b 20 \u200b\u4f4d\u540e\u200b\uff0c\u200b\u7528\u200baadi\u200b\u52a0\u8f7d\u200b\u4f4e\u200b 12 \u200b\u4f4d\u200b\uff0c\u200b\u82e5\u56e0\u200b\u7b26\u53f7\u200b\u6269\u5c55\u200b\u5bfc\u81f4\u200b\u8fdb\u4f4d\u200b\uff0c\u200b\u53ea\u8981\u200b\u591a\u52a0\u200b 1000 \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u62b5\u6d88\u200b FFFFF000 \u200b\u7684\u200b\u5f71\u54cd\u200b
            • \u200b\u8bb0\u200b\u6e05\u695a\u200b ld \u200b\u7684\u200b d \u200b\u662f\u200b doubleword\uff0c\u200b\u8001\u662f\u200b\u8bb0\u6210\u200b load \u200b\u7684\u200b d

            \u200b\u8fd8\u6709\u200b\u51e0\u5f20\u200b\u5e38\u7528\u200b\u8868\u200b\uff1a

            \uff08\u200b\u4e0b\u56fe\u200b\u91cc\u200b\u7684\u200b j imm \u200b\u8981\u200b\u6539\u6210\u200b PC+imm\uff09

            "},{"location":"Note/CO_review/#ch3-arithmetic","title":"Ch3 Arithmetic","text":"
            • \u200b\u68c0\u6d4b\u200b\u52a0\u51cf\u6cd5\u200b\u6ea2\u51fa\u200b\uff1a\u200b\u6700\u9ad8\u200b\u4f4d\u200b\u5168\u52a0\u5668\u200b\u7684\u200b Cin Cout \u200b\u8fdb\u884c\u200b\u5f02\u6216\u200b\u5373\u53ef\u200b\uff0c\u200b\u8fd9\u200b\u4fe9\u200b\u4fe1\u53f7\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u5c31\u200b\u610f\u5473\u7740\u200b\u6ea2\u51fa\u200b\u4e86\u200b
            • \u200b\u6700\u9ad8\u200b\u4f4d\u200b\u7275\u51fa\u200b\u4e00\u6839\u200b\u7ebf\u200b set \u200b\u5230\u200b\u6700\u4f4e\u200b\u4f4d\u200b\u7684\u200b less\uff0c\u200b\u5176\u4ed6\u200b\u6240\u6709\u200b\u4f4d\u200b less \u200b\u90fd\u200b\u7f6e\u200b 0 \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7ec4\u6210\u200b slt \u200b\u7684\u200b\u8f93\u51fa\u200b\u4fe1\u53f7\u200b\u4e86\u200b
            • IEEE 754 \u200b\u6ce8\u610f\u200b\u4e24\u70b9\u200b \u200b\u4e00\u662f\u200b 1+8+23 = 32 \uff5c1 + 11 + 52 = 64\uff1b\u200b\u4e8c\u662f\u200b\u4e0b\u6ea2\u200b\u7684\u200b\u975e\u200b\u89c4\u683c\u200b\u6570\u200b\u7684\u200b exponent \u200b\u8ddf\u200b\u89c4\u683c\u200b\u6570\u200b\u7684\u200b\u6700\u5c0f\u200b exponent \u200b\u662f\u200b\u4e00\u6837\u200b\u7684\u200b\uff0c\u200b\u8fd9\u6837\u200b\u8bbe\u8ba1\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8ba9\u200b 0.1111111...\uff08\u200b\u4e0b\u6ea2\u200b\u6700\u5927\u200b\uff09 -> 1.0000000\uff08\u200b\u89c4\u683c\u200b\u6700\u5c0f\u200b\uff09...\u200b\u8fde\u7eed\u200b\u53ef\u4ee5\u200b\u7b49\u200b\u5dee\u200b\u7684\u200b\u5f80\u200b\u4e0a\u200b\u589e\u52a0\u200b
            • \u200b\u6d6e\u70b9\u200b\u52a0\u6cd5\u200b\uff1a\u200b\u6ce8\u610f\u200b\u5bf9\u9f50\u200b\u6539\u53d8\u200b\u7684\u200b\u662f\u200b\u5c0f\u200b\u7684\u200b\u6307\u6570\u200b\u90a3\u4e2a\u200b
            • \u200b\u6d6e\u70b9\u200b\u4e58\u6cd5\u200b\uff0c\u200b\u6ce8\u610f\u200b\u51cf\u53bb\u200b bias
            "},{"location":"Note/ADS/B-Tree_B%2BTree/","title":"B Tree B+Tree","text":"

            \u200b\u7ea6\u200b 424 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

            1.

            B \u200b\u6811\u200b\u5229\u7528\u200b\u4e86\u200b\u5c40\u90e8\u6027\u200b\u6765\u200b\u52a0\u901f\u200b\u8bbf\u95ee\u200b\n\nB \u200b\u6811\u200b\u7684\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u662f\u200b\u6307\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u7a7a\u200b\u5b69\u5b50\u200b\n\n![](image/B-Tree_B+Tree/media/image1.png)\n

            2.

            \u200b\u5bf9\u200b B \u200b\u6811\u200b\u7684\u200b\u8282\u70b9\u200b\u5173\u952e\u7801\u200b\u6570\u200b\u7ea6\u5b9a\u200b\uff0c\u200b\u6ce8\u610f\u200b\u4e0b\u9650\u200b\u662f\u200b\u4e0a\u200b\u53d6\u6574\u200b\uff0c\u200b\u53ef\u7528\u200b\u4e0a\u200b\u4e0b\u9650\u200b\u547d\u540d\u200b\n\u200b\u5982\u200b\uff083\uff0c5\uff09\u200b\u6811\u200b/5 \u200b\u9636\u200b B \u200b\u6811\u200b\uff0c5 \u200b\u9636\u200b B \u200b\u6570\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6700\u200b\u591a\u200b 4 \u200b\u4e2a\u200b\u5173\u952e\u7801\u200b\n\n![](image/B-Tree_B+Tree/media/image2.png)\n

            3.

            B \u200b\u6811\u200b\u5728\u200b\u5185\u5b58\u200b\u4e2d\u200b\u5b9e\u9645\u200b\u7684\u200b\u5b58\u50a8\u200b\u5f62\u5f0f\u200b\u4e3a\u200b\n\n![](image/B-Tree_B+Tree/media/image3.png)\n

            4.

            \u200b\u6ce8\u610f\u200b \u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u6570\u200b=\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u6570\u200b+1\n\n![](image/B-Tree_B+Tree/media/image4.png)\n\n\n\u200b\u4e5f\u200b\u53ef\u200b\u7406\u89e3\u200b\u4e3a\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u5bf9\u5e94\u200b N \u200b\u79cd\u200b\u6210\u529f\u200b\uff0c\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u5c31\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b N+1 \u200b\u79cd\u200b\u5931\u8d25\u200b\u7684\u200b\u60c5\u51b5\u200b\n

            5.

            B \u200b\u6811\u200b\u7684\u200b\u9ad8\u5ea6\u200b\u5c31\u200b\u5728\u200b\u3001\\thetalogmn\n\n![](image/B-Tree_B+Tree/media/image5.png)\n

            6.

            B \u200b\u6570\u200b\u7684\u200b\u63d2\u5165\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u81f4\u200b\u8282\u70b9\u200b key \u200b\u8fc7\u591a\u200b\uff0c\u200b\u5219\u200b\u9700\u8981\u200b\u5206\u88c2\u200b\uff0c\u200b\u5e76\u200b\u628a\u200b\u4e2d\u70b9\u200b\u4e0a\u79fb\u200b\n\n![](image/B-Tree_B+Tree/media/image6.png)\n\n\n\u200b\u5982\u679c\u200b\u5206\u88c2\u200b\u5230\u200b\u6839\u200b \u200b\u90a3\u4e48\u200b\u9ad8\u5ea6\u200b\u52a0\u200b 1\n

            7.

            B \u200b\u6811\u200b\u7684\u200b\u5220\u9664\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u81f4\u200b\u4e0b\u200b\u8d8a\u754c\u200b\uff0c\u200b\u4f46\u51e1\u200b\u5de6\u53f3\u200b\u6709\u200b\u4e00\u4e2a\u200b\u5144\u5f1f\u200b\u6709\u200b\u591a\u200b\u7684\u200b\uff08\u200b\u501f\u51fa\u200b\u540e\u200b\u4e0d\u4e0b\u200b\u6ea2\u51fa\u200b\uff09\uff0c\u200b\u65cb\u8f6c\u200b\n\n![](image/B-Tree_B+Tree/media/image7.png)\n\n\n\u200b\u5982\u679c\u200b\u6ca1\u6709\u200b\uff0c \u200b\u4ece\u200b\u4e0a\u9762\u200b\u62fd\u200b\u4e00\u4e2a\u200b\u4e0b\u6765\u200b\uff0c\u200b\u4e09\u200b\u90e8\u5206\u200b\u4e00\u8d77\u200b\u5408\u5e76\u200b\n\n![](image/B-Tree_B+Tree/media/image8.png)\n\n\n\u200b\u5408\u5e76\u200b\u5230\u200b\u6839\u200b\uff0c\u200b\u5c31\u200b\u628a\u200b\u7a7a\u6839\u200b\u5220\u9664\u200b\uff0c\u200b\u81f3\u6b64\u200b\u9ad8\u5ea6\u200b\u51cf\u4e00\u200b\n

            8.

            B \u200b\u6811\u200b\u628a\u200b\u6570\u636e\u200b\u5b58\u5728\u200b\u8282\u70b9\u200b\u4e2d\u200b\uff0c\u200b\u6bd4\u8d77\u200b B+\u200b\u6811\u200b\u5b58\u5728\u200b\u6839\u4e2d\u200b\uff0cB \u200b\u9664\u4e86\u200b key \u200b\u591a\u200b\u4e86\u200b\u4e2a\u200b\u6307\u9488\u200b\u7684\u200b\u5927\u5c0f\u200b.\u200b\u9664\u53bb\u200b\u6307\u9488\u200b\u7d22\u5f15\u200b\u53ef\u4ee5\u200b\u5bb9\u7eb3\u200b\u5bbd\u200b\u6241\u200b\u7684\u200b\u6811\u200b\u3002\n\n\u200b\u53e6\u5916\u200b\u52a0\u5165\u200b\u8981\u200b\u67e5\u627e\u200b\u67d0\u4e00\u200b\u533a\u95f4\u200b\u7684\u200b\u70b9\u200b\u6bd4\u5982\u200b 20-60\uff0c\u200b\u9700\u8981\u200b\u4f9d\u6b21\u200b\u641c\u7d22\u200b\uff0c\u200b\u5f88\u200b\u9ebb\u70e6\u200b\n\n\u200b\u5f15\u5165\u200b B+\u200b\u6811\u200b\uff1a\n\n![](image/B-Tree_B+Tree/media/image9.png)\n\n\n\u200b\u7d22\u5f15\u200b\u503c\u200b\uff08\u200b\u5185\u90e8\u200b\u70b9\u200b\uff09\u200b\u4e0d\u200b\u91cd\u590d\u200b\uff1b\n\n\u200b\u4e0d\u518d\u200b\u9700\u8981\u200b B \u200b\u6811\u200b\u7684\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\uff1b\n\n\u200b\u53f6\u5b50\u200b\u5757\u200b\u5355\u5411\u200b\u94fe\u8868\u200b\uff0c\u200b\u65b9\u4fbf\u200b\u67e5\u627e\u200b\u67d0\u4e2a\u200b\u8303\u56f4\u200b\u5185\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u4e0d\u5fc5\u200b\u591a\u904d\u200b\u4ece\u6839\u200b\u51fa\u53d1\u200b\u3002\n\n\u200b\u7d22\u5f15\u200b\u503c\u200b\uff08\u200b\u5185\u90e8\u200b\u70b9\u200b\u7684\u200b key\uff09\u200b\u5b58\u200b\u7684\u200b\u662f\u200b\u53f3\u5b50\u200b\u6811\u200b\u7684\u200b\u6700\u5c0f\u200b\u53f6\u5b50\u200b\u8282\u70b9\u200b\u7684\u200b\u503c\u200b\u3002\n\n\u200b\u5982\u679c\u200b\u6709\u200b\u78c1\u76d8\u200b\u6307\u9488\u200b\uff0c\u200b\u4e5f\u200b\u90fd\u200b\u5b58\u5728\u200b\u6709\u200b\u8282\u70b9\u200b\u3002\n\n\u200b\u63d2\u5165\u200b\u5220\u9664\u200b\u4e0e\u200b B \u200b\u6811\u200b\u76f8\u4eff\u200b.\u200b\u4f46\u200b\u90fd\u200b\u8981\u200b\u6df1\u5165\u200b\u5230\u200b\u53f6\u200b\u8282\u70b9\u200b\u3002\n
            "},{"location":"Note/ADS/BST_AVL_Splay/","title":"BST AVL Splay","text":"

            \u200b\u7ea6\u200b 287 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

            1. \u200b\u6211\u4eec\u200b\u5728\u200b\u8c03\u7528\u200b search \u200b\u65f6\u4f1a\u200b\u591a\u200b\u4f20\u9012\u200b\u4e00\u4e2a\u200b\u5f15\u7528\u200b\u7684\u200b\u53c2\u6570\u200b hot \u200b\u5176\u200b\u610f\u4e49\u200b\u5982\u4e0b\u200b\uff1a

              \u200b\u8fd9\u200b\u6709\u5229\u4e8e\u200b\u6211\u4eec\u200b\u5b9e\u73b0\u200b insert delete

            2.

            BST \u200b\u7684\u200b\u5e73\u5747\u200b\u9ad8\u5ea6\u200b\uff0c\u200b\u6709\u200b\u4e24\u79cd\u200b\u8ba1\u7b97\u200b\u65b9\u5f0f\u200b\n\n  1.  \u200b\u968f\u673a\u200b\u7ec4\u6210\u200b\uff1a\u200b\u8ba1\u7b97\u200b\u4e00\u5171\u200b\u6709\u200b\u591a\u5c11\u200b\u79cd\u200b\u53ef\u80fd\u200b\u7684\u200b\u62d3\u6251\u200b\u7ed3\u6784\u200b \u200b\u6839\u53f7\u200b n Catalan\uff08N\uff09\u200b\u79cd\u200b\u7ed3\u6784\u200b\n\n  2.  \u200b\u968f\u673a\u200b\u751f\u6210\u200b\uff1a\u200b\u8ba1\u7b97\u200b\u4e00\u5171\u200b\u6709\u200b\u591a\u5c11\u200b\u79cd\u200b\u53ef\u80fd\u200b\u7684\u200b\u8f93\u5165\u200b\u5e8f\u5217\u200b ln N N\uff01\u200b\u79cd\u200b\u5e8f\u5217\u200b\n\n![](image/BST_AVL_Splay/media/image2.png)\n\n\n\u200b\u968f\u673a\u200b\u7ec4\u6210\u200b\u66f4\u52a0\u200b\u53ef\u4fe1\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u968f\u673a\u200b\u751f\u6210\u200b\u4f1a\u200b\u989d\u5916\u200b\u589e\u5927\u200b 213 \u200b\u548c\u200b 231 \u200b\u8fd9\u4e00\u8f83\u200b\u4f4e\u6811\u200b\u7684\u200b\u6743\u91cd\u200b\uff0c\u200b\u91cd\u590d\u200b\u4e86\u200b\n

            3.\u200b\u7b49\u4ef7\u200b BST

            \u200b\u4e0a\u4e0b\u200b\u5177\u6709\u200b\u4e00\u5b9a\u200b\u7684\u200b\u7075\u6d3b\u200b\u5ea6\u200b\n\n![](image/BST_AVL_Splay/media/image3.png)\n\n\n![](image/BST_AVL_Splay/media/image4.png)\n

            4.

            ![](image/BST_AVL_Splay/media/image5.png)\n\n\n\u200b\u5de6\u200b\u5206\u53c9\u200b\u662f\u200b zig \u200b\u53f3\u200b\u5206\u53c9\u200b\u662f\u200b zag\uff0c\u200b\u65cb\u8f6c\u200b\u53ef\u4ee5\u200b\u4fdd\u6301\u200b BST \u200b\u7684\u200b\u7b49\u4ef7\u200b\n

            5.

            AVL \u200b\u7684\u200b\u63d2\u5165\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u5bfc\u81f4\u200b\u4e00\u7cfb\u5217\u200b\u7956\u5148\u200b\u7684\u200b\u5931\u8861\u200b\uff0c\u200b\u4f46\u662f\u200b\u5220\u9664\u200b\u53ea\u200b\u53ef\u80fd\u200b\u5bfc\u81f4\u200b\u67d0\u200b\u4e00\u4e2a\u200b\u7956\u5148\u200b\u7684\u200b\u5931\u8861\u200b\n

            6.

            ![](image/BST_AVL_Splay/media/image6.png)\n\n\n\u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u627e\u5230\u200b\u7b2c\u4e00\u4e2a\u200b\u5931\u8861\u200b\u70b9\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5faa\u73af\u200b\u8d70\u200b\u554a\u200b\u8def\u5f84\u200b\u53ea\u8981\u200b\u5f80\u4e0b\u200b\u627e\u200b\u4e24\u6b21\u200b\u9ad8\u5ea6\u200b\u6700\u9ad8\u200b\u7684\u200b\u5b69\u5b50\u200b\u5c31\u200b\u597d\u200b\n

            7.

            \u200b\u4f38\u5c55\u200b\u6811\u200b\u7684\u200b\u5220\u9664\u200b\u548c\u200b\u63d2\u5165\u200b\uff0c\u200b\u7531\u4e8e\u200b 1 \u200b\u90fd\u200b\u9700\u8981\u200b\u7528\u200b search \u200b\u64cd\u4f5c\u200b\uff0csearch \u200b\u5b8c\u540e\u200b self/hot \u200b\u4f1a\u200b\u6210\u4e3a\u200b\u65b0\u200b\u7684\u200b\u6839\u200b\u8282\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u63d2\u5165\u200b\u5220\u9664\u200b\u53ea\u8981\u200b\u5728\u200b\u641c\u7d22\u200b\u5b8c\u540e\u200b\u5bf9\u200b\u6839\u200b\u64cd\u4f5c\u200b\u5373\u53ef\u200b\u3002\n\n![](image/BST_AVL_Splay/media/image7.png)\n
            "},{"location":"Note/ADS/Heap/","title":"\u4f18\u5148\u7ea7\u200b\u961f\u5217\u200b/\u200b\u5806\u200b\u62fe\u9057","text":"

            \u200b\u7ea6\u200b 100 \u200b\u4e2a\u200b\u5b57\u200b

            "},{"location":"Note/ADS/Heap/#npl","title":"NPL \u200b\u7684\u200b\u53e6\u200b\u4e00\u79cd\u200b\u7406\u89e3","text":"

            \u200b\u53ef\u4ee5\u200b\u53c2\u770b\u200b\u56fe\u7247\u200b\u7406\u89e3\u200b\uff0c\u200b\u8282\u70b9\u200b NPL \u200b\u4e5f\u200b\u662f\u200b\u8be5\u5b50\u200b\u6811\u200b\u7684\u200b\u6700\u5927\u200b\u5b8c\u5168\u200b\u4e8c\u53c9\u6811\u200b\u6df1\u5ea6\u200b

            "},{"location":"Note/ADS/Heap/#_2","title":"\u6700\u5c0f\u200b\u8282\u70b9\u200b\u6570\u200b\u7684\u200b\u8bc1\u660e","text":"

            \u200b\u5728\u200b\u6b64\u57fa\u7840\u200b\u4e0a\u200b\u5f88\u200b\u597d\u200b\u8bc1\u660e\u200b\u53f3\u4fa7\u200b\u94fe\u200b\u7684\u200b\u957f\u5ea6\u200b\u4e0a\u9650\u200b

            "},{"location":"Note/ADS/Heap/#_3","title":"\u9526\u6807\u8d5b\u200b\u6811\u200b\uff0c\u200b\u4e86\u89e3\u200b\u5373\u53ef","text":""},{"location":"Note/ADS/Heap/#_4","title":"\u591a\u53c9\u5806\u200b\uff0c\u200b\u64cd\u4f5c\u200b\u590d\u6742\u5ea6\u200b\u6539\u53d8","text":"

            \u200b\u8fd9\u200b\u5c06\u200b\u5bfc\u81f4\u200b\u5e94\u7528\u200b\u5728\u200b\u56fe\u200b\u7b97\u6cd5\u200b\u4e0a\u200b\u81ea\u200b\u9002\u5e94\u200b\u6700\u4f18\u200b

            "},{"location":"Note/ADS/RBTree/","title":"RBTree","text":"

            \u200b\u7ea6\u200b 70 \u200b\u4e2a\u200b\u5b57\u200b

            1.

            \u200b\u56db\u4e2a\u200b\u7ea6\u675f\u6761\u4ef6\u200b\uff1a\n\n![](image/RBTree/media/image1.png)\n

            2.

            \u200b\u7ea2\u9ed1\u6811\u200b\u5c31\u662f\u200b B-\u200b\u6811\u200b\n\n![](image/RBTree/media/image2.png)\n

            3.

            \u200b\u5229\u7528\u200b B-\u200b\u6811\u200b\u8bc1\u660e\u200b\u7ea2\u9ed1\u6811\u200b\u7684\u200b\u9ad8\u5ea6\u200b\n\n![](image/RBTree/media/image3.png)\n

            4.

            \u200b\u5229\u7528\u200b B-Tree \u200b\u8ba4\u8bc6\u200b\u95ee\u9898\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u53ea\u200b\u9700\u200b\u4f7f\u7528\u200b 3\uff0c4 \u200b\u91cd\u6784\u200b\u5373\u53ef\u200b\uff0c\u200b\u91cd\u65b0\u200b\u5f52\u4e8e\u200b RBR\n\n![](image/RBTree/media/image4.png)\n

            5.

            \u200b\u7ea2\u9ed1\u6811\u200b\u63d2\u5165\u200b\u7684\u200b\u590d\u6742\u5ea6\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u91cd\u6784\u200b\uff08\u200b\u65cb\u8f6c\u200b\uff09\u200b\u81f3\u591a\u200b\u5e38\u6570\u200b\u6b21\u200b\n\n![](image/RBTree/media/image5.png)\n
            "},{"location":"Note/Data%20Modeling/","title":"\u6570\u636e\u200b\u5efa\u6a21\u200b\u4e0e\u200b\u5206\u6790","text":"

            \u200b\u7ea6\u200b 138 \u200b\u4e2a\u200b\u5b57\u200b

            \u200b\u8bfe\u7a0b\u200b\u4fe1\u606f\u200b

            \u200b\u6388\u8bfe\u200b\u6559\u5e08\u200b\uff1a\u200b\u90ed\u6b63\u521d\u200b

            \u200b\u5f00\u200b\u79d1\u5b66\u9662\u200b\uff1a\u200b\u6570\u5b66\u200b\u79d1\u5b66\u200b\u5b66\u9662\u200b

            \u200b\u5f00\u8bfe\u200b\u5b66\u671f\u200b\uff1a2023 \u200b\u5e74\u6625\u590f\u200b

            \u200b\u9884\u4fee\u200b\u8981\u6c42\u200b\uff1a\u200b\u5fae\u79ef\u5206\u200b\uff0c\u200b\u7ebf\u6027\u4ee3\u6570\u200b\uff0c\u200b\u6982\u7387\u8bba\u200b

            \u200b\u6559\u6750\u200b\uff1a \u200b\u7edf\u8ba1\u200b\u5b66\u4e60\u200b\u65b9\u6cd5\u200b \u200b\u674e\u822a\u200b \u200b\u7b2c\u4e8c\u200b\u7248\u200b

            \u200b\u672c\u95e8\u200b\u8bfe\u7a0b\u200b\u4e3b\u8981\u200b\u805a\u7126\u200b\u4e8e\u200b\u673a\u5668\u200b\u5b66\u4e60\u200b\u7684\u200b\u7b97\u6cd5\u200b\u8bb2\u89e3\u200b\u4e0e\u200b\u5206\u6790\u200b\uff0c\u200b\u5e76\u4e14\u200b\u5927\u90e8\u5206\u200b\u673a\u5668\u200b\u5b66\u4e60\u200b\u7684\u200b\u65b9\u6cd5\u200b\u4ecd\u200b\u5c5e\u4e8e\u200b\u7edf\u8ba1\u200b\u5b66\u4e60\u200b\u800c\u200b\u975e\u200b\u6df1\u5ea6\u200b\u5b66\u4e60\u200b\u7684\u200b\u8303\u7574\u200b\uff0c\u200b\u6bd4\u8f83\u200b\u4f20\u7edf\u200b\u3002 \u200b\u672c\u95e8\u200b\u8bfe\u7a0b\u200b\u4e3a\u200b\u6570\u5b66\u200b\u79d1\u5b66\u200b\u5b66\u9662\u200b\u5f00\u8bbe\u200b\uff0c\u200b\u6570\u5b66\u200b\u6c14\u606f\u200b\u6bd4\u8f83\u200b\u6d53\u539a\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Boosting/","title":"\u63d0\u5347\u200b\u65b9\u6cd5","text":"

            \u200b\u7ea6\u200b 453 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

            "},{"location":"Note/Data%20Modeling/Boosting/#adaboost","title":"AdaBoost","text":"

            \u200b\u8f93\u5165\u200b\uff1a\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u4e00\u79cd\u200b\u5f31\u200b\u5b66\u4e60\u200b\u7b97\u6cd5\u200b \u200b\u8f93\u51fa\u200b\uff1a\u200b\u6700\u7ec8\u200b\u5206\u7c7b\u5668\u200b G(x)

            • \u200b\u521d\u59cb\u5316\u200b\u8bad\u7ec3\u200b\u6570\u636e\u200b\u7684\u200b\u6743\u503c\u200b\u5206\u5e03\u200b

              \\[ D_1 = (w_{11}\uff0c\\cdots\uff0cw_{1i}\uff0c\\cdots\uff0cw_{1N})\uff0cw_{1i} = \\frac{1}{N}\uff0ci=1\uff0c2\uff0c\\cdots\uff0cN \\]
            • \u200b\u8fd0\u884c\u200b\u5f31\u200b\u5b66\u4e60\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u5f97\u5230\u200b\u5f31\u200b\u5206\u7c7b\u5668\u200b\\(G_m(x)\\)

              \u200b\u8ba1\u7b97\u8bef\u5dee\u200b\u7387\u200b : \\(e_m = \\sum_{i=1}^{N} P(G_m(x_i) \\neq y_i) = \\sum_{i=1}^{N} w_{mi}I(G_m(x_i) \\neq y_i)\\)

              \u200b\u8be5\u200b\u5206\u7c7b\u5668\u200b\u7684\u200b\u6743\u91cd\u200b\u4e3a\u200b\uff1a\\(\\alpha_m = \\frac{1}{2} \\log \\frac{1-e_m}{e_m}\\)

              \u200b\u66f4\u65b0\u200b\u65b0\u4e00\u8f6e\u200b\u7684\u200b\u6743\u91cd\u200b\uff0c\u200b\u5176\u4e2d\u200b\u6bcf\u4e2a\u200b\u6837\u672c\u200b\u7684\u200b\u6743\u91cd\u200b\u4e3a\u200b\uff1a\\(w_{m+1\uff0ci} = \\frac{w_{mi}}{Z_m} \\exp(-\\alpha_m y_i G_m(x_i))\\) \uff08\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u5982\u679c\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6743\u91cd\u200b\u4f1a\u200b\u51cf\u5c0f\u200b\uff0c\u200b\u5982\u679c\u200b\u5206\u7c7b\u200b\u9519\u8bef\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6743\u91cd\u200b\u4f1a\u200b\u589e\u5927\u200b\uff09

            • \u200b\u91cd\u590d\u200b\u7b2c\u4e8c\u6b65\u200b\uff0c\u200b\u76f4\u5230\u200b\u5f3a\u200b\u5206\u7c7b\u5668\u200b\\(G(x) = \\sum_{m=1}^{M} \\alpha_m G_m(x)\\)\u200b\u5df2\u7ecf\u200b\u6ee1\u8db3\u200b\u5206\u7c7b\u200b\u8981\u6c42\u200b

            "},{"location":"Note/Data%20Modeling/Boosting/#_2","title":"\u63d0\u5347\u200b\u6811","text":"

            \u200b\u63d0\u5347\u200b\u6811\u662f\u200b\u4ee5\u200b\u51b3\u7b56\u6811\u200b/\u200b\u56de\u5f52\u200b\u6811\u4e3a\u200b\u57fa\u200b\u5206\u7c7b\u5668\u200b\u7684\u200b\u5047\u53d1\u200b\u6a21\u578b\u200b\u3002

            \u200b\u6211\u4eec\u200b\u5b9a\u4e49\u200b\u4e00\u4e2a\u200b\u524d\u884c\u200b\u5206\u6b65\u200b\u4e3a\u200b\uff1a

            \\[ f_m(x) = f_{m-1}(x) + T(x;\\Theta_m) \\]

            \u200b\u5176\u4e2d\u200b\u65b0\u6811\u200b\u7684\u200b\u53c2\u6570\u200b\u901a\u8fc7\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6781\u5c0f\u200b\u5316\u200b\u8fdb\u884c\u200b\u66f4\u65b0\u200b\uff1a

            \\[ \\Theta_m = \\underset{\\Theta}{\\operatorname{argmin}} \\sum_{i=1}^{N} L(y_i\uff0cf_{m-1}(x_i) + T(x_i;\\Theta)) \\]

            \u200b\u5bf9\u4e8e\u200b\u56de\u5f52\u200b\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u5199\u51fa\u200b\u5e73\u65b9\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a

            \\[ L = (y - f(x))^2 = (y - f_{m-1}(x) - T(x;\\Theta))^2 = [r - T(x;\\Theta)]^2 \\]

            \u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u65b0\u200b\u8bad\u7ec3\u200b\u4e00\u4e2a\u200b\u6811\u200b T \u200b\u6765\u200b\u62df\u5408\u200b\u9910\u53c9\u200b\\(r = y - f_{m-1}(x)\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Boosting/#_3","title":"\u68af\u5ea6\u200b\u63d0\u5347","text":"

            \u200b\u5bf9\u4e8e\u200b\u4e00\u822c\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff08\u200b\u975e\u200b\u5e73\u65b9\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff09\uff0c\u200b\u4e0d\u662f\u200b\u90a3\u4e48\u200b\u5bb9\u6613\u200b\u627e\u5230\u200b\u6b8b\u5dee\u200b

            \u200b\u901a\u5e38\u200b\u6211\u4eec\u200b\u4f1a\u200b\u7528\u200b\\(\\frac{\\partial L(y_i\uff0cf(x_i))}{\\partial f(x_i)}\\)\u200b\u6765\u200b\u4ee3\u66ff\u200b\u6b8b\u5dee\u200b\uff0c\u200b\u8bad\u7ec3\u200b\u4e00\u68f5\u200b\u65b0\u200b\u7684\u200b\u6811\u6765\u200b\u62df\u5408\u200b\u6b8b\u5dee\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u65b0\u6811\u200b\u7684\u200b\u6bcf\u4e2a\u200b\u5206\u652f\u200b\uff0c\u200b\u7528\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6700\u5c0f\u5316\u200b\u6765\u200b\u786e\u5b9a\u200b\u4ee3\u8868\u200b\u503c\u200b

            "},{"location":"Note/Data%20Modeling/Centering/","title":"\u805a\u7c7b\u200b\u65b9\u6cd5","text":"

            \u200b\u7ea6\u200b 1018 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

            Warning

            \u200b\u8fd9\u7ae0\u200b\u6211\u200b\u770b\u200b\u7684\u200b\u660f\u660f\u200b\u7684\u200b\uff0c\u200b\u53ea\u7b97\u9884\u200b\u53d1\u5e03\u200b

            "},{"location":"Note/Data%20Modeling/Centering/#_2","title":"\u4e00\u4e9b\u200b\u5b9a\u4e49","text":"

            \u200b\u6837\u672c\u200b\u95f4\u8ddd\u200b

            \u200b\u95f5\u53ef\u200b\u592b\u65af\u57fa\u200b\u8ddd\u79bb\u200b\u9a6c\u6c0f\u200b\u8ddd\u79bb\u200b\u76f8\u5173\u7cfb\u6570\u200b\u5939\u89d2\u200b\u4f59\u5f26\u200b \\[ d_{ij} = \\left( \\sum_{k=1}^p \\left| x_{ik} - x_{jk} \\right|^r \\right)^{\\frac{1}{r}} \\]

            \u200b\u9996\u5148\u200b\u8ba1\u7b97\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b S

            \\[ S = \\frac{1}{n-1} \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\]

            \u200b\u9996\u5148\u200b\u8ba1\u7b97\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b S

            \\[ r_{ij} = \\frac{S_{ij}}{\\sqrt{S_{ii}S_{jj}}} \\] \\[ \\cos \\theta_{ij} = \\frac{x_i^T x_j}{\\sqrt{x_i^T x_i x_j^T x_j}} \\]

            \u200b\u4e00\u4e9b\u200b\u77e9\u9635\u200b

            \u200b\u6837\u672c\u200b\u6563\u5e03\u200b\u77e9\u9635\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b \\[ S = \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\] \\[ S = \\frac{1}{n-1} \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\]

            \u200b\u7c7b\u200b\u76f8\u5173\u200b\u5b9a\u4e49\u200b

            \u200b\u7c7b\u7c7b\u200b\u76f4\u5f84\u200b\u7c7b\u200b\u4e2d\u5fc3\u200b\u7c7b\u95f4\u200b\u8ddd\u79bb\u200b

            \u200b\u4e00\u4e2a\u200b\u7c7b\u200b\u5c31\u662f\u200b\u6570\u636e\u200b\u96c6\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5b50\u96c6\u200b

            \u200b\u7c7b\u5185\u200b\u6700\u8fdc\u200b\u95f4\u8ddd\u200b

            \\[ D_G = \\underset{x_i\uff0cx_j \\in G}{\\operatorname{max}} d_{ij} \\]

            \u200b\u4e5f\u200b\u5c31\u662f\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u7684\u200b\u5e73\u5747\u503c\u200b

            \\[ \\bar{x} = \\frac{1}{n} \\sum_{x_i \\in G} x_i \\]

            \u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4e24\u7c7b\u200b\u4e2d\u6837\u200b\u7684\u200b\u6700\u200b\u77ed\u8ddd\u79bb\u200b\uff0c\u200b\u6700\u200b\u957f\u8ddd\u79bb\u200b\uff0c\u200b\u4e2d\u5fc3\u200b\u8ddd\u79bb\u200b\u6216\u8005\u200b\u5e73\u5747\u200b\u8ddd\u79bb\u200b

            "},{"location":"Note/Data%20Modeling/Centering/#_3","title":"\u805a\u5408\u200b\u805a\u7c7b","text":"

            \u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u4e09\u8981\u7d20\u200b\u4e3a\u200b\uff1a

            • \u200b\u6837\u672c\u200b\u95f4\u8ddd\u200b
            • \u200b\u5408\u5e76\u200b\u89c4\u5219\u200b
            • \u200b\u505c\u6b62\u200b\u6761\u4ef6\u200b

            \u200b\u7ed9\u5b9a\u200b\u4ee5\u4e0a\u200b\u4e09\u8981\u7d20\u200b\uff0c\u200b\u4e00\u822c\u200b\u7684\u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u7684\u200b\u7b97\u6cd5\u200b\u4e3a\u200b\uff1a

            • \u200b\u5f00\u59cb\u200b\uff1a\u200b\u6bcf\u4e2a\u200b\u6837\u672c\u200b\u4e3a\u200b\u4e00\u4e2a\u200b\u7c7b\u200b
            • \u200b\u91cd\u590d\u200b\uff1a\u200b\u4e00\u53e5\u200b\u5408\u5e76\u200b\u89c4\u5219\u200b\uff08\u200b\u4e00\u822c\u200b\u4e3a\u200b\u627e\u5230\u200b\u6700\u5c0f\u200b\u7c7b\u95f4\u200b\u95f4\u8ddd\u200b\uff09\uff0c\u200b\u5408\u5e76\u200b\u4e24\u7c7b\u200b
            • \u200b\u505c\u6b62\u200b\uff1a\u200b\u8fbe\u5230\u200b\u505c\u6b62\u200b\u6761\u4ef6\u200b\u5373\u200b\u8fd4\u56de\u200b\uff0c\u200b\u6bd4\u5982\u200b\u7c7b\u200b\u7684\u200b\u4e2a\u6570\u200b\u8fbe\u5230\u200b\u8981\u6c42\u200b

            \u200b\u8be5\u200b\u7b97\u6cd5\u200b\u7684\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(n^3m)\\)\uff0c\u200b\u5176\u4e2d\u200b m \u200b\u4e3a\u200b\u7ef4\u5ea6\u200b\u6570\u200b\uff0cn \u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2a\u6570\u200b

            \u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u5c5e\u4e8e\u200b\u5c42\u6b21\u200b\u805a\u7c7b\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4ece\u200b n \u200b\u7c7b\u200b-1 \u200b\u7c7b\u200b\u8fd9\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b\u5206\u7c7b\u200b\u7ed3\u679c\u200b

            \u200b\u6ce8\u610f\u200b\u5728\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\\([d_{ij}]\\)\u200b\u77e9\u9635\u200b\u6765\u200b\u52a0\u901f\u200b\u8fd0\u7b97\u200b

            "},{"location":"Note/Data%20Modeling/Centering/#k-means","title":"K-means","text":"

            \u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(mnk)\\)

            k \u200b\u7684\u200b\u9009\u53d6\u200b\u5e94\u8be5\u200b\u5927\u5230\u200b\u7c7b\u200b\u76f4\u5f84\u200b\u4e0d\u518d\u200b\u51cf\u5c0f\u200b\u4e3a\u6b62\u200b

            "},{"location":"Note/Data%20Modeling/Centering/#_4","title":"\u8c31\u200b\u805a\u7c7b","text":"

            \u200b\u6570\u5b66\u200b\u4e0a\u200b\uff0c\u200b\u8c31\u200b\u5b57\u200b\u4e00\u822c\u200b\u8ddf\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6709\u5173\u200b

            \u200b\u6211\u4eec\u200b\u628a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i)\\}\\)\u200b\u4e2d\u200b\u7684\u200b\u6bcf\u200b\u4e00\u4e2a\u70b9\u200b\u90fd\u200b\u5bf9\u5e94\u200b\u5230\u200b\u4e00\u4e2a\u200b\u65e0\u5411\u200b\u5b8c\u5168\u200b\u56fe\u4e0a\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u4e24\u70b9\u200b\u4e4b\u95f4\u200b\u8fde\u8fb9\u200b\u7684\u200b\u6743\u91cd\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b\u5b83\u4eec\u200b\u7684\u200b\u76f8\u4f3c\u200b\u5ea6\u200b\u3002

            \u200b\u76f8\u4f3c\u200b\u5ea6\u200b

            \\[ w_{ij} = e^{-\\frac{||x_i - x_j||^2}{2\\sigma^2}} \\]

            \u200b\u663e\u7136\u200b\uff0c\u200b\u8ddd\u79bb\u200b\u8d8a\u8fd1\u200b\uff0c\u200b\u76f8\u4f3c\u200b\u5ea6\u8d8a\u200b\u5927\u200b\u3002

            \u200b\u5bf9\u4e8e\u200b\u90a3\u4e9b\u200b\u8db3\u591f\u200b\u9065\u8fdc\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4e0d\u518d\u200b\u76f8\u8fde\u200b\uff0c\u200b\u76f4\u63a5\u200b\u628a\u200b\u76f8\u4f3c\u200b\u5ea6\u7f6e\u200b 0.\u200b\u5982\u4f55\u200b\u786e\u5b9a\u200b\u8fd9\u4e9b\u200b\u8db3\u591f\u200b\u9065\u8fdc\u200b\u7684\u200b\u70b9\u200b\u5462\u200b - \u200b\u7528\u200b k \u200b\u8fd1\u90bb\u200b\u786e\u5b9a\u200b\u51e0\u4e2a\u200b\u90bb\u8fd1\u200b\u7684\u200b\u70b9\u200b - \u200b\u7528\u200b\u4e00\u4e2a\u200b\\(\\epsilon\\)\u200b\u534a\u5f84\u200b\u6765\u200b\u533a\u5206\u200b\u8fdc\u8fd1\u200b

            \u200b\u5b9a\u4e49\u200b\u4e00\u4e2a\u70b9\u200b\u7684\u200b\u5ea6\u200b\u4e3a\u200b\u5176\u200b\u6240\u6709\u200b\u8fb9\u200b\u7684\u200b\u6743\u91cd\u200b\u548c\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4e0b\u9762\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b

            \u200b\u77e9\u9635\u200b\u5b9a\u4e49\u200b

            \u200b\u5ea6\u200b\u77e9\u9635\u200b D\u200b\u6743\u91cd\u200b\u77e9\u9635\u200b W\u200b\u62c9\u666e\u62c9\u65af\u200b\u77e9\u9635\u200b L \\[ D_{ii} = \\sum_{j=1}^n w_{ij} \\] \\[ W = [w_{ij}] \\] \\[ L = D - W \\]

            \u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u53d1\u73b0\u200b\u5982\u4e0b\u200b\u6027\u8d28\u200b\uff1a

            • L \u200b\u7684\u200b\u884c\u200b\u548c\u200b\u4e3a\u200b 0
            • L \u200b\u6709\u200b\u4e00\u4e2a\u200b\u7279\u5f81\u5411\u91cf\u200b\u4e3a\u200b 0\uff0c\u200b\u8be5\u200b\u7279\u5f81\u503c\u200b\u6709\u200b\u4e00\u4e2a\u200b\u7279\u5f81\u5411\u91cf\u200b\u4e3a\u200b\u5168\u200b 1 (1)
            • L \u200b\u6709\u200b n \u200b\u4e2a\u200b\u975e\u8d1f\u200b\u7279\u5f81\u503c\u200b\uff0cn \u200b\u662f\u200b\u9876\u70b9\u200b\u6570\u200b
            • L \u200b\u529e\u200b\u6b63\u5b9a\u200b\uff0c\u200b\u4e14\u200b\\(f^TLf = \\frac{1}{2}\\sum_{i\uff0cj=1}^n w_{ij}(f_i - f_j)^2\\)
            • L \u200b\u96f6\u200b\u7279\u5f81\u503c\u200b\u7684\u200b\u91cd\u6570\u200b\u7b49\u4e8e\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u7684\u200b\u4e2a\u6570\u200b
            1. \u200b\u8fd9\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u884c\u548c\u4e3a\u200b 0 \u200b\u7684\u200b\u76f4\u63a5\u200b\u63a8\u8bba\u200b\uff0c\u200b\u6211\u4eec\u200b\u62ff\u5168\u200b 1 \u200b\u5411\u91cf\u200b\u5de6\u4e58\u200b L \u200b\u5c31\u200b\u5f97\u5230\u200b 0 \u200b\u5411\u91cf\u200b\u4e86\u200b

            \u200b\u6240\u4ee5\u200b\u5f53\u200b L \u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u96f6\u200b\u7279\u5f81\u503c\u200b\u53ea\u6709\u200b 1 \u200b\u91cd\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5168\u200b 1 \u200b\u5411\u91cf\u200b

            \u200b\u5f53\u200b L \u200b\u7684\u200b\u8fde\u901a\u200b\u56fe\u200b\u591a\u4e8e\u200b\u4e00\u4e2a\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u52a0\u5165\u200b L \u200b\u53ef\u4ee5\u200b\u5199\u6210\u200b\uff1a

            \\[ L = \\begin{bmatrix} L_1 & 0 & 0 \\\\ 0 & L_2 & 0 \\\\ 0 & 0 & \\dots \\\\ \\end{bmatrix} \\]

            \u200b\u90a3\u4e48\u200b\u5176\u200b\u5bf9\u5e94\u200b\u7684\u200b\u96f6\u200b\u7279\u5f81\u5411\u91cf\u200b\u4e3a\u200b\uff1a

            \\[ \\begin{bmatrix} 1 \\\\ 1 \\\\ \\vdots \\\\ 0 \\\\ 0 \\\\ \\vdots \\\\ 0 \\\\ 0 \\end{bmatrix} \\begin{bmatrix} 0 \\\\ 0 \\\\ \\vdots \\\\ 1 \\\\ 1 \\\\ \\vdots \\\\ 0 \\\\ 0 \\end{bmatrix}\\dots \\begin{bmatrix} 0 \\\\ 0 \\\\ \\vdots \\\\ 0 \\\\ 0 \\\\ \\vdots \\\\ 1 \\\\ 1 \\end{bmatrix} \\]

            \u200b\u57fa\u672c\u4e0a\u200b\u53ef\u4ee5\u200b\u8ba4\u4e3a\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u81ea\u5df1\u200b\u6784\u6210\u200b\u4e00\u4e2a\u200b\u5206\u5757\u200b\\(L_i\\)\uff0c\u200b\u8fd9\u4e2a\u200b\\(L_i\\)\u200b\u4e5f\u200b\u6709\u200b\u4e00\u4e2a\u200b\u81ea\u5df1\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u200b\u96f6\u200b\u5411\u91cf\u200b

            \u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5c06\u200b\u8fd9\u4e9b\u200b\u7279\u5f81\u5411\u91cf\u200b\u62fc\u63a5\u200b\u6210\u200b\u4e00\u4e2a\u200b\u77e9\u9635\u200b

            \\[ F = [f_1\uff0cf_2\uff0c\\dots\uff0cf_n] \\]

            \u200b\u7136\u540e\u200b\u6309\u7167\u200b\u884c\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u805a\u7c7b\u200b\u5c31\u200b\u53ef\u4ee5\u200b\uff08\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6bcf\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u88ab\u200b\u805a\u6210\u200b\u4e00\u7c7b\u200b\uff09

            "},{"location":"Note/Data%20Modeling/Decision_Tree/","title":"\u51b3\u7b56\u6811","text":"

            \u200b\u7ea6\u200b 2599 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 9 \u200b\u5206\u949f\u200b

            \u200b\u4e0b\u56fe\u200b\u662f\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5b9e\u4f8b\u200b\uff0c\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u662f\u200b\u7279\u5f81\u200b\uff0c\u200b\u800c\u53f6\u200b\u8282\u70b9\u200b\u662f\u200b\u7c7b\u522b\u200b

            \u200b\u51b3\u7b56\u6811\u200b\u5b9e\u4f8b\u200b

            \u200b\u51b3\u7b56\u6811\u200b\u7b49\u4ef7\u200b\u4e8e\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b if-then \u200b\u89c4\u5219\u200b\uff0c\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b\u4f8b\u5b50\u200b\u90fd\u200b\u88ab\u200b\u4e14\u200b\u4ec5\u200b\u88ab\u200b\u4e00\u6761\u200b\u8def\u5f84\u200b\u8986\u76d6\u200b\u3002

            \u200b\u51b3\u7b56\u6811\u200b\u8fd8\u200b\u7b49\u4ef7\u200b\u4e8e\u200b\u4e00\u79cd\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u4e0d\u8fc7\u200b\u8fd9\u79cd\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\u88ab\u200b\u5f3a\u5316\u200b\u6210\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u7a7a\u95f4\u200b\u7684\u200b\u5212\u5206\u200b\u3002

            \u200b\u51b3\u7b56\u6811\u200b\u7b97\u6cd5\u200b\u4e3b\u8981\u200b\u6709\u200b\u4ee5\u4e0b\u200b\u4e09\u4e2a\u200b\u8fc7\u7a0b\u200b\uff1a

            • \u200b\u7279\u5f81\u9009\u62e9\u200b
            • \u200b\u51b3\u7b56\u6811\u200b\u751f\u6210\u200b
            • \u200b\u51b3\u7b56\u6811\u200b\u526a\u679d\u200b
            "},{"location":"Note/Data%20Modeling/Decision_Tree/#_2","title":"\u7279\u5f81\u9009\u62e9","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#_3","title":"\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6cd5","text":"

            \u200b\u9996\u5148\u200b\u6211\u4eec\u200b\u5148\u200b\u5b9a\u4e49\u200b\u71b5\u200b\u548c\u200b\u6761\u4ef6\u200b\u71b5\u200b

            \u200b\u71b5\u200b

            \u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b X\uff1a

            \\[ P(X = x_i) = P_i \\]

            \u200b\u90a3\u4e48\u200b\u8be5\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u4e3a\u200b\uff1a

            \\[ H(X) = -\\sum_{i=1}^{n}P_i\\log P_i \\quad\\quad \\in [0\uff0c\\log n] \\]

            \u200b\u6ce8\u610f\u200b\uff0c\u200b\u5728\u200b\u8ba8\u8bba\u200b\u71b5\u200b\u662f\u200b\u9ed8\u8ba4\u200b\u5bf9\u6570\u200b\u7684\u200b\u5e95\u200b\u4e3a\u200b 2\uff0c\u200b\u6b64\u65f6\u200b\u71b5\u200b\u7684\u200b\u5355\u4f4d\u200b\u4e3a\u200b bit.

            \u200b\u5bf9\u200b\u71b5\u200b\u7684\u200b\u7406\u89e3\u200b

            \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b\u4e00\u4e2a\u200b\u968f\u673a\u200b\u4e3a\u200b 0-7 \u200b\u7684\u200b\u7b49\u200b\u6982\u7387\u200b\u7684\u200b\u968f\u673a\u53d8\u91cf\u200b\uff0c\u200b\u4ece\u200b\u4e0a\u5f0f\u200b\u53ef\u4ee5\u200b\u5f88\u200b\u5bb9\u6613\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u4ed6\u200b\u7684\u200b\u71b5\u200b\u662f\u200b 3bit\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u9700\u8981\u200b 3bit \u200b\u7684\u200b\u4fe1\u606f\u200b\u624d\u80fd\u200b\u786e\u5b9a\u200b\u8fd9\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u53d6\u503c\u200b\u3002 \u200b\u8fd9\u200b\u8ddf\u200b\u76f4\u89c2\u200b\u4e0a\u200b\u4e5f\u200b\u662f\u200b\u543b\u5408\u200b\u7684\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u81f3\u5c11\u200b 3bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u5206\u522b\u200b\u8fd9\u200b\u516b\u4e2a\u200b\u4fe1\u53f7\u200b\uff08000-111\uff09.

            \u200b\u4e0a\u5f0f\u200b\u4e2d\u200b\u7684\u200b log \u200b\u7684\u200b\u884c\u4e3a\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\uff0c\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u4fe1\u53f7\u200b\u6709\u200b \u215b \u200b\u7684\u200b\u6982\u7387\u200b\u51fa\u73b0\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u4fe1\u53f7\u200b\u9700\u8981\u200b\\(-\\log_2 1/8 = 3\\)bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u8868\u793a\u200b.\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u4fe1\u53f7\u200b\u6709\u200b \u00bc \u200b\u7684\u200b\u6982\u7387\u200b\u51fa\u73b0\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u4fe1\u53f7\u200b\u9700\u8981\u200b\\(-\\log_2 1/4 = 2\\)bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u8868\u793a\u200b.\u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u7684\u200b\u8ba1\u7b97\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u7f16\u7801\u200b\u957f\u5ea6\u200b\u6c42\u200b\u671f\u671b\u200b\u3002

            \u200b\u800c\u200b\u71b5\u200b\u7684\u200b\u503c\u200b\u8d8a\u200b\u5927\u200b\uff0c\u200b\u6211\u4eec\u200b\u76ee\u524d\u200b\u7684\u200b\u4fe1\u606f\u200b\u5c31\u200b\u8d8a\u5c11\u200b\u3002

            \u200b\u5047\u5982\u200b\u6211\u4eec\u200b\u8981\u200b\u9884\u6d4b\u200b\u7684\u200b\u4eba\u200b\u7684\u200b\u8fdb\u653b\u200b\u65b9\u5411\u200b\uff0c\u200b\u82e5\u200b\u654c\u4eba\u200b\u8fdb\u653b\u200b\u65b9\u5411\u200b\u8fd9\u4e00\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u4e3a\u200b 3bits\uff0c\u200b\u7b49\u6548\u200b\u654c\u4eba\u200b\u4ece\u200b\u516b\u4e2a\u200b\u65b9\u5411\u200b\u7b49\u200b\u53ef\u80fd\u200b\u8fdb\u653b\u200b.\u200b\u4f46\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u83b7\u53d6\u200b\u4e86\u200b\u67d0\u4e2a\u200b\u4fe1\u606f\u200b\u540e\u6b64\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u53ea\u200b\u5269\u4e0b\u200b 1bit\uff0c\u200b\u7b49\u6548\u200b\u654c\u4eba\u200b\u4ece\u200b\u4e24\u4e2a\u200b\u65b9\u5411\u200b\u7b49\u200b\u53ef\u80fd\u200b\u8fdb\u653b\u200b\uff0c\u200b\u4fe1\u606f\u200b\u5c31\u200b\u5145\u8db3\u200b\u7684\u200b\u591a\u200b\u4e86\u200b\u3002

            \u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6709\u200b\u4e00\u4e2a\u200b\u76f4\u89c2\u200b\u7684\u200b\u7406\u89e3\u200b\uff0c\u200b\u67d0\u4e2a\u200b\u4fe1\u606f\u200b\u6765\u200b\u4e4b\u540e\u200b\u6211\u200b\u7684\u200b\u71b5\u200b\u51cf\u5c11\u200b\u7684\u200b\u8d8a\u200b\u591a\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u4fe1\u606f\u200b\u7684\u200b\u4fe1\u606f\u91cf\u200b\u8d8a\u5927\u200b\uff0c\u200b\u8d8a\u200b\u6709\u7528\u200b\u3002

            \u200b\u6761\u4ef6\u200b\u71b5\u200b

            \u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u8054\u5408\u200b\u5206\u5e03\u200b\uff1a

            \\[ P(X = x_i\uff0cY = y_j) = P_{ij} \\]

            \u200b\u90a3\u4e48\u200b\u6761\u4ef6\u200b\u71b5\u200b

            \\[ H(Y|X) = -\\sum_{i=1}^{n} P_i H(Y|X = x_i) = -\\sum_{i=1}^{n} P_i \\sum_{j=1}^{m} P_{j|i} \\log P_{j|i} \\]

            \u200b\u4ece\u200b\u7b2c\u4e00\u4e2a\u200b\u7b49\u200b\u53f7\u200b\u53ef\u4ee5\u200b\u770b\u5f97\u51fa\u6765\u200b\u6761\u4ef6\u200b\u71b5\u200b\u5176\u5b9e\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5bf9\u4e8e\u200b\u4e0d\u540c\u200b\u7684\u200b X \u200b\u7684\u200b\u53d6\u503c\u200b\u6c42\u200b\u671f\u671b\u200b

            \u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\u7279\u5f81\u200b A \u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b D \u200b\u7684\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\uff1a

            \\[ g(D\uff0cA) = H(D) - H(D|A) \\]

            \u200b\u8fd9\u200b\u4e5f\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u7c7b\u200b\u4e0e\u200b\u7279\u5f81\u200b\u7684\u200b\u4e92\u4fe1\u606f\u200b\uff0c\u200b\u5b83\u200b\u8868\u793a\u200b\u5f97\u77e5\u200b\u7279\u5f81\u200b A \u200b\u7684\u200b\u4fe1\u606f\u200b\u800c\u200b\u4f7f\u5f97\u200b\u7c7b\u200b Y \u200b\u7684\u200b\u4fe1\u606f\u200b\u7684\u200b\u4e0d\u786e\u5b9a\u6027\u200b\u51cf\u5c11\u200b\u7684\u200b\u7a0b\u5ea6\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Decision_Tree/#_4","title":"\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6bd4","text":"

            \u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u5b58\u5728\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u5c31\u662f\u200b\u5b83\u200b\u504f\u5411\u200b\u4e8e\u200b\u53ef\u200b\u53d6\u503c\u200b\u8f83\u200b\u591a\u200b\u7684\u200b\u7279\u5f81\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u53d6\u503c\u200b\u8f83\u200b\u591a\u200b\u7684\u200b\u7279\u5f81\u200b\u7684\u200b\u6761\u4ef6\u200b\u71b5\u200b\u8f83\u200b\u5c0f\u200b.\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u7b97\u6cd5\u200b\u540c\u6837\u200b\u8003\u8651\u200b\u90a3\u4e9b\u200b\u503c\u200b\u6bd4\u8f83\u200b\u5c11\u200b\u4f46\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u540c\u6837\u200b\u5f88\u200b\u4e0d\u9519\u200b\u7684\u200b\u7279\u5f81\u200b\u7684\u8bdd\u200b\u3002

            \\[ g_R(D\uff0cA) = \\frac{g(D\uff0cA)}{H_A(D)} \\]

            \u200b\u5176\u4e2d\u200b\\(H_A(D) = -\\sum_{i=1}^{n} \\frac{|D_i|}{|D|} \\log \\frac{|D_i|}{|D|}\\)\u200b\u662f\u200b\u5173\u4e8e\u200b\u7279\u5f81\u200b A \u200b\u5bf9\u200b\u6570\u636e\u200b\u96c6\u200b D \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u71b5\u200b\uff0c\\(|D_i|\\)\u200b\u662f\u200b\\(D\\)\u200b\u4e2d\u200b\u5728\u200b\u7279\u5f81\u200b A \u200b\u4e0a\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(a_i\\)\u200b\u7684\u200b\u6837\u672c\u200b\u5b50\u96c6\u200b.A \u200b\u7684\u200b\u53ef\u200b\u53d6\u503c\u200b\u8d8a\u200b\u591a\u200b\uff0c\\(H_A(D)\\)\u200b\u7684\u200b\u503c\u200b\u8d8a\u200b\u5927\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Decision_Tree/#_5","title":"\u57fa\u5c3c\u200b\u6307\u6570","text":"

            \u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\u662f\u200b\u53e6\u200b\u4e00\u79cd\u200b\u7279\u5f81\u9009\u62e9\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u5b83\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a

            \u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b

            \\[\\begin{aligned} &Gini(P) = 1 - \\sum_{k=1}^{K} P_k^2 \\\\ &Gini(D) = 1 - \\sum_{k=1}^{K} \\frac{|D_i|}{|D|}^2 \\\\ &Gini(D\uff0cA) = \\sum_{i=1}^{n} \\frac{|D_i|}{|D|} Gini(D_i) \\end{aligned}\\]

            "},{"location":"Note/Data%20Modeling/Decision_Tree/#_6","title":"\u51b3\u7b56\u6811\u200b\u751f\u6210","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#id3","title":"ID3 \u200b\u7b97\u6cd5","text":"

            ID3 \u200b\u7b97\u6cd5\u200b\u7684\u200b\u6838\u5fc3\u200b\u662f\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u5404\u4e2a\u200b\u8282\u70b9\u200b\u4e0a\u200b\u5e94\u7528\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u51c6\u5219\u200b\u9009\u62e9\u200b\u7279\u5f81\u200b\uff0c\u200b\u9012\u5f52\u200b\u7684\u200b\u6784\u5efa\u200b\u51b3\u7b56\u6811\u200b\u3002

            • \u200b\u8f93\u5165\u200b\uff1a\u200b\u8bad\u7ec3\u200b\u96c6\u200b\\(D\\)\uff0c\u200b\u7279\u5f81\u200b\u96c6\u200b\\(A\\)\uff0c\u200b\u9608\u503c\u200b\\(\\epsilon\\)
            • \u200b\u8f93\u51fa\u200b\uff1a\u200b\u51b3\u7b56\u6811\u200b\\(T\\)
            • base case\uff1a\u200b\u82e5\u200b\\(D\\)\u200b\u4e2d\u200b\u6240\u6709\u200b\u5b9e\u4f8b\u200b\u5c5e\u4e8e\u200b\u540c\u200b\u4e00\u7c7b\u200b\\(C_k\\)\uff0c\u200b\u5219\u200b\\(T\\)\u200b\u4e3a\u5355\u200b\u8282\u70b9\u200b\u6811\u200b\uff0c\u200b\u5e76\u200b\u5c06\u200b\u7c7b\u200b\\(C_k\\)\u200b\u4f5c\u4e3a\u200b\u8be5\u200b\u8282\u70b9\u200b\u7684\u200b\u7c7b\u200b\u6807\u8bb0\u200b\uff0c\u200b\u8fd4\u56de\u200b\\(T\\)\uff1b
            • base case: \u200b\u82e5\u200b\\(A = \\emptyset\\)\uff0c\u200b\u5219\u200b\\(T\\)\u200b\u4e3a\u5355\u200b\u8282\u70b9\u200b\u6811\u200b\uff0c\u200b\u5e76\u200b\u5c06\u200b\\(D\\)\u200b\u4e2d\u200b\u5b9e\u4f8b\u200b\u6570\u200b\u6700\u5927\u200b\u7684\u200b\u7c7b\u200b\\(C_k\\)\u200b\u4f5c\u4e3a\u200b\u8be5\u200b\u8282\u70b9\u200b\u7684\u200b\u7c7b\u200b\u6807\u8bb0\u200b\uff0c\u200b\u8fd4\u56de\u200b\\(T\\).
            • base case: \u200b\u82e5\u200b\\(\\max g(D\uff0cA) < \\epsilon\\)\uff0c\u200b\u5219\u200b\\(T\\)\u200b\u4e3a\u5355\u200b\u8282\u70b9\u200b\u6811\u200b\uff0c\u200b\u5e76\u200b\u5c06\u200b\\(D\\)\u200b\u4e2d\u200b\u5b9e\u4f8b\u200b\u6570\u200b\u6700\u5927\u200b\u7684\u200b\u7c7b\u200b\\(C_k\\)\u200b\u4f5c\u4e3a\u200b\u8be5\u200b\u8282\u70b9\u200b\u7684\u200b\u7c7b\u200b\u6807\u8bb0\u200b\uff0c\u200b\u8fd4\u56de\u200b\\(T\\).
            • \u200b\u5426\u5219\u200b\uff0c\u200b\u8ba1\u7b97\u200b\\(A\\)\u200b\u4e2d\u200b\u5404\u4e2a\u200b\u7279\u5f81\u200b\u5bf9\u200b\\(D\\)\u200b\u7684\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\uff0c\u200b\u9009\u62e9\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6700\u5927\u200b\u7684\u200b\u7279\u5f81\u200b\\(A_g\\)\u200b\u5c06\u200b\u6570\u636e\u200b\u96c6\u200b\u5206\u7c7b\u200b\uff0c\u200b\u7136\u540e\u200b\u5bf9\u200b\u5404\u4e2a\u200b\u5b50\u7c7b\u200b\u8c03\u7528\u200b\u672c\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u9012\u5f52\u200b\u7684\u200b\u6784\u5efa\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u8fd4\u56de\u200b\\(T\\).
            "},{"location":"Note/Data%20Modeling/Decision_Tree/#c45","title":"C4.5 \u200b\u7b97\u6cd5","text":"

            C4.5 \u200b\u7b97\u6cd5\u200b\u6839\u200b ID3 \u200b\u7b97\u6cd5\u200b\u5b8c\u5168\u200b\u4e00\u6837\u200b\uff0c\u200b\u53ea\u662f\u200b\u7528\u200b\u7684\u200b\u4e0d\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\uff0c\u200b\u800c\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6bd4\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Decision_Tree/#_7","title":"\u51b3\u7b56\u6811\u200b\u526a\u679d","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#_8","title":"\u5229\u7528\u200b\u6b63\u5219\u200b\u5316\u200b\u51fd\u6570","text":"

            \u200b\u5bf9\u200b\u6574\u68f5\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6784\u9020\u200b\u4e00\u4e2a\u200b\u6b63\u5219\u200b\u5316\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a $$ C_{\\alpha}(T) = \\sum_{t \\in T} N_t H_t(T) + \\alpha |T| $$ \u200b\u5176\u4e2d\u200b T \u200b\u4e3a\u200b\u6240\u6709\u200b\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u96c6\u5408\u200b\uff0ct \u200b\u4e3a\u200b\u67d0\u4e2a\u200b\u53f6\u200b\u8282\u70b9\u200b\uff0c\\(N_t\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b t \u200b\u7684\u200b\u6837\u672c\u200b\u4e2a\u6570\u200b\uff0c\\(H_t(T)\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b t \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u71b5\u200b\uff0c\\(|T|\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u4e2a\u6570\u200b\uff0c\\(\\alpha\\)\u200b\u4e3a\u200b\u6b63\u5219\u200b\u5316\u200b\u53c2\u6570\u200b\u3002

            \u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u5047\u8bbe\u200b t \u200b\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u6240\u6709\u200b\\(N_t\\)\u200b\u4e2a\u200b\u6837\u672c\u200b\u4e2d\u200b\uff0ck \u200b\u7c7b\u200b\u7684\u200b\u6837\u672c\u200b\u6709\u200b\\(N_{tk}\\)\u200b\u4e2a\u200b\uff0c\u200b\u90a3\u4e48\u200b\\(H_t(T) = -\\sum_{k=1}^{K} \\frac{N_{tk}}{N_t} \\log \\frac{N_{tk}}{N_t}\\).

            \u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u8fdb\u884c\u200b\u6700\u5c0f\u5316\u200b\uff0c\u200b\u5bb9\u6613\u200b\u770b\u51fa\u200b\uff0c\u200b\u5982\u679c\u200b\u53f6\u200b\u8282\u70b9\u200b\u5168\u90e8\u90fd\u662f\u200b\u5355\u200b\u4e00\u7c7b\u200b\uff0c\u200b\u90a3\u4e48\u200b\u7b2c\u4e00\u9879\u200b\u7684\u200b\u503c\u200b\u4e3a\u200b 0.\u200b\u8fd9\u65f6\u5019\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b\u597d\u200b\uff0c\u200b\u4f46\u662f\u200b\u53f6\u5b50\u200b\u8282\u70b9\u200b\u5bb9\u6613\u200b\u8fc7\u591a\u200b\uff0c\u200b\u7b2c\u4e8c\u9879\u200b\u5f88\u5927\u200b.\u200b\u4f46\u200b\u5982\u679c\u200b\u7b2c\u4e8c\u9879\u200b\u6781\u7aef\u200b\u7684\u200b\u4f18\u5316\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u53f6\u200b\u8282\u70b9\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6811\u662f\u200b\u5c0f\u200b\u4e86\u200b\uff0c\u200b\u4f46\u662f\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u90fd\u200b\u5728\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u5185\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8bf4\u200b\u662f\u200b\u6beb\u65e0\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u6700\u5c0f\u5316\u200b\u8fd9\u4e2a\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\u8981\u200b\u5728\u200b\u4e8c\u8005\u4e4b\u95f4\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u5e73\u8861\u200b\uff0c\u200b\u6811\u200b\u65e2\u200b\u4e0d\u4f1a\u200b\u8fc7\u6df1\u200b\uff0c\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b\u4e5f\u200b\u6709\u200b\u4fdd\u969c\u200b\u3002

            \u200b\u7b97\u6cd5\u200b

            • \u200b\u8ba1\u7b97\u200b\u6240\u6709\u200b\u8282\u70b9\u200b\u7ecf\u9a8c\u200b\u71b5\u200b
            • \u200b\u4ece\u53f6\u200b\u8282\u70b9\u200b\u5f80\u200b\u4e0a\u200b\uff0c\u200b\u8bd5\u56fe\u200b\u628a\u200b\u67d0\u4e2a\u200b\u4e24\u4e2a\u200b\u53f6\u200b\u8282\u70b9\u200b\u56de\u7f29\u200b\u5230\u200b\u516c\u5171\u200b\u7236\u200b\u8282\u70b9\u200b\u4e0a\u200b\uff0c\u200b\u68c0\u9a8c\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u662f\u5426\u200b\u51cf\u5c0f\u200b\u3002
            • \u200b\u76f4\u5230\u200b\u6ca1\u6709\u200b\u8282\u70b9\u200b\u53ef\u8bd5\u200b
            "},{"location":"Note/Data%20Modeling/Decision_Tree/#_9","title":"\u5b9e\u4f8b","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#cart","title":"CART \u200b\u56de\u5f52\u200b\u6811\u200b\u7b97\u6cd5","text":"

            \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b\\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\mathbb{R}\\)\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u5bf9\u5e94\u200b y.

            CART \u200b\u56de\u5f52\u200b\u6811\u200b\u7b97\u6cd5\u200b\u4f1a\u200b\u628a\u200b\u7a7a\u95f4\u200b\u5212\u5206\u200b\u6210\u200b m \u200b\u5757\u200b\\(R_1\uff0cR_2...R_m\\)\uff0c\u200b\u6bcf\u4e2a\u200b\u5355\u5143\u200b\u4e0a\u200b\u51fd\u6570\u200b\u7684\u200b\u8f93\u51fa\u200b\u503c\u200b\u90fd\u200b\u662f\u200b\u56fa\u5b9a\u200b\u7684\u200b\uff1a

            \\[ f(x) = \\sum_{m=1}^{M} c_m I(x \\in R_m) \\]

            \u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u9009\u7528\u200b\u5e73\u65b9\u200b\u8bef\u5dee\u200b\uff0c\u200b\u5bb9\u6613\u200b\u8bc1\u660e\u200b\uff0c\u200b\u5728\u200b\u6bcf\u4e2a\u200b\u533a\u57df\u200b\u4e0a\u200b\u6700\u4f73\u200b\u7684\u200b\u8f93\u51fa\u200b\u503c\u200b\u5c31\u662f\u200b\u8be5\u200b\u533a\u57df\u200b\u5185\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u7684\u200b\u5747\u503c\u200b\u3002

            \\[ c_m = \\frac{1}{N_m} \\sum_{x_i \\in R_m} y_i \\]

            \u200b\u7b97\u6cd5\u200b\uff1a

            • \u200b\u8f93\u5165\u200b\uff1a\u200b\u8bad\u7ec3\u200b\u96c6\u200b\\(D\\)\uff0c\u200b\u9608\u503c\u200b\\(\\epsilon\\)
            • \u200b\u8f93\u51fa\u200b\uff1a\u200b\u56de\u5f52\u200b\u6811\u200b\\(f(x)\\)
            • \u200b\u5f00\u59cb\u200b\uff1a\u200b\u904d\u5386\u200b\u7ef4\u5ea6\u200b j \u200b\u4ee5\u53ca\u200b\u8be5\u200b\u7ef4\u5ea6\u200b\u4e0a\u200b\u53d8\u91cf\u200b\u5212\u5206\u200b\u70b9\u200b S\uff0c\u200b\u5c06\u200b\u6570\u636e\u200b\u96c6\u5728\u200b\u8be5\u200b\u7ef4\u5ea6\u200b\u4e0a\u200b\u6309\u7167\u200b\u5212\u5206\u200b\u70b9\u200b\u5212\u5206\u200b\u6210\u200b\u4e24\u200b\u90e8\u5206\u200b\\(R_1(j\uff0cs)\uff0cR_2(j\uff0cs)\\)\uff0c\u200b\u8ba1\u7b97\u200b\u5bf9\u5e94\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u503c\u200b\\(min_{s} \\sum_{x_i \\in R_1(j\uff0cs)} (y_i - c_1)^2 + \\sum_{x_i \\in R_2(j\uff0cs)} (y_i - c_2)^2\\)
            • \u200b\u627e\u5230\u200b\u6700\u4f73\u200b\u7ef4\u5ea6\u200b\u548c\u200b\u6700\u4f73\u200b\u5212\u5206\u200b\u4e4b\u540e\u200b\uff0c\u200b\u628a\u200b\u6570\u636e\u200b\u96c6\u200b\u5212\u5206\u200b\u4e3a\u200b\\(R_1\uff0cR_2\\)\uff0c\u200b\u7136\u540e\u200b\u5bf9\u200b\\(R_1\uff0cR_2\\)\u200b\u5206\u522b\u200b\u9012\u5f52\u200b\u7684\u200b\u8c03\u7528\u200b\u672c\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u76f4\u5230\u200b\u6ee1\u8db3\u200b\u505c\u6b62\u200b\u6761\u4ef6\u200b\uff08\u200b\u533a\u57df\u200b\u5185\u90e8\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c0f\u4e8e\u200b\u9608\u503c\u200b\uff09
            "},{"location":"Note/Data%20Modeling/Decision_Tree/#cart_1","title":"CART \u200b\u5206\u7c7b\u200b\u6811\u200b\u7b97\u6cd5","text":"

            \u200b\u9996\u5148\u200b\u6211\u4eec\u200b\u5148\u200b\u7528\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\u751f\u6210\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u7136\u540e\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b.\u200b\u6211\u4eec\u200b\u7740\u91cd\u200b\u4ecb\u7ecd\u200b\u8fd9\u91cc\u200b\u4f7f\u7528\u200b\u7684\u200b\u526a\u679d\u200b\u7b97\u6cd5\u200b

            \u200b\u6211\u4eec\u200b\u5148\u200b\u6784\u9020\u200b\u4e00\u4e2a\u200b\u4ee5\u200b\\(\\alpha\\)\u200b\u4e3a\u200b\u53c2\u6570\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a

            \\[ C_{\\alpha}(T) = C(T)+ \\alpha |T| \\quad\\quad \\alpha \\in [0\uff0c\\infty) \\]

            \u200b\u5176\u4e2d\u200b\\(C(T)\\)\u200b\u4e3a\u200b\u7528\u200b\u8be5\u200b\u51b3\u7b56\u6811\u200b\u5bf9\u200b\u8bad\u7ec3\u200b\u96c6\u200b\u8fdb\u884c\u200b\u9884\u6d4b\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff08\u200b\u7528\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\uff09. \u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u627e\u5230\u200b\\(\\alpha\\)\u200b\u4ece\u200b 0 \u200b\u5230\u200b\u6b63\u200b\u65e0\u7a77\u7684\u200b\u6bcf\u200b\u4e00\u4e2a\u200b\u533a\u95f4\u200b\u5185\u200b\u7684\u200b\u526a\u679d\u200b\u540e\u200b\u7684\u200b\u6700\u4f18\u200b\u6811\u200b\u3002

            \u200b\u5728\u200b\u6b64\u200b\u8bed\u5883\u200b\u4e0b\u200b\uff0c\u200b\u5bf9\u200b\u67d0\u4e2a\u200b\u8282\u70b9\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b\u5c31\u662f\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u7528\u200b\u4e00\u4e2a\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\u4ee3\u66ff\u200b\u4ee5\u200b\u5f53\u524d\u200b\u8282\u70b9\u200b\u4e3a\u6839\u200b\u7684\u200b\u5b50\u6811\u200b\uff0c\u200b\u8be5\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\u542b\u6709\u200b\u5b50\u6811\u4e2d\u200b\u6240\u6709\u200b\u7684\u200b\u6837\u672c\u200b\u3002

            \u200b\u6211\u4eec\u200b\u5148\u200b\u6765\u770b\u200b\u6bd4\u8f83\u200b\u6781\u7aef\u200b\u7684\u200b\\(\\alpha\\)\uff0c\u200b\u770b\u200b\u4ed6\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5f71\u54cd\u200b\uff0c\u200b\u5f53\u200b\\(\\alpha\\)\u200b\u4e3a\u200b 0 \u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\\(C(T)\\)\uff0c\u200b\u6b64\u65f6\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u6700\u5c0f\u5316\u200b\\(C(T)\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u6700\u4f18\u200b\u7684\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u5c31\u7b97\u200b\u6211\u4eec\u200b\u5206\u51fa\u200b\u4e86\u200b\u975e\u5e38\u200b\u591a\u200b\u7684\u200b\u8282\u70b9\u200b\u4e5f\u200b\u65e0\u6240\u8c13\u200b.\u200b\u5f53\u200b\\(\\alpha\\)\u200b\u4e3a\u200b\u6b63\u200b\u65e0\u7a77\u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\\(|T|\\)\uff0c\u200b\u6b64\u65f6\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u6700\u5c0f\u5316\u200b\\(|T|\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6700\u5c11\u200b\u7684\u200b\u6811\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6beb\u65e0\u7591\u95ee\u200b\u6240\u6709\u200b\u7684\u200b\u6837\u672c\u200b\u90fd\u200b\u653e\u5728\u200b\u6839\u200b\u8282\u70b9\u200b\u5185\u200b\u5c31\u662f\u200b\u6700\u4f18\u200b\u89e3\u200b.\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c \\(\\alpha\\)\u200b\u8d8a\u5927\u200b\uff0c\u200b\u51b3\u7b56\u6811\u200b\u4f1a\u200b\u88ab\u200b\u526a\u200b\u7684\u200b\u8d8a\u200b\u5e72\u51c0\u200b\u3002

            \u200b\u5728\u200b\u4ee5\u4e0a\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u53d1\u73b0\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5355\u72ec\u200b\u8ba8\u8bba\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u662f\u5426\u200b\u8981\u200b\u88ab\u200b\u526a\u679d\u200b\uff08\u200b\u56de\u5fc6\u200b\u4e00\u4e0b\u200b\u4ec0\u4e48\u200b\u53eb\u505a\u200b\u5bf9\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b\uff09\uff0c\u200b\u5047\u8bbe\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6240\u200b\u4ee3\u8868\u200b\u7684\u200b\u5b50\u6811\u4e3a\u200b\\(T_t\\)\uff0c\u200b\u628a\u5b50\u200b\u6811\u5185\u200b\u7684\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u90fd\u200b\u6536\u5230\u200b\u8282\u70b9\u200b\u5185\u6240\u200b\u6784\u6210\u200b\u7684\u200b\u8282\u70b9\u200b\u4e3a\u200b t\uff0c\u200b\u90a3\u4e48\u200b\u8be5\u200b\u8282\u70b9\u200b\u4ece\u4e0d\u200b\u526a\u679d\u200b\u8f6c\u5411\u200b\u526a\u679d\u200b\u7684\u200b\u5173\u952e\u200b\u8282\u70b9\u200b\u5c31\u662f\u200b\u5f53\u4e0b\u200b\u5f0f\u200b\u6210\u7acb\u200b\u65f6\u200b\uff1a

            \\[ C(t) + \\alpha * 1 = C(T_t) + \\alpha * |T_t| \\]

            \u200b\u7b2c\u4e00\u9879\u200b\u662f\u200b\u6211\u4eec\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u653e\u7f6e\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u526a\u679d\u200b\u540e\u200b\u7684\u200b\u8282\u70b9\u200b\uff09\u200b\u5e26\u6765\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff0c\u200b\u7b2c\u4e8c\u9879\u200b\u5f0f\u200b\u6211\u4eec\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u653e\u7f6e\u200b\u5b50\u6811\u200b\u5e26\u6765\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b.\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u8fd9\u4e2a\u200b\u4e34\u754c\u200b\u7684\u200b\\(\\alpha_{t}\\)\uff0c\u200b\u90a3\u4e48\u200b\u5982\u679c\u200b\\(\\alpha \\in (0\uff0c\\alpha_{t})\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u4e0d\u200b\u526a\u679d\u200b\uff0c\u200b\u5982\u679c\u200b\\(\\alpha \\in [\\alpha_{t}\uff0c\\infty)\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u526a\u679d\u200b\u3002

            \u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u5185\u200b\u7684\u200b\u6240\u6709\u200b\u8282\u70b9\u200b\u90fd\u200b\u8ba1\u7b97\u200b\u4e34\u754c\u200b\\(\\alpha\\)\uff0c\u200b\u6211\u4eec\u200b\u4ece\u200b\\(\\alpha = 0\\)\u200b\u5f00\u59cb\u200b\u9010\u6e10\u200b\u589e\u5927\u200b\uff0c\u200b\u6bcf\u6b21\u200b\u8fbe\u5230\u200b\u4e34\u754c\u70b9\u200b\u6211\u4eec\u200b\u5c31\u200b\u526a\u679d\u200b\uff0c\u200b\u76f4\u5230\u200b\u6240\u6709\u200b\u679d\u200b\u90fd\u200b\u88ab\u200b\u526a\u6389\u200b\uff0c\u200b\u76f4\u5230\u200b\u6574\u68f5\u6811\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u3002

            \u200b\u5728\u200b\u4e0a\u8ff0\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u6211\u4eec\u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b\u4e0d\u540c\u200b\\(\\alpha\\)\u200b\u533a\u95f4\u200b\u4e0b\u200b\u7684\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u4ea4\u53c9\u200b\u9a8c\u8bc1\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6765\u200b\u9009\u62e9\u200b\u6700\u4f18\u200b\u7684\u200b\\(\\alpha\\).

            "},{"location":"Note/Data%20Modeling/KNN/","title":"K \u200b\u8fd1\u90bb","text":"

            \u200b\u7ea6\u200b 732 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

            "},{"location":"Note/Data%20Modeling/KNN/#_1","title":"\u95ee\u9898\u200b\u53ca\u200b\u7b97\u6cd5\u200b\u63cf\u8ff0","text":"

            \u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b\\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\{ c_1\uff0cc_2\uff0c....c_k\\}\\)\uff0c \u200b\u4e00\u5171\u200b\u6709\u200b K \u200b\u79cd\u7c7b\u200b\u522b\u200b\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u7c7b\u522b\u200b\\(y\\). \u200b\u7b97\u6cd5\u200b\u601d\u60f3\u200b\uff1a

            • \u200b\u627e\u51fa\u200b\u79bb\u200b x \u200b\u6700\u8fd1\u200b\u7684\u200b K \u200b\u4e2a\u200b\u90bb\u5c45\u200b\\(N_{k}(x)\\)
            • \u200b\u7531\u200b\u7740\u200b K \u200b\u4e2a\u200b\u90bb\u5c45\u200b\u8fdb\u884c\u200b\u591a\u6570\u200b\u8868\u51b3\u200b\uff1a
            \\[ y =\\underset{c_j}{\\operatorname{arg max}} \\sum_{N_{k}(x)} I(y = c_j) \\]

            \u200b\u5176\u4e2d\u200b\u7684\u200b\\(I(y = c_j)\\)\u200b\u662f\u200b\u6307\u793a\u200b\u51fd\u6570\u200b\uff0c\u200b\u5f53\u200b\\(y = c_j\\)\u200b\u65f6\u200b\uff0c\\(I(y = c_j) = 1\\)\uff0c\u200b\u5426\u5219\u200b\\(I(y = c_j) = 0\\).

            "},{"location":"Note/Data%20Modeling/KNN/#k_1","title":"K \u200b\u8fd1\u90bb\u200b\u7684\u200b\u4e09\u8981\u7d20","text":"

            \u200b\u6709\u200b\u4e86\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u7b97\u6cd5\u200b\u6846\u67b6\u200b\u540e\u200b\uff0cK \u200b\u8fd1\u90bb\u200b\u7b97\u6cd5\u200b\u7531\u200b\u4e09\u4e2a\u200b\u8981\u7d20\u200b\u51b3\u5b9a\u200b\uff1a

            \u200b\u8ddd\u79bb\u200b\u5ea6\u91cf\u200bK \u200b\u503c\u200b\u9009\u62e9\u200b\u5206\u7c7b\u200b\u51b3\u7b56\u200b\u89c4\u5219\u200b

            \u200b\u4e00\u822c\u6765\u8bf4\u200b\u6211\u4eec\u200b\u4f7f\u7528\u200b\\(L_p\\)\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u5373\u200b\uff1a

            \\[ L_p(x_i\uff0cx_j) = (\\sum_{l=1}^{n}|x_i^{(l)} - x_j^{(l)}|^p)^{\\frac{1}{p}} \\]

            \u200b\u5f53\u200b p \u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b 2 \u200b\u65f6\u200b\uff0c\u200b\u5c31\u662f\u200b\u6b27\u6c0f\u200b\u8ddd\u79bb\u200b

            \u200b\u5f53\u200b K \u200b\u6bd4\u8f83\u200b\u5c0f\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u6a21\u578b\u200b\u6bd4\u8f83\u590d\u6742\u200b\uff0c\u200b\u5bb9\u6613\u200b\u8fc7\u200b\u62df\u5408\u200b\uff1b \u200b\u5f53\u200b K \u200b\u6bd4\u8f83\u200b\u5927\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u6a21\u578b\u200b\u6bd4\u8f83\u7b80\u5355\u200b\uff0c\u200b\u5bb9\u6613\u200b\u6b20\u200b\u62df\u5408\u200b\u3002 \u200b\u4e00\u822c\u6765\u8bf4\u200b K \u200b\u503c\u200b\u90fd\u200b\u4e0d\u4f1a\u200b\u9009\u200b\u7684\u200b\u592a\u5927\u200b\u3002

            \u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b\u591a\u6570\u200b\u8868\u51b3\u200b\u89c4\u5219\u200b\uff0c\u200b\u5728\u200b\u6b64\u200b\u60c5\u666f\u200b\u4e0b\u200b\u591a\u6570\u200b\u8868\u51b3\u200b\u89c4\u5219\u200b\u7b49\u6548\u4e8e\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6700\u5c0f\u5316\u200b\u3002

            "},{"location":"Note/Data%20Modeling/KNN/#kd-k","title":"\u7528\u200b kd \u200b\u6811\u200b\u5207\u5206\u200b\u7a7a\u95f4\u200b\u6c42\u89e3\u200b K \u200b\u8fd1\u90bb","text":""},{"location":"Note/Data%20Modeling/KNN/#kd","title":"kd \u200b\u6811\u200b\u7684\u200b\u6784\u9020","text":"
            • \u200b\u8f93\u5165\u200b\uff1a \\(\\{(x_i\uff0cy_i)\\}\\)
            • \u200b\u5f00\u59cb\u200b\uff1a \u200b\u53d6\u200b\u53d8\u91cf\u200b\\(x\\)\u200b\u7684\u200b\u7b2c\u4e00\u4e2a\u200b\u7ef4\u5ea6\u200b\\(x_i^(1)\\)\uff0c\u200b\u7b2c\u4e00\u4e2a\u200b\u7eac\u5ea6\u200b\u7684\u200b\u4e2d\u4f4d\u6570\u200b\\(x_j^(1)\\)\uff0c\u200b\u5c06\u200b\u6570\u636e\u200b\u96c6\u200b\u5206\u4e3a\u200b\u4e24\u200b\u90e8\u5206\u200b\uff0c\u200b\u5de6\u5b50\u200b\u6811\u200b\u548c\u200b\u53f3\u5b50\u200b\u6811\u200b\uff0c\u200b\u800c\u200b\\(x_j^(1)\\)\u200b\u5c31\u662f\u200b\u6839\u200b\u8282\u70b9\u200b\uff0c\u200b\u5de6\u53f3\u200b\u5b50\u200b\u8282\u70b9\u200b\u7684\u200b\u6df1\u5ea6\u200b\u4e3a\u200b 1
            • \u200b\u91cd\u590d\u200b\uff1a \u200b\u5bf9\u200b\u5de6\u53f3\u200b\u5b50\u6811\u200b\u7ee7\u7eed\u200b\u8fdb\u884c\u200b\u5206\u5272\u200b\uff0c\u200b\u5bf9\u4e8e\u200b j \u200b\u6df1\u5ea6\u200b\u7684\u200b\u5b50\u6811\u200b\uff0c\u200b\u53d6\u200b\\(x\\)\u200b\u7684\u200b\u7b2c\u200b\\(j+1\\)\u200b\u7ef4\u5ea6\u200b\\(x_i^(j+1)\\)\u200b\u8fdb\u884c\u200b\u5206\u5272\u200b
            • \u200b\u7ed3\u675f\u200b\uff1a \u200b\u76f4\u5230\u200b\u5de6\u53f3\u200b\u7a7a\u95f4\u200b\u90fd\u200b\u4e0d\u518d\u200b\u6709\u5b50\u200b\u8282\u70b9\u200b
            \u200b\u8bfe\u4ef6\u200b\u4e0a\u200b\u7684\u200b\u4f8b\u5b50"},{"location":"Note/Data%20Modeling/KNN/#kd-k_1","title":"\u641c\u7d22\u200b kd \u200b\u6811\u200b\u5bfb\u627e\u200b K \u200b\u8fd1\u90bb","text":"
            • \u200b\u8f93\u5165\u200b\uff1a kd \u200b\u6811\u200b\uff0c\u200b\u76ee\u6807\u200b\u70b9\u200b\\(x\\)\uff08\u200b\u6ce8\u610f\u200b\u6b64\u5904\u200b\u7684\u200b x \u200b\u4e00\u822c\u800c\u8a00\u200b\u4e0d\u662f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u7684\u200b\u70b9\u200b\uff09
            • \u200b\u5f00\u59cb\u200b\uff1a \u200b\u4ece\u6839\u200b\u8282\u70b9\u200b\u5f00\u59cb\u200b\uff0c\u200b\u9012\u5f52\u200b\u7684\u200b\u5411\u4e0b\u200b\u8bbf\u95ee\u200b kd \u200b\u6811\u200b\uff0c\u200b\u5728\u200b\u6bcf\u4e2a\u200b\u8282\u70b9\u200b\u628a\u200b\u5bf9\u5e94\u200b\u7ef4\u5ea6\u200b\u8ddf\u200b\u8be5\u200b\u8282\u70b9\u200b\u6bd4\u8f83\u200b\u51b3\u5b9a\u200b\u5411\u200b\u5de6\u200b\u8fd8\u662f\u200b\u5411\u200b\u53f3\u200b\uff0c\u200b\u76f4\u5230\u200b\u53f6\u5b50\u200b\u8282\u70b9\u200b
            • \u200b\u91cd\u590d\u200b\uff1a \u200b\u7ef4\u62a4\u200b\u4e00\u4e2a\u200b\u5f53\u524d\u200b\u7684\u200b\u6700\u8fd1\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u5f53\u524d\u200b\u6700\u8fd1\u200b\u8ddd\u79bb\u200b\u7684\u200b\u521d\u59cb\u503c\u200b\u5c31\u662f\u200b\u8ddf\u200b\u5230\u8fbe\u200b\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u4ec5\u200b\u6709\u200b\u67d0\u4e2a\u200b\u5b50\u6811\u200b\u53ef\u80fd\u200b\u542b\u6709\u200b\u8ddd\u79bb\u200b\u5c0f\u4e8e\u200b\u6b64\u200b\u6700\u5c0f\u200b\u8ddd\u79bb\u200b\u7684\u200b\u7684\u200b\u8282\u70b9\u200b\u65f6\u200b\u6211\u4eec\u200b\u624d\u200b\u8bbf\u95ee\u200b\u4e4b\u200b
              • \u200b\u5411\u4e0a\u200b\u56de\u6eaf\u200b\uff0c\u200b\u9996\u5148\u200b\u5c1d\u8bd5\u200b\u7528\u7236\u200b\u8282\u70b9\u200b\u66f4\u65b0\u200b\u6700\u5c0f\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u7136\u540e\u200b\u8ba1\u7b97\u200b\u4e00\u4e0b\u200b\u5144\u5f1f\u200b\u7a7a\u95f4\u200b\u662f\u5426\u200b\u8ddf\u200b\u4ee5\u200b x \u200b\u4e3a\u200b\u4e2d\u5fc3\u200b\uff0c\u200b\u4ee5\u200b\u6700\u5c0f\u200b\u8ddd\u79bb\u200b\u4e3a\u200b\u534a\u5f84\u200b\u7684\u200b\u8d85\u7403\u200b\u76f8\u4ea4\u200b\uff0c\u200b\u5982\u679c\u200b\u76f8\u4ea4\u200b\uff0c\u200b\u5bf9\u200b\u5144\u5f1f\u200b\u5b50\u6811\u200b\u8fdb\u884c\u200b kd \u200b\u6811\u200b\u641c\u7d22\u200b
            • \u200b\u7ed3\u675f\u200b\uff1a \u200b\u56de\u6eaf\u5230\u200b\u6839\u200b\u7684\u200b\u65f6\u5019\u200b\u7ed3\u675f\u200b\uff0c\u200b\u5f53\u524d\u200b\u7ef4\u62a4\u200b\u7684\u200b\u6700\u8fd1\u200b\u70b9\u200b\u5c31\u662f\u200b\u5168\u5c40\u200b\u6700\u8fd1\u200b\u70b9\u200b

            \u200b\u4e00\u6b21\u200b\u641c\u7d22\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u6700\u8fd1\u200b\u90bb\u70b9\u200b\uff0c\u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u7528\u200b\u4e3a\u200b\\(O(logn)\\)\uff0c\u200b\u5982\u679c\u200b\u8981\u200b\u627e\u51fa\u200b K \u200b\u4e2a\u200b\u6700\u8fd1\u200b\u90bb\u70b9\u200b\uff0c\u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(klogn)\\)

            PPT \u200b\u4e0a\u200b\u7684\u200b\u4f8b\u5b50\u200b

            "},{"location":"Note/Data%20Modeling/Logistic_Regression/","title":"\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52","text":"

            \u200b\u7ea6\u200b 842 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

            "},{"location":"Note/Data%20Modeling/Logistic_Regression/#_2","title":"\u903b\u8f91\u200b\u65af\u8c1b\u200b\u5206\u5e03","text":"

            \u200b\u9996\u5148\u200b\u76f4\u63a5\u200b\u7ed9\u51fa\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\\(X\\)\u200b\u6ee1\u8db3\u200b\\(Logistic(\\mu\uff0c\\gamma)\\)\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\uff1a

            \\[ F(x)=\\frac{1}{1+e^{-(x-\\mu)/\\gamma}} \\]

            \u200b\u5176\u4e2d\u200b\\(\\mu\\)\u200b\u4e3a\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\uff0c\\(\\gamma\\)\u200b\u4e3a\u200b\u5f62\u72b6\u200b\u53c2\u6570\u200b.\u200b\u8be5\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u7684\u200b\u56fe\u50cf\u200b\u4e3a\u200b S \u200b\u578b\u200b\u66f2\u7ebf\u200b\uff0c\\(\\mu\\)\u200b\u4e3a\u200b\u51fd\u6570\u200b\u7684\u200b\u5bf9\u79f0\u4e2d\u5fc3\u200b\uff0c\\(\\gamma\\)\u200b\u63a7\u5236\u200b\u51fd\u6570\u200b\u7684\u200b\u9661\u5ced\u200b\u7a0b\u5ea6\u200b\uff0c\u200b\u503c\u8d8a\u200b\u5927\u200b\uff0c\u200b\u51fd\u6570\u200b\u8d8a\u200b\u9661\u5ced\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Logistic_Regression/#_3","title":"\u4e8c\u9879\u200b\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52\u200b\u6a21\u578b","text":"

            \u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(D=\\{(x_1\uff0cy_1)\uff0c(x_2\uff0cy_2)\uff0c...\uff0c(x_m\uff0cy_m)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(x_i \\in \\mathbb{R}\\)\uff0c\\(y_i \\in \\{0\uff0c1\\}\\)\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u5b66\u4e60\u200b\u5230\u200b\u4e00\u4e2a\u200b\u7ebf\u6027\u200b\u6a21\u578b\u200b\u6765\u200b\u8fdb\u884c\u200b\u5206\u7c7b\u200b\uff0c\u200b\u5728\u200b\u611f\u77e5\u673a\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u7528\u200b\u4e00\u4e2a\u200b\u6307\u793a\u200b\u51fd\u6570\u200b\u6765\u200b\u5c06\u200b\u51fd\u6570\u200b\u503c\u200b\u7684\u200b\u7b26\u53f7\u200b\u6620\u5c04\u200b\u5230\u200b\u4e0d\u540c\u200b\u7684\u200b\u5206\u7c7b\u200b\u3002

            \u200b\u5bf9\u4e8e\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\u6765\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u60f3\u8981\u200b\u5f97\u5230\u200b\u7684\u200b\u662f\u200b\u67d0\u4e2a\u200b x \u200b\u4e0b\u200b\u5c5e\u4e8e\u200b 0\uff0c\u200b\u6216\u8005\u200b 1 \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u4e5f\u200b\u662f\u200b\u8fde\u7eed\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u8bd5\u56fe\u7528\u200b\u7ebf\u6027\u200b\u7684\u200b\u6a21\u578b\u200b\u53bb\u200b\u62df\u5408\u200b\uff0c\u200b\u6211\u4eec\u200b\u5148\u4f5c\u200b\u5982\u4e0b\u200b\u7684\u200b\u8f6c\u5316\u200b\uff1a

            • \u200b\u6982\u7387\u200b\u7684\u200b\u53d6\u503c\u200b\u8303\u56f4\u200b\u662f\u200b\\(P \\in [0\uff0c1]\\)
            • \u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u4f7f\u7528\u200b\u51e0\u7387\u200b\\(\\frac{p}{1-p}\\)\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u7684\u200b\u53d6\u503c\u200b\u8303\u56f4\u200b\u5c31\u662f\u200b\\((0\uff0c\\infty)\\)
            • \u200b\u518d\u200b\u52a0\u200b\u4e00\u4e2a\u200b\u5bf9\u6570\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u5f97\u5230\u200b\u5bf9\u6570\u200b\u51e0\u7387\u200b\\(logit(p)=ln\\frac{p}{1-p}\\)\uff0c\u200b\u53d6\u503c\u200b\u8303\u56f4\u200b\u662f\u200b\\((-\\infty\uff0c\\infty)\\)

            \u200b\u8fd9\u6837\u200b\u5bf9\u6570\u200b\u51e0\u7387\u200b\u7684\u200b\u53d6\u503c\u200b\u8303\u56f4\u200b\u5c31\u200b\u548c\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u7684\u200b\u4e00\u6837\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8bd5\u7740\u200b\u7528\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u53bb\u200b\u8fdb\u884c\u200b\u62df\u5408\u200b\uff08\u200b\u5982\u679c\u200b\u67d0\u4e2a\u200b\u5206\u5e03\u200b\u7684\u200b\u5bf9\u6570\u51fd\u6570\u200b\u76f8\u5173\u7cfb\u6570\u200b\u5f88\u200b\u9ad8\u200b\uff0c\u200b\u81ea\u7136\u200b\u53ef\u4ee5\u200b\u62df\u5408\u200b\u5230\u200b\u6bd4\u8f83\u200b\u597d\u200b\u7684\u200b\u6548\u679c\u200b\uff0c\u200b\u4f46\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\u7684\u200b\u5bf9\u6570\u200b\u51e0\u7387\u200b\u51e0\u4e4e\u200b\u4e0d\u6210\u200b\u7ebf\u6027\u200b\uff0c\u200b\u90a3\u4e48\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u7684\u200b\u62df\u5408\u200b\u6548\u679c\u200b\u5c31\u200b\u4f1a\u200b\u6bd4\u8f83\u200b\u5dee\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u7528\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\u62df\u5408\u200b\u7684\u200b\u5206\u5e03\u200b\u6700\u597d\u200b\u6709\u200b\u7c7b\u4f3c\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\uff09.

            \u200b\u6211\u4eec\u200b\u4ee4\u200b

            \\[ \\ln(\\frac{P(Y=1|x)}{1-P(Y=1|x)}) = w\\cdot x + b \\]

            \u200b\u90a3\u4e48\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a

            \\[ P(Y=1|x)=\\frac{exp(w\\cdot x+b)}{1+exp(w\\cdot x+b)} \\] \\[ P(Y=0|x)=\\frac{1}{1+exp(w\\cdot x+b)} \\]

            \u200b\u8fd9\u200b\u5c31\u662f\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\uff0c\u200b\u73b0\u5728\u200b\u95ee\u9898\u200b\u662f\u200b\u6211\u4eec\u200b\u6709\u7684\u662f\u200b\u4e00\u5bf9\u200b\u6570\u636e\u200b\u70b9\u200b\u800c\u200b\u4e0d\u662f\u200b x \u200b\u548c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u6211\u4eec\u200b\u8be5\u200b\u5982\u4f55\u200b\u8fdb\u884c\u200b\u62df\u5408\u200b\uff1f

            "},{"location":"Note/Data%20Modeling/Logistic_Regression/#_4","title":"\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1","text":"

            \u200b\u6211\u4eec\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\u7684\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b

            \\[ L(w\uff0cb)=\\prod_{i=1}^{m}P(Y=y_i|x_i)=\\prod_{i=1}^{m}(\\frac{exp(w\\cdot x_i+b)}{1+exp(w\\cdot x_i+b)})^{y_i}(\\frac{1}{1+exp(w\\cdot x_i+b)})^{1-y_i} \\]

            \u200b\u4e3a\u4e86\u200b\u65b9\u4fbf\u200b\u6c42\u89e3\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6781\u5927\u200b\u5316\u200b\u5bf9\u6570\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b\uff0c\u200b\u8fd9\u200b\u4e5f\u200b\u7b49\u6548\u4e8e\u200b\u6781\u5927\u200b\u5316\u4f3c\u7136\u200b\u51fd\u6570\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5bf9\u6570\u51fd\u6570\u200b\u662f\u200b\u5355\u8c03\u200b\u9012\u589e\u200b\u7684\u200b\u3002

            \\[\\begin{aligned} &\\ln L(w\uff0cb) = \\sum_{i=1}^{m}y_i(w\\cdot x_i+b)-\\ln(1+exp(w\\cdot x_i+b)) \\\\ \\end{aligned}\\]

            \u200b\u90a3\u4e48\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5c31\u200b\u8981\u6c42\u200b\u6211\u4eec\u200b\u627e\u5230\u200b\u4f7f\u200b\u5bf9\u6570\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b\u6700\u5927\u200b\u7684\u200b\u53c2\u6570\u200b

            \\[ \\underset{w\uff0cb}{\\operatorname{arg max}} \\ln L(w\uff0cb) \\]

            \u200b\u5728\u200b\u8fd9\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b\u6c42\u89e3\u200b\u8fc7\u7a0b\u200b\u9700\u8981\u200b\u7528\u200b\u68af\u5ea6\u200b\u4e0b\u964d\u200b\u6cd5\u200b\u6216\u8005\u200b\u725b\u987f\u200b\u6cd5\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u56e0\u4e3a\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u51fd\u6570\u200b\u662f\u200b\u51f8\u51fd\u6570\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4fdd\u8bc1\u200b\u6c42\u89e3\u200b\u7684\u200b\u7ed3\u679c\u200b\u662f\u200b\u5168\u5c40\u200b\u6700\u4f18\u200b\u89e3\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Logistic_Regression/#_5","title":"\u591a\u9879\u200b\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52\u200b\u6a21\u578b","text":"

            \u200b\u7c7b\u4f3c\u200b\u7684\u200b\uff0c\u200b\u591a\u9879\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u5982\u4e0b\u200b\uff1a

            \\[\\begin{aligned} &P(Y=1|x)=\\frac{exp(w_1\\cdot x+b_1)}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ &P(Y=2|x)=\\frac{exp(w_2\\cdot x+b_2)}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ &... \\\\ &P(Y=k|x)=\\frac{1}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ \\end{aligned}\\]"},{"location":"Note/Data%20Modeling/Max_Entropy/","title":"\u6700\u5927\u200b\u71b5\u200b\u6a21\u578b","text":"

            \u200b\u7ea6\u200b 717 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

            \u200b\u601d\u60f3\u200b

            \u200b\u6709\u65f6\u5019\u200b\u6211\u4eec\u200b\u5df2\u6709\u200b\u7684\u200b\u6570\u636e\u200b\u5e76\u200b\u4e0d\u8db3\u4ee5\u200b\u6211\u4eec\u200b\u552f\u4e00\u200b\u786e\u5b9a\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u65f6\u5019\u200b\u5bf9\u4e8e\u200b\u6240\u6709\u200b\u5019\u9009\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u8ba4\u4e3a\u200b\u71b5\u200b\u6700\u5927\u200b\u7684\u200b\u90a3\u4e2a\u200b\u5206\u5e03\u200b\u662f\u200b\u6700\u597d\u200b\u7684\u200b.\u200b\u6362\u8a00\u4e4b\u200b\uff0c\u200b\u5728\u200b\u6ee1\u8db3\u200b\u7ea6\u675f\u200b\u7684\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c3d\u53ef\u80fd\u200b\u91c7\u53d6\u200b\u7b49\u200b\u53ef\u80fd\u200b\u5206\u5e03\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Max_Entropy/#_2","title":"\u6a21\u578b\u200b\u63cf\u8ff0","text":"

            \u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u7edf\u8ba1\u200b\u7ecf\u9a8c\u200b\u5206\u5e03\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u9891\u7387\u200b\uff09

            \\[\\begin{aligned} &\\tilde{P}(X=x\uff0cY=y) = \\frac{v(X = x\uff0c Y = y)}{N} \\\\ &\\tilde{P}(X=x) = \\frac{v(X = x)}{N} \\\\ \\end{aligned}\\]

            \u200b\u6211\u4eec\u200b\u5f15\u5165\u200b\u7279\u5f81\u51fd\u6570\u200b\\(f(x\uff0cy) \\ in {0\uff0c1}\\)\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7f6e\u9876\u200b\u67d0\u79cd\u200b\u6761\u4ef6\u200b\uff0c\u200b\u6ee1\u8db3\u6761\u4ef6\u200b\u7684\u200b\\((x\uff0cy)\\)\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u51fd\u6570\u200b\u503c\u4e3a\u200b 1\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b 0.\u200b\u6bd4\u5982\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\\(f(x\uff0cy) = 1\\)\u200b\u5f53\u4e14\u200b\u4ec5\u200b\u5f53\u200b\\(x\\)\u200b\u548c\u200b\\(y\\)\u200b\u76f8\u7b49\u200b\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b 0.\u200b\u5b9a\u4e49\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u7279\u5f81\u51fd\u6570\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\u5728\u200b\u7279\u5f81\u51fd\u6570\u200b\u4e0a\u200b\u7684\u200b\u671f\u671b\u200b\uff1a

            \\[ E_{\\tilde{P}}(f) = \\sum_{x\uff0cy}\\tilde{P}(x\uff0cy)f(x\uff0cy) \\]

            \u200b\u7b80\u5355\u200b\u6765\u8bf4\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u5bf9\u200b\u67d0\u4e9b\u200b\\((x\uff0cy)\\)\u200b\u4e0a\u200b\u7684\u200b\u9891\u6570\u200b\u6c42\u548c\u200b\uff0c\u200b\u5728\u200b\u4e0a\u4f8b\u200b\u4e2d\u200b\uff0c\u200b\u5c31\u662f\u200b\u5bf9\u200b xy \u200b\u76f8\u7b49\u200b\u7684\u200b\u90a3\u4e9b\u200b\u9879\u200b\u7684\u200b\u9891\u6570\u200b\u6c42\u548c\u200b

            \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u5b66\u4e60\u200b\u5230\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u6761\u4ef6\u200b\u5206\u5e03\u200b\\(P(Y|X)\\)\uff0c\u200b\u90a3\u4e48\u200b\u7528\u200b\u6211\u4eec\u200b\u5b66\u5230\u200b\u7684\u200b\u6761\u4ef6\u200b\u5206\u5e03\u200b\u4e0e\u200b X \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u5206\u5e03\u200b\u7b97\u200b\u51fa\u6765\u200b\u7684\u200b\u671f\u671b\u200b\u662f\u200b\uff1a

            \\[ E_{P}(f) = \\sum_{x\uff0cy}P(y|x)\\tilde{P}(x)f(x\uff0cy) \\]

            \u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6211\u4eec\u200b\u5b66\u5230\u200b\u7684\u200b\u6761\u4ef6\u200b\u5462\u200b\u5206\u5e03\u200b\u5c3d\u53ef\u80fd\u200b\u7b26\u5408\u5b9e\u9645\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\\(P(y|x)\\tilde{P}(x)\\)\u200b\u5728\u200b\u7279\u5f81\u51fd\u6570\u200b\u7684\u200b\u610f\u4e49\u200b\u4e0a\u200b\u5c3d\u53ef\u80fd\u200b\u8d34\u8fd1\u200b\\(\\tilde{P}(x\uff0cy)\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b

            \\[ E_{P}(f) = E_{\\tilde{P}}(f) \\]

            \u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7528\u200b\u4e0a\u9762\u200b\u4f8b\u5b50\u200b\u4e2d\u200b\u7684\u200b\u7279\u5f81\u51fd\u6570\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5b66\u4e60\u200b\u5230\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u200b\uff0cxy \u200b\u76f8\u7b49\u200b\u7684\u200b\u9891\u6570\u200b\u7b49\u4e8e\u200b\u5b9e\u9645\u200b\u89c2\u6d4b\u200b\u5230\u200b\u7684\u200b xy \u200b\u76f8\u7b49\u200b\u7684\u200b\u9891\u6570\u200b\u3002

            \u200b\u8fd9\u91cc\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5728\u200b\u601d\u60f3\u200b\u4e2d\u200b\u63d0\u5230\u200b\u7684\u200b\u7ea6\u675f\u200b\uff0c\u200b\u6ee1\u8db3\u200b\u8fd9\u6837\u200b\u7ea6\u675f\u200b\u7684\u200b\u6a21\u578b\u200b\u5e76\u200b\u4e0d\u200b\u552f\u4e00\u200b\uff0c\u200b\u6211\u4eec\u200b\u8ba1\u7b97\u200b\u5404\u4e2a\u200b\u6a21\u578b\u200b\u7684\u200b\u6761\u4ef6\u200b\u71b5\u200b\uff1a

            \\[ H(P) = -\\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)\\log P(y|x) \\]

            \u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6761\u4ef6\u200b\u71b5\u200b\u6700\u5927\u200b\uff0c\u200b\u6761\u4ef6\u200b\u71b5\u200b\u8d8a\u200b\u5927\u200b\u7684\u200b\u5206\u5e03\u200b\u8d8a\u200b\u597d\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Max_Entropy/#_3","title":"\u6a21\u578b\u200b\u6c42\u89e3","text":"

            \u200b\u5199\u51fa\u200b\u5f62\u5f0f\u5316\u200b\u8868\u8fbe\u5f0f\u200b\uff1a

            \\[\\begin{aligned} \\underset{P \\in C}{\\operatorname{min}} &-H(P) = \\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)\\log P(y|x) \\\\ s.t. &\\sum_{y}P(y|x) = 1 \\\\ & E_{P}(f_i) = E_{\\tilde{P}}(f_i) \\\\ \\end{aligned}\\]

            \u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u591a\u4e2a\u200b\u7279\u5f81\u51fd\u6570\u200b\u6765\u200b\u8fdb\u884c\u200b\u7ea6\u675f\u200b

            \u200b\u4e3a\u200b\u4e86\u89e3\u200b\u89c9\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u7528\u200b\u4ee5\u4e0b\u200b\u4e09\u6b65\u200b

            • \u200b\u5199\u51fa\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\uff0c\u200b\u62c9\u683c\u6717\u200b\u65e5\u200b\u51fd\u6570\u200b\\(L(P\uff0cw)\\)\u200b\u4e3a\u200b\uff1a $$ \\undreset{P \\in C}{\\operatorname{min}} \\underset{w}{\\operatorname{max}} L(P\uff0cw) = \\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)\\log P(y|x) + \\sum_{i=1}^{n}w_i(\\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)f_i(x\uff0cy) - E_{\\tilde{P}}(f_i)) $$
            • \u200b\u6781\u5c0f\u200b\u5316\u200b\uff1a\u200b\u5728\u200b\\(L(P\uff0cw)\\)\u200b\u4e2d\u200b\u5bf9\u200b P \u200b\u6c42\u200b\u504f\u5bfc\u4ee5\u200b\u8fdb\u884c\u200b\u6700\u5c0f\u5316\u200b
            • \u200b\u6781\u5927\u200b\u5316\u200b\uff1a\u200b\u540c\u6837\u200b\u6c42\u5bfc\u200b\u6216\u8005\u200b\u4f7f\u7528\u200b\u5176\u4ed6\u200b\u6700\u4f18\u5316\u200b\u7b97\u6cd5\u200b\uff08\u200b\u68af\u5ea6\u200b\u4e0b\u964d\u200b\u6cd5\u200b\uff0c\u200b\u725b\u987f\u200b\u6cd5\u200b\uff0c\u200b\u62df\u200b\u725b\u987f\u200b\u6cd5\u200b\uff09
            "},{"location":"Note/Data%20Modeling/Naive_Bayesian/","title":"\u6734\u7d20\u200b\u8d1d\u53f6\u65af\u200b\u7b97\u6cd5","text":"

            \u200b\u7ea6\u200b 919 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

            "},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_2","title":"\u95ee\u9898\u200b\u53ca\u200b\u7b97\u6cd5\u200b\u63cf\u8ff0","text":"

            \u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b \\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\{ c_1\uff0cc_2\uff0c....c_k\\}\\)\uff0c \u200b\u4e00\u5171\u200b\u6709\u200b K \u200b\u79cd\u7c7b\u200b\u522b\u200b\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u7c7b\u522b\u200b\\(y\\).

            \u200b\u7b97\u6cd5\u200b\u5e0c\u671b\u200b\u5b66\u4e60\u200b\u4e00\u4e2a\u200b\u8054\u5408\u200b\u6982\u7387\u5206\u5e03\u200b\\(P(X\uff0cY)\\)\uff0c\u200b\u800c\u200b\u6211\u4eec\u200b\u73b0\u5728\u200b\u5df2\u7ecf\u200b\u6709\u7684\u662f\u200b\u5148\u9a8c\u200b\u5206\u5e03\u200b\\(P(Y)\\)\u200b\u548c\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\\(P(X|Y)\\).

            \u200b\u4f46\u662f\u200b\u540e\u8005\u200b\u7684\u200b\u7a7a\u95f4\u200b\u592a\u200b\u5927\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u4eec\u200b\u5f15\u5165\u200b\u72ec\u7acb\u6027\u200b\u5047\u8bbe\u200b\uff0c\u200b\u5047\u8bbe\u200b x \u200b\u7684\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u90fd\u200b\u662f\u200b\u72ec\u7acb\u200b\u7684\u200b\uff08\u200b\u4e8b\u5b9e\u4e0a\u200b\u5927\u200b\u6982\u7387\u200b\u5e76\u200b\u4e0d\u662f\u200b\uff0c\u200b\u8fd9\u662f\u200b\u6781\u5927\u200b\u7b80\u5316\u200b\u8ba1\u7b97\u200b\u91cf\u200b\u7684\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u5f15\u5165\u200b\u8bef\u5dee\u200b\u7684\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u8be5\u200b\u7b97\u6cd5\u200b\u7684\u200b\u201c\u200b\u6734\u7d20\u200b\u201d\u200b\u4e4b\u200b\u5904\u200b\uff09:

            \\[ P(X = x| Y = c_k) = P(X^{(1)} = x^{(1)}\uff0c X^{(2)} = x^{(2)} ... X^{(n)} = x^{(n)} | Y = c_k)= \\prod_{i=1}^{n}P(X^{(i)} = x^{(i)}| Y = c_k) \\]

            \u200b\u4e0a\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u5728\u200b\u7c7b\u522b\u200b\u662f\u200b\\(c_k\\)\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0cX \u200b\u8fd9\u4e00\u200b n \u200b\u7ef4\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b x \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u5c31\u662f\u200b\\(c_k\\)\u200b\u8fd9\u200b\u4e00\u7c7b\u200b\u4e2d\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(x^{(i)}\\)\u200b\u7684\u200b\u6982\u7387\u200b\u7684\u200b\u4e58\u79ef\u200b\u3002

            \u200b\u5b66\u4e60\u200b\u5230\u200b\u4e86\u200b\u8054\u5408\u200b\u6982\u7387\u5206\u5e03\u200b\u4e4b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b\u5206\u7c7b\u200b\u7684\u200b\u65f6\u5019\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\u6700\u5927\u200b\u540e\u9a8c\u200b\u6982\u7387\u200b\uff1a

            \\[ y = \\underset{c_k}{\\operatorname{arg max}} P(Y = c_k) \\prod_{i=1}^{n}P(X^{(i)} = x^{(i)}| Y = c_k) \\]

            \u200b\u4e0a\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u5047\u8bbe\u200b x \u200b\u7684\u200b\u7c7b\u522b\u200b\u662f\u200b\\(c_k\\)\uff0c\u200b\u8ba1\u7b97\u200b\u6bcf\u4e2a\u200b\\(c_k\\)\u200b\u8fd9\u200b\u4e00\u7c7b\u200b\u4e2d\u200b\u51fa\u73b0\u200b x \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u627e\u51fa\u200b\u6982\u7387\u200b\u6700\u5927\u200b\u7684\u200b\u90a3\u200b\u4e00\u7c7b\u200b\u4f5c\u4e3a\u200b x \u200b\u7684\u200b\u5206\u7c7b\u200b\u3002

            PPT \u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5206\u7c7b\u200b\u5b9e\u4f8b\u200b

            "},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_3","title":"\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1","text":"

            \u200b\u5229\u7528\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4e0b\u9762\u200b\u8fd9\u200b\u4e24\u4e2a\u200b\u6982\u7387\u200b\u7684\u200b\u4f30\u8ba1\u200b\u516c\u5f0f\u200b\uff1a

            \\[\\begin{aligned} &P(Y = c_k) = \\frac{\\sum_{i=1}^{N}I(y_i = c_k)}{N} \\\\ &P(X^{(i)} = a_{jl}| Y = c_k) = \\frac{\\sum_{i=1}^{N}I(x_i^{(i)} = a_{jl}\uff0cy_i = c_k)}{\\sum_{i=1}^{N}I(y_i = c_k)} \\end{aligned}\\]

            \u200b\u6307\u793a\u200b\u51fd\u6570\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5728\u200b\u524d\u9762\u200b\u5df2\u7ecf\u200b\u6709\u200b\u4ecb\u7ecd\u200b\uff0c\u200b\u540e\u7eed\u200b\u90fd\u200b\u9ed8\u8ba4\u200b\u4f7f\u7528\u200b\u8fd9\u4e00\u200b\u5b9a\u4e49\u200b\u3002

            \u200b\u7b2c\u4e00\u200b\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u4e0d\u540c\u200b\u7c7b\u522b\u200b\u7684\u200b\u51fa\u73b0\u200b\u6982\u7387\u200b\u7684\u200b\u5148\u9a8c\u6982\u7387\u200b\u76f4\u63a5\u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2d\u8be5\u200b\u7c7b\u522b\u200b\u51fa\u73b0\u200b\u7684\u200b\u9891\u7387\u200b\u3002

            \u200b\u7b2c\u4e8c\u200b\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u5728\u200b\u7c7b\u522b\u200b\u4e3a\u200b\\(c_k\\)\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u7b2c\u200b i \u200b\u7ef4\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(a_{jl}\\)\u200b\u7684\u200b\u6982\u7387\u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2d\u200b\\(c_k\\)\u200b\u7c7b\u4e2d\u200b\u8be5\u200b\u5206\u91cf\u200b\u4e3a\u200b\\(a_{jl}\\)\u200b\u7684\u200b\u6837\u672c\u200b\u5360\u200b\\(c_k\\)\u200b\u7c7b\u200b\u6837\u672c\u200b\u603b\u6570\u200b\u7684\u200b\u6bd4\u91cd\u200b\u3002

            \u200b\u601d\u60f3\u200b

            \u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5728\u200b\u6b64\u5904\u200b\u7684\u200b\u7ed3\u679c\u200b\u57fa\u672c\u4e0a\u200b\u53ef\u4ee5\u200b\u7b80\u5355\u200b\u5f52\u7ed3\u4e3a\u200b\uff1a\u200b\u7528\u200b\u9891\u7387\u200b\u4f30\u8ba1\u200b\u6982\u7387\u200b

            "},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_4","title":"\u8d1d\u53f6\u65af\u200b\u4f30\u8ba1","text":"

            \u200b\u4e0a\u8ff0\u200b\u7684\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5728\u200b\u4e00\u4e2a\u200b\u60c5\u51b5\u200b\u4e0b\u200b\u53ef\u80fd\u200b\u9047\u5230\u200b\u95ee\u9898\u200b\uff0c\u200b\u5982\u679c\u200b\u67d0\u4e2a\u200b\u6837\u672c\u200b\u6ca1\u6709\u200b\u51fa\u73b0\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5bf9\u200b\u90a3\u4e2a\u200b\u7c7b\u522b\u200b\u4f30\u8ba1\u200b\u7684\u200b\u4fe1\u606f\u200b\u5b8c\u5168\u200b\u4e22\u5931\u200b\u3002

            \u200b\u4e3a\u200b\u89e3\u51b3\u200b\u8fd9\u4e00\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u624b\u52a8\u200b\u4e3a\u200b\u6bcf\u200b\u4e00\u200b\u7c7b\u522b\u200b\u6dfb\u52a0\u200b\u9ed8\u8ba4\u200b n \u200b\u6b21\u200b\u7684\u200b\u51fa\u73b0\u200b\u9891\u6570\u200b\uff1a

            \\[\\begin{aligned} &P(Y = c_k) = \\frac{\\sum_{i=1}^{N}I(y_i = c_k) + \\lambda}{N + K\\lambda} \\\\ &P(X^{(i)} = a_{jl}| Y = c_k) = \\frac{\\sum_{i=1}^{N}I(x_i^{(i)} = a_{jl}\uff0cy_i = c_k) + \\lambda}{\\sum_{i=1}^{N}I(y_i = c_k) + S_i\\lambda} \\end{aligned}\\]

            \u200b\u5176\u4e2d\u200b\\(S_i\\)\u200b\u662f\u200b\u7b2c\u200b i \u200b\u7ef4\u200b\u7684\u200b\u53d6\u503c\u200b\u4e2a\u6570\u200b\uff0c\\(\\lambda\\)\u200b\u662f\u200b\u4e00\u4e2a\u200b\u8d85\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e00\u822c\u200b\u53d6\u200b 1.

            \u200b\u5728\u200b\u7b2c\u4e00\u200b\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7c7b\u522b\u200b\u90fd\u200b\u52a0\u5165\u200b\u4e86\u200b\\(\\lambda\\)\u200b\u7684\u200b\u9891\u7387\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5206\u5b50\u200b\u5355\u72ec\u200b\u67d0\u7c7b\u200b\u7684\u200b\u9891\u6570\u200b\u52a0\u4e0a\u200b\u4e86\u200b\\(\\lambda\\)\uff0c\u200b\u5206\u6bcd\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u603b\u200b\u7c7b\u522b\u200b\u6570\u200b K \u200b\u4e58\u200b\u4e0a\u200b\\(\\lambda\\).

            \u200b\u5728\u200b\u7b2c\u4e8c\u200b\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7c7b\u522b\u200b\u7684\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u90fd\u200b\u52a0\u5165\u200b\u4e86\u200b\\(\\lambda\\)\u200b\u7684\u200b\u9891\u7387\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5206\u5b50\u200b\u5355\u72ec\u200b\u67d0\u7c7b\u200b\u7684\u200b\u9891\u6570\u200b\u52a0\u4e0a\u200b\u4e86\u200b\\(\\lambda\\)\uff0c\u200b\u5206\u6bcd\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u8be5\u200b\u7ef4\u5ea6\u200b\u53ef\u80fd\u200b\u7684\u200b\u53d6\u503c\u200b\u4e2a\u200b\u6570\u6570\u200b\u4e58\u200b\u4e0a\u200b\\(\\lambda\\)\uff08\u200b\u56e0\u4e3a\u200b\u6709\u200b\u591a\u5c11\u200b\u4e2a\u200b\u53d6\u503c\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u4eba\u4e3a\u200b\u7684\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u591a\u5c11\u200b\u4e2a\u200b\\(\\lambda\\)\uff09.

            \u200b\u53ef\u4ee5\u200b\u8ba4\u4e3a\u200b\u8d1d\u53f6\u65af\u200b\u4f30\u8ba1\u200b\u662f\u200b\u5bf9\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u8fdb\u884c\u200b\u4e86\u200b\u5e73\u6ed1\u200b\u3002

            "},{"location":"Note/Data%20Modeling/PCA/","title":"\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790","text":"

            \u200b\u7ea6\u200b 1724 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 6 \u200b\u5206\u949f\u200b

            "},{"location":"Note/Data%20Modeling/PCA/#_2","title":"\u52a8\u673a","text":"

            \u200b\u8bbe\u60f3\u200b\u6211\u4eec\u200b\u6709\u200b\u4e00\u7ec4\u200b\u7ebf\u6027\u200b\u7684\u200b\u4e8c\u7ef4\u200b\u6570\u636e\u200b\u70b9\u200b\uff0c\u200b\u5982\u4e0b\u200b\u56fe\u200b\u6240\u793a\u200b

            \u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5b58\u50a8\u200b\u6bcf\u4e2a\u200b\u70b9\u200b\u90fd\u200b\u4f7f\u7528\u200b\u4e86\u200b\u4e24\u4e2a\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u6570\u636e\u200b\u3002\u200b\u4f46\u662f\u200b\u7531\u4e8e\u200b\u8fd9\u4e9b\u200b\u70b9\u200b\u90fd\u200b\u5206\u5e03\u200b\u5728\u200b\u540c\u200b\u4e00\u6761\u200b\u76f4\u7ebf\u200b\u4e0a\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u5176\u5b9e\u200b\u53ef\u4ee5\u200b\u53ea\u7528\u200b\u4e00\u4e2a\u200b\u7ef4\u5ea6\u200b\u6765\u200b\u8868\u793a\u200b\u8fd9\u4e9b\u200b\u70b9\u200b\uff0c\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u628a\u200b x \u200b\u8f74\u200b\u65cb\u8f6c\u200b\u5230\u200b\u8fd9\u6761\u200b\u76f4\u7ebf\u200b\u4e0a\u200b\uff0cy \u200b\u8f74\u200b\u65cb\u8f6c\u200b\u5230\u200b\u4e0e\u200b\u76f4\u7ebf\u200b\u5782\u76f4\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6240\u6709\u200b\u7684\u200b\u70b9\u200b\u7684\u200b y \u200b\u5750\u6807\u200b\u90fd\u200b\u662f\u200b 0\uff0c\u200b\u81ea\u7136\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u53ea\u7528\u200b\u4e00\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u6570\u636e\u200b(2)\u200b\u8bb0\u5f55\u200b\u8fd9\u4e9b\u200b\u70b9\u200b\u4e86\u200b\u3002\u200b\u8fd9\u6837\u200b\u6211\u4eec\u200b\u5c31\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u964d\u7ef4\u200b\uff0c\u200b\u6211\u4eec\u200b\u7528\u200b\u4e00\u7ef4\u200b\u7684\u200b\u6570\u636e\u200b\u6765\u200b\u5b58\u50a8\u200b\u672c\u6765\u200b\u4e24\u7ef4\u200b\u7684\u200b\u4fe1\u606f\u200b\uff0c\u200b\u5e76\u4e14\u200b\u662f\u200b\u65e0\u635f\u200b\u7684\u200b(1)\u3002

            1. \u200b\u65e0\u635f\u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5b8c\u7f8e\u200b\u7684\u200b\u8fd8\u539f\u200b\u51fa\u539f\u200b\u6570\u636e\u200b\u3002
            2. \u200b\u6a2a\u5750\u6807\u200b

            \u200b\u7136\u800c\u200b\u8fd9\u200b\u53ea\u662f\u200b\u7ebf\u6027\u200b\u7684\u200b\u6570\u636e\u200b\u4e0a\u200b\u7684\u200b\u60c5\u51b5\u200b\uff0c\u200b\u5982\u679c\u200b\u6570\u636e\u200b\u5e76\u200b\u975e\u7ebf\u6027\u200b\uff0c\u200b\u6bd4\u5982\u200b\u4e0b\u56fe\u200b\u8fd9\u6837\u200b\u7684\u200b\uff1a

            \u200b\u90a3\u4e48\u200b\u663e\u7136\u200b\u6211\u4eec\u200b\u50cf\u200b\u4e4b\u524d\u200b\u90a3\u6837\u200b\u65cb\u8f6c\u200b\u5750\u6807\u8f74\u200b\uff0c\u200b\u662f\u200b\u65e0\u6cd5\u200b\u53ea\u7528\u200b\u4e00\u4e2a\u200b\u7ef4\u5ea6\u200b\u5b8c\u7f8e\u200b\u7684\u200b\u8868\u793a\u200b\u8fd9\u4e9b\u200b\u6570\u636e\u200b\u7684\u200b\u3002\u200b\u4f46\u662f\u200b\u6211\u4eec\u200b\u9690\u9690\u200b\u53ef\u4ee5\u200b\u611f\u89c9\u200b\u5230\u200b\uff0c\u200b\u5982\u679c\u200b\u53ea\u200b\u8ba9\u200b\u7528\u200b\u4e00\u4e2a\u200b\u7ef4\u5ea6\u200b\u6765\u200b\u8868\u793a\u200b\u8fd9\u4e9b\u200b\u70b9\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6700\u597d\u200b\u7684\u200b\u65b9\u5f0f\u200b\u5e94\u8be5\u200b\u662f\u200b\u4f7f\u7528\u200b x \u200b\u8f74\u200b\u65cb\u8f6c\u200b\u5230\u200b\u692d\u5706\u200b\u957f\u8f74\u200b\u540e\u200b\u7684\u200b\u6a2a\u5750\u6807\u200b\u3002

            \u200b\u4e8b\u5b9e\u4e0a\u200b\u6b63\u662f\u5982\u6b64\u200b\uff01\u200b\u6211\u4eec\u200b\u4e0d\u59a8\u200b\u628a\u200b\u8fd9\u79cd\u200b\u601d\u60f3\u200b\u7528\u200b\u66f4\u200b\u6570\u5b66\u200b\u5316\u200b\u7684\u200b\u65b9\u5f0f\u200b\u8868\u8ff0\u200b\u51fa\u6765\u200b\u3002\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u5728\u200b\u539f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u5f7c\u6b64\u200b\u5206\u9694\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\u4e0d\u8981\u200b\u6df7\u5728\u200b\u4e00\u8d77\u200b\u3002\u200b\u5bf9\u4e8e\u200b\u7ebf\u6027\u200b\u7684\u200b\u4f8b\u5b50\u200b\uff0c\u200b\u6211\u4eec\u200b\u9009\u62e9\u200b\u7684\u200b\u65cb\u8f6c\u200b\u540e\u200b\u7684\u200b x \u200b\u8f74\u200b\u6b63\u662f\u200b\u4f7f\u5f97\u200b\u6570\u636e\u200b\u6295\u5f71\u200b\u6700\u200b\u5206\u6563\u200b\u7684\u200b\u4e00\u79cd\u200b\u65b9\u5f0f\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u6e10\u6e10\u200b\u65cb\u8f6c\u200b\u6211\u4eec\u200b\u7684\u200b\u9009\u62e9\u200b\u7684\u8bdd\u200b\uff0c\u200b\u4f1a\u200b\u53d1\u73b0\u200b\u6570\u636e\u200b\u70b9\u4f1a\u200b\u8d8a\u6765\u8d8a\u200b\u805a\u62e2\u200b\uff0c\u200b\u76f4\u81f3\u200b\u6211\u4eec\u200b\u6700\u7ec8\u200b\u65cb\u8f6c\u200b\u5230\u200b\u4e0e\u200b\u8be5\u200b\u76f4\u7ebf\u200b\u5782\u76f4\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u4e0a\u200b\uff0c\u200b\u6b64\u65f6\u200b\u6240\u6709\u200b\u7684\u200b\u70b9\u200b\u90fd\u200b\u88ab\u200b\u6295\u5f71\u200b\u5230\u200b\u540c\u4e00\u4e2a\u200b\u70b9\u4e0a\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u4e22\u5931\u200b\u4e86\u200b\u6240\u6709\u200b\u7684\u200b\u4fe1\u606f\u200b\u3002

            \u200b\u4e0d\u96be\u200b\u53d1\u73b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u540e\u200b\u662f\u200b\u4f7f\u7528\u200b\u6570\u636e\u200b\u70b9\u5230\u200b\u67d0\u6761\u200b\u76f4\u7ebf\u200b\u7684\u200b\u6295\u5f71\u200b\u6765\u200b\u8868\u793a\u200b\u8fd9\u4e9b\u200b\u70b9\u200b\uff0c\u200b\u800c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u8fd9\u4e9b\u200b\u6295\u5f71\u200b\u5c3d\u53ef\u80fd\u200b\u5206\u6563\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u3002

            \u200b\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790\u200b\uff08Principal Component Analysis\uff0cPCA\uff09\u200b\u5c31\u662f\u200b\u8fd9\u6837\u200b\u4e00\u79cd\u200b\u964d\u7ef4\u200b\u7684\u200b\u65b9\u6cd5\u200b\u3002\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0cPCA \u200b\u4f1a\u200b\u9009\u51fa\u200b\u5f7c\u6b64\u200b\u6b63\u4ea4\u200b\u7684\u200b N \u200b\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b(1)\uff0c\u200b\u5176\u4e2d\u200b\u7b2c\u4e00\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b\u662f\u200b\u4f7f\u5f97\u200b\u6570\u636e\u200b\u6295\u5f71\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u7684\u200b\u65b9\u5411\u200b\uff0c\u200b\u7b2c\u4e8c\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b\u662f\u200b\u5728\u200b\u4e0e\u200b\u7b2c\u4e00\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b\u6b63\u4ea4\u200b\u7684\u200b\u65b9\u5411\u200b\u4e0a\u200b\u4f7f\u5f97\u200b\u6570\u636e\u200b\u6295\u5f71\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u7684\u200b\u65b9\u5411\u200b\uff0c\u200b\u4ee5\u6b64\u7c7b\u63a8\u200b\u3002\u200b\u8fd9\u4e9b\u200b\u5355\u4f4d\u5411\u91cf\u200b\u5c31\u200b\u88ab\u79f0\u4f5c\u200b\u7684\u200b\u4e3b\u200b\u6210\u5206\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u539f\u200b\u6570\u636e\u200b\u6295\u5f71\u200b\u5230\u200b\u8fd9\u4e9b\u200b\u4e3b\u200b\u6210\u5206\u200b\u4e0a\u200b\uff0c\u200b\u4ece\u800c\u200b\u5b9e\u73b0\u200b\u964d\u7ef4\u200b\u7684\u200b\u540c\u65f6\u200b\uff0c\u200b\u6700\u5927\u200b\u9650\u5ea6\u200b\u7684\u200b\u4fdd\u7559\u200b\u539f\u200b\u6570\u636e\u200b\u7684\u200b\u65b9\u5dee\u200b(2)\u3002

            1. \u200b\u4e5f\u200b\u5c31\u200b\u5bf9\u5e94\u200b N \u200b\u6761\u200b\u76f4\u7ebf\u200b\uff0c\u200b\u6216\u8005\u8bf4\u200b N \u200b\u4e2a\u200b\u8f74\u200b
            2. \u200b\u539f\u200b\u6570\u636e\u200b\u7684\u200b\u53cd\u5dee\u200b\u4e5f\u200b\u5c31\u662f\u200b\u539f\u200b\u6570\u636e\u200b\u7684\u200b\u4fe1\u606f\u200b
            "},{"location":"Note/Data%20Modeling/PCA/#_3","title":"\u603b\u4f53\u200b\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790","text":""},{"location":"Note/Data%20Modeling/PCA/#_4","title":"\u4e00\u822c\u200b\u5206\u6790","text":"

            \u200b\u7ed9\u5b9a\u200b\\(x = (x_1, \\dots, x_n)^T\\)\uff0c\u200b\u662f\u200b m \u200b\u7ef4\u200b\u968f\u673a\u53d8\u91cf\u200b\uff0c\u200b\u5176\u200b\u5bf9\u5e94\u200b\u7684\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b\\(\\Sigma = E[(x-\\mu)(x-\\mu)^T]\\)\uff0c\u200b\u5176\u4e2d\u200b\\(\\mu = E[x]\\)\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b\\(\\alpha\\)\uff0c\u200b\u4f7f\u5f97\u200b x \u200b\u5728\u200b\\(\\alpha\\)\u200b\u4e0a\u200b\u7684\u200b\u6295\u5f71\u200b\\(y_i = \\alpha^T x\\)\u200b\u7684\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u3002\u200b\u5bf9\u4e8e\u200b\\(y_i\\)\u200b\u800c\u8a00\u200b

            \\[\\begin{align*} E(y_i) &= \\alpha_i^T \\mu \\\\ Var(y_i) &= \\alpha_i^T \\Sigma \\alpha_i \\\\ Cov(y_i, y_j) &= \\alpha_i^T \\Sigma \\alpha_j \\end{align*}\\]"},{"location":"Note/Data%20Modeling/PCA/#_5","title":"\u7b2c\u4e00\u200b\u4e3b\u200b\u6210\u5206","text":"

            \u200b\u5148\u6c42\u200b\u7b2c\u4e00\u200b\u4e3b\u200b\u6210\u5206\u200b\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4f7f\u5f97\u200b\\(y_1\\)\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u7684\u200b\\(\\alpha_1\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\uff1a

            \\[\\begin{align*} \\max_{\\alpha_1} \\alpha_1^T \\Sigma \\alpha_1 \\\\ s.t. \\alpha_1^T \\alpha_1 = 1 \\end{align*}\\]

            \u200b\u5229\u7528\u200b\u62c9\u683c\u6717\u200b\u65e5\u200b\u4e58\u5b50\u6cd5\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a

            \\[\\begin{align*} \\alpha_1^T \\Sigma \\alpha_1 - \\lambda (\\alpha_1^T \\alpha_1 - 1) = 0 \\\\ \\end{align*}\\]

            \u200b\u5bf9\u200b\\(\\alpha_1\\)\u200b\u6c42\u5bfc\u200b\uff0c\u200b\u5f97\u5230\u200b\uff1a

            \\[\\begin{align*} \\Sigma \\alpha_1 - \\lambda \\alpha_1 = 0 \\\\ \\end{align*}\\]

            \u200b\u8fd9\u200b\u5c31\u200b\u610f\u5473\u7740\u200b\uff0c\\(\\alpha_1\\)\u200b\u662f\u200b\\(\\Sigma\\)\u200b\u7684\u200b\u7279\u5f81\u5411\u91cf\u200b\uff0c\\(\\lambda\\)\u200b\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u503c\u200b\u3002\u200b\u6240\u4ee5\u200b

            \\[ \\alpha_1^T \\Sigma \\alpha_1 = \\lambda \\]

            \u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u627e\u5230\u200b\\(\\Sigma\\)\u200b\u7684\u200b\u6700\u5927\u200b\u7279\u5f81\u503c\u200b\\(\\lambda_1\\)\u200b\u548c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u5411\u91cf\u200b\\(\\alpha_1\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002\u200b\u8be5\u4e3b\u200b\u6210\u5206\u200b\u5bf9\u5e94\u200b\u7684\u200b\u65b9\u5dee\u200b\u4e3a\u200b\\(\\lambda_1\\)\u3002

            "},{"location":"Note/Data%20Modeling/PCA/#_6","title":"\u5176\u4f59\u200b\u4e3b\u200b\u6210\u5206","text":"

            \u200b\u7b2c\u4e8c\u200b\u4e3b\u200b\u6210\u5206\u200b\u8981\u200b\u5728\u200b\u8981\u6c42\u200b\\(\\alpha_2^T x\\)\u200b\u4e0e\u200b\\(\\alpha_1^T x\\)\u200b\u6b63\u4ea4\u200b\u7684\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c\u200b\u627e\u5230\u200b\u4f7f\u5f97\u200b\\(\\alpha_2^T x\\)\u200b\u65b9\u5dee\u200b\u6700\u5927\u200b\u7684\u200b\\(\\alpha_2\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\uff1a

            \\[\\begin{align*} \\max_{\\alpha_2} \\alpha_2^T \\Sigma \\alpha_2 \\\\ s.t. \\alpha_2^T \\alpha_2 = 1 \\\\ \\alpha_2^T \\alpha_1 = 0 \\end{align*}\\]

            \u200b\u5199\u51fa\u200b\u62c9\u683c\u6717\u200b\u65e5\u200b\u51fd\u6570\u200b\uff1a

            \\[\\begin{align*} \\alpha_2^T \\Sigma \\alpha_2 - \\lambda_1 (\\alpha_2^T \\alpha_2 - 1) - \\lambda_2 (\\alpha_2^T \\alpha_1 - 0) = 0 \\\\ \\end{align*}\\]

            \u200b\u5bf9\u200b\\(\\alpha_2\\)\u200b\u6c42\u5bfc\u200b\u5e76\u4e14\u200b\u4ee4\u5176\u4e3a\u200b\u96f6\u200b\uff0c\u200b\u5f97\u5230\u200b

            \\[\\begin{align*} \\Sigma \\alpha_2 - \\lambda_1 \\alpha_2 - \\lambda_2 \\alpha_1 = 0 \\\\ \\end{align*}\\]

            \u200b\u5de6\u4e58\u200b\\(\\alpha_1^T\\)\u200b\u540e\u200b\u5f97\u5230\u200b

            \\[\\begin{align*} \\alpha_1^T \\Sigma \\alpha_2 - \\lambda_1 \\alpha_1^T \\alpha_2 - \\lambda_2 \\alpha_1^T \\alpha_1 = 0 \\\\ \\lambda_2 = 0 \\end{align*}\\]

            \u200b\u628a\u200b\\(\\lambda_2\\)\u200b\u4ee3\u56de\u200b\u5f97\u5230\u200b

            \\[\\begin{align*} \\Sigma \\alpha_2 - \\lambda_1 \\alpha_2 = 0 \\\\ \\end{align*}\\]

            \u200b\u540c\u6837\u200b\u7684\u200b\uff0c\\(\\alpha_2\\)\u200b\u662f\u200b\\(\\Sigma\\)\u200b\u7684\u200b\u7279\u5f81\u5411\u91cf\u200b\uff0c\\(\\lambda_1\\)\u200b\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u503c\u200b\u3002\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u627e\u200b\u7b2c\u4e8c\u200b\u5927\u200b\u7684\u200b\u7279\u5f81\u503c\u200b\\(\\lambda_2\\)\u200b\u548c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u5411\u91cf\u200b\\(\\alpha_2\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002\u200b\u5bf9\u5e94\u200b\u7684\u200b\u65b9\u5dee\u200b\u4e3a\u200b\\(\\lambda_2\\)\u3002

            \u200b\u7ed3\u8bba\u200b

            x \u200b\u7684\u200b\u7b2c\u200b k \u200b\u4e2a\u4e3b\u200b\u6210\u5206\u200b\u662f\u200b\\(\\alpha_k^T x\\)\uff0c\u200b\u5176\u4e2d\u200b\\(\\alpha_k\\)\u200b\u662f\u200b\\(\\Sigma\\)\u200b\u7684\u200b\u7b2c\u200b k \u200b\u5927\u200b\u7279\u5f81\u503c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u5411\u91cf\u200b\u3002\u200b\u5bf9\u5e94\u200b\u7684\u200b\u65b9\u5dee\u200b\u4e3a\u200b\\(\\lambda_k\\)\u3002

            \u200b\u6c42\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790\u200b\u4e4b\u524d\u200b\u53ef\u4ee5\u200b\u5148\u5bf9\u200b\u968f\u673a\u53d8\u91cf\u200b\u8fdb\u884c\u200b\u89c4\u8303\u5316\u200b(1)

            1. \\(x_i^* = \\frac{x_i - E(x_i)}{\\sqrt{var(x_i)}}\\)
            "},{"location":"Note/Data%20Modeling/PCA/#_7","title":"\u6027\u8d28","text":"
            • \\(Cov(y) = diag(\\lambda_1, \\dots, \\lambda_n)\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\uff0c\u200b\u4e3b\u200b\u6210\u5206\u200b\u4e4b\u95f4\u200b\u662f\u200b\u4e0d\u200b\u76f8\u5173\u200b\u7684\u200b\u3002
            • \\(tr(\\Sigma) = \\Sigma \\lambda_i = \\Sigma \\sigma_{ii}\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\uff0c\u200b\u4e3b\u200b\u6210\u5206\u200b\u7684\u200b\u65b9\u5dee\u200b\u4e4b\u200b\u548c\u200b\u7b49\u4e8e\u200b\u539f\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u7684\u8ff9\u200b\u3002
            • \\(\\rho(y_k,x_i) =\\frac{\\sqrt{\\lambda_k}\\alpha_{ik}}{\\sqrt{\\sigma_{ii}}}\\)\uff0c\u200b\u8fd9\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u56e0\u5b50\u200b\u8d1f\u8377\u91cf\u200b\u3002
            "},{"location":"Note/Data%20Modeling/PCA/#_8","title":"\u6837\u672c\u200b\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790","text":"

            \u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u62e5\u6709\u200b\u7684\u200b\u4e0d\u662f\u200b\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\u800c\u662f\u200b\u4e00\u4e9b\u200b\u6837\u672c\u200b\u70b9\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u9700\u8981\u200b\u8fdb\u884c\u200b\u6837\u672c\u200b\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790\u200b\uff1a

            \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u5bf9\u200b\u968f\u673a\u53d8\u91cf\u200b\\(x = (x_1, \\dots, x_m)^T\\)\u200b\u8fdb\u884c\u200b\u4e86\u200b n \u200b\u6b21\u200b\u89c2\u6d4b\u200b\uff0c\u200b\u6bcf\u6b21\u200b\u89c2\u6d4b\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u200b\u6837\u672c\u200b\\(x_j = (x_{1j}, \\dots, x_{mj})^T\\)\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u6837\u672c\u5747\u503c\u200b\\(\\bar{x} = \\frac{1}{n} \\sum_{j=1}^n x_j\\)\uff0c\u200b\u6837\u672c\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b\\(S = \\frac{1}{n-1} \\sum_{j=1}^n (x_j - \\bar{x})(x_j - \\bar{x})^T\\)\u3002

            \u200b\u5bf9\u4e8e\u200b\u4e00\u4e2a\u200b\u5355\u4f4d\u5411\u91cf\u200b\\(\\a_i\\)\uff0c\u200b\u53ef\u4ee5\u200b\u628a\u200b x \u200b\u8fdb\u884c\u200b\u6295\u5f71\u200b\u5f97\u5230\u200b\\(y_i = \\a_i^T x\\)\u3002\u200b\u5176\u200b\u5747\u503c\u200b\u4e3a\u200b\\(\\bar{y_i} = \\a_i^T \\bar{x}\\)\uff0c\u200b\u65b9\u5dee\u200b\u4e3a\u200b\\(var(y_i) = \\a_i^T S \\a_i\\),\u200b\u534f\u65b9\u5dee\u200b\u4e3a\u200b\\(cov(y_i, y_j) = \\a_i^T S \\a_j\\)\u3002

            \u200b\u90a3\u4e48\u200b\u6837\u672c\u200b\u4e3b\u200b\u6210\u5206\u200b\u5206\u6790\u200b\u7684\u200b\u6b65\u9aa4\u200b\u5982\u4e0b\u200b\uff1a

            • \u200b\u9996\u5148\u200b\u5bf9\u200b\u6837\u672c\u200b\u8fdb\u884c\u200b\u89c4\u8303\u5316\u200b\uff0c\\(x_{ij} = \\frac{x_{ij} - \\bar{x_i}}{\\sqrt{s_{ii}}}\\) \u200b\u5f97\u5230\u200b X
            • \u200b\u7136\u540e\u200b\u8ba1\u7b97\u200b\u76f8\u5173\u77e9\u9635\u200b\\(R = \\frac{1}{n-1} X X^T\\)
            • \u200b\u6c42\u200b\u76f8\u5173\u77e9\u9635\u200b\u7684\u200b k \u200b\u4e2a\u200b\u7279\u5f81\u503c\u200b\\(\\lambda_1, \\dots, \\lambda_k\\)\u200b\u548c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u5355\u4f4d\u200b\u7279\u5f81\u5411\u91cf\u200b\\(\\a_1, \\dots, \\a_k\\)
            • \u200b\u5229\u7528\u200b\u5355\u4f4d\u200b\u7279\u5f81\u5411\u91cf\u200b\u8fdb\u884c\u200b\u6295\u5f71\u200b\uff0c\u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u524d\u200b k \u200b\u4e2a\u4e3b\u200b\u6210\u5206\u200b\u3002
            "},{"location":"Note/Data%20Modeling/PCA/#_9","title":"\u5947\u5f02\u200b\u503c\u6cd5","text":"
            • \u200b\u4ee4\u200b \\(X' = \\frac{1}{\\sqrt{n-1}} X\\)
            • \u200b\u8fdb\u884c\u200b\u622a\u65ad\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\uff0c\\(X' = U \\Sigma V^T\\)
            • \u200b\u6837\u672c\u200b\u4e3b\u200b\u6210\u5206\u200b\u77e9\u9635\u200b\u5c31\u662f\u200b\uff1a \\(Y = V^T X\\)
            "},{"location":"Note/Data%20Modeling/Perceptron/","title":"\u611f\u77e5\u673a","text":"

            \u200b\u7ea6\u200b 846 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

            "},{"location":"Note/Data%20Modeling/Perceptron/#_2","title":"\u539f\u59cb\u200b\u5f62\u5f0f","text":"

            \u200b\u611f\u77e5\u673a\u200b\u7684\u200b\u7ed3\u6784\u200b\u5982\u4e0b\u200b\u56fe\u200b\u6240\u793a\u200b\uff0c\u200b\u88ab\u200b\u89c6\u4e3a\u200b\u662f\u200b\u6700\u200b\u7b80\u5355\u200b\u7684\u200b\u524d\u9988\u200b\u795e\u7ecf\u7f51\u7edc\u200b\uff0c\u200b\u662f\u200b\u4e00\u79cd\u200b\u4e8c\u5143\u200b\u7ebf\u6027\u200b\u5206\u7c7b\u5668\u200b\u3002

            \u200b\u4e0b\u9762\u200b\u7ed9\u51fa\u200b\u5f62\u5f0f\u5316\u200b\u8868\u8ff0\u200b\uff1a

            \u200b\u611f\u77e5\u673a\u200b

            \u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(y_i \\in \\{1\uff0c-1\\}\\)\u200b\u662f\u200b\u6570\u636e\u200b\u6807\u7b7e\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u627e\u5230\u200b\u4e00\u7ec4\u200b\\((w\uff0cb)\\)\u200b\u4f7f\u5f97\u200b\u51fd\u6570\u200b\\(f(x) = sign(w \\cdot x + b)\\)\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u6700\u5c0f\u200b\uff1a

            \\[ \\min L(w\uff0cb) = - \\sum_{i=1}^{n} y_i(w \\cdot x_i + b) \\]

            \u200b\u6ce8\u610f\u200b\u4e0a\u200b\u6587\u4e2d\u200b\u7684\u200b\\(sign\\)\u200b\u51fd\u6570\u200b\uff0c\u200b\u5b83\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a

            \\[ sign(x) = \\left\\{ \\begin{aligned} 1\uff0c & x \\geq 0 \\\\ -1\uff0c & x < 0 \\end{aligned} \\right. \\]

            \u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5982\u679c\u200b\\(y_i\\)\u200b\u548c\u200b\\(f(x)\\)\u200b\u82e5\u200b\u662f\u200b\u7b26\u53f7\u200b\u76f8\u540c\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\uff09\uff0c\u200b\u90a3\u4e48\u200b\\(y_i(w \\cdot x_i + b)\\)\u200b\u7684\u200b\u503c\u200b\u5c31\u662f\u200b 1\uff0c\u200b\u53cd\u4e4b\u200b\u5219\u200b\u662f\u200b-1.\u200b\u56e0\u6b64\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u5c3d\u53ef\u80fd\u200b\u6700\u5927\u5316\u200b\u6240\u6709\u200b\\(y_i(w \\cdot x_i + b)\\)\u200b\u6c42\u548c\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u8fd9\u200b\u4e5f\u200b\u7b49\u6548\u4e8e\u200b\u6700\u5c0f\u5316\u200b\u5176\u200b\u8d1f\u6570\u200b.\uff08\u200b\u8be5\u200b\u9886\u57df\u200b\u7ea6\u5b9a\u4fd7\u6210\u200b\u5c31\u662f\u200b\u5199\u6210\u200b\u6700\u5c0f\u5316\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\uff0c\u200b\u6700\u5c0f\u5316\u200b\u548c\u200b\u6700\u5927\u5316\u200b\u4e4b\u95f4\u200b\u53ea\u8981\u200b\u52a0\u200b\u4e00\u4e2a\u200b\u8d1f\u53f7\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e92\u76f8\u8f6c\u5316\u200b\uff09

            \u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b SGD\uff08Stochastic Gradient Descent\uff09\u200b\u6765\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u95ee\u9898\u200b\uff0c\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u7684\u200b\u68af\u5ea6\u200b\u4e3a\u200b\uff1a

            \\[\\begin{aligned} &\\nabla_w L(w\uff0cb) = - \\sum_{i=1}^{n} y_i x_i \\\\ &\\nabla_b L(w\uff0cb) = - \\sum_{i=1}^{n} y_i \\end{aligned}\\]

            \u200b\u4ece\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u968f\u673a\u200b\u9009\u53d6\u200b\u4e00\u4e2a\u200b\u6837\u672c\u200b\\((x_i\uff0cy_i)\\)\uff0c\u200b\u66f4\u65b0\u200b\u53c2\u6570\u200b\uff1a

            \\[\\begin{aligned} & w = w + \\eta y_i x_i\\\\ & b = b + \\eta y_i \\\\ \\end{aligned}\\]

            \u200b\u76f4\u5230\u200b\u6ca1\u6709\u200b\u8bef\u200b\u5206\u7c7b\u200b\u70b9\u200b.\u200b\u5176\u4e2d\u200b\\(\\eta \\in (0\uff0c1]\\)\u200b\u662f\u200b\u5b66\u4e60\u200b\u7387\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Perceptron/#_3","title":"\u6536\u655b\u6027","text":"

            \u200b\u53ef\u4ee5\u200b\u8bc1\u660e\u200b\uff0c\u200b\u611f\u77e5\u673a\u200b\u7684\u200b\u8bef\u200b\u5206\u7c7b\u200b\u6b21\u6570\u200b K \u200b\u5b58\u5728\u200b\u4e00\u4e2a\u200b\u4e0a\u200b\u754c\u200b\uff0c\u200b\u5373\u200b\uff1b

            \\[\\begin{aligned} & K \\leq (\\frac{R}{\\gamma})^2 \\\\ & R = \\max_{1 \\leq i \\leq n} ||x_i|| \\\\ & \\gamma = \\min_{1 \\leq i \\leq n} y_i(w^* \\cdot x_i + b^*) \\end{aligned}\\]

            \u200b\u5176\u4e2d\u200b\\(w^*\uff0cb^*\\)\u200b\u662f\u200b\u6700\u4f18\u200b\u89e3\u200b\uff0c\\(R\\)\u200b\u662f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u6837\u672c\u200b\u70b9\u200b\u7684\u200b\u6700\u5927\u200b\u8303\u6570\u200b\uff0c\\(\\gamma\\)\u200b\u662f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u6700\u5c0f\u200b\u8ddd\u79bb\u200b\u3002 \u200b\u5bf9\u200b\u8bc1\u660e\u200b\u8fc7\u7a0b\u200b\u611f\u5174\u8da3\u200b\u7684\u200b\u53ef\u4ee5\u200b\u770b\u4e66\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e0d\u200b\u5c55\u5f00\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Perceptron/#_4","title":"\u5bf9\u5076\u200b\u5f62\u5f0f","text":"

            \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u53c2\u6570\u200b\u4e3a\u200b\\(w_0 = 0\uff0cb_0 = 0\\)\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a

            \\[\\begin{aligned} & w = \\sum \\eta y_i x_i \\\\ & b = \\sum \\eta y_i \\end{aligned}\\]

            \u200b\u5176\u4e2d\u200b\\(\\eta\\)\u200b\u662f\u200b\u5b66\u4e60\u200b\u7387\u200b.\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u662f\u4ece\u200b 0 \u200b\u5f00\u59cb\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u5f80\u200b\u53c2\u6570\u200b\u4e0a\u52a0\u200b\u4e00\u5b9a\u200b\u7684\u200b\u66f4\u65b0\u200b\u503c\u200b\uff0c\u200b\u6240\u4ee5\u200b\u4e0a\u200b\u5f0f\u200b\u81ea\u7136\u200b\u6210\u7acb\u200b\u3002

            \u200b\u5047\u8bbe\u200b\u5176\u4e2d\u200b\u7b2c\u200b i \u200b\u4e2a\u200b\u6570\u636e\u200b\u70b9\u200b\u5728\u200b SGD \u200b\u4e2d\u200b\u88ab\u200b\u968f\u673a\u200b\u9009\u4e2d\u200b\u4e86\u200b\\(n_i\\)\u200b\u6b21\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5b83\u200b\u56e0\u6b64\u200b\u5bfc\u81f4\u200b\u4e86\u200b\\(n_i\\)\u200b\u6b21\u200b\u53c2\u6570\u200b\u7684\u200b\u66f4\u65b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u4e0a\u5f0f\u200b\u5199\u6210\u200b\uff1a

            \\[\\begin{aligned} & w = \\sum_{i=1}^{n} \\eta n_i y_i x_i \\\\ & b = \\sum_{i=1}^{n} \\eta n_i y_i \\end{aligned}\\]

            \u200b\u4ee4\u200b\\(\\alpha_i = \\eta n_i\\)\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a

            \\[\\begin{aligned} & w = \\sum_{i=1}^{n}\\alpha_i y_i x_i \\\\ & b = \\sum_{i=1}^{n}\\alpha_i y_i \\end{aligned}\\]

            \u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u7c7b\u200b\u51fd\u6570\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5199\u6210\u200b\uff1a

            \\[ f(x) = sign(\\sum_{i=1}^{n}\\alpha_i y_i\uff08 x_i \\cdot x \uff09 + \\sum_{i=1}^{n}\\alpha_i y_i) \\]

            \u200b\u6bcf\u6b65\u200b SGD \u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u66f4\u65b0\u200b\\(\\alpha_i\\):

            \\[ \\alpha_i = \\alpha_i + \\eta \\]

            \u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u7c7b\u200b\u51fd\u6570\u200b\u4e2d\u200b\u53ea\u6709\u200b\\(\\alpha_i\\)\u200b\u9700\u8981\u200b\u6bcf\u6b21\u200b\u66f4\u65b0\u200b\uff0c\u200b\u9664\u6b64\u4e4b\u5916\u200b\u8fd8\u6709\u200b\u5927\u91cf\u200b\u7684\u200b x \u200b\u7684\u200b\u5185\u79ef\u200b\u8fd0\u7b97\u200b\uff0c\u200b\u4e3a\u4e86\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b x \u200b\u7684\u200b\u5185\u79ef\u200b\u9884\u5148\u200b\u8ba1\u7b97\u51fa\u6765\u200b\uff0c\u200b\u8fd9\u200b\u88ab\u79f0\u4f5c\u200b Gram \u200b\u77e9\u9635\u200b\uff1a

            Gram \u200b\u77e9\u9635\u200b

            \u200b\u7ed9\u5b9a\u200b n \u200b\u4e2a\u200b\u5411\u91cf\u200b\\(x_1\uff0cx_2\uff0c...\uff0cx_n\\)\uff0c\u200b\u90a3\u4e48\u200b Gram \u200b\u77e9\u9635\u200b\\(G\\)\u200b\u662f\u200b\u7531\u200b\u8fd9\u4e9b\u200b\u5411\u91cf\u200b\u6240\u6709\u200b\u53ef\u80fd\u200b\u7684\u200b\u5185\u79ef\u200b\u7ec4\u6210\u200b\u7684\u200b\u77e9\u9635\u200b\uff0c\u200b\u5373\u200b\uff1a

            \\[ g_{ij} = x_i \\cdot x_j \\]"},{"location":"Note/Data%20Modeling/SVD/","title":"\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3","text":"

            \u200b\u7ea6\u200b 1597 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 5 \u200b\u5206\u949f\u200b

            "},{"location":"Note/Data%20Modeling/SVD/#_2","title":"\u52a8\u673a","text":"

            \u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u79cd\u200b\u5bf9\u200b\u4efb\u610f\u200b\u975e\u96f6\u200b\u5b9e\u77e9\u9635\u200b(1)\u200b\u7684\u200b\u5206\u89e3\u200b\u65b9\u5f0f\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u5176\u200b\u53ef\u4ee5\u200b\u88ab\u200b\u5bf9\u200b\u89d2\u5316\u200b\uff0c\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\uff08Singular Value Decomposition\uff0cSVD\uff09\u200b\u5c31\u662f\u200b\u8fd9\u6837\u200b\u4e00\u79cd\u200b\u5206\u89e3\u200b\u65b9\u5f0f\u200b\u3002

            1. \u200b\u5373\u4f7f\u200b\u662f\u975e\u200b\u65b9\u9635\u200b

            \u200b\u5f62\u5f0f\u5316\u200b\u7684\u200b\u8868\u8ff0\u200b\u5982\u4e0b\u200b\uff1a

            \u200b\u5bf9\u4e8e\u200b \\( A_{m \\times n} \\) \uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b

            \\[ A_{m \\times n} = U_{m \\times m} \\Sigma_{m \\times n} V_{n \\times n}^T \\]

            \u200b\u5176\u4e2d\u200b \\( U \\) \u200b\u548c\u200b \\( V \\) \u200b\u662f\u200b\u6b63\u4ea4\u200b\u77e9\u9635\u200b(1)\uff0c\u200b\u5176\u4e2d\u200b\\(U\\)\u200b\u7684\u200b\u5217\u200b\u5411\u91cf\u200b\u79f0\u4e3a\u200b\u5de6\u200b\u5947\u5f02\u200b\u5411\u91cf\u200b\u800c\u200b\\(V\\)\u200b\u7684\u200b\u5217\u200b\u5411\u91cf\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u53f3\u200b\u5947\u5f02\u200b\u5411\u91cf\u200b\u3002

            1. \u200b\u4e5f\u200b\u5c31\u662f\u200b\u4e0e\u200b\u81ea\u5df1\u200b\u7684\u200b\u8f6c\u7f6e\u200b\u77e9\u9635\u200b\u76f8\u4e58\u200b\u5f97\u5230\u200b\u5355\u4f4d\u77e9\u9635\u200b

            \\( \\Sigma \\) \u200b\u662f\u200b\u5bf9\u89d2\u200b\u77e9\u9635\u200b\uff0c\u200b\u5bf9\u89d2\u7ebf\u200b\u4e0a\u200b\u7684\u200b\u5143\u7d20\u200b\u975e\u8d1f\u200b\u5e76\u4e14\u200b\u964d\u5e8f\u200b\u6392\u5217\u200b\uff0c\u200b\u5b83\u4eec\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u5947\u5f02\u200b\u503c\u200b\u3002\u200b\u56e0\u4e3a\u200b\u5e76\u200b\u4e0d\u662f\u200b\u65b9\u9635\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5bf9\u89d2\u7ebf\u200b\u5143\u7d20\u200b\u4e2a\u6570\u200b\u4e3a\u200b \\(min(m,n)\\)\u3002

            "},{"location":"Note/Data%20Modeling/SVD/#_3","title":"\u601d\u60f3","text":"

            \u200b\u4e0d\u5931\u200b\u4e00\u822c\u6027\u200b\uff0c\u200b\u5047\u8bbe\u200b\\(m>n\\)\uff0c\u200b\u90a3\u4e48\u200b\u5bf9\u89d2\u200b\u77e9\u9635\u200b\u53ef\u4ee5\u200b\u8868\u793a\u200b\u4e3a\u200b\\(\\Sigma = \\begin{bmatrix} \\Sigma' \\\\ 0 \\end{bmatrix}\\), \u200b\u800c\u200b\\(\\Sigma'\\)\u200b\u4e2d\u200b\u5e76\u200b\u4e0d\u662f\u200b\u6bcf\u4e2a\u200b\u5bf9\u89d2\u7ebf\u200b\u5143\u7d20\u200b\u90fd\u200b\u4e3a\u200b 0\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5047\u8bbe\u200b\u6240\u6709\u200b\u975e\u96f6\u200b\u5143\u7d20\u200b\u6784\u6210\u200b\u4e00\u4e2a\u200b\u5bf9\u89d2\u200b\u77e9\u9635\u200b\\(\\Sigma_1\\)\uff0c\u200b\u4f7f\u5f97\u200b\\(\\Sigma' = \\begin{bmatrix} \\Sigma_1 & 0 \\\\ 0 & 0 \\end{bmatrix}\\)\uff0c\u200b\u53d8\u91cf\u200b\\(r = r(\\Sigma_1) = r(A)\\)\u3002

            \u200b\u90a3\u4e48\u200b\u5bf9\u5e94\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\\(U\\)\u200b\u548c\u200b\\(V\\)\u200b\u5206\u6210\u200b\u4e24\u4e2a\u200b\u5b50\u200b\u77e9\u9635\u200b\\(U = [U_1 \\ U_2] \\ \\ \\ \\ U_1 = [ u_1 \\dots u_r] \\ \\ \\ \\ U_2 = [u_{r+1} \\dots u_m]\\)\uff0c\\(V = [V_1 \\ V_2] \\ \\ \\ \\ V_1 = [ v_1 \\dots v_r] \\ \\ \\ \\ V_2 = [v_{r+1} \\dots v_n]\\)\u3002

            \u200b\u4ee3\u56de\u200b\u539f\u5f0f\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b

            \\[ A = U \\Sigma V^T = [U_1 \\ U_2] \\begin{bmatrix} \\Sigma_1 & 0 \\\\ 0 & 0 \\end{bmatrix} [V_1 \\ V_2]^T = U_1 \\Sigma_1 V_1^T \\]

            \u200b\u6240\u4ee5\u200b\u4e00\u65e6\u200b\u786e\u5b9a\u200b\u4e86\u200b\\(U_1, \\Sigma_1, V_1\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u4e58\u79ef\u200b\u8fd8\u539f\u200b\u51fa\u200b\\(A\\)\uff0c\u200b\u56e0\u6b64\u200b\u627e\u5230\u200b\u8fd9\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\u5c06\u200b\u662f\u200b\u6784\u9020\u200b\u7684\u200b\u91cd\u70b9\u200b\u3002

            \u200b\u800c\u200b\u627e\u5230\u200b\u8fd9\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\u4e4b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ea\u200b\u9700\u8981\u200b\u628a\u200b\\(U_1,V_1\\)\u200b\u6269\u5145\u200b\u6210\u200b\u6b63\u4ea4\u200b\u77e9\u9635\u200b\u5373\u53ef\u200b\u3002

            "},{"location":"Note/Data%20Modeling/SVD/#_4","title":"\u6784\u9020","text":"

            \u200b\u7531\u4e8e\u200b\u6211\u4eec\u200b\u5df2\u7ecf\u200b\u77e5\u9053\u200b\u4e86\u200b\u5982\u4f55\u200b\u5bf9\u5b9e\u200b\u5bf9\u79f0\u200b\u77e9\u9635\u200b\u8fdb\u884c\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u53ef\u4ee5\u200b\u4ece\u200b \\(A\\) \u200b\u6784\u9020\u200b\u51fa\u6765\u200b\u4e00\u4e2a\u200b\u5b9e\u200b\u5bf9\u79f0\u200b\u77e9\u9635\u200b\uff0c\u200b\u7136\u540e\u200b\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b $ A $ \u200b\u7684\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u4e86\u200b\u3002

            \u200b\u663e\u7136\u200b\uff0c\u200b\u77e9\u9635\u200b $ A^T A $ \u200b\u662f\u200b\u4e00\u4e2a\u200b\u5b9e\u200b\u5bf9\u79f0\u200b\u77e9\u9635\u200b\uff0c\u200b\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\uff0c\u200b\u5f97\u5230\u200b

            \\[ V^T (A^T A) V = \\Lambda \\]

            \\(\\Lambda\\) \u200b\u7279\u5f81\u503c\u200b\u5747\u200b\u975e\u8d1f\u200b(1)\u200b\u5e76\u4e14\u200b \\(r(\\Lambda) = r(A^T A) = r(A) = r\\)

            1. \\(\\|Ax\\|^2 = x^T A^T A x = \\lambda x^T x = \\lambda \\|x\\|^2\\)

              \\(\\lambda = \\frac{\\|Ax\\|^2}{\\|x\\|^2} \\geq 0\\)

            \u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5bf9\u200b \\(\\Lambda\\) \u200b\u7684\u200b\u7279\u5f81\u503c\u200b\u8fdb\u884c\u200b\u4e00\u4e2a\u200b\u975e\u51cf\u200b\u7684\u200b\u6392\u5e8f\u200b \\(\\lambda_1 \\geq \\lambda_2 \\geq \\dots \\geq \\lambda_r \\ \\ \\ \\ \\lambda_{r+1} = \\dots = \\lambda_n = 0\\) \u200b\u5e76\u4e14\u200b\u5b9a\u4e49\u200b\u5947\u5f02\u200b\u503c\u4e3a\u200b \\(\\sigma_i = \\sqrt{\\lambda_i}\\)

            \u200b\u4f9d\u636e\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u503c\u200b\u662f\u4e0d\u662f\u200b 0\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\\(V\\)\u200b\u5206\u6210\u200b\u4e24\u4e2a\u200b\u5b50\u200b\u77e9\u9635\u200b \\(V = [V_1 \\ V_2] \\ \\ \\ \\ V_1 = [ v_1 \\dots v_2] \\ \\ \\ \\ V_2 = [v_{r+1} \\dots v_n]\\)

            \u200b\u5bf9\u5e94\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u5bf9\u200b \\(\\Sigma\\) \u200b\u8fdb\u884c\u200b\u5212\u5206\u200b\uff0c\\(\\Sigma = \\begin{bmatrix} \\Sigma_1 & 0 \\\\ 0 & 0 \\end{bmatrix} \\ \\ \\ \\ \\Sigma_1 = \\begin{bmatrix} \\sigma_1 & & \\\\ & \\ddots & \\\\ & & \\sigma_r \\end{bmatrix}\\)

            \u200b\u5c06\u200b\u5206\u5272\u200b\u540e\u200b\u7684\u200b\u77e9\u9635\u200b\u4ee3\u56de\u200b\u539f\u5f0f\u200b\uff0c\u200b\u5f97\u5230\u200b

            \\[ V^T(A^T A)V = [V_1 V_2]^T (A^T A) [V_1 V_2] = \\begin{bmatrix} V_1^T A^T A V_1 & V_1^T A^T A V_2 \\\\ V_2^T A^T A V_1 & V_2^T A^T A V_2 \\end{bmatrix} = \\begin{bmatrix} \\Sigma_1^2 & 0 \\\\ 0 & 0 \\end{bmatrix} = \\Lambda \\]

            \u200b\u4e0d\u96be\u200b\u53d1\u73b0\u200b \\(AV_2 = 0\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\\(V_2\\)\u200b\u5728\u200b\\(A\\)\u200b\u7684\u200b\u96f6\u7a7a\u95f4\u200b\u4e2d\u200b\u3002

            \u200b\u8fd9\u200b\u4e5f\u200b\u5c31\u200b\u610f\u5473\u7740\u200b

            \\[ A = A I = A(V^T V) = A (V_1 V_1^T + V_2 V_2^T) = A V_1 V_1^T + A V_2 V_2^T = A V_1 V_1^T \\]

            \u200b\u56de\u60f3\u200b

            \u200b\u56de\u60f3\u200b\u6211\u4eec\u200b\u4e4b\u524d\u200b\u7684\u200b\u601d\u8def\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u627e\u5230\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\uff0c\u200b\u4f7f\u5f97\u200b

            \\[ U_1 \\Sigma_1 V_1^T = A \\]

            \u200b\u800c\u200b\u6211\u4eec\u200b\u53c8\u200b\u63a8\u51fa\u200b\u4e86\u200b\\(A = A V_1 V_1^T\\)\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u627e\u5230\u200b

            \\[\\begin{align*} U_1 \\Sigma_1 V_1^T &= A V_1 V_1^T \\\\ U_1 \\Sigma_1 &= A V_1 \\\\ \\end{align*}\\]

            \u200b\u4e0d\u96be\u200b\u53d1\u73b0\u200b\uff0c\u200b\u5728\u200b\u5df2\u7ecf\u200b\u6709\u200b\u4e86\u200b\\(V_1, \\Sigma\\) \u200b\u7684\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c \\(U_1\\)\u200b\u5176\u5b9e\u200b\u662f\u200b\u5f88\u200b\u597d\u200b\u6784\u9020\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u5bf9\u200b \\(\\forall j \\in [1,r]\\) \uff0c\u200b\u4ee4\u200b\\(u_j = \\frac{1}{\\sigma_j} A v_j\\)\uff0c\u200b\u90a3\u4e48\u200b\\(U_1 = [u_1 \\dots u_r]\\)\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u7684\u200b\u77e9\u9635\u200b\u4e86\u200b\u3002

            \u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u628a\u200b\\(U_1\\)\u200b\u6269\u5145\u200b\u6210\u200b\u6b63\u4ea4\u200b\u77e9\u9635\u200b\\(U = [U_1 \\ U_2]\\)\uff0c\u200b\u4fbf\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b

            \\[ A = U \\Sigma V^T \\]"},{"location":"Note/Data%20Modeling/SVD/#_5","title":"\u53d8\u4f53","text":"

            \u200b\u4e0d\u96be\u200b\u53d1\u73b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\\(U_1, \\Sigma_1, V_1\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8fd8\u539f\u200b\u51fa\u200b\\(A\\)\u200b\u4e86\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u53ea\u53d6\u200b\u8fd9\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u5206\u89e3\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u7d27\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u3002

            \u200b\u66f4\u8fdb\u4e00\u6b65\u200b\u7684\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u8fde\u200b r \u200b\u7ef4\u200b\u7684\u200b\u77e9\u9635\u200b\u90fd\u200b\u65e0\u6cd5\u200b\u63a5\u53d7\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u9009\u62e9\u200b\u53ea\u200b\u4fdd\u7559\u200b\u524d\u200b\\(k\\)\u200b\u7ef4\u200b\uff0c\u200b\u8fd9\u6837\u200b\u5f97\u5230\u200b\u7684\u200b\u5c31\u662f\u200b\u622a\u65ad\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u3002\u200b\u622a\u65ad\u200b\u5947\u5f02\u200b\u503c\u5206\u200b\u5c31\u200b\u65e0\u6cd5\u200b\u51c6\u786e\u200b\u7684\u200b\u8fd8\u539f\u200b\u51fa\u200b\\(A\\)\u200b\u4e86\u200b\uff0c\u200b\u4f46\u662f\u200b\u53ef\u4ee5\u200b\u8bc1\u660e\u200b\uff0c\u200b\u622a\u65ad\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u662f\u200b\u5f17\u6d1b\u200b\u8d1d\u200b\u5c3c\u4e4c\u65af\u200b\u8303\u6570\u200b(1)\u200b\u4e0b\u200b\u7684\u200b\u6700\u4f18\u200b\u8fd1\u4f3c\u200b\u3002

            1. \\(\\|A\\|_F = \\sqrt{\\sum_{i=1}^m \\sum_{j=1}^n a_{ij}^2}\\)
            "},{"location":"Note/Data%20Modeling/SVD/#_6","title":"\u6027\u8d28","text":"

            \u200b\u5de6\u53f3\u200b\u5947\u5f02\u200b\u5411\u91cf\u200b\u4e92\u76f8\u8f6c\u5316\u200b\uff1a

            \\[\\begin{align*} \\sigma_j u_j &= A v_j \\ \\ \\ \\ \\forall j \\in [1,r] \\\\ A^T u_j &= \\sigma_j v_j \\ \\ \\ \\ \\forall j \\in [1,r]\\\\ \\end{align*}\\]

            \u200b\u53f3\u200b\u5947\u5f02\u200b\u5411\u91cf\u200b\\(v_1, \\dots, v_r\\)\u200b\u662f\u200b\\(A^T\\)\u200b\u7684\u200b\u6b63\u4ea4\u200b\u57fa\u200b\uff0c\\(v_{r+1}, \\dots, v_n\\)\u200b\u662f\u200b\\(N(A)\\)\u200b\u7684\u200b\u6b63\u4ea4\u200b\u57fa\u200b\u3002

            \u200b\u5de6\u200b\u5947\u5f02\u200b\u5411\u91cf\u200b\\(u_1, \\dots, u_r\\)\u200b\u662f\u200b\\(A\\)\u200b\u7684\u200b\u6b63\u4ea4\u200b\u57fa\u200b(1)\uff0c\\(u_{r+1}, \\dots, u_m\\)\u200b\u662f\u200b\\(N(A^T)\\)\u200b\u7684\u200b\u6b63\u4ea4\u200b\u57fa\u200b\u3002

            1. \\[\\begin{align*} u_i^T u_j &= ( \\frac{1}{\\sigma_i} v_i^T A^T) ( \\frac{1}{\\sigma_j A v_j}) \\\\ &= \\frac{1}{\\sigma_i \\sigma_j} v_i^T A^T A v_j \\\\ &= \\frac{1}{\\sigma_i \\sigma_j} v_i^T v_j (v_j^T A^T A v_j) \\\\ &= \\frac{1}{\\sigma_i \\sigma_j} \\sigma_j^2 v_i^T v_j \\\\ &= \\delta_{ij} \\end{align*}\\]

            \\(A^T A\\)\u200b\u548c\u200b\\(A A^T\\)\u200b\u7684\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\u5b58\u5728\u200b\uff0c\u200b\u5e76\u4e14\u200b\u53ef\u4ee5\u200b\u65b9\u4fbf\u200b\u7684\u200b\u5f97\u5230\u200b\uff1a

            \\[\\begin{align*} A^T A = (U \\Sigma V^T)^T (U \\Sigma V^T) = V \\Sigma^T U^T U \\Sigma V^T = V \\Sigma^T \\Sigma V^T \\\\ A A^T = (U \\Sigma V^T) (U \\Sigma V^T)^T = U \\Sigma V^T V \\Sigma^T U^T = U \\Sigma \\Sigma^T U^T \\end{align*}\\]"},{"location":"Note/Data%20Modeling/SVD/#_7","title":"\u51e0\u4f55\u200b\u89e3\u91ca","text":"

            \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b m*n \u200b\u77e9\u9635\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5427\u200b\\(A\\)\u200b\u7406\u89e3\u200b\u6210\u200b\u4e00\u4e2a\u200b\u4ece\u200b\\(\\mathbb{R}^n\\)\u200b\u5230\u200b\\(\\mathbb{R}^m\\)\u200b\u7684\u200b\u7ebf\u6027\u53d8\u6362\u200b\uff0c\u200b\u800c\u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u5c31\u662f\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u7ebf\u6027\u53d8\u6362\u200b\u5206\u89e3\u6210\u200b\u4e09\u4e2a\u200b\u90e8\u5206\u200b\uff1a

            • \\(V^T\\)\uff1a\u200b\u4ece\u200b\\(\\mathbb{R}^n\\)\u200b\u5230\u200b\\(\\mathbb{R}^n\\)\u200b\u7684\u200b\u65cb\u8f6c\u53d8\u6362\u200b
            • \\(\\Sigma\\)\uff1a\u200b\u4ece\u200b\\(\\mathbb{R}^n\\)\u200b\u5230\u200b\\(\\mathbb{R}^m\\)\u200b\u7684\u200b\u7f29\u653e\u200b\u53d8\u6362\u200b
            • \\(U\\)\uff1a\u200b\u4ece\u200b\\(\\mathbb{R}^m\\)\u200b\u5230\u200b\\(\\mathbb{R}^m\\)\u200b\u7684\u200b\u65cb\u8f6c\u53d8\u6362\u200b

            \u200b\u56e0\u4e3a\u200b\\(U,V\\)\u200b\u90fd\u200b\u662f\u200b\u6b63\u4ea4\u200b\u77e9\u9635\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5b83\u4eec\u200b\u5929\u7136\u200b\u7684\u200b\u5bf9\u5e94\u200b\u4e00\u4e2a\u200b\u65cb\u8f6c\u53d8\u6362\u200b\uff0c\u200b\u800c\u200b\\(\\Sigma\\)\u200b\u4f5c\u4e3a\u200b\u5bf9\u89d2\u200b\u77e9\u9635\u200b\uff0c\u200b\u5bf9\u5e94\u200b\u4e00\u4e2a\u200b\u7f29\u653e\u200b\u53d8\u6362\u200b\u3002

            \u200b\u5947\u5f02\u200b\u503c\u200b\u5206\u89e3\u200b\u7684\u200b\u5b58\u5728\u200b\u6027\u200b\u9690\u542b\u200b\u4e86\u200b\u8fd9\u79cd\u200b\u53d8\u6362\u200b\u5206\u89e3\u200b\u7684\u200b\u5b58\u5728\u200b\u6027\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u975e\u96f6\u200b\u7684\u200b\u5b9e\u200b\u53d8\u6362\u200b\u90fd\u200b\u53ef\u4ee5\u200b\u5206\u89e3\u200b\u4e3a\u200b\u8fd9\u200b\u4e09\u4e2a\u200b\u53d8\u6362\u200b\u7684\u200b\u7ec4\u5408\u200b\u3002

            "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/","title":"\u652f\u6301\u200b\u5411\u91cf\u200b\u673a","text":"

            \u200b\u7ea6\u200b 2059 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 7 \u200b\u5206\u949f\u200b

            Warning

            \u200b\u5f88\u591a\u200b\u4eba\u200b\u90fd\u200b\u5410\u200b\u69fd\u200b\uff0c\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u673a\u200b\u8fd9\u4e2a\u200b\u540d\u5b57\u200b\u8d77\u200b\u7684\u200b\u4f9d\u6258\u200b

            "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_2","title":"\u6a21\u578b\u200b\u63cf\u8ff0","text":"

            \u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(x_i \\in \\mathbb{R}^n\uff0c y \\in \\{1\uff0c-1\\}\\)\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u8d85\u5e73\u9762\u200b\\(w\\cdot x + b = 0\\)\u200b\u5c06\u200b\u6570\u636e\u200b\u96c6\u200b\u5206\u5f00\u200b\u3002

            \u200b\u5b9e\u4f8b\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b

            \\[ \\gamma_i = \\frac{y_i(w\\cdot x_i + b)}{\\|w\\|} \\]

            \u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5176\u200b\u7edd\u5bf9\u503c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u70b9\u5230\u200b\u76f4\u7ebf\u200b\u8ddd\u79bb\u200b

            \u200b\u5b9e\u4f8b\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b

            \\[ \\hat{\\gamma_i} = y_i(w\\cdot x_i + b) \\]

            \u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5176\u200b\u7edd\u5bf9\u503c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u9664\u53bb\u200b\u4e86\u200b\\(||w||\\)\u200b\u8fd9\u4e2a\u200b\u56e0\u7d20\u200b

            \u200b\u4e0a\u8ff0\u200b\u7684\u200b\u53d8\u91cf\u200b\u7684\u200b\u7edd\u5bf9\u503c\u200b\u542b\u4e49\u200b\u90fd\u200b\u8868\u793a\u200b\u67d0\u79cd\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u800c\u200b\u7b26\u53f7\u200b\u8868\u793a\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\u4e0e\u5426\u200b\uff0c\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\u65f6\u95f4\u200b\u9694\u4e3a\u200b\u6b63\u200b\uff0c\u200b\u5206\u7c7b\u200b\u9519\u8bef\u200b\u65f6\u95f4\u200b\u9694\u4e3a\u200b\u8d1f\u200b

            \u200b\u7ed9\u5b9a\u200b\u4e00\u7ec4\u200b\u6570\u636e\u200b\u70b9\u200b\u548c\u200b\u4e00\u4e2a\u200b\u8d85\u5e73\u9762\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u5404\u4e2a\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u548c\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b.\u200b\u4f46\u662f\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u6210\u200b\u6bd4\u4f8b\u200b\u7684\u200b\u540c\u65f6\u200b\u653e\u7f29\u200b w \u200b\u548c\u200b b\uff0c\u200b\u90a3\u4e48\u200b\u8d85\u5e73\u9762\u200b\u548c\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\u90fd\u200b\u5b8c\u5168\u200b\u4e0d\u53d8\u200b\uff0c\u200b\u4f46\u662f\u200b\u6240\u6709\u200b\u70b9\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u90fd\u200b\u4f1a\u200b\u968f\u7740\u200b w \u200b\u7684\u200b\u53d8\u5316\u200b\u800c\u200b\u53d8\u5316\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\uff08\u200b\u4e0d\u53d8\u200b\uff09\u200b\u4e58\u200b\u4e0a\u200b w \u200b\u7684\u200b\u6a21\u200b\uff08\u200b\u6b63\u5728\u200b\u88ab\u6210\u200b\u6bd4\u4f8b\u200b\u653e\u7f29\u200b\uff09

            \u200b\u4e3a\u4e86\u200b\u63d0\u9ad8\u200b\u5206\u7c7b\u200b\u7684\u786e\u200b\u4fe1\u5ea6\u200b\u548c\u200b\u6cdb\u5316\u200b\u80fd\u529b\u200b\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6700\u5927\u5316\u200b\u6700\u5c0f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5c3d\u91cf\u200b\u63d0\u9ad8\u200b\u6240\u6709\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u8ddd\u79bb\u200b\u7684\u200b\u4e0b\u754c\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u8ba9\u200b\u6240\u6709\u200b\u70b9\u200b\u90fd\u200b\u5c3d\u53ef\u80fd\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u8fdc\u200b\u4e00\u70b9\u200b\uff08\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u5f88\u8fd1\u200b\u7684\u8bdd\u200b\uff0c\u200b\u7a0d\u5fae\u200b\u6709\u200b\u4e00\u70b9\u200b\u6270\u52a8\u200b\u5c31\u200b\u5bb9\u6613\u200b\u88ab\u200b\u5206\u6210\u200b\u53e6\u4e00\u7c7b\u200b\uff09

            \u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5199\u51fa\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b

            \\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\gamma \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq \\gamma\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

            \u200b\u5176\u4e2d\u200b\u7684\u200b\\(\\gamma = \\underset {i}{\\operatorname{min}} \\gamma_i\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u6700\u5c0f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b

            \u200b\u89c2\u5bdf\u200b\u5230\u200b\\(\\gamma\\|w\\| = \\hat{\\gamma}\\)\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5c06\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\u8f6c\u5316\u200b\u4e3a\u200b

            \\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\frac{\\hat{\\gamma}}{\\|w\\|} \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq \\hat{\\gamma}\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

            \u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u6210\u200b\u6bd4\u4f8b\u200b\u7684\u200b\u653e\u7f29\u200b w \u200b\u548c\u200b b \u200b\u6765\u200b\u8c03\u8282\u200b\\(\\hat{\\gamma}\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u653e\u7f29\u200b\\(w\\)\u200b\u4f7f\u5f97\u200b\\(\\hat{\\gamma} = 1\\)\uff0c\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\u8f6c\u5316\u200b\u4e3a\u200b

            \\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\frac{1}{\\|w\\|} \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq 1\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

            \u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b\u53ef\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(w^*\uff0cb^*\\)\uff0c\u200b\u6784\u6210\u200b\u6700\u4f18\u200b\u5206\u79bb\u200b\u8d85\u5e73\u9762\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8bc1\u660e\u200b\uff0c\u200b\u8be5\u200b\u8d85\u5e73\u9762\u200b\u5b58\u5728\u200b\u4e14\u200b\u552f\u4e00\u200b\uff0c\u200b\u90a3\u4e9b\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u6700\u8fd1\u200b\u7684\u200b\u70b9\u200b\u5c31\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u652f\u6301\u200b\u5411\u91cf\u200b

            "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_3","title":"\u6a21\u578b\u200b\u6c42\u89e3","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_4","title":"\u5bf9\u5076\u200b\u95ee\u9898","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_5","title":"\u5199\u51fa\u200b\u5bf9\u5076\u200b\u95ee\u9898","text":"

            \u200b\u62c9\u683c\u6717\u200b\u65e5\u200b\u51fd\u6570\u200b\u4e3a\u200b\uff1a

            \\[ L(w\uff0cb\uff0c\\alpha) = \\frac{1}{2}||w||^2 - \\sum_{i=1}^{N}\\alpha_iy_i(w\\cdot x_i + b) + \\sum_{i=1}^{N}\\alpha_i \\]

            \u200b\u6211\u4eec\u200b\u5c06\u200b\u6700\u5c0f\u200b\u6700\u5927\u200b\u95ee\u9898\u200b\u8f6c\u5316\u200b\u4e3a\u200b\u6700\u5927\u200b\u6700\u5c0f\u200b\u95ee\u9898\u200b\uff0c\u200b\u5199\u51fa\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\uff1a

            \\[ \\underset {\\alpha}{\\operatorname{min}} \\underset {w\uff0cb}{\\operatorname{max}} L(w\uff0cb\uff0c\\alpha) \\rightarrow \\underset {\\alpha}{\\operatorname{min}} \\underset {w\uff0cb}{\\operatorname{max}} L(w\uff0cb\uff0c\\alpha) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_6","title":"\u6781\u5c0f\u200b\u5316","text":"

            \u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u8ba9\u200b\\(\\nabla_w L(w\uff0cb\uff0c\\alpha) = 0\\)\u200b\u548c\u200b\\(\\nabla_b L(w\uff0cb\uff0c\\alpha) = 0\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b

            \\[\\begin{aligned} & w = \\sum_{i=1}^{N}\\alpha_i y_i x_i \\\\ & 0 = \\sum_{i=1}^{N}\\alpha_i y_i \\\\ \\end{aligned}\\]

            \u200b\u5e26\u56de\u200b\u539f\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u5f97\u5230\u200b\uff1a

            \\[ L(w\uff0cb\uff0c\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_7","title":"\u6781\u5927\u200b\u5316","text":"

            \u200b\u5728\u200b\u6781\u5c0f\u200b\u5316\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5269\u4e0b\u200b\u7684\u200b\u95ee\u9898\u200b\u5c31\u662f\u200b

            \\[\\begin{aligned} \\underset {\\alpha}{\\operatorname{max}} & \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\\\ s.t. & \\quad \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & \\quad \\alpha_i \\geq 0\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

            \u200b\u901a\u8fc7\u200b\u67d0\u79cd\u200b\u65b9\u5f0f\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^*\\)

            "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_8","title":"\u539f\u59cb\u200b\u95ee\u9898","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#kkt","title":"\u5e94\u7528\u200b KKT \u200b\u6761\u4ef6","text":"

            \u200b\u6709\u200b\u4e86\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u7684\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^* = (\\alpha_1^*\uff0c\\alpha_2^*\uff0c...\uff0c\\alpha_N^*)\\)\uff0c\u200b\u5e94\u7528\u200b KKT \u200b\u6761\u4ef6\u200b\uff1a

            \\[\\begin{align} & \\alpha_i^* \\geq 0 \\tag{1}\\\\ & y_i(w^*\\cdot x_i + b^*) - 1 \\geq 0 \\tag{2}\\\\ & \\alpha_i^*(y_i(w^*\\cdot x_i + b^*) - 1) = 0 \\tag{3}\\\\ & \\nabla_w L(w^*\uff0cb^*\uff0c\\alpha^*) = w^* - \\sum_{i=1}^{N}\\alpha_i^* y_i x_i = 0 \\tag{4}\\\\ & \\nabla_b L(w^*\uff0cb^*\uff0c\\alpha^*) = \\sum_{i=1}^{N}\\alpha_i^* y_i = 0 \\tag{5}\\\\ \\end{align}\\]

            \u200b\u82e5\u200b\\(\\alpha^* = 0\\)\uff0c\u200b\u7531\u200b(4)\u200b\u53ef\u4ee5\u200b\u63a8\u51fa\u200b\\(w^* = 0\\)\uff0c\u200b\u663e\u7136\u200b\u4e0d\u200b\u5bf9\u200b\uff0c\u200b\u6240\u4ee5\u200b\\(\\alpha^*\\)\u200b\u4e0d\u5168\u200b\u4e3a\u200b\u96f6\u200b

            \u200b\u82e5\u200b\\(\\alpha_i^* > 0\\)\uff0c\u200b\u7531\u200b(3)\u200b\u53ef\u4ee5\u200b\u63a8\u51fa\u200b\\(y_i(w^*\\cdot x_i + b^*) = 1\\)\uff0c\u200b\u56de\u5fc6\u200b\u524d\u200b\u6587\u200b\u6211\u4eec\u200b\u5df2\u7ecf\u200b\u4ee4\u200b\\(\\hat{\\gamma} = 1\\)\uff0c\u200b\u6240\u4ee5\u200b j \u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u8ddf\u200b\u6700\u5c0f\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u76f8\u7b49\u200b\uff0c\u200b\u6bcf\u4e2a\u200b j \u200b\u90fd\u200b\u56e0\u6b64\u200b\u6210\u4e3a\u200b\u4e00\u4e2a\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u5176\u4e2d\u200b\u65e2\u6709\u200b\u6b63\u4f8b\u200b\u4e5f\u200b\u6709\u200b\u53cd\u4f8b\u200b

            "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#wb","title":"\u6c42\u200b\u6700\u4f18\u200b w\uff0cb","text":"

            \u200b\u5229\u7528\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b

            \\[\\begin{align} & w^* = \\sum_{i=1}^{N}\\alpha_i^* y_i x_i \\\\ & b^* = y_j - \\sum_{i=1}^{N}\\alpha_i^* y_i (x_i\\cdot x_j) \\\\ \\end{align}\\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_9","title":"\u5f97\u5230\u200b\u5206\u79bb\u200b\u51fd\u6570","text":"

            \u200b\u5229\u7528\u200b\u6700\u4f18\u200b\u89e3\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u5206\u79bb\u200b\u51fd\u6570\u200b

            \\[ f(x) = sign(\\sum_{i=1}^{N}\\alpha_i^* y_i (x_i\\cdot x) + b^*) \\]

            \u200b\u4ee5\u4e0a\u200b\u4fbf\u662f\u200b\u6c42\u89e3\u200b\u4e8c\u6b21\u200b\u89c4\u5212\u200b\u95ee\u9898\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u95f4\u9694\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u5176\u4e2d\u200b\u53ea\u6709\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u4e2d\u200b\u7684\u200b\u6c42\u200b\u7684\u200b\u6700\u4f18\u200b\\(\\alpha^*\\)\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6ca1\u6709\u200b\u9610\u660e\u200b\uff0c\u200b\u540e\u9762\u200b\u4f1a\u200b\u7ed9\u51fa\u200b

            "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_10","title":"\u8f6f\u200b\u95f4\u9694","text":"

            \u200b\u4e00\u822c\u800c\u8a00\u200b\uff0c\u200b\u7531\u4e8e\u200b\u566a\u58f0\u200b\u7684\u200b\u5e72\u6270\u200b\uff0c\u200b\u6211\u4eec\u200b\u5f88\u96be\u200b\u76f4\u63a5\u200b\u62ff\u5230\u200b\u4e00\u4e2a\u200b\u7ebf\u6027\u200b\u53ef\u5206\u200b\u7684\u200b\u6570\u636e\u200b\u96c6\u200b\uff0c\u200b\u800c\u662f\u200b\u4e00\u4e2a\u200b\u8fd1\u4f3c\u200b\u7ebf\u6027\u200b\u53ef\u5206\u200b\u7684\u200b\u6570\u636e\u200b\u96c6\u200b\uff0c\u200b\u6211\u4eec\u200b\u53bb\u6389\u200b\u5927\u90e8\u5206\u200b\u7684\u200b\u566a\u70b9\u200b\u540e\u200b\u53ef\u4ee5\u200b\u505a\u5230\u200b\u7ebf\u6027\u200b\u53ef\u200b\u5206\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u4e9b\u200b\u566a\u70b9\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u8dd1\u200b\u5230\u200b\u4e86\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u751a\u81f3\u200b\u8d85\u5e73\u9762\u200b\u5bf9\u9762\u200b\u7684\u200b\uff0c\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b

            \\[ y_i(w\\cdot x_i + b) \\geq 1 - \\xi_i \\quad i = 1\uff0c2\uff0c...\uff0cN (\\xi_i \\geq 0 ) \\]

            \u200b\u4e5f\u5c31\u662f\u8bf4\u200b\uff0c\u200b\u5e76\u975e\u200b\u6240\u6709\u200b\u70b9\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u90fd\u200b\u5927\u4e8e\u200b 1 \u200b\u4e86\u200b\uff08\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u4e3a\u200b 1 \u200b\u7684\u200b\u662f\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u4e0d\u200b\u5927\u4e8e\u200b\u4e00\u200b\u5c31\u200b\u4f4d\u4e8e\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u4e86\u200b\uff09\uff0c

            \u200b\u5f53\u7136\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e0d\u80fd\u5141\u8bb8\u200b\u65e0\u200b\u9650\u5236\u200b\u7684\u200b\u677e\u5f1b\u200b\uff0c\u200b\u4e0d\u7136\u200b\u6240\u8c13\u200b\u7684\u200b\u5176\u4ed6\u200b\u5411\u91cf\u200b\u90fd\u200b\u53ef\u4ee5\u200b\u968f\u610f\u200b\u8dd1\u200b\u5230\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u7684\u8bdd\u200b\uff0c\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4e5f\u200b\u5c31\u200b\u6ca1\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fdb\u5f62\u200b\u6b63\u5219\u200b\u5316\u200b

            \\[ \\underset {w\uff0cb\uff0c\\xi}{\\operatorname{min}} \\quad \\frac{1}{2}||w||^2 + C\\sum_{i=1}^{N}\\xi_i \\\\ \\]

            \u200b\u5176\u4e2d\u200b\u7684\u200b C \u200b\u662f\u200b\u4e00\u4e2a\u200b\u6211\u4eec\u200b\u624b\u52a8\u200b\u8bbe\u7f6e\u200b\u7684\u200b\u60e9\u7f5a\u200b\u53c2\u6570\u200b

            \u200b\u6211\u4eec\u200b\u7684\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u968f\u4e4b\u200b\u53d8\u6210\u200b\uff1a

            \\[\\begin{aligned} \\underset {\\alpha}{\\operatorname{max}} & \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\\\ s.t. & \\quad \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & \\quad 0 \\leq \\alpha_i \\leq C\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

            \u200b\u5176\u4e2d\u200b\u7531\u4e8e\u200b\u677e\u5f1b\u200b\u6761\u4ef6\u200b\uff0c\u200b\u6211\u4eec\u200b\u6781\u5c0f\u200b\u5316\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u65b0\u589e\u200b\u4e86\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u7ea6\u675f\u200b\uff1a

            \\[\\begin{aligned} \\nabla_{\\xi_i} L(w\uff0cb\uff0c\\alpha\uff0c\\xi) = C - \\alpha_i - \\mu_i = 0 \\quad i = 1\uff0c2\uff0c...\uff0cN \\\\ \\mu_i \\geq 0 \\quad i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]

            \u200b\u8fd9\u200b\u4e5f\u200b\u662f\u200b\u4e0a\u8ff0\u200b\u6761\u4ef6\u200b\u4e2d\u200b\u51fa\u73b0\u200b\\(\\alpha_i \\leq C\\)\u200b\u7684\u200b\u539f\u56e0\u200b

            \u200b\u540c\u6837\u200b\u6c42\u89e3\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^*\\)\uff0c\u200b\u7136\u540e\u200b\u5e26\u56de\u200b\u539f\u200b\u5f0f\u200b\uff0c\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(w^*\uff0cb^*\uff0c\\xi^*\\)\uff0c\u200b\u6784\u6210\u200b\u6700\u4f18\u200b\u5206\u79bb\u200b\u8d85\u5e73\u9762\u200b

            \u200b\u90a3\u4e9b\u200b\u88ab\u200b\u677e\u5f1b\u200b\u7684\u200b\u70b9\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u548c\u200b\\(\\xi\\)\u200b\u7684\u200b\u7684\u200b\u5173\u7cfb\u200b\u4e3a\u200b\uff1a

            "},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_11","title":"\u6838\u200b\u51fd\u6570","text":"

            \u200b\u6211\u4eec\u200b\u60f3\u8981\u200b\u628a\u200b\u70b9\u200b\\(x\uff0c z \\in \\mathbb{R}^n\\)\u200b\u6620\u5c04\u200b\u5230\u200b\u4e00\u4e2a\u200b\u66f4\u200b\u9ad8\u7ef4\u200b\u7684\u200b\u7a7a\u95f4\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b(\\(\\phi(x)\\)\u200b\u88ab\u200b\u6620\u5c04\u200b\u5230\u200b\u66f4\u200b\u9ad8\u7ef4\u200b\uff09\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u6620\u5c04\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4fdd\u8bc1\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u200b\u4e8c\u8005\u200b\u7684\u200b\u70b9\u79ef\u200b\u662f\u200b\u539f\u200b\u7a7a\u95f4\u200b\u4e2d\u70b9\u79ef\u200b\u7684\u200b\u51fd\u6570\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b

            \\[ K(x\uff0cz) = \\phi(x)\\cdot \\phi(z) \\]

            \u200b\u4e00\u822c\u800c\u8a00\u200b\uff0c\u200b\u7ed9\u5b9a\u200b\u8fd9\u4e2a\u200b\u628a\u200b\u539f\u200b\u5185\u79ef\u200b\u6620\u5c04\u200b\u5230\u200b\u9ad8\u7ef4\u200b\u5185\u79ef\u200b\u7684\u200b K \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\uff0c\u200b\u4e0d\u7528\u200b\u5177\u4f53\u200b\u7ed9\u51fa\u200b\u628a\u200b\u5411\u91cf\u200b\u6620\u5c04\u200b\u5230\u200b\u9ad8\u4f4d\u200b\u5411\u91cf\u200b\u7684\u200b\\(\\phi()\\)

            \u200b\u5728\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u6ce8\u610f\u200b\u5230\u200b\\(x_i\\)\u200b\u4e4b\u95f4\u200b\u53ea\u6709\u200b\u5185\u79ef\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u5c31\u200b\u76f4\u63a5\u200b\u7528\u200b\u6620\u5c04\u200b\u540e\u200b\u7684\u200b\u9ad8\u4f4d\u200b\u5185\u79ef\u200b\u8fdb\u884c\u200b\u66ff\u6362\u200b

            \\[ \\underset {\\alpha}{\\operatorname{max}} \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_jK(x_i\uff0cx_j) \\\\ \\]

            \u200b\u5e38\u7528\u200b\u6838\u200b\u51fd\u6570\u200b

            \u200b\u591a\u9879\u5f0f\u200b\u6838\u200b\u51fd\u6570\u200b

            \\[ K(x\uff0cz) = (x\\cdot z + 1)^p \\]

            \u200b\u9ad8\u65af\u200b\u6838\u200b\u51fd\u6570\u200b(KBF)

            \\[ K(x\uff0cz) = \\exp(-\\frac{||x-z||^2}{2\\sigma^2}) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#smo","title":"SMO \u200b\u7b97\u6cd5","text":"

            \u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u7ed9\u51fa\u200b SMO \u200b\u7b97\u6cd5\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u79cd\u200b\u5177\u4f53\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u7684\u200b\\(\\alpha^*\\)\u200b\u7684\u200b\u6570\u503c\u200b\u65b9\u6cd5\u200b\u3002

            \u200b\u8f93\u5165\u200b\uff1a\u200b\u6570\u636e\u200b\u96c6\u200b\\(D = \\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u6838\u200b\u51fd\u6570\u200b\\(K(x\uff0cz)\\)\uff0c\u200b\u5bb9\u5fcd\u5ea6\u200b\\(\\epsilon\\)

            • \u200b\u521d\u59cb\u5316\u200b\\(\\alpha = 0\\)\uff0ck = 0
            • \u200b\u53d6\u200b\u4f18\u5316\u200b\u53d8\u91cf\u200b\\(\\alpha_1\uff0c\\alpha_2\\)\uff0c\u200b\u89e3\u6790\u200b\u6c42\u89e3\u200b\u6700\u4f18\u5316\u200b\u95ee\u9898\u200b\uff0c\u200b\u66f4\u65b0\u200b\\(\\alpha_1\uff0c\\alpha_2\\)
            • \u200b\u82e5\u200b\u5728\u200b\u5bb9\u5fcd\u5ea6\u200b\\(\\epsilon\\)\u200b\u5185\u200b\u6ee1\u8db3\u200b\uff1a

              \\[\\begin{aligned} & \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & 0 \\leq \\alpha_i \\leq C\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ & y_i(g(x_i)) = \\left\\{ \\begin{aligned} & \\geq 1\uff0c \\alpha_i = 0 \\\\ & = 1\uff0c 0 < \\alpha_i < C \\\\ & \\leq 1\uff0c \\alpha_i = C \\\\ \\end{aligned} \\right. \\end{aligned}\\]

              \u200b\u5219\u200b\u4ee4\u200b\\(\\alpha = (\\alpha_1\uff0c\\alpha_2\uff0c...\uff0c\\alpha_N)\\)\uff0c\u200b\u9000\u51fa\u200b\u5faa\u73af\u200b

            "},{"location":"Note/Missing%20Semester/","title":"Missing Semester","text":"

            \u200b\u7ea6\u200b 127 \u200b\u4e2a\u200b\u5b57\u200b

            Abstract

            Missing Semester \u200b\u662f\u200b\u6765\u81ea\u200b MIT \u200b\u7684\u200b\u4e00\u95e8\u200b\u8ba1\u7b97\u673a\u200b\u5165\u200b\u4e48\u200b\u8bfe\u7a0b\u200b\uff0c\u200b\u8fd9\u95e8\u200b\u8bfe\u7a0b\u200b\u4e0d\u200b\u4ecb\u7ecd\u200b\u5177\u4f53\u200b\u7684\u200b\u8bed\u8a00\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u800c\u662f\u200b\u4ecb\u7ecd\u200b\u4e00\u4e9b\u200b\u53ef\u4ee5\u200b\u63d0\u9ad8\u6548\u7387\u200b\u7684\u200b\u5de5\u5177\u200b\u7684\u200b\u4f7f\u7528\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u666e\u53ca\u200b\u8ba1\u7b97\u673a\u200b\u5e38\u8bc6\u200b

            Warning

            \u200b\u539f\u200b\u8bfe\u7a0b\u200b\u5f88\u200b\u4f18\u79c0\u200b\uff0c\u200b\u5982\u679c\u200b\u60a8\u200b\u6709\u7a7a\u200b\u7684\u8bdd\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u524d\u5f80\u200b\u3010\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b\u3011()\u200b\u8fdb\u884c\u200b\u5b66\u4e60\u200b.\u200b\u8fd9\u91cc\u200b\u5b58\u200b\u7684\u200b\u662f\u200b\u6211\u200b\u7684\u200b\u7b14\u8bb0\u200b\uff0c\u200b\u5b83\u4eec\u200b\u662f\u200b\u4e3a\u4e86\u200b\u5728\u200b\u9700\u8981\u200b\u7684\u200b\u65f6\u5019\u200b\u80fd\u591f\u200b\u65b9\u4fbf\u200b\u7684\u200b\u88ab\u200b\u67e5\u627e\u200b\u800c\u200b\u64b0\u5199\u200b\u7684\u200b\uff0c\u200b\u8bf7\u52ff\u200b\u76f4\u63a5\u200b\u5b66\u4e60\u200b

            "},{"location":"Note/Missing%20Semester/Data/","title":"Data wrangling","text":"

            \u200b\u7ea6\u200b 911 \u200b\u4e2a\u200b\u5b57\u200b 2 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

            \u200b\u672c\u200b\u8282\u200b\u5217\u4e3e\u200b\u4e00\u4e9b\u200b\u547d\u4ee4\u884c\u200b\u5e38\u7528\u200b\u7684\u200b\u6570\u636e\u5904\u7406\u200b\u5de5\u5177\u200b

            "},{"location":"Note/Missing%20Semester/Data/#sed","title":"Sed","text":"

            Sed \u200b\u662f\u200b Stream editor \u200b\u6d41\u200b\u7f16\u8f91\u5668\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u63a5\u53d7\u200b\u7ba1\u9053\u200b\u8f93\u5165\u200b\uff0c\u200b\u5bf9\u200b\u6bcf\u200b\u4e00\u884c\u200b\u8fdb\u884c\u200b\u5904\u7406\u200b\uff0c\u200b\u7136\u540e\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u3002

            sed [OPTION] 'edit-command' [input-file]`\n

            \u200b\u9009\u9879\u200b\u662f\u200b\u4e00\u4e9b\u200b\u7528\u4e8e\u200b\u63a7\u5236\u200b sed \u200b\u547d\u4ee4\u200b\u884c\u4e3a\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5e38\u89c1\u200b\u7684\u200b\u6709\u200b\uff1a

            • -n \u200b\u4e0d\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b
            • -e \u200b\u4ee5\u540e\u200b\u7684\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b
            • -f \u200b\u4ee5\u540e\u200b\u7684\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b
            • -i \u200b\u76f4\u63a5\u200b\u4fee\u6539\u200b\u6587\u4ef6\u200b
            • -r \u200b\u4f7f\u7528\u200b\u6269\u5c55\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b
            • -E \u200b\u540c\u200b\u4e0a\u200b
            • -r \u200b\u4f7f\u7528\u200b\u57fa\u7840\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b
            • -h \u200b\u4e0d\u200b\u6253\u5370\u6587\u4ef6\u200b\u540d\u200b

            sed\u200b\u7684\u200b\u7f16\u8f91\u200b\u547d\u4ee4\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u6765\u200b\u6307\u5b9a\u200b\u5339\u914d\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u5e76\u200b\u901a\u8fc7\u200b\u66ff\u6362\u200b\u3001\u200b\u5220\u9664\u200b\u3001\u200b\u63d2\u5165\u200b\u7b49\u200b\u547d\u4ee4\u200b\u6765\u200b\u4fee\u6539\u200b\u6587\u672c\u200b.\u200b\u4e00\u4e9b\u200b\u5e38\u89c1\u200b\u7684\u200b sed \u200b\u7f16\u8f91\u200b\u547d\u4ee4\u200b\u5305\u62ec\u200b\uff1a

            • s/pattern/replacement/\uff1a\u200b\u66ff\u6362\u200b\u6307\u5b9a\u200b\u6a21\u5f0f\u200b\u7684\u200b\u6587\u672c\u200b\u3002
            • d\uff1a\u200b\u5220\u9664\u200b\u5339\u914d\u200b\u5230\u200b\u7684\u200b\u884c\u200b\u3002
            • p\uff1a\u200b\u6253\u5370\u200b\uff08\u200b\u8f93\u51fa\u200b\uff09\u200b\u5339\u914d\u200b\u5230\u200b\u7684\u200b\u884c\u200b\u3002
            • i\uff1a\u200b\u5728\u200b\u6307\u5b9a\u200b\u884c\u524d\u200b\u63d2\u5165\u200b\u6587\u672c\u200b\u3002
            • a\uff1a\u200b\u5728\u200b\u6307\u5b9a\u200b\u884c\u540e\u200b\u8ffd\u52a0\u200b\u6587\u672c\u200b\u3002
            \u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b
            • \u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u53ef\u4ee5\u200b\u5b9e\u73b0\u200b\u5b57\u7b26\u4e32\u200b\u5339\u914d\u200b\uff0c\u200b\u5927\u90e8\u5206\u200b\u5b57\u7b26\u200b\u90fd\u200b\u4fdd\u6301\u200b\u613f\u610f\u200b\u9664\u4e86\u200b\u4e00\u4e9b\u200b\u7279\u6b8a\u200b\u7684\u200b
            • . \u200b\u4ee3\u8868\u200b\u9664\u4e86\u200b\u6362\u884c\u200b\u4efb\u4f55\u200b\u7684\u200b\u5355\u200b\u5b57\u7b26\u200b
            • * \u200b\u524d\u200b\u4e00\u4e2a\u200b\u91cd\u590d\u200b 0-\u200b\u65e0\u9650\u200b\u6b21\u200b
            • + \u200b\u524d\u200b\u4e00\u4e2a\u200b\u91cd\u590d\u200b 1-\u200b\u65e0\u9650\u200b\u6b21\u200b
            • [abc] abc \u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b
            • (RX1|RX2) \u200b\u8868\u8fbe\u5f0f\u200b\u4e00\u200b\u6216\u8005\u200b\u4e8c\u200b
            • ^ \u200b\u884c\u9996\u200b
            • $ \u200b\u884c\u5c3e\u200b
            • () \u200b\u6355\u83b7\u200b\uff0c\u200b\u4f4d\u4e8e\u200b\u8865\u8d27\u200b\u5185\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u53ef\u200b\u5728\u200b\u88ab\u200b\u66ff\u4ee3\u200b\u90e8\u5206\u200b\u7528\u200b\u30011 \\2 \\3 \u200b\u5f15\u7528\u200b
            "},{"location":"Note/Missing%20Semester/Data/#awk","title":"Awk","text":"

            awk \u200b\u662f\u200b\u4e00\u79cd\u200b\u5f3a\u5927\u200b\u7684\u200b\u6587\u672c\u5904\u7406\u200b\u5de5\u5177\u200b\uff0c\u200b\u7528\u4e8e\u200b\u4ece\u200b\u7ed3\u6784\u5316\u200b\u6587\u672c\u200b\u6570\u636e\u200b\u4e2d\u200b\u63d0\u53d6\u200b\u548c\u200b\u64cd\u4f5c\u200b\u4fe1\u606f\u200b.\u200b\u5b83\u200b\u53ef\u4ee5\u200b\u9010\u884c\u200b\u8bfb\u53d6\u200b\u8f93\u5165\u200b\u6587\u4ef6\u200b\u6216\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b\u7684\u200b\u6587\u672c\u200b\uff0c\u200b\u6839\u636e\u200b\u6307\u5b9a\u200b\u7684\u200b\u6a21\u5f0f\u200b\u548c\u200b\u52a8\u4f5c\u200b\u8fdb\u884c\u200b\u5339\u914d\u200b\u3001\u200b\u5904\u7406\u200b\u548c\u200b\u8f93\u51fa\u200b\u3002

            awk \u200b\u7684\u200b\u57fa\u672c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a

            awk 'pattern { action }' file\n

            \u200b\u5176\u4e2d\u200b\uff0cpattern \u200b\u662f\u200b\u7528\u4e8e\u200b\u5339\u914d\u200b\u6587\u672c\u200b\u7684\u200b\u6a21\u5f0f\u200b\uff0caction \u200b\u662f\u200b\u5728\u200b\u5339\u914d\u200b\u5230\u200b\u7684\u200b\u6587\u672c\u200b\u4e0a\u200b\u6267\u884c\u200b\u7684\u200b\u64cd\u4f5c\u200b\uff0cfile \u200b\u662f\u200b\u5f85\u5904\u7406\u200b\u7684\u200b\u8f93\u5165\u200b\u6587\u4ef6\u200b\u3002

            awk \u200b\u7684\u200b\u5de5\u4f5c\u200b\u539f\u7406\u200b\u662f\u200b\u9010\u884c\u200b\u8bfb\u53d6\u200b\u8f93\u5165\u200b\u6587\u672c\u200b\uff0c\u200b\u5e76\u200b\u6839\u636e\u200b\u6307\u5b9a\u200b\u7684\u200b\u6a21\u5f0f\u200b\u8fdb\u884c\u200b\u5339\u914d\u200b.\u200b\u5f53\u200b\u67d0\u884c\u200b\u5339\u914d\u200b\u5230\u200b\u6307\u5b9a\u200b\u6a21\u5f0f\u200b\u65f6\u200b\uff0c\u200b\u6267\u884c\u200b\u76f8\u5e94\u200b\u7684\u200b\u52a8\u4f5c\u200b.\u200b\u52a8\u4f5c\u200b\u53ef\u4ee5\u200b\u662f\u200b\u6253\u5370\u200b\u884c\u200b\u3001\u200b\u8ba1\u7b97\u200b\u3001\u200b\u8d4b\u503c\u200b\u53d8\u91cf\u200b\u3001\u200b\u8fdb\u884c\u200b\u6761\u4ef6\u200b\u5224\u65ad\u200b\u7b49\u200b\u3002

            awk \u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e30\u5bcc\u200b\u7684\u200b\u5185\u7f6e\u200b\u529f\u80fd\u200b\u548c\u200b\u53d8\u91cf\u200b\uff0c\u200b\u4f7f\u200b\u5176\u200b\u80fd\u591f\u200b\u5bf9\u200b\u6587\u672c\u200b\u8fdb\u884c\u200b\u7075\u6d3b\u5904\u7406\u200b.\u200b\u4e00\u4e9b\u200b\u5e38\u7528\u200b\u7684\u200b awk \u200b\u529f\u80fd\u200b\u5305\u62ec\u200b\uff1a

            • \u200b\u5b57\u200b\u6bb5\u200b\u5206\u5272\u200b\uff1aawk \u200b\u9ed8\u8ba4\u200b\u5c06\u200b\u6bcf\u200b\u4e00\u884c\u200b\u4ee5\u200b\u7a7a\u683c\u200b\u6216\u200b\u5236\u8868\u7b26\u200b\u4e3a\u200b\u5206\u9694\u7b26\u200b\u5212\u5206\u200b\u4e3a\u200b\u591a\u4e2a\u200b\u5b57\u200b\u6bb5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b $n \u200b\u7684\u200b\u5f62\u5f0f\u200b\u5f15\u7528\u200b\u5b57\u200b\u6bb5\u200b\uff08\u200b\u4f8b\u5982\u200b $1\u3001$2\uff09.
            • \u200b\u6a21\u5f0f\u5339\u914d\u200b\uff1a\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u8fdb\u884c\u200b\u6a21\u5f0f\u5339\u914d\u200b\uff0c\u200b\u6307\u5b9a\u200b\u5339\u914d\u200b\u7684\u200b\u6587\u672c\u200b\u6a21\u5f0f\u200b\u3002
            • \u200b\u5185\u7f6e\u200b\u53d8\u91cf\u200b\uff1aawk \u200b\u63d0\u4f9b\u200b\u4e86\u200b\u8bb8\u591a\u200b\u5185\u7f6e\u200b\u53d8\u91cf\u200b\uff0c\u200b\u5982\u200b NR\uff08\u200b\u5f53\u524d\u200b\u884c\u200b\u6570\u200b\uff09\u3001NF\uff08\u200b\u5f53\u524d\u200b\u884c\u200b\u7684\u200b\u5b57\u200b\u6bb5\u6570\u200b\uff09\u200b\u548c\u200b $0\uff08\u200b\u6574\u884c\u200b\u6587\u672c\u200b\uff09\u200b\u7b49\u200b\u3002
            • \u200b\u5185\u7f6e\u200b\u51fd\u6570\u200b\uff1aawk \u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e30\u5bcc\u200b\u7684\u200b\u5185\u7f6e\u200b\u51fd\u6570\u200b\uff0c\u200b\u5982\u200b\u5b57\u7b26\u4e32\u200b\u5904\u7406\u51fd\u6570\u200b\u3001\u200b\u6570\u5b66\u200b\u51fd\u6570\u200b\u3001\u200b\u65e5\u671f\u200b\u51fd\u6570\u200b\u7b49\u200b\u3002

            \u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u4e2a\u200b\u7b80\u5355\u200b\u7684\u200b\u793a\u4f8b\u200b\uff0c\u200b\u5c55\u793a\u200b\u4e86\u200b\u5982\u4f55\u200b\u4f7f\u7528\u200b awk \u200b\u63d0\u53d6\u200b\u6587\u4ef6\u200b\u4e2d\u4ee5\u200b\u5192\u53f7\u200b\u5206\u9694\u200b\u7684\u200b\u7b2c\u4e00\u5217\u200b\u548c\u200b\u7b2c\u4e8c\u5217\u200b\uff0c\u200b\u5e76\u200b\u8f93\u51fa\u200b\u5b83\u4eec\u200b\uff1a

            awk -F':' '{ print $1\uff0c $2 }' file.txt\n

            awk \u200b\u662f\u200b\u4e00\u79cd\u200b\u975e\u5e38\u200b\u5b9e\u7528\u200b\u7684\u200b\u6587\u672c\u5904\u7406\u200b\u5de5\u5177\u200b\uff0c\u200b\u9002\u7528\u200b\u4e8e\u200b\u5904\u7406\u200b\u7ed3\u6784\u5316\u200b\u7684\u200b\u6587\u672c\u200b\u6570\u636e\u200b\uff0c\u200b\u5982\u200b\u65e5\u5fd7\u200b\u6587\u4ef6\u200b\u3001CSV \u200b\u6587\u4ef6\u200b\u3001\u200b\u62a5\u544a\u200b\u7b49\u200b.\u200b\u5b83\u200b\u5177\u6709\u200b\u5f3a\u5927\u200b\u7684\u200b\u529f\u80fd\u200b\u548c\u200b\u7075\u6d3b\u6027\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5927\u5927\u7b80\u5316\u200b\u6587\u672c\u5904\u7406\u200b\u4efb\u52a1\u200b\uff0c\u200b\u63d0\u9ad8\u200b\u6570\u636e\u5206\u6790\u200b\u548c\u200b\u8f6c\u6362\u200b\u7684\u200b\u6548\u7387\u200b\u3002

            "},{"location":"Note/Missing%20Semester/Data/#aided-command-line-tools","title":"Aided Command line Tools","text":"

            \u200b\u8f85\u52a9\u200b\u4f7f\u7528\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b

            • grep: \u200b\u7b5b\u9009\u200b\u51fa\u200b\u542b\u6709\u200b\u5236\u5b9a\u200b\u5185\u5bb9\u200b\u7684\u200b\u884c\u200b
            • sort: \u200b\u6392\u5e8f\u200b
            • uniq: \u200b\u53bb\u200b\u91cd\u200b
            • tail: \u200b\u622a\u56fe\u200b\u5934\u90e8\u200b\u51e0\u6761\u200b
            • head: \u200b\u622a\u53d6\u200b\u5c3e\u90e8\u200b\u51e0\u6761\u200b
            • paste: \u200b\u901a\u8fc7\u200b\u6307\u5b9a\u200b\u7684\u200b\u95f4\u9694\u200b\u5b57\u7b26\u200b\u94fe\u200b\u8fde\u63a5\u200b\u4e24\u884c\u200b
            • bc: \u200b\u8ba1\u7b97\u5668\u200b
            • xargs: \u200b\u628a\u200b stdin \u200b\u8f6c\u6362\u200b\u4e3a\u200b\u53c2\u6570\u200b\u8c03\u7528\u200b\u540e\u7eed\u200b\u7a0b\u5e8f\u200b
            "},{"location":"Note/Missing%20Semester/Git/","title":"Notes for Git","text":"

            \u200b\u7ea6\u200b 897 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

            \u200b\u4e00\u4e2a\u200b\u81ea\u200b\u5e95\u5411\u4e0a\u200b\u7684\u200b\u5b66\u4e60\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u6700\u540e\u200b\u9644\u4e0a\u200b\u4e86\u200b\u5e38\u7528\u200b\u6307\u4ee4\u200b\uff0c\u200b\u6682\u65e0\u200b\u64cd\u4f5c\u200b\u6f14\u793a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b\u539f\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b

            "},{"location":"Note/Missing%20Semester/Git/#terminology","title":"Terminology","text":"

            \u200b\u5b9a\u4e49\u200b

            blob \u200b\u4e00\u4e2a\u200b\u6587\u4ef6\u200b\u88ab\u79f0\u4f5c\u200bblob. tree \u200b\u4e00\u4e2a\u200b\u6587\u4ef6\u5939\u200b\u88ab\u79f0\u4f5c\u200btree. commit \u200b\u6574\u4e2a\u200b\u4ed3\u5e93\u200b\u7684\u200b\u5feb\u7167\u200b\u88ab\u79f0\u4f5c\u200bcommit. history commit \u200b\u7684\u200b\u6709\u200b\u5411\u200b\u65e0\u200b\u73af\u56fe\u200b\u6784\u6210\u200bhistory. object \u200b\u4e00\u4e2a\u200bobject\u200b\u662f\u200b blob\u3001tree \u200b\u6216\u8005\u200b commit\uff0c\u200b\u6bcf\u4e2a\u200b\u5bf9\u8c61\u200b\u90fd\u200b\u6709\u200b\u81ea\u5df1\u200b\u5bf9\u5e94\u200b\u7684\u200b hash. reference \u200b\u4e00\u4e2a\u200breference\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5bf9\u8c61\u200b\u7684\u200b\u522b\u540d\u200b\uff0c\u200b\u9664\u4e86\u200b\u522b\u540d\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b hash \u200b\u6765\u200b\u5f15\u7528\u200b\u4e00\u4e2a\u200b\u5bf9\u8c61\u200b\u3002 main/master main/master \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u7684\u200b reference \u200b\u603b\u662f\u200b\u6307\u5411\u200b\u5f00\u53d1\u200b\u4e2d\u200b\u7684\u200b\u6700\u65b0\u200b\u7a33\u5b9a\u200b\u7248\u672c\u200b\u3002 HEAD HEAD \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u5f15\u7528\u200b\u6307\u5411\u200b\u6211\u4eec\u200b\u76ee\u524d\u200b\u5728\u200b\u5386\u53f2\u200b\u4e2d\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u3002 Git repository \u200b\u4e00\u4e2a\u200b Git repository* \u200b\u662f\u200b object \u200b\u548c\u200b reference \u200b\u7684\u200b\u96c6\u5408\u200b\u3002 Staging area Staging area \u200b\u662f\u200b\u4e00\u79cd\u200b\u673a\u5236\u200b\u6765\u200b\u8ba9\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u54ea\u4e9b\u200b\u5bf9\u8c61\u200b\u8981\u200b\u88ab\u200b commit\uff0c \u200b\u800c\u200b\u975e\u200b\u6574\u4e2a\u200b\u4ed3\u5e93\u200b\u3002"},{"location":"Note/Missing%20Semester/Git/#git-data-model","title":"Git Data Model","text":"

            \u200b\u9996\u5148\u200b\u5b9a\u4e49\u6570\u636e\u200b\u5bf9\u8c61\u200b

            // a file is a bunch of bytes\ntype blob = array<byte>\n\n// a directory contains named files and directories\ntype tree = map<string\uff0c tree | blob>\n\n// a commit has parents\uff0c metadata\uff0c and the top-level tree\ntype commit = struct {\n    parents: array<commit>\n    author: string\n    message: string\n    snapshot: tree\n}\n\n//An object is a blob\uff0ctree\uff0cor commit\ntype object = blob | tree | commit\n

            \u200b\u5728\u200b Git \u200b\u5b58\u50a8\u200b\u7ed3\u6784\u200b\u4e2d\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u5bf9\u8c61\u200b\u5bf9\u5e94\u200b\u4e00\u4e2a\u200b hash

            objects = map<string\uff0c object>\n\ndef store(object):\n    id = sha1(object)\n    objects[id] = object\n\ndef load(id):\n    return objects[id]\n

            "},{"location":"Note/Missing%20Semester/Git/#commands","title":"Commands","text":"

            Basic

            • git help <command> : get help for a git command
            • git init : creates a new git repo\uff0c with data stored in the .git directory
            • git status : tells you what\u2019s going on
            • git add <filename> : adds files to staging area
            • git commit : creates a new commit
            • git log : shows a flattened log of history
            • git log --all --graph --decorate : visualizes history as a DAG
            • git diff <filename> : show the differences between current file and HEAD version file
            • git diff <revision> <filename> : shows differences between current file and specified snapshot
            • git diff <reversin> <reversion> <filename> shows the differences between two specified version of file
            • git checkout <revision> : updates HEAD and current branch
            • git checkout <filename> : erase all the changes we made after the HEAD version for this file
            • git cat-file -p <hash> : The instruction to catch a tree or blob

            Branching and Merging

            • git branch: shows branches
            • git branch <name>: creates a branch
            • git checkout -b <name>: creates a branch and switches to it
            • same as git branch <name>; git checkout <name>
            • git merge <revision> : merges into current branch;wait for latter adjustments when conflictions occur(But the file has been changed already)
            • git merge --abort : erase the changes git try to make when an merge conflict occurs
            • git merge --continue : continue to merge after you fix the merge confliction
            • git mergetool: use a fancy tool to help resolve merge conflicts
            • git rebase: rebase set of patches onto a new base

            More on rebase

            Commonly used to \"move\" an entire branch to another base\uff0c creating copies of the commits in the new location.

            • Rebase the current branch on top of another specified branch: git rebase new_base_branch

            • Start an interactive rebase\uff0c which allows the commits to be reordered\uff0c omitted\uff0c combined or modified: git rebase -i target_base_branch_or_commit_hash

            • Continue a rebase that was interrupted by a merge failure\uff0c after editing conflicting files: git rebase --continue

            • Continue a rebase that was paused due to merge conflicts\uff0c by skipping the conflicted commit: git rebase --skip

            • Abort a rebase in progress (e.g. if it is interrupted by a merge conflict): git rebase --abort

            • Move part of the current branch onto a new base\uff0c providing the old base to start from: git rebase --onto new_base old_base

            • Reapply the last 5 commits in-place\uff0c stopping to allow them to be reordered\uff0c omitted\uff0c combined or modified: git rebase -i HEAD~5

            • Auto-resolve any conflicts by favoring the working branch version (theirs keyword has reversed meaning in this case): git rebase -X theirs branch_name

            Remotes

            • git remote: list remotes
            • git remote add <name> <url>: add a remote ;name is origin by convention if we have only one remote; url can be a web address or a local directory
            • git push <remote> <local branch>:<remote branch>: send objects to remote\uff0c and update remote reference
            • git branch --set-upstream-to=<remote>/<remote branch>: set up correspondence between local and remote branch
            • git fetch: retrieve objects/references from a remote; be aware of the changes pushed here from the remote
            • git pull: same as git fetch; git merge
            • git clone: download repository from remote

            Undo

            • git commit --amend: edit a commit\u2019s contents/message
            • git reset HEAD <file>: unstage a file
            • git checkout <file>: discard changes

            Advanced Git

            • git config: Git is highly customizable
            • git clone --depth=1: shallow clone\uff0c without entire version history
            • git add -p: interactive staging
            • git rebase -i: interactive rebasing
            • git blame: show who last edited which line
            • git stash: temporarily remove modifications to working directory
            • git bisect: binary search history (e.g. for regressions)
            • .gitignore: specify intentionally untracked files to ignore
            "},{"location":"Note/Missing%20Semester/Shell/","title":"Shell Notes (revisited)","text":"

            \u200b\u7ea6\u200b 2838 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 9 \u200b\u5206\u949f\u200b

            \u200b\u4e00\u4e2a\u200b\u79bb\u6563\u200b\u7684\u200b\u77e5\u8bc6\u200b\u5217\u8868\u200b

            "},{"location":"Note/Missing%20Semester/Shell/#_1","title":"\u57fa\u7840\u77e5\u8bc6","text":""},{"location":"Note/Missing%20Semester/Shell/#_2","title":"\u5185\u7f6e\u200b\u53d8\u91cf\u200b/\u200b\u7279\u6b8a\u200b\u53d8\u91cf","text":"$0$1\uff0c $2\uff0c $3\uff0c ...$@$#$?$$$USER$HOME$PWD$HOSTNAME$RANDOM$IFS$PATH

            \u200b\u5f53\u524d\u200b\u811a\u672c\u200b\u7684\u200b\u540d\u79f0\u200b.\u200b\u5bf9\u4e8e\u200b\u88ab\u200b\u6267\u884c\u200b\u7684\u200b\u811a\u672c\u200b\uff0c\u200b\u5b83\u200b\u662f\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b\u7684\u200b\u8def\u5f84\u200b\u548c\u200b\u540d\u79f0\u200b\u3002

            \u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u53d8\u91cf\u200b\uff0c\u200b\u8868\u793a\u200b\u811a\u672c\u200b\u6216\u200b\u51fd\u6570\u200b\u7684\u200b\u53c2\u6570\u200b.\\(1 \u200b\u8868\u793a\u200b\u7b2c\u4e00\u4e2a\u200b\u53c2\u6570\u200b\uff0c\\)2 \u200b\u8868\u793a\u200b\u7b2c\u4e8c\u4e2a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4f9d\u6b64\u7c7b\u63a8\u200b\u3002

            \u200b\u8868\u793a\u200b\u6240\u6709\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u7684\u200b\u5217\u8868\u200b.\u200b\u5728\u200b\u811a\u672c\u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\"$@\"\u200b\u5c06\u200b\u6240\u6709\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u53c2\u6570\u4f20\u9012\u200b\u7ed9\u200b\u5176\u4ed6\u200b\u547d\u4ee4\u200b\u6216\u200b\u51fd\u6570\u200b\u3002

            \u200b\u8868\u793a\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u7684\u200b\u6570\u91cf\u200b\u3002

            \u200b\u4e0a\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u9000\u51fa\u200b\u72b6\u6001\u200b.\u200b\u5982\u679c\u200b\u547d\u4ee4\u200b\u6210\u529f\u200b\u6267\u884c\u200b\uff0c\u200b\u5219\u200b\u5176\u503c\u200b\u4e3a\u200b 0\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b\u975e\u96f6\u503c\u200b\u3002

            \u200b\u5f53\u524d\u200b\u811a\u672c\u200b\u7684\u200b\u8fdb\u7a0b\u200b ID\uff08PID\uff09.

            \u200b\u5f53\u524d\u200b\u7528\u6237\u200b\u7684\u200b\u7528\u6237\u540d\u200b\u3002

            \u200b\u5f53\u524d\u200b\u7528\u6237\u200b\u7684\u200b\u4e3b\u76ee\u5f55\u200b\u8def\u5f84\u200b\u3002

            \u200b\u5f53\u524d\u5de5\u4f5c\u200b\u76ee\u5f55\u200b\u7684\u200b\u8def\u5f84\u200b\u3002

            \u200b\u5f53\u524d\u200b\u4e3b\u673a\u200b\u7684\u200b\u4e3b\u673a\u540d\u200b\u3002

            \u200b\u4e00\u4e2a\u200b\u968f\u673a\u200b\u6574\u6570\u200b\u3002

            \u200b\u5185\u90e8\u200b\u5b57\u200b\u6bb5\u200b\u5206\u9694\u7b26\u200b\uff0c\u200b\u7528\u4e8e\u200b\u6307\u5b9a\u200b\u7531\u200b\u54ea\u4e2a\u200b\u5b57\u7b26\u200b\u5206\u5272\u200b\u8f93\u5165\u200b\u6570\u636e\u200b\u7684\u200b\u5b57\u200b\u6bb5\u200b.\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c\u200b\u5b83\u200b\u5305\u542b\u200b\u7a7a\u683c\u200b\u3001\u200b\u5236\u8868\u7b26\u200b\u548c\u200b\u6362\u884c\u7b26\u200b\u3002

            \u200b\u4e00\u4e2a\u200b\u7531\u200b\u5192\u53f7\u200b\u5206\u9694\u200b\u7684\u200b\u76ee\u5f55\u200b\u5217\u8868\u200b\uff08\u200b\u73af\u5883\u53d8\u91cf\u200b\uff09\uff0cshell \u200b\u5728\u200b\u5176\u4e2d\u200b\u67e5\u627e\u200b\u547d\u4ee4\u200b\u3002

            "},{"location":"Note/Missing%20Semester/Shell/#_3","title":"\u91cd\u5b9a\u5411","text":">>><2>2>>&>\u200b\u6216\u200b&>>

            \u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b.\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u521b\u5efa\u200b\u8be5\u200b\u6587\u4ef6\u200b\uff1b\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u5df2\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u8986\u76d6\u6587\u4ef6\u200b\u5185\u5bb9\u200b\u3002

            \u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u8ffd\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u7684\u200b\u672b\u5c3e\u200b.\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u521b\u5efa\u200b\u8be5\u200b\u6587\u4ef6\u200b\u3002

            \u200b\u5c06\u200b\u6587\u4ef6\u200b\u7684\u200b\u5185\u5bb9\u200b\u4f5c\u4e3a\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b\u3002

            \u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b\u3002

            \u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u8ffd\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u7684\u200b\u672b\u5c3e\u200b\u3002

            \u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u548c\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u5408\u5e76\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b\u3002

            "},{"location":"Note/Missing%20Semester/Shell/#_4","title":"\u6587\u4ef6\u200b\u6743\u9650","text":"\u6587\u4ef6\u7c7b\u578b\u200b\u6743\u9650\u200b\u6743\u9650\u200b\u5b57\u7b26\u4e32\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u6743\u9650\u200b\u4fee\u6539\u200b

            -\uff1a\u200b\u666e\u901a\u200b\u6587\u4ef6\u200b d\uff1a\u200b\u76ee\u5f55\u200b l\uff1a\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b\uff08\u200b\u8f6f\u200b\u94fe\u63a5\u200b\uff09 c\uff1a\u200b\u5b57\u7b26\u200b\u8bbe\u5907\u200b\u6587\u4ef6\u200b b\uff1a\u200b\u5757\u200b\u8bbe\u5907\u200b\u6587\u4ef6\u200b s\uff1a\u200b\u5957\u200b\u63a5\u5b57\u200b\uff08socket\uff09\u200b\u6587\u4ef6\u200b p\uff1a\u200b\u547d\u540d\u200b\u7ba1\u9053\u200b\uff08FIFO\uff09\u200b\u6587\u4ef6\u200b

            r\uff1a\u200b\u8bfb\u53d6\u200b\u6743\u9650\u200b w\uff1a\u200b\u5199\u5165\u200b\u6743\u9650\u200b x\uff1a\u200b\u6267\u884c\u200b\u6743\u9650\u200b

            \u200b\u7531\u200b 10 \u200b\u4e2a\u5b57\u7b26\u200b\u7ec4\u6210\u200b\uff0c\u200b\u7b2c\u4e00\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u7c7b\u578b\u200b\uff0c\u200b\u540e\u9762\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u7684\u200b\u6743\u9650\u200b\uff0c\u200b\u518d\u200b\u540e\u9762\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u200b\u7684\u200b\u6743\u9650\u200b\uff0c\u200b\u6700\u540e\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u7684\u200b\u6743\u9650\u200b\u3002 \u200b\u4f8b\u5982\u200b\uff0c-rw-r--r--\u200b\u8868\u793a\u200b\u666e\u901a\u200b\u6587\u4ef6\u200b\uff0c\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u5177\u6709\u200b\u8bfb\u53d6\u200b\u548c\u200b\u5199\u5165\u200b\u6743\u9650\u200b\uff0c\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u548c\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u5177\u6709\u200b\u8bfb\u53d6\u200b\u6743\u9650\u200b\u3002

            \u200b\u7531\u200b\u4e09\u4e2a\u200b\u516b\u8fdb\u5236\u200b\u6570\u5b57\u200b\u7ec4\u6210\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u6570\u5b57\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u3001\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u548c\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u7684\u200b\u6743\u9650\u200b\u3002 \u200b\u6bcf\u4e2a\u200b\u6570\u5b57\u200b\u7684\u200b\u8ba1\u7b97\u65b9\u6cd5\u200b\u662f\u200b\u5c06\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4e09\u4e2a\u200b\u6743\u9650\u200b\u8f6c\u6362\u200b\u4e3a\u200b\u516b\u8fdb\u5236\u200b\u6570\u200b\u62fc\u63a5\u200b\u8d77\u6765\u200b\u3002 \u200b\u4f8b\u5982\u200b\uff0c-rw-r--r--\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u4e3a\u200b 644\uff0c-rwxr-xr-x \u200b\u5bf9\u5e94\u200b\u7684\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u4e3a\u200b 755.

            chmod\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6743\u9650\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6570\u5b57\u200b\u8868\u793a\u6cd5\u200b\uff08\u200b\u5982\u200b chmod 755 file.txt\uff09\u200b\u6216\u200b\u7b26\u53f7\u200b\u8868\u793a\u6cd5\u200b\uff08\u200b\u5982\u200b chmod u+x file.txt\uff09\u200b\u6765\u200b\u4fee\u6539\u200b\u6743\u9650\u200b\u3002 chown\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6240\u6709\u8005\u200b\u3002 chgrp\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6240\u5c5e\u200b\u7ec4\u200b\u3002 umask\uff1a\u200b\u8bbe\u7f6e\u200b\u65b0\u521b\u5efa\u200b\u6587\u4ef6\u200b\u548c\u200b\u76ee\u5f55\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u6743\u9650\u200b\u63a9\u7801\u200b\u3002

            "},{"location":"Note/Missing%20Semester/Shell/#_5","title":"\u6587\u4ef6\u200b\u64cd\u4f5c","text":"teetouchcatcpmvrmlnmkdirrmdirfindgrepalias

            command | tee [OPTION]... [FILE]...\n
            tee\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5e38\u7528\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b\uff0c\u200b\u7528\u4e8e\u200b\u4ece\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b\u8bfb\u53d6\u6570\u636e\u200b\u5e76\u200b\u5c06\u200b\u5176\u200b\u540c\u65f6\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u548c\u200b\u6307\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e2d\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4ee5\u200b\u8ffd\u52a0\u200b\u6a21\u5f0f\u200b\u5c06\u200b\u8f93\u51fa\u200b\u9644\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u4e2d\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u8986\u76d6\u6587\u4ef6\u200b\u5185\u5bb9\u200b\u3002 -i\uff1a\u200b\u5ffd\u7565\u200b\u4e2d\u65ad\u200b\u4fe1\u53f7\u200b\uff08SIGINT\uff09\uff0c\u200b\u5373\u4f7f\u200b\u6536\u5230\u200b\u4e2d\u65ad\u200b\u4fe1\u53f7\u200b\u4e5f\u200b\u7ee7\u7eed\u200b\u8fd0\u884c\u200b\u3002 -p\uff1a\u200b\u4f7f\u7528\u200b\u539f\u59cb\u6570\u636e\u200b\u5757\u200b\u5927\u5c0f\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u6309\u884c\u200b\u7f13\u51b2\u200b\u8f93\u51fa\u200b\u3002 -u\uff1a\u200b\u7981\u7528\u200b\u8f93\u51fa\u200b\u7f13\u51b2\u533a\u200b\uff0c\u200b\u7acb\u5373\u200b\u5c06\u200b\u6570\u636e\u200b\u5199\u5165\u200b\u6587\u4ef6\u200b\u3002

            touch [OPTION]... FILE...\n
            \u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u7a7a\u200b\u6587\u4ef6\u200b\uff0c\u200b\u6216\u8005\u200b\u66f4\u65b0\u200b\u5df2\u200b\u5b58\u5728\u200b\u6587\u4ef6\u200b\u7684\u200b\u6700\u540e\u200b\u66f4\u6539\u200b\u65f6\u95f4\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4ec5\u200b\u66f4\u6539\u200b\u8bbf\u95ee\u200b\u65f6\u95f4\u200b\u3002 -c\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\u65f6\u624d\u200b\u521b\u5efa\u200b\u6587\u4ef6\u200b\u3002 -d\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b\u3002 -m\uff1a\u200b\u4ec5\u200b\u66f4\u6539\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u3002 -r\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b\u3002 -t\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b\u3002

            cat [OPTION]... [FILE]...\n
            \u200b\u5c06\u200b\u6587\u4ef6\u200b\u7684\u200b\u5185\u5bb9\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -n\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b\u3002 -b\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b\uff0c\u200b\u4f46\u200b\u4e0d\u200b\u5bf9\u200b\u7a7a\u884c\u200b\u7f16\u53f7\u200b\u3002 -s\uff1a\u200b\u5c06\u200b\u8fde\u7eed\u200b\u7684\u200b\u7a7a\u884c\u200b\u538b\u7f29\u6210\u200b\u4e00\u4e2a\u200b\u7a7a\u884c\u200b\u3002

            cp [OPTION]... SOURCE... DIRECTORY\ncp [OPTION]... SOURCE... DEST\ncp [OPTION]... -t DIRECTORY SOURCE...\n
            \u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u590d\u5236\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\uff0c\u200b\u6216\u8005\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u590d\u5236\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e2d\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4fdd\u7559\u200b\u6587\u4ef6\u200b\u7684\u200b\u6240\u6709\u200b\u5c5e\u6027\u200b\uff0c\u200b\u9012\u5f52\u200b\u590d\u5236\u200b\u76ee\u5f55\u200b\u3002 -i\uff1a\u200b\u5728\u200b\u8986\u76d6\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b\u3002 -r\uff1a\u200b\u9012\u5f52\u200b\u590d\u5236\u200b\u76ee\u5f55\u200b\u3002 -u\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6e90\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u6bd4\u200b\u76ee\u6807\u200b\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u8f83\u65b0\u65f6\u200b\u624d\u200b\u590d\u5236\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u590d\u5236\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

            mv [OPTION]... SOURCE... DIRECTORY\nmv [OPTION]... SOURCE... DEST\n
            \u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u79fb\u52a8\u200b\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\uff0c\u200b\u6216\u8005\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u91cd\u547d\u540d\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -i\uff1a\u200b\u5728\u200b\u8986\u76d6\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b\u3002 -u\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6e90\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u6bd4\u200b\u76ee\u6807\u200b\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u8f83\u65b0\u65f6\u200b\u624d\u200b\u79fb\u52a8\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u79fb\u52a8\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

            rm [OPTION]... FILE...\n
            \u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -f\uff1a\u200b\u5f3a\u5236\u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\uff0c\u200b\u4e0d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b\u3002 -i\uff1a\u200b\u5728\u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b\u3002 -r\uff1a\u200b\u9012\u5f52\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u5220\u9664\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

            ln [OPTION]... [-T] TARGET LINK_NAME\nln [OPTION]... TARGET\nln [OPTION]... TARGET... DIRECTORY\nln [OPTION]... -t DIRECTORY TARGET...\n
            \u200b\u521b\u5efa\u200b\u786c\u200b\u94fe\u63a5\u200b\u6216\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -s\uff1a\u200b\u521b\u5efa\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u521b\u5efa\u200b\u94fe\u63a5\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

            mkdir [OPTION]... DIRECTORY...\n
            \u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -m\uff1a\u200b\u8bbe\u7f6e\u200b\u76ee\u5f55\u200b\u7684\u200b\u6743\u9650\u200b\u3002 -p\uff1a\u200b\u9012\u5f52\u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

            rmdir [OPTION]... DIRECTORY...\n
            \u200b\u5220\u9664\u200b\u7a7a\u76ee\u5f55\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -p\uff1a\u200b\u9012\u5f52\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b\u3002 -v\uff1a\u200b\u663e\u793a\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b\u7684\u200b\u8fdb\u5ea6\u200b\u3002

            find [OPTION]... [PATH...] [EXPRESSION]\n
            \u200b\u5728\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\u67e5\u627e\u6587\u4ef6\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -name\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u540d\u200b\u67e5\u627e\u200b\u3002 -type\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u7c7b\u578b\u200b\u67e5\u627e\u200b\u3002 -size\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u5927\u5c0f\u200b\u67e5\u627e\u200b\u3002 -perm\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u200b\u6743\u9650\u200b\u67e5\u627e\u200b\u3002 -exec\uff1a\u200b\u5bf9\u200b\u67e5\u627e\u200b\u5230\u200b\u7684\u200b\u6587\u4ef6\u200b\u6267\u884c\u200b\u6307\u5b9a\u200b\u7684\u200b\u547d\u4ee4\u200b\u3002

            grep [OPTION]... PATTERN [FILE]...\n
            \u200b\u5728\u200b\u6587\u4ef6\u200b\u4e2d\u200b\u67e5\u627e\u200b\u5339\u914d\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -i\uff1a\u200b\u5ffd\u7565\u200b\u5927\u5c0f\u5199\u200b\u3002 -v\uff1a\u200b\u53cd\u5411\u200b\u5339\u914d\u200b\u3002 -n\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b\u3002 -c\uff1a\u200b\u8f93\u51fa\u200b\u5339\u914d\u200b\u7684\u200b\u884c\u6570\u200b\u3002 -r\uff1a\u200b\u9012\u5f52\u200b\u67e5\u627e\u200b\u3002

            alias [OPTION]... [NAME[=VALUE]]...\n
            \u200b\u521b\u5efa\u200b\u547d\u4ee4\u200b\u522b\u540d\u200b\u3002 \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -p\uff1a\u200b\u663e\u793a\u200b\u6240\u6709\u200b\u522b\u540d\u200b\u3002 -r\uff1a\u200b\u5220\u9664\u200b\u6307\u5b9a\u200b\u7684\u200b\u522b\u540d\u200b\u3002

            "},{"location":"Note/Missing%20Semester/Shell/#_6","title":"\u811a\u672c\u200b\u8bed\u6cd5","text":""},{"location":"Note/Missing%20Semester/Shell/#shebang","title":"SheBang","text":"

            Bash \u200b\u811a\u672c\u200b\u901a\u5e38\u200b\u4ee5\u200b shebang \u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b\u7684\u200b\u7b2c\u4e00\u884c\u200b\uff0c\u200b\u6307\u5b9a\u200b\u8981\u200b\u7528\u4e8e\u200b\u89e3\u91ca\u200b\u811a\u672c\u200b\u7684\u200b\u89e3\u91ca\u5668\u200b.\u200b\u5e38\u89c1\u200b\u7684\u200b shebang \u200b\u4e3a\u200b#!/bin/bash\uff0c\u200b\u8868\u793a\u200b\u4f7f\u7528\u200b Bash \u200b\u89e3\u91ca\u5668\u200b\u89e3\u91ca\u200b\u811a\u672c\u200b\u3002

            \u200b\u73af\u5883\u53d8\u91cf\u200b\u8def\u5f84\u200b

            \u200b\u5982\u679c\u200b\u8981\u200b\u5728\u200b\u811a\u672c\u200b\u4e2d\u200b\u4f7f\u7528\u200b shebang\uff0c\u200b\u6700\u597d\u200b\u4f7f\u7528\u200b#!/usr/bin/env bash\uff0c\u200b\u8fd9\u6837\u200b\u53ef\u4ee5\u200b\u907f\u514d\u200b\u4f7f\u7528\u200b\u7edd\u5bf9\u8def\u5f84\u200b\uff0c\u200b\u800c\u662f\u200b\u4f7f\u7528\u200b\u73af\u5883\u53d8\u91cf\u200b\u4e2d\u200b\u7684\u200b\u8def\u5f84\u200b\u3002

            "},{"location":"Note/Missing%20Semester/Shell/#_7","title":"\u53d8\u91cf","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u53d8\u91cf\u200b\u4e0d\u200b\u9700\u8981\u200b\u58f0\u660e\u200b\uff0c\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\u5373\u53ef\u200b.\u200b\u53d8\u91cf\u540d\u200b\u548c\u200b\u7b49\u200b\u53f7\u200b\u4e4b\u95f4\u200b\u4e0d\u80fd\u200b\u6709\u200b\u7a7a\u683c\u200b\uff0c\u200b\u7b49\u200b\u53f7\u200b\u540e\u9762\u200b\u7684\u200b\u503c\u200b\u4e0d\u80fd\u200b\u4f7f\u7528\u200b\u7a7a\u683c\u200b\u5305\u56f4\u200b.\u200b\u53d8\u91cf\u540d\u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b\u5927\u5199\u5b57\u6bcd\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e0d\u662f\u200b\u5fc5\u987b\u200b\u7684\u200b\u3002

            "},{"location":"Note/Missing%20Semester/Shell/#_8","title":"\u547d\u4ee4\u200b\u66ff\u6362","text":"

            \u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7528\u4e8e\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b.\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7684\u200b\u8bed\u6cd5\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a

            • `command`
            • $(command)
            "},{"location":"Note/Missing%20Semester/Shell/#_9","title":"\u8fdb\u7a0b\u200b\u66ff\u6362","text":"

            \u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u7528\u4e8e\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u4f5c\u4e3a\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u53c2\u6570\u200b.\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u7684\u200b\u8bed\u6cd5\u200b\u4e3a\u200b<(command). \u200b\u53ef\u4ee5\u200b\u5c06\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u770b\u4f5c\u200b\u662f\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7684\u200b\u7279\u6b8a\u200b\u5f62\u5f0f\u200b\uff0c\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b\uff0c\u200b\u800c\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u4f5c\u4e3a\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u53c2\u6570\u200b\u3002

            \u200b\u4f8b\u5982\u200b\uff1afiles=$(ls)

            "},{"location":"Note/Missing%20Semester/Shell/#_10","title":"\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55","text":"

            \u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u7528\u4e8e\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u5b57\u7b26\u4e32\u200b\u5217\u8868\u200b.\u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u7684\u200b\u8bed\u6cd5\u200b\u4e3a\u200b{string1\uff0cstring2\uff0c...}.

            \u200b\u4f8b\u5982\u200b\uff1aecho {1..10}

            \u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b\u7b1b\u5361\u5c14\u200b\u79ef\u200b\u8fd0\u7b97\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u4e3a\u200b{string1\uff0cstring2\uff0c...}{string1\uff0cstring2\uff0c...}.

            "},{"location":"Note/Missing%20Semester/Shell/#_11","title":"\u901a\u914d\u7b26","text":"

            \u200b\u901a\u914d\u7b26\u200b\u7528\u4e8e\u200b\u5339\u914d\u200b\u6587\u4ef6\u540d\u200b.\u200b\u5e38\u89c1\u200b\u7684\u200b\u901a\u914d\u7b26\u200b\u5305\u62ec\u200b\uff1a

            • *\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u6570\u91cf\u200b\u7684\u200b\u4efb\u610f\u200b\u5b57\u7b26\u200b\u3002
            • ?\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u7b26\u200b\u3002
            • [characters]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u5b57\u7b26\u96c6\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
            • [!characters]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u5b57\u7b26\u96c6\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
            • [[:class:]]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u5b57\u7b26\u200b\u7c7b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
            • [^class]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u5b57\u7b26\u200b\u7c7b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
            • [x-y]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u8303\u56f4\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
            • [^x-y]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u8303\u56f4\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b\u3002
            • [:alnum:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b\u6216\u200b\u6570\u5b57\u200b\u3002
            • [:alpha:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b\u3002
            • [:blank:]\uff1a\u200b\u5339\u914d\u200b\u7a7a\u683c\u200b\u6216\u200b\u5236\u8868\u7b26\u200b\u3002
            • [:digit:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u6570\u5b57\u200b\u3002
            • [:lower:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c0f\u5199\u5b57\u6bcd\u200b\u3002
            • [:upper:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5927\u5199\u5b57\u6bcd\u200b\u3002
            • [:space:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u7a7a\u767d\u200b\u5b57\u7b26\u200b\u3002
            • [:punct:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u6807\u70b9\u7b26\u53f7\u200b\u3002
            • [:word:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b\u3001\u200b\u6570\u5b57\u200b\u6216\u200b\u4e0b\u5212\u7ebf\u200b\u3002
            • [:xdigit:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5341\u516d\u8fdb\u5236\u200b\u6570\u5b57\u200b\u3002
            • [:graph:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u56fe\u5f62\u200b\u5b57\u7b26\u200b\u3002
            • [:print:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u53ef\u200b\u6253\u5370\u200b\u5b57\u7b26\u200b\u3002
            • [:cntrl:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u63a7\u5236\u5b57\u7b26\u200b\u3002
            • [:ascii:]\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b ASCII \u200b\u5b57\u7b26\u200b\u3002
            "},{"location":"Note/Missing%20Semester/Shell/#_12","title":"\u7b97\u672f\u200b\u8fd0\u7b97","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u7b97\u672f\u200b\u8fd0\u7b97\u200b\u4f7f\u7528\u200b$((expression))\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho $((1+1))

            "},{"location":"Note/Missing%20Semester/Shell/#_13","title":"\u903b\u8f91\u8fd0\u7b97","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u903b\u8f91\u8fd0\u7b97\u200b\u4f7f\u7528\u200b&&\u3001||\u200b\u548c\u200b!\uff0c\u200b\u4f8b\u5982\u200b\uff1a[ -d /tmp ] && echo \"Directory exists\"

            "},{"location":"Note/Missing%20Semester/Shell/#_14","title":"\u6761\u4ef6\u200b\u5224\u65ad","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u6761\u4ef6\u200b\u5224\u65ad\u200b\u4f7f\u7528\u200bif\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a

            if [[ condition ]]; then\n    #statements\nelif [[ condition ]]; then\n    #statements\nelse\n    #statements\nfi\n
            "},{"location":"Note/Missing%20Semester/Shell/#_15","title":"\u5faa\u73af","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u5faa\u73af\u200b\u4f7f\u7528\u200bfor\u200b\u548c\u200bwhile\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a

            for (( i = 0; i < 10; i++ )); do\n    #statements\ndone\n\nfor i in {1..10}; do\n    #statements\ndone\n\nfor i in $(ls); do\n    #statements\ndone\n\nwhile [[ condition ]]; do\n    #statements\ndone\n
            "},{"location":"Note/Missing%20Semester/Shell/#_16","title":"\u51fd\u6570","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u51fd\u6570\u200b\u4f7f\u7528\u200bfunction\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a

            function name {\n    #statements\n}\n
            "},{"location":"Note/Missing%20Semester/Shell/#_17","title":"\u6570\u7ec4","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u6570\u7ec4\u200b\u4f7f\u7528\u200barray=(element1 element2 element3)\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aarray=(1 2 3) \u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200barray[index]\u200b\u8bed\u6cd5\u200b\u8bbf\u95ee\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[1]} \u200b\u6570\u7ec4\u200b\u957f\u5ea6\u200b\u4f7f\u7528\u200b${#array[@]}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${#array[@]} \u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200b${array[@]:index:length}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[@]:1:2}\uff0c\u200b\u8fd9\u4f1a\u200b\u83b7\u53d6\u200b\u6570\u7ec4\u200b\u4e2d\u200b\u4ece\u200b\u7b2c\u4e8c\u4e2a\u200b\u5143\u7d20\u200b\u5f00\u59cb\u200b\u7684\u200b\u4e24\u4e2a\u200b\u5143\u7d20\u200b \u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200b${array[@]/pattern/string}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[@]/2/4}\uff0c\u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u6570\u7ec4\u200b\u4e2d\u200b\u7684\u200b\u6240\u6709\u200b 2 \u200b\u66ff\u6362\u200b\u4e3a\u200b 4

            "},{"location":"Note/Missing%20Semester/Shell/#_18","title":"\u5b57\u7b26\u4e32","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b'string'\u200b\u6216\u8005\u200b\"string\"\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho 'Hello World!' \u200b\u5b57\u7b26\u4e32\u200b\u957f\u5ea6\u200b\u4f7f\u7528\u200b${#string}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${#string} \u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b${string:position:length}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${string:1:2} \u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b${string/substring/replacement}\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${string/Hello/Hi}\uff0c\u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u5b57\u7b26\u4e32\u200b\u4e2d\u200b\u7684\u200b\u7b2c\u4e00\u4e2a\u200b Hello \u200b\u66ff\u6362\u200b\u4e3a\u200b Hi

            "},{"location":"Note/Missing%20Semester/Shell/#here","title":"Here \u200b\u6587\u6863","text":"

            Here \u200b\u6587\u6863\u200b\u7528\u4e8e\u200b\u5c06\u200b\u591a\u884c\u200b\u6587\u672c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b\u3002

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u6587\u6863\u200b\u4f7f\u7528\u200b<<\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a

            read -d '' string <<EOF\nHello\nWorld!\nEOF\necho \"$string\"\n
            \u200b\u8fd9\u4f1a\u200b\u5c06\u200b Hello World!\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b string

            "},{"location":"Note/Missing%20Semester/Shell/#here_1","title":"Here \u200b\u5b57\u7b26\u4e32","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b<<<\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1acat <<<\"Hello World!\"

            "},{"location":"Note/Missing%20Semester/Shell/#here_2","title":"Here \u200b\u811a\u672c","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u811a\u672c\u200b\u4f7f\u7528\u200b<<-\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a

            cat <<-EOF\n    Hello\n    World!\nEOF\n

            "},{"location":"Note/Missing%20Semester/Shell/#_19","title":"\u8f93\u5165","text":"

            Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u8f93\u5165\u200b\u4f7f\u7528\u200bread\u200b\u8bed\u53e5\u200b \u200b\u5176\u200b\u53c2\u6570\u200b\u5305\u62ec\u200b\uff1a - -p\uff1a\u200b\u63d0\u793a\u7b26\u200b - -n\uff1a\u200b\u8bfb\u53d6\u200b\u7684\u200b\u5b57\u7b26\u200b\u6570\u200b - -t\uff1a\u200b\u8d85\u65f6\u200b\u65f6\u95f4\u200b - -s\uff1a\u200b\u4e0d\u200b\u56de\u663e\u200b\u8f93\u5165\u200b\u7684\u200b\u5b57\u7b26\u200b - -a\uff1a\u200b\u5c06\u200b\u8f93\u5165\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u6570\u7ec4\u200b - -d\uff1a\u200b\u5206\u9694\u7b26\u200b - -r\uff1a\u200b\u4e0d\u200b\u5bf9\u200b\u53cd\u200b\u659c\u6760\u200b\u8fdb\u884c\u200b\u8f6c\u4e49\u200b - -e\uff1a\u200b\u4f7f\u7528\u200b Readline \u200b\u5e93\u200b - -i\uff1a\u200b\u9ed8\u8ba4\u503c\u200b - -u\uff1a\u200b\u8f93\u5165\u200b\u7684\u200b\u6587\u4ef6\u200b\u63cf\u8ff0\u7b26\u200b

            \u200b\u4f8b\u5982\u200b\uff1a

            read -p \"Enter your name: \" name\necho \"Hello $name\"\n

            "},{"location":"Note/Missing%20Semester/Vim/","title":"Vim \uff08Revisited\uff09","text":"

            \u200b\u7ea6\u200b 758 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

            \u200b\u91cd\u5199\u200b\u8fd9\u7bc7\u200b\u7b14\u8bb0\u200b\u7684\u200b\u65f6\u5019\u200b\u6211\u200b\u5df2\u7ecf\u200b\u7528\u200b\u4e86\u200b\u4e00\u6bb5\u65f6\u95f4\u200b vim\uff0c\u200b\u7b14\u8bb0\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u8fc7\u4e8e\u200b\u7b80\u7565\u200b\uff0c\u200b\u8be6\u7ec6\u200b\u53ef\u200b\u53c2\u8003\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b

            "},{"location":"Note/Missing%20Semester/Vim/#_1","title":"\u57fa\u7840","text":""},{"location":"Note/Missing%20Semester/Vim/#_2","title":"\u6a21\u5f0f","text":"

            \u200b\u6211\u4eec\u200b\u5199\u200b\u4ee3\u7801\u200b\u4e8b\u200b\u5e76\u200b\u4e0d\u200b\u4e00\u76f4\u200b\u90fd\u200b\u662f\u200b\u8fde\u7eed\u200b\u7684\u200b\u8f93\u5165\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u8df3\u8f6c\u200b\u5230\u200b\u67d0\u4e2a\u200b\u5730\u65b9\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u505a\u200b\u4e9b\u5c0f\u200b\u4fee\u6539\u200b\u66ff\u6362\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u9605\u8bfb\u200b\u4ee3\u7801\u200b\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u8fde\u7eed\u200b\u8f93\u5165\u200b\u3002 \u200b\u4e3a\u6b64\u200b\uff0cvim \u200b\u4f7f\u7528\u200b\u4e0d\u540c\u200b\u6a21\u5f0f\u200b\u6765\u200b\u4fbf\u5229\u200b\u5404\u4e2a\u200b\u4e0d\u540c\u200b\u76ee\u7684\u200b\u7684\u200b\u64cd\u4f5c\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u76f8\u540c\u200b\u7684\u200b\u952e\u200b\u5728\u200b\u4e0d\u540c\u200b\u6a21\u5f0f\u200b\u4e0b\u200b\u610f\u4e49\u200b\u4e0d\u540c\u200b\u3002

            vim \u200b\u4e2d\u200b\u6700\u200b\u5e38\u7528\u200b\u7684\u200b\u6a21\u5f0f\u200b\u6709\u200b

            normalinsertreplacevisualcommand-line

            \u200b\u9ed8\u8ba4\u200b\u521d\u59cb\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u4efb\u4f55\u200b\u6a21\u5f0f\u200b\u90fd\u200b\u53ef\u4ee5\u200b\u6309\u200b\u56de\u5230\u200b normal.\u200b\u9605\u8bfb\u200b\u6a21\u5f0f\u200b

            i\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u8fde\u7eed\u200b\u7684\u200b\u8f93\u5165\u200b\uff0c\u200b\u53ea\u7528\u200b i \u200b\u53ef\u4ee5\u200b\u65e0\u7f1d\u200b\u9000\u5316\u200b\u56de\u200b\u539f\u5148\u200b\u4ec0\u4e48\u200b\u529f\u80fd\u200b\u90fd\u200b\u6ca1\u6709\u200b\u7684\u200b\u7f16\u8f91\u5668\u200b.\u200b\u8f93\u5165\u200b\u6a21\u5f0f\u200b

            R\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u8fde\u7eed\u200b\u7684\u200b\u66ff\u6362\u200b.\u200b\u66ff\u6362\u200b\u6a21\u5f0f\u200b

            v\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u9009\u62e9\u200b\uff0cV \u200b\u8fdb\u5165\u200b\u884c\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u6309\u884c\u200b\u9009\u62e9\u200b\uff0c C-v \u200b\u8fdb\u5165\u200b\u5757\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u6309\u200b\u4efb\u610f\u200b\u8fb9\u957f\u200b\u9009\u62e9\u200b\u957f\u65b9\u5f62\u200b.\u200b\u9009\u62e9\u200b\u6a21\u5f0f\u200b

            :\u200b\u8fdb\u5165\u200b\uff0c\u200b\u5904\u7406\u200b\u547d\u4ee4\u884c\u200b\u64cd\u4f5c\u200b\uff08\u200b\u6700\u200b\u57fa\u672c\u200b\u7684\u200b\u6709\u200b :w \u200b\u4fdd\u5b58\u200b :q \u200b\u9000\u51fa\u200b :wq \u200b\u4fdd\u5b58\u200b\u9000\u51fa\u200b :q!\u200b\u5f3a\u5236\u200b\u9000\u51fa\u200b\uff09.\u200b\u547d\u4ee4\u884c\u200b\u6a21\u5f0f\u200b

            "},{"location":"Note/Missing%20Semester/Vim/#_3","title":"\u7ed3\u6784","text":"

            \u200b\u4e00\u4e2a\u200b Vim \u200b\u8fdb\u7a0b\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b\u6807\u7b7e\u200b\u9875\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u6807\u7b7e\u200b\u9875\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b\u7a97\u53e3\u200b\uff0c\u200b\u800c\u200b\u4e00\u4e2a\u200b\u7a97\u53e3\u200b\u50cf\u200b\u53ea\u200b\u773c\u775b\u200b\u770b\u200b\u5411\u200b\u4e00\u4e2a\u200b\u7279\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b(Buffer)

            "},{"location":"Note/Missing%20Semester/Vim/#_4","title":"\u64cd\u4f5c","text":"

            Normal move

            • \u200b\u4e0a\u4e0b\u5de6\u53f3\u200b\uff1ahjkl
            • \u200b\u4ee5\u200b\u5355\u8bcd\u200b\u4e3a\u754c\u200b\uff1aw \uff08\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u5355\u8bcd\u200b\uff09\uff0c b \uff08\u200b\u5355\u8bcd\u200b\u5f00\u5934\u200b\uff09\uff0c e \uff08\u200b\u5355\u8bcd\u200b\u7ed3\u5c3e\u200b\uff09
            • \u200b\u4ee5\u200b\u884c\u4e3a\u200b\u754c\u200b\uff1a0 \uff08\u200b\u884c\u200b\u5f00\u5934\u200b\uff09\uff0c ^ \uff08\u200b\u884c\u200b\u9996\u4e2a\u200b\u975e\u200b\u7a7a\u5b57\u7b26\u200b\uff09\uff0c $ \uff08\u200b\u884c\u5c3e\u200b\uff09
            • \u200b\u4ee5\u5c4f\u200b\u4e3a\u754c\u200b\uff1aH \uff08\u200b\u5c4f\u5e55\u200b\u5f00\u5934\u200b\uff09\uff0c M \uff08\u200b\u5c4f\u5e55\u200b\u4e2d\u95f4\u200b\uff09\uff0c L \uff08\u200b\u5c4f\u5e55\u200b\u5e95\u90e8\u200b\uff09
            • \u200b\u6eda\u52a8\u200b\uff1aCtrl-u \uff08\u200b\u4e0a\u200b\uff09\uff0c Ctrl-d \uff08\u200b\u4e0b\u200b\uff09
            • \u200b\u4ee5\u200b\u6587\u4ef6\u200b\u4e3a\u754c\u200b\uff1agg \uff08\u200b\u6587\u4ef6\u200b\u5f00\u5934\u200b\uff09\uff0c G \uff08\u200b\u6587\u4ef6\u200b\u5c3e\u200b\uff09\uff0c G\uff08\u200b\u5bf9\u5e94\u200b\u884c\u200b\uff09
            • \u200b\u4ee5\u200b\u5de6\u53f3\u200b\u4e3a\u754c\u200b\uff1a% \uff08\u200b\u5bf9\u5e94\u200b\u7684\u200b\u53e6\u4e00\u534a\u200b\u62ec\u53f7\u200b\u6216\u8005\u200b\u7c7b\u4f3c\u200b\u7684\u200b\uff09
            • \u200b\u884c\u5185\u200b\u5bfb\u627e\u200b\uff1af{character}\uff0c t{character}\uff0c F{cracter}\uff0c T{character} \u200b\u5c0f\u5199\u200b\u5f80\u540e\u200b\u5927\u5199\u200b\u5f80\u524d\u200b
            • \u200b\u641c\u7d22\u200b\uff1a/{regex}\uff0c?{regex} \u200b\u5f80\u540e\u200b\u5f80\u524d\u200b\u641c\u7d22\u200b \uff0c\u200b\u6309\u200b n \u200b\u7ee7\u7eed\u200b\u641c\u4e0b\u200b\u4e00\u4e2a\u200b\uff0c\u200b\u6309\u200b N \u200b\u53cd\u5411\u200b\u7ee7\u7eed\u200b
            • Normal edit

              • o / O \uff1a\u200b\u5728\u200b\u4e0b\u200b/\u200b\u4e0a\u200b\u65b0\u5efa\u200b\u4e00\u884c\u200b\u5e76\u200b\u8fdb\u5165\u200b\u63d2\u5165\u200b\u6a21\u5f0f\u200b
              • d{motion} \uff1a\u200b\u6309\u7167\u200b motion \u200b\u5220\u9664\u200b\uff0cmotion \u200b\u89c1\u200b move \u200b\u90e8\u5206\u200b
              • c{motion} \uff1a\u200b\u6bd4\u200b d{motion}\u200b\u591a\u200b\u4e00\u6b65\u200b\u8fdb\u5165\u200b\u63d2\u5165\u200b\u6a21\u5f0f\u200b
              • x \uff1a \u200b\u5220\u9664\u200b\u5f53\u524d\u200b\u5149\u6807\u200b\u5b57\u7b26\u200b
              • s \uff1a \u200b\u4ee5\u200b\u4ee3\u66ff\u200b\u5f53\u200b\u5149\u6807\u200b\u5b57\u7b26\u200b
              • Visual mode + manipulation \uff1a \u200b\u8fd9\u4e9b\u200b\u64cd\u4f5c\u200b\u4e5f\u200b\u9002\u7528\u200b\u4e8e\u200b\u9009\u62e9\u200b\u6a21\u5f0f\u200b\u9009\u4e2d\u200b\u540e\u200b
              • u \u200b\u64a4\u56de\u200b\uff0c \u200b\u53d6\u6d88\u200b\u64a4\u56de\u200b
              • y \u200b\u590d\u5236\u200b
              • p \u200b\u7c98\u8d34\u200b
              • manipulation \uff1a \u200b\u91cd\u590d\u200b\u6b21\u200b\u64cd\u4f5c\u200b
              • i/a \uff1a inside/around \uff0c\u200b\u5728\u200b\u4ec0\u4e48\u200b\u4e4b\u5185\u200b/\u200b\u5468\u56f4\u200b\u64cd\u4f5c\u200b.\u200b\u4f8b\u5982\u200b\uff1adi( \u200b\u5728\u200b\uff08\uff09\u200b\u4e4b\u5185\u200b\u5220\u9664\u200b\uff1bda( \u200b\u5305\u62ec\u200b\uff08\uff09\u200b\u5220\u9664\u200b
              • Commandline mode

                • :w \u200b\u4fdd\u5b58\u200b
                • :q \u200b\u9000\u51fa\u200b
                • :wq \u200b\u4fdd\u5b58\u200b\u9000\u51fa\u200b
                • :q! \u200b\u5f3a\u5236\u200b\u9000\u51fa\u200b
                • :e \u200b\u6253\u5f00\u200b\u6587\u4ef6\u200b
                • :s// \u200b\u4e00\u884c\u200b\u7b2c\u4e00\u4e2a\u200b\u66ff\u6362\u200b
                • :s///g \u200b\u5168\u884c\u200b\u66ff\u6362\u200b
                • :s///gc \u200b\u5168\u884c\u200b\u66ff\u6362\u200b\u5e76\u200b\u8be2\u95ee\u200b
                • :%s///g \u200b\u5168\u200b\u6587\u4ef6\u200b\u66ff\u6362\u200b
                • :\uff0c s///g \u200b\u4ece\u200b\u7b2c\u884c\u200b\u5230\u200b\u7b2c\u884c\u200b\u66ff\u6362"},{"location":"Note/Missing%20Semester/Vim/#advanced-vim","title":"Advanced Vim","text":"
                  • Vim \u200b\u662f\u200b\u9ad8\u5ea6\u200b\u53ef\u200b\u5b9a\u5236\u200b\u5316\u200b\u7684\u200b.\u200b\u53ea\u8981\u200b\u8981\u200b\u6539\u53d8\u200b\u7528\u6237\u200b\u76ee\u5f55\u200b\u4e0b\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u5373\u53ef\u200b(~/.vimrc).\u200b\u4e5f\u200b\u53ef\u200b\u53c2\u8003\u200b\u6211\u200b\u975e\u5e38\u7b80\u5355\u200b\u7684\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b
                  • Vim \u200b\u4e5f\u200b\u6709\u200b\u8bb8\u591a\u200b\u4f18\u8d28\u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u6211\u200b\u51e0\u4e4e\u200b\u6ca1\u6709\u200b\u6dfb\u52a0\u200b\u4efb\u4f55\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u800c\u662f\u200b\u628a\u200b Vim \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u63d2\u4ef6\u200b\u5728\u200b VSCode \u200b\u4e0a\u200b\u4f7f\u7528\u200b
                  "},{"location":"Note/Missing%20Semester/commandline_env/","title":"Commandline Enviroment","text":"

                  \u200b\u7ea6\u200b 1800 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 6 \u200b\u5206\u949f\u200b

                  \u200b\u8bb0\u5f55\u200b missing semester\u200b\u6b64\u5802\u200b\u8bfe\u200b\u7684\u200b\u4e00\u4e9b\u200b\u7b14\u8bb0\u200b

                  "},{"location":"Note/Missing%20Semester/commandline_env/#job-control","title":"Job Control","text":"

                  \u200b\u7ec8\u7aef\u200b\u7684\u200b\u4f5c\u4e1a\u63a7\u5236\u200b\uff08Job Control\uff09\u200b\u662f\u200b\u4e00\u79cd\u200b\u5728\u200b\u547d\u4ee4\u884c\u200b\u73af\u5883\u200b\u4e0b\u200b\u7ba1\u7406\u200b\u548c\u200b\u63a7\u5236\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff08Job\uff09\u200b\u7684\u200b\u673a\u5236\u200b.\u200b\u5b83\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e00\u4e9b\u200b\u547d\u4ee4\u200b\u548c\u200b\u6280\u672f\u200b\uff0c\u200b\u4f7f\u200b\u7528\u6237\u200b\u80fd\u591f\u200b\u5728\u200b\u7ec8\u7aef\u200b\u540c\u65f6\u200b\u8fd0\u884c\u200b\u591a\u4e2a\u200b\u547d\u4ee4\u200b\uff0c\u200b\u5e76\u200b\u5728\u200b\u9700\u8981\u200b\u65f6\u200b\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u7ba1\u7406\u200b\u3002

                  \u200b\u4f5c\u4e1a\u200b

                  \u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\uff08Foreground Job\uff09\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\uff08Background Job\uff09\u200b\u4f5c\u4e1a\u72b6\u6001\u200b\u548c\u200b\u4fe1\u53f7\u200b

                  \u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u6d3b\u52a8\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u5b83\u4f1a\u200b\u5728\u200b\u7ec8\u7aef\u200b\u663e\u793a\u200b\u5176\u200b\u8f93\u51fa\u200b\uff0c\u200b\u5e76\u200b\u5360\u7528\u200b\u7ec8\u7aef\u200b\u7684\u200b\u8f93\u5165\u200b.\u200b\u53ea\u6709\u200b\u5f53\u524d\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\u6216\u200b\u88ab\u200b\u6682\u505c\u200b\u65f6\u200b\uff0c\u200b\u624d\u80fd\u200b\u6267\u884c\u200b\u5176\u4ed6\u200b\u547d\u4ee4\u200b\u3002

                  \u200b\u540e\u53f0\u4f5c\u4e1a\u200b\u662f\u200b\u5728\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u5b83\u200b\u4e0d\u4f1a\u200b\u5360\u7528\u200b\u7ec8\u7aef\u200b\u7684\u200b\u8f93\u5165\u200b\u548c\u200b\u8f93\u51fa\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u7279\u6b8a\u5b57\u7b26\u200b & \u200b\u5c06\u200b\u547d\u4ee4\u200b\u653e\u7f6e\u200b\u5728\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b\uff0c\u200b\u4ece\u800c\u200b\u5141\u8bb8\u200b\u540c\u65f6\u200b\u8fd0\u884c\u200b\u591a\u4e2a\u200b\u547d\u4ee4\u200b\u3002

                  \u200b\u6bcf\u4e2a\u200b\u4f5c\u4e1a\u200b\u90fd\u200b\u5177\u6709\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\uff0c\u200b\u5982\u200b\u8fd0\u884c\u200b\u4e2d\u200b\u3001\u200b\u505c\u6b62\u200b\u6216\u200b\u5b8c\u6210\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4fe1\u53f7\u200b\u6765\u200b\u63a7\u5236\u200b\u4f5c\u4e1a\u200b\u7684\u200b\u884c\u4e3a\u200b\uff0c\u200b\u5982\u200b Ctrl-C\uff08\u200b\u4e2d\u65ad\u200b\u4f5c\u4e1a\u200b\uff09\u200b\u548c\u200b Ctrl-D\uff08\u200b\u7ed3\u675f\u200b\u4f5c\u4e1a\u200b\u8f93\u5165\u200b\uff09.

                  \u200b\u4f5c\u4e1a\u63a7\u5236\u200b\u547d\u4ee4\u200b

                  jobsfgbgkillman signalCtrl-CCtrl-Z

                  jobs \u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5217\u51fa\u200b\u5f53\u524d\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b.\u200b\u6bcf\u4e2a\u200b\u4f5c\u4e1a\u200b\u90fd\u200b\u6709\u200b\u4e00\u4e2a\u200b\u552f\u4e00\u200b\u7684\u200b ID\uff0c\u200b\u524d\u9762\u200b\u5e26\u6709\u200b\u4e00\u4e2a\u200b + \u200b\u53f7\u200b\u7684\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u7684\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u524d\u9762\u200b\u5e26\u6709\u200b\u4e00\u4e2a\u200b - \u200b\u53f7\u200b\u7684\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u7684\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\u3002

                  fg \u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5c06\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\u5207\u6362\u200b\u5230\u200b\u524d\u53f0\u200b\u8fd0\u884c\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b % \u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\u3002

                  bg \u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5c06\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u5207\u6362\u200b\u5230\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b % \u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\u3002

                  kill \u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5411\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b\u4fe1\u53f7\u200b.\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0ckill \u200b\u547d\u4ee4\u200b\u4f1a\u200b\u53d1\u9001\u200b SIGTERM \u200b\u4fe1\u53f7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b -SIGNAL \u200b\u9009\u9879\u200b\u6765\u200b\u6307\u5b9a\u200b\u4fe1\u53f7\u200b\u7c7b\u578b\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b % \u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\u3002

                  man signal \u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u67e5\u770b\u200b\u6240\u6709\u200b\u53ef\u4ee5\u200b\u53d1\u9001\u7ed9\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u4fe1\u53f7\u200b\u3002

                  Ctrl-C \u200b\u5feb\u6377\u952e\u200b\u7528\u4e8e\u200b\u5411\u524d\u200b\u53f0\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b SIGINT \u200b\u4fe1\u53f7\u200b\uff0c\u200b\u901a\u5e38\u200b\u7528\u4e8e\u200b\u7ec8\u6b62\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u3002

                  Ctrl-Z \u200b\u5feb\u6377\u952e\u200b\u7528\u4e8e\u200b\u5411\u524d\u200b\u53f0\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b SIGTSTP \u200b\u4fe1\u53f7\u200b\uff0c\u200b\u901a\u5e38\u200b\u7528\u4e8e\u200b\u6682\u505c\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u3002

                  "},{"location":"Note/Missing%20Semester/commandline_env/#terminal-multiplexer","title":"Terminal Multiplexer","text":"

                  \u200b\u9996\u5148\u200b\u7406\u89e3\u200b tmux \u200b\u7684\u200b\u81ea\u4e0a\u200b\u5411\u4e0b\u200b\u4e09\u4e2a\u200b\u4e0d\u540c\u200b\u5c42\u7ea7\u200b\uff1asession\uff0cwindow\uff0cpane

                  sessionwindowpane

                  session \u200b\u662f\u200b tmux \u200b\u7684\u200b\u6700\u9ad8\u200b\u5c42\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b tmux \u200b\u7684\u200b\u5b9e\u4f8b\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b session\uff0c\u200b\u6bcf\u4e2a\u200b session \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b window\uff0c\u200b\u6bcf\u4e2a\u200b window \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty

                  window \u200b\u662f\u200b session \u200b\u7684\u200b\u7b2c\u4e8c\u5c42\u200b\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b\u7ec8\u7aef\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b window\uff0c\u200b\u6bcf\u4e2a\u200b window \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty

                  pane \u200b\u662f\u200b window \u200b\u7684\u200b\u7b2c\u4e09\u5c42\u200b\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b\u5206\u5c4f\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty

                  "},{"location":"Note/Missing%20Semester/commandline_env/#session","title":"\u65b0\u5efa\u200b\u4e00\u4e2a\u200b session","text":"tmuxtmux new -t NAMEtmux a NAMEtmux lsCtrl-b d

                  \u200b\u76f4\u63a5\u200b\u8fdb\u5165\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b session

                  \u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u540d\u4e3a\u200b NAME \u200b\u7684\u200b session

                  \u200b\u91cd\u65b0\u200b\u8fde\u63a5\u200b\u5230\u200b\u540d\u4e3a\u200b NAME \u200b\u7684\u200b session

                  \u200b\u5217\u51fa\u200b\u6240\u6709\u200b session

                  detach \u200b\u5f53\u524d\u200b session

                  "},{"location":"Note/Missing%20Semester/commandline_env/#session_1","title":"session \u200b\u4ee5\u5185\u200b\u7684\u200b\u64cd\u4f5c","text":"C-b cC-b n/p/NUMBERC-b \uff0cC-b &

                  \u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b window

                  \u200b\u5207\u6362\u200b\u5230\u200b\u4e0b\u200b\u4e00\u4e2a\u200b/\u200b\u4e0a\u200b\u4e00\u4e2a\u200b/\u200b\u7b2c\u200b x \u200b\u4e2a\u200b window

                  \u200b\u91cd\u547d\u540d\u200b\u5f53\u524d\u200b window

                  \u200b\u5173\u95ed\u200b\u5f53\u524d\u200b window

                  "},{"location":"Note/Missing%20Semester/commandline_env/#window","title":"window \u200b\u4ee5\u5185\u200b\u7684\u200b\u64cd\u4f5c","text":"C-b \\\"C-b %C-b oC-b xC-b zC-b ARROWC-b SPACE

                  \u200b\u4e0a\u4e0b\u200b\u5206\u88c2\u200b pane\uff0c\u200b\u8fd9\u4f1a\u200b\u662f\u200b\u65b0\u200b\u7684\u200b\u8fdb\u7a0b\u200b\u548c\u200b\u65b0\u200b\u7684\u200b tty

                  \u200b\u5de6\u53f3\u200b\u5206\u88c2\u200b pane

                  \u200b\u5207\u6362\u200b\u5230\u200b\u4e0b\u200b\u4e00\u4e2a\u200b pane

                  \u200b\u5173\u95ed\u200b\u5f53\u524d\u200b pane

                  \u200b\u653e\u5927\u200b\u7f29\u5c0f\u200b\u5f53\u524d\u200b pane

                  \u200b\u5728\u200b pane \u200b\u4e4b\u95f4\u200b\u79fb\u52a8\u200b

                  \u200b\u4e00\u952e\u200b\u5207\u6362\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u5e03\u5c40\u200b\u6a21\u5f0f\u200b

                  "},{"location":"Note/Missing%20Semester/commandline_env/#dotfiles","title":"Dotfiles","text":"

                  Dotfile \u200b\u662f\u200b\u4ee5\u70b9\u200b\uff08.\uff09\u200b\u5f00\u5934\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u5728\u200b Unix-like \u200b\u7cfb\u7edf\u200b\u4e2d\u200b\u88ab\u200b\u5e7f\u6cdb\u200b\u4f7f\u7528\u200b.\u200b\u5b83\u4eec\u200b\u901a\u5e38\u200b\u4f4d\u4e8e\u200b\u7528\u6237\u200b\u7684\u200b\u4e3b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b58\u50a8\u200b\u4e2a\u4eba\u5316\u200b\u548c\u200b\u81ea\u5b9a\u4e49\u200b\u7684\u200b\u914d\u7f6e\u200b\u9009\u9879\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5176\u4ed6\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u548c\u200b\u5de5\u5177\u200b\u7684\u200b\u8bbe\u7f6e\u200b\u3002

                  Dotfile \u200b\u7684\u200b\u540d\u79f0\u200b\u4ee5\u200b\u4e00\u4e2a\u200b\u6216\u200b\u591a\u4e2a\u200b\u70b9\u200b\u5f00\u5934\u200b\uff0c\u200b\u4f8b\u5982\u200b .bashrc\u3001.vimrc\u3001.gitconfig \u200b\u7b49\u200b.\u200b\u7531\u4e8e\u200b\u5728\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0cUnix-like \u200b\u7cfb\u7edf\u200b\u4f1a\u200b\u5c06\u200b\u4ee5\u70b9\u200b\u5f00\u5934\u200b\u7684\u200b\u6587\u4ef6\u200b\u89c6\u4e3a\u200b\u9690\u85cf\u200b\u6587\u4ef6\u200b\uff0c\u200b\u56e0\u6b64\u200b\u8fd9\u4e9b\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u5728\u200b\u6587\u4ef6\u200b\u7ba1\u7406\u5668\u200b\u4e2d\u200b\u9ed8\u8ba4\u200b\u662f\u200b\u4e0d\u200b\u53ef\u89c1\u200b\u7684\u200b.\u200b\u4f46\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u7279\u5b9a\u200b\u7684\u200b\u9009\u9879\u200b\u6216\u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u548c\u200b\u7f16\u8f91\u200b\u5b83\u4eec\u200b\u3002

                  Dotfile \u200b\u7684\u200b\u7528\u9014\u200b\u56e0\u200b\u6587\u4ef6\u540d\u200b\u548c\u200b\u6240\u200b\u9488\u5bf9\u200b\u7684\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u800c\u5f02\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u4e9b\u200b\u5e38\u89c1\u200b\u7684\u200b\u4f8b\u5b50\u200b\uff1a

                  • .bashrc\uff1aBash Shell \u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b Shell \u200b\u7684\u200b\u884c\u4e3a\u200b\u548c\u200b\u73af\u5883\u53d8\u91cf\u200b\u3002
                  • .vimrc\uff1aVim \u200b\u6587\u672c\u7f16\u8f91\u200b\u5668\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b Vim \u200b\u7684\u200b\u7f16\u8f91\u5668\u200b\u8bbe\u7f6e\u200b\u548c\u200b\u63d2\u4ef6\u200b\u3002
                  • .gitconfig\uff1aGit \u200b\u7248\u672c\u200b\u63a7\u5236\u7cfb\u7edf\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u8bbe\u7f6e\u200b Git \u200b\u7684\u200b\u7528\u6237\u200b\u4fe1\u606f\u200b\u3001\u200b\u522b\u540d\u200b\u548c\u200b\u5176\u4ed6\u200b\u9009\u9879\u200b\u3002
                  • .ssh/config\uff1aSSH \u200b\u5ba2\u6237\u7aef\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u914d\u7f6e\u200b SSH \u200b\u8fde\u63a5\u200b\u7684\u200b\u4e3b\u673a\u200b\u548c\u200b\u9009\u9879\u200b\u3002
                  • .tmux.conf\uff1atmux \u200b\u7ec8\u7aef\u200b\u590d\u7528\u200b\u5de5\u5177\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b tmux \u200b\u7684\u200b\u4f1a\u200b\u8bdd\u200b\u548c\u200b\u7a97\u683c\u200b\u8bbe\u7f6e\u200b\u3002

                  \u200b\u901a\u8fc7\u200b\u7f16\u8f91\u200b\u548c\u200b\u5b9a\u5236\u200b Dotfile\uff0c\u200b\u7528\u6237\u200b\u53ef\u4ee5\u200b\u6309\u7167\u200b\u4e2a\u4eba\u200b\u504f\u597d\u200b\u548c\u200b\u9700\u6c42\u200b\u6765\u200b\u914d\u7f6e\u200b\u5404\u79cd\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u548c\u200b\u5de5\u5177\u200b.\u200b\u5b83\u4eec\u200b\u5141\u8bb8\u200b\u7528\u6237\u200b\u4fee\u6539\u200b\u9ed8\u8ba4\u8bbe\u7f6e\u200b\u3001\u200b\u6dfb\u52a0\u200b\u5feb\u6377\u952e\u200b\u3001\u200b\u5b9a\u4e49\u200b\u522b\u540d\u200b\u3001\u200b\u8bbe\u7f6e\u200b\u73af\u5883\u53d8\u91cf\u200b\u7b49\u200b\uff0c\u200b\u4ee5\u200b\u63d0\u5347\u200b\u5de5\u4f5c\u6548\u7387\u200b\u548c\u200b\u4e2a\u4eba\u5316\u200b\u4f53\u9a8c\u200b\u3002

                  ~/.zshrc \u200b\u662f\u200b zsh \u200b\u7684\u200b\u9ed8\u8ba4\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u6bcf\u6b21\u200b\u542f\u52a8\u200b zsh\uff0c\u200b\u90fd\u200b\u4f1a\u200b\u6267\u884c\u200b\u5176\u4e2d\u200b\u7684\u200b\u8bed\u53e5\u200b.\u200b\u6bd4\u5982\u200b\u4f60\u200b\u5728\u200b\u91cc\u9762\u200b\u5199\u200b\u4e0a\u200b\u4e00\u53e5\u200becho Hello\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u6bcf\u6b21\u200b\u542f\u52a8\u200b zsh \u200b\u7684\u200b\u65f6\u5019\u200b\u81ea\u52a8\u200b\u95ee\u5019\u200b\u4f60\u200b\u4e00\u53e5\u200b

                  \u200b\u5728\u200b github \u200b\u4e0a\u200b\u53ef\u4ee5\u200b\u627e\u5230\u200b\u8bb8\u591a\u200b\u4eba\u200b\u5206\u4eab\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e5f\u200b\u8d34\u200b\u4e0a\u200b\u6211\u200b\u81ea\u5df1\u200b\u7684\u200b

                  "},{"location":"Note/Missing%20Semester/commandline_env/#_1","title":"\u7b26\u53f7\u200b\u8fde\u63a5","text":"

                  \u200b\u5f88\u591a\u200b\u65f6\u5019\u200b\u628a\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u653e\u5728\u200b\uff5e\u200b\u76ee\u5f55\u200b\u4e0b\u200b\u5e76\u200b\u4e0d\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u597d\u200b\u6df7\u4e71\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u597d\u200b\u5efa\u7acb\u200b GitHub \u200b\u4ed3\u5e93\u200b\u8fdb\u884c\u200b\u7ba1\u7406\u200b\uff0c\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u7684\u200b\u8bfb\u53d6\u200b\u4f4d\u7f6e\u200b\u5f80\u5f80\u200b\u662f\u200b\u5b9a\u200b\u6b7b\u200b\u7684\u200b\uff0c\u200b\u79fb\u52a8\u200b\u5230\u200b\u522b\u5904\u200b\u5c31\u200b\u5931\u6548\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5229\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u6765\u200b\u6574\u7406\u200b\u4ed6\u4eec\u200b\u3002

                  ln -s TRUE_PATH VIRTUAL_PATH: \u200b\u8f6f\u200b\u8fde\u63a5\u200b\uff0cVIRTUAL_PATH \u200b\u4e0a\u200b\u5b9e\u9645\u4e0a\u200b\u4ec0\u4e48\u200b\u6587\u4ef6\u200b\u90fd\u200b\u6ca1\u6709\u200b\uff0c\u200b\u4f46\u200b\u6211\u4eec\u200b\u8bd5\u56fe\u200b\u8bfb\u5199\u200b\u8fd9\u4e2a\u200b\u6587\u4ef6\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u4f1a\u200b\u88ab\u200b\u5bfc\u5411\u200b TRUE_PATH \u200b\u4e0a\u200b\u90a3\u4e2a\u200b\u771f\u5b9e\u200b\u5b58\u5728\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5229\u7528\u200b\u8fd9\u4e2a\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7edf\u4e00\u200b\u8f6c\u79fb\u200b\u6211\u4eec\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e86\u200b\u3002

                  \u200b\u6ce8\u610f\u200b\u521b\u5efa\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u65f6\u200b VIRTUAL_PATH \u200b\u4e0d\u80fd\u200b\u5b58\u5728\u200b

                  \u200b\u82e5\u200b\u5220\u53bb\u200b TRUE_PATH\uff0c\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u4ecd\u7136\u200b\u5b58\u5728\u200b\uff0c\u200b\u4f46\u200b\u5df2\u200b\u4e0d\u53ef\u200b\u8bbf\u95ee\u200b\uff08\u200b\u663e\u793a\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff09

                  "},{"location":"Note/Missing%20Semester/commandline_env/#remote-machine","title":"Remote Machine","text":"

                  \u200b\u8be6\u60c5\u200b\u53ef\u4ee5\u200b\u770b\u200b\u8fd9\u200b\u4e00\u7bc7\u200b\uff0c\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b ssh \u200b\u8fde\u63a5\u200b\u5b9e\u8df5\u200b.\u200b\u5728\u200b:ocitons-link-16:\u200b\u8fd9\u200b\u4e00\u7bc7\u200b\u4e2d\u6709\u200b\u5173\u4e8e\u200b docker \u200b\u7684\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u7684\u200b\u5b9e\u8df5\u200b\uff0c\u200b\u66f4\u52a0\u200b\u8be6\u7ec6\u200b\u3002

                  \u200b\u5e38\u7528\u200b\u6307\u4ee4\u200b

                  ssh USERNAME@IP_ADDRESSssh-keygenssh-copy-id USERNAME@IP_ADDRESSscp -p xxxx LOCAL_PATH USERNAME@IP_ADDRESS:REMOTE_PATHscp -p xxxx USERNAME:IP_ADDRESS LOCAL_PATH

                  \u200b\u8fde\u63a5\u200b remote machine

                  \u200b\u81ea\u52a8\u200b\u751f\u6210\u200b\u8ff7\u836f\u200b\uff0c\u200b\u6ce8\u610f\u200b keyphrase \u200b\u5e94\u8be5\u200b\u4e3a\u7a7a\u200b\uff08\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff09

                  \u200b\u590d\u5236\u200b\u516c\u94a5\u200b\u5230\u200b remote machine \u200b\u7684\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u200b\u4e2d\u200b

                  \u200b\u5c06\u200b\u672c\u5730\u200b\u6587\u4ef6\u200b\u590d\u5236\u5230\u200b remote machine

                  \u200b\u5c06\u200b remote machine \u200b\u6587\u4ef6\u200b\u590d\u5236\u5230\u200b\u672c\u5730\u200b

                  \uff5e/.ssh/config \u200b\u91cc\u9762\u200b\u53ef\u4ee5\u200b\u8bbe\u7f6e\u200b remote machine \u200b\u522b\u540d\u200b \u200b\u9ed8\u8ba4\u200b\u7aef\u53e3\u200b \u200b\u9ed8\u8ba4\u200b ip \u200b\u5730\u5740\u200b\u7b49\u200b\u5c5e\u6027\u200b

                  Tip

                  \u200b\u5728\u200b remote machine \u200b\u4f7f\u7528\u200b tmux\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b\u8fde\u63a5\u200b\u5173\u95ed\u200b\u540e\u200b\uff0c\u200b\u8fde\u63a5\u200b\u56de\u6765\u200b\uff0c\u200b\u518d\u200b\u91cd\u65b0\u200b attach\uff0c\u200b\u4e4b\u524d\u200b\u8fd0\u884c\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u90fd\u200b\u4f1a\u200b\u4ecd\u7136\u200b\u5b58\u5728\u200b\u3002 \u200b\u5728\u200b\u8fdc\u7a0b\u200b\u7684\u200b tmux \u200b\u7684\u200b\u5feb\u6377\u952e\u200b\u9700\u8981\u200b\u6309\u200b\u4e24\u6b21\u200b C-a

                  Tip

                  VSCode \u200b\u7684\u200b Remote ssh \u200b\u76f8\u5f53\u200b\u597d\u7528\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8ba9\u200b\u4f60\u200b\u7528\u200b VSCode \u200b\u5bf9\u200b\u8fdc\u7a0b\u200b\u673a\u5668\u200b\u4e0a\u200b\u64cd\u4f5c\u200b\uff0c\u200b\u5305\u62ec\u200b debug \u200b\u5565\u200b\u7684\u200b

                  "},{"location":"PeiPei/","title":"PeiPei!","text":"

                  \u200b\u6b22\u8fce\u200b\u6765\u5230\u200b PeiPei \u200b\u5bc4\u5c45\u200b\u5728\u200b\u5927\u795e\u200b Stormckey \u200b\u7684\u200b\u535a\u5ba2\u200b\u4e0a\u200b\uff01

                  \u200b\u8fd9\u91cc\u200b\u4f1a\u653e\u200b\u4e00\u4e9b\u200b\u6015\u200b\u81ea\u5df1\u200b\u5fd8\u8bb0\u200b\u7684\u200b\u5c0f\u200b Tips\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e9b\u200b\u6709\u8da3\u200b\u7684\u200b\u4e1c\u897f\u200b\uff01

                  "},{"location":"PeiPei/markdown/","title":"Markdown All in One","text":"

                  \u200b\u7ea6\u200b 379 \u200b\u4e2a\u200b\u5b57\u200b 5 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

                  Typst YYDS!!!

                  \u200b\u9020\u5b8c\u200b\u677f\u5b50\u200b\u4e4b\u540e\u200b\u5199\u200b\u6587\u6863\u200b\u771f\u7684\u200b\u662f\u200b\u592a\u723d\u4e86\u200b\uff0cTypst \u200b\u771f\u7684\u200b\u592a\u597d\u200b\u7528\u200b\u4e86\u200b\uff0c\u200b\u5f3a\u70c8\u63a8\u8350\u200b\uff01 \u200b\u5199\u200b\u7684\u200b\u65f6\u5019\u200b\u50cf\u200b Markdown \u200b\u4e00\u6837\u200b\u7b80\u5355\u200b\uff0c\u200b\u5bfc\u51fa\u200b\u7684\u200b\u50cf\u200b LaTeX \u200b\u4e00\u6837\u200b\u6f02\u4eae\u200b \ud83d\ude0b \u200b\u6211\u200b\u81ea\u5df1\u200b\u7684\u200b\u6a21\u677f\u200b\u5728\u200b typst-template \u200b\u91cc\u200b\uff0c\u200b\u6b22\u8fce\u200b\u4f7f\u7528\u200b\uff01

                  "},{"location":"PeiPei/markdown/#vscode-like-highlighting","title":"VSCode like highlighting","text":"

                  \u200b\u5373\u200b\u4f7f\u7528\u200b\u4e86\u200b VSCode \u200b\u7684\u200b MPE \u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0cMarkdown \u200b\u91cc\u200b\u7684\u200b\u4ee3\u7801\u200b\u5757\u200b\u8fd8\u662f\u200b\u5341\u5206\u200b\u7684\u200b\u4e11\u964b\u200b.\u200b\u8fd9\u91cc\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e00\u79cd\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8ba9\u200b Markdown \u200b\u91cc\u200b\u7684\u200b\u4ee3\u7801\u200b\u5757\u200b\u7684\u200b\u9ad8\u4eae\u200b\u6548\u679c\u200b\u548c\u200b VSCode \u200b\u91cc\u200b\u7684\u200b\u4e00\u6837\u200b\u3002

                  \u200b\u9996\u5148\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u51fa\u200b\u7684\u200b\u662f\u200b\u767d\u8272\u200b\u5e95\u200b\uff0c\u200b\u5c31\u200b\u628a\u200b VSCode \u200b\u7684\u200b\u4e3b\u9898\u200b\u6539\u6210\u200b\u767d\u8272\u200b\u5e95\u200b\u7684\u200b\uff0c\u200b\u5982\u679c\u200b\u662f\u200b\u9ed1\u8272\u200b\u5e95\u200b\uff0c\u200b\u5c31\u200b\u6539\u6210\u200b\u9ed1\u8272\u200b\u5e95\u200b\u7684\u200b.\u200b\u4e0b\u9762\u200b\u7684\u200b\u914d\u7f6e\u200b\u662f\u200b\u767d\u8272\u200b\u5e95\u200b\u7684\u200b\u3002

                  \u200b\u5b89\u88c5\u200b Paste Special \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u76f4\u63a5\u200b\u5728\u200b VSCode \u200b\u91cc\u200b\u590d\u5236\u200b\u5199\u200b\u597d\u200b\u7684\u200b\u4ee3\u7801\u200b\uff0c\u200b\u5728\u200b Markdown \u200b\u6587\u4ef6\u200b\u91cc\u200b\u7c98\u8d34\u200b\u65f6\u200b\u53f3\u952e\u200b\u9009\u62e9\u200b Paste Special\uff0c\u200b\u7c98\u8d34\u200b\u4e3a\u200b HTML \u200b\u683c\u5f0f\u200b.\u200b\u4e3a\u4e86\u200b\u548c\u200b MPE \u200b\u7684\u200b\u9ed8\u8ba4\u200b\u683c\u5f0f\u200b\u5339\u914d\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5bf9\u200b css \u200b\u8fdb\u884c\u200b\u4e00\u4e9b\u200b\u5fae\u8c03\u200b\u3002

                  \u200b\u4f8b\u5982\u200b\u5982\u679c\u200b\u7c98\u8d34\u200b\u5b8c\u200b\u7684\u200b\u5982\u4e0b\u200b\uff1a

                  <div style=\"color: #3b3b3b;background-color: #1f1f1f;font-family: Fira Code Retina\uff0c \u200b\u601d\u6e90\u200b\u9ed1\u4f53\u200b HW\uff0c Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;\">...</div>\n

                  \u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u628a\u200b\u5b83\u200b\u6539\u6210\u200b\uff1a

                  <div style=\"color: #3b3b3b;background-color: #f5f5f5;font-family: Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 1.4;white-space: pre;border-radius: 3px;padding: .8em;margin-top: 0;margin-bottom: 16px;overflow: auto;\">...</div>\n

                  \u200b\u4e3b\u8981\u200b\u662f\u200b\u52a0\u200b\u4e86\u200b\u5706\u89d2\u200b\u3001padding \u200b\u548c\u200b margin.\u200b\u5b57\u4f53\u200b\u548c\u200b\u884c\u9ad8\u200b\u53ef\u6539\u200b\u53ef\u4e0d\u200b\u6539\u200b\uff0c\u200b\u770b\u200b\u4e2a\u4eba\u200b\u559c\u597d\u200b.\u200b\u53e6\u5916\u200b\uff0c\u200b\u4e3a\u4e86\u200b\u6253\u5370\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u66f4\u6539\u200b white-space \u200b\u4e3a\u200b pre-wrap\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u81ea\u52a8\u200b\u6362\u884c\u200b\u4e86\u200b\uff0c\u200b\u540c\u65f6\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u53bb\u6389\u200b overflow: auto;\uff1a

                  <div style=\"color: #3b3b3b;background-color: #f5f5f5;font-family: Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 1.4;white-space: pre-wrap;border-radius: 3px;padding: .8em;margin-top: 0;margin-bottom: 16px;\">...</div>\n
                  "},{"location":"PeiPei/markdown/#-img-src","title":"![]() -> <img src=\"\" />","text":"

                  \u200b\u5728\u200b Markdown \u200b\u91cc\u200b\u63d2\u5165\u200b\u56fe\u7247\u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b ![]() \u200b\u7684\u200b\u65b9\u5f0f\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u6837\u200b\u5bfc\u51fa\u200b\u7684\u200b PDF \u200b\u91cc\u200b\u7684\u200b\u56fe\u7247\u200b\u662f\u200b\u4e0d\u4f1a\u200b\u5c45\u4e2d\u200b\u7684\u200b\uff0c\u200b\u800c\u4e14\u200b\u4e5f\u200b\u6ca1\u6709\u200b\u529e\u6cd5\u200b\u8bbe\u7f6e\u200b\u56fe\u7247\u200b\u7684\u200b\u5bbd\u200b\u9ad8\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u628a\u200b ![]() \u200b\u6539\u6210\u200b <img src=\"\" />.\u200b\u4f7f\u7528\u200b\u4ee5\u4e0b\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u66ff\u6362\u200b\uff1a

                  !\\[(.*?)\\]\\((.*?)\\)\n

                  \u200b\u66ff\u6362\u200b\u4e3a\u200b\uff1a

                  <img src=\"$2\" alt=\"$1\" style=\"max-width: 100%\" />\n
                  "},{"location":"PeiPei/repository/","title":"\u4ed3\u5e93\u200b\u6574\u7406","text":"

                  \u200b\u7ea6\u200b 340 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b

                  \u200b\u8fd9\u91cc\u200b\u662f\u200b\u4e00\u4e9b\u200b\u6211\u200b\u4e2a\u4eba\u200b\u7684\u200b GitHub \u200b\u8d26\u53f7\u200b\u7684\u200b public repo \u200b\u7684\u200b\u6574\u7406\u200b\u3002

                  "},{"location":"PeiPei/repository/#_2","title":"\u6709\u8da3\u200b\u7684","text":"
                  • zju-learning-assistant\uff1a\u200b\u6d59\u5927\u200b\u5b66\u4e60\u200b\u52a9\u624b\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u53ef\u4ee5\u200b\u6279\u91cf\u200b\u4e0b\u8f7d\u200b\u5b66\u5728\u200b\u6d59\u5927\u200b/\u200b\u667a\u4e91\u200b\u8bfe\u5802\u200b\u8bfe\u4ef6\u200b\u7684\u200b\u8de8\u5e73\u53f0\u200b Tauri \u200b\u5e94\u7528\u200b\uff0cRust Tauri + React
                  • typst-template\uff1a\u200b\u6536\u96c6\u200b\u4e86\u200b\u4e00\u4e9b\u200b\u6211\u200b\u81ea\u5df1\u200b\u7684\u200b Typst \u200b\u7684\u200b\u6a21\u677f\u200b
                  • ZJUScoreAssistant\uff1a\u200b\u6d59\u5927\u200b\u6210\u7ee9\u200b\u52a9\u624b\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u53ef\u4ee5\u200b\u81ea\u52a8\u200b\u67e5\u8be2\u200b\u6d59\u5927\u200b\u6210\u7ee9\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b\uff0c\u200b\u4e5f\u200b\u652f\u6301\u200b\u66f4\u65b0\u200b\u63a8\u9001\u200b\u81f3\u200b\u9489\u200b\u9489\u200b\u673a\u5668\u4eba\u200b\uff0cPython requests
                  • zju-score-push-template\uff1a\u200b\u6d59\u5927\u200b\u6210\u7ee9\u200b\u63a8\u9001\u200b\u6a21\u677f\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u53ef\u4ee5\u200b\u81ea\u52a8\u200b\u67e5\u8be2\u200b\u6d59\u5927\u200b\u6210\u7ee9\u200b\u5e76\u200b\u63a8\u9001\u200b\u81f3\u200b\u9489\u200b\u9489\u200b\u673a\u5668\u4eba\u200b\u7684\u200b GitHub Action \u200b\u6a21\u677f\u200b\uff0c\u200b\u4f7f\u7528\u200b\u4e86\u200b\u4e0a\u9762\u200b\u7684\u200b ZJUScoreAssistant
                  "},{"location":"PeiPei/repository/#_3","title":"\u8bfe\u7a0b\u200b\u76f8\u5173","text":"
                  • Type-Game\uff1a\u200b\u5927\u200b\u4e00\u4e0b\u200b\u5b66\u671f\u200b\u7684\u200b\u5927\u7a0b\u200b\u5c0f\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u6253\u5b57\u200b\u6e38\u620f\u200b\uff0c\u200b\u7528\u200b\u7684\u200b\u662f\u200b libgraphics
                  • Notepad-minus-minus\uff1a\u200b\u5927\u200b\u4e00\u4e0b\u200b\u5b66\u671f\u200b\u7684\u200b\u5927\u7a0b\u200b\u5927\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u8bb0\u4e8b\u672c\u200b\uff0c\u200b\u540c\u6837\u200b\u662f\u200b\u4f9d\u6258\u200b\u7b54\u8fa9\u200b\u7684\u200b libgraphics
                  • ICS-Lab6a-Checker\uff1a\u200b\u5927\u4e00\u77ed\u200b\u5b66\u671f\u200b\u8ba1\u6982\u200b\u7684\u200b Lab6a \u200b\u5b9e\u9a8c\u200b\u5199\u200b\u7684\u200b\u4e00\u4e2a\u200b\u68c0\u67e5\u200b\u5668\u200b\uff0c\u200b\u7528\u4e8e\u200b\u68c0\u67e5\u200b Lab6a \u200b\u7684\u200b\u5b9e\u9a8c\u200b\u7ed3\u679c\u200b\u662f\u5426\u200b\u6b63\u786e\u200b\uff0c\u200b\u53ef\u60dc\u200b\u8fd8\u662f\u200b\u6709\u4e9b\u200b case \u200b\u6ca1\u6709\u200b\u8986\u76d6\u200b\u5230\u200b
                  • Library-Management-System\uff1a\u200b\u5927\u4e8c\u200b\u4e0a\u200b\u5b66\u671f\u200b\u6570\u636e\u5e93\u200b\u7684\u200b\u5c0f\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u56fe\u4e66\u200b\u7ba1\u7406\u7cfb\u7edf\u200b\uff0c\u200b\u7528\u200b\u7684\u200b\u662f\u200b MySQL + Java Swing
                  • ZJU-OOP-Project\uff1a\u200b\u5927\u4e8c\u200b\u4e0a\u200b\u5b66\u671f\u200b\u9762\u5411\u5bf9\u8c61\u200b\u7684\u200b project \u200b\u96c6\u5408\u200b\uff0c\u200b\u90fd\u200b\u5f88\u200b\u6c34\u200b
                  • MiniSQL\uff1a\u200b\u5927\u4e8c\u200b\u4e0a\u200b\u5b66\u671f\u200b\u6570\u636e\u5e93\u200b\u7684\u200b\u5927\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u7b80\u5355\u200b\u7684\u200b\u6570\u636e\u5e93\u200b\uff0c\u200b\u7528\u200b\u7684\u200b\u662f\u200b C++\uff0c\u200b\u5b9e\u73b0\u200b\u4e86\u200b B+ \u200b\u6811\u200b\u7d22\u5f15\u200b\uff0c\u200b\u652f\u6301\u200b SQL \u200b\u8bed\u53e5\u200b\u7684\u200b\u89e3\u6790\u200b\u548c\u200b\u6267\u884c\u200b
                  "},{"location":"PeiPei/typst/","title":"Typst is All You Need","text":"

                  \u200b\u7ea6\u200b 746 \u200b\u4e2a\u200b\u5b57\u200b 37 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b

                  \u200b\u6211\u200b\u7684\u200b\u4e00\u4e9b\u200b\u81ea\u7528\u200b\u6a21\u677f\u200b\u5728\u200b typst-template

                  "},{"location":"PeiPei/typst/#_1","title":"\u5982\u4f55\u200b\u5f00\u59cb","text":"

                  \u200b\u56e0\u4e3a\u200b Typst \u200b\u6bd4\u8f83\u200b\u65b0\u200b\uff0c\u200b\u6240\u4ee5\u200b\u76f8\u5173\u200b\u7684\u200b\uff08\u200b\u7279\u522b\u200b\u662f\u200b\u4e2d\u6587\u200b\u7684\u200b\uff09\u200b\u6587\u6863\u200b\u8fd8\u200b\u4e0d\u662f\u200b\u5f88\u591a\u200b\uff0c\u200b\u6240\u4ee5\u200b\u76ee\u524d\u200b\u8fd8\u662f\u200b\u9760\u200b\u5b98\u65b9\u200b\u7684\u200b\u6587\u6863\u200b\uff1aTypst Documentation\uff0c\u200b\u8fc7\u200b\u4e00\u904d\u200b\u91cc\u9762\u200b\u7684\u200b Tutorial \u200b\u90e8\u5206\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u57fa\u672c\u4e0a\u200b\u638c\u63e1\u200b Typst \u200b\u7684\u200b\u4f7f\u7528\u200b\u4e86\u200b\u3002\u200b\u4e4b\u540e\u200b\u5c31\u662f\u200b\u5199\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u5565\u200b\u5c31\u200b\u5728\u200b\u6587\u6863\u200b\u91cc\u200b\u641c\u200b\u5565\u200b\u3002

                  \u200b\u53e6\u5916\u200b\u5c31\u662f\u200b\u770b\u770b\u200b awesome-typst-cn \u200b\u91cc\u9762\u200b\u7684\u200b\u4e00\u4e9b\u200b\u8d44\u6e90\u200b\uff0c\u200b\u6bd4\u5982\u200b Typst \u200b\u7684\u200b\u6a21\u677f\u200b\uff0cTypst \u200b\u7684\u200b\u63d2\u4ef6\u200b\u7b49\u7b49\u200b\u3002\u200b\u6bd4\u8f83\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u5c31\u200b\u4e0d\u518d\u200b\u8d58\u8ff0\u200b\u4e86\u200b\u3002\u200b\u7279\u522b\u200b\u662f\u200b\u9047\u5230\u200b\u5565\u200b\u95ee\u9898\u200b\u53ef\u4ee5\u200b\u5148\u200b\u770b\u770b\u200b\u8fd9\u200b\u91cc\u9762\u200b\u7684\u200b\u6a21\u677f\u200b\u91cc\u200b\u65f6\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b\u7684\u200b\u3002

                  \u200b\u5c24\u5176\u200b\u63a8\u8350\u200b\u5176\u4e2d\u200b\u7684\u200b nju-thesis-typst\uff0c\u200b\u8fd9\u662f\u200b\u5357\u4eac\u5927\u5b66\u200b\u7684\u200b\u672c\u79d1\u751f\u200b\u6bd5\u4e1a\u8bba\u6587\u200b\u7684\u200b\u6a21\u677f\u200b\uff0c\u200b\u91cc\u9762\u200b\u7684\u200b README \u200b\u91cc\u200b\u6709\u200b\u8be6\u7ec6\u200b\u7684\u200b\u4f7f\u7528\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u800c\u4e14\u200b\u4ee3\u7801\u200b\u4e5f\u200b\u975e\u5e38\u200b\u7b80\u6d01\u200b\u9ad8\u6548\u200b\uff0c\u200b\u57fa\u672c\u200b\u628a\u200b\u6240\u6709\u200b\u5751\u200b\u90fd\u200b\u89e3\u51b3\u200b\u4e86\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f5c\u4e3a\u200b\u53c2\u8003\u200b\u3002

                  "},{"location":"PeiPei/typst/#vscode","title":"VSCode \u200b\u63d2\u4ef6","text":"

                  \u200b\u9996\u5148\u200b\u662f\u200b awesome-typst-cn \u200b\u91cc\u200b\u63a8\u8350\u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u200b\u5c31\u200b\u4e0d\u518d\u200b\u8d58\u8ff0\u200b\u4e86\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u770b\u200b\u4e0a\u9762\u200b\u7684\u200b\u94fe\u63a5\u200b\u3002\u200b\u6211\u200b\u81ea\u5df1\u200b\u7528\u200b\u4e86\u200b Typst LSP \u200b\u548c\u200b Typst Preview \u200b\u8fd9\u200b\u4e24\u4e2a\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b VSCode \u200b\u91cc\u200b\u76f4\u63a5\u200b\u9884\u89c8\u200b Typst \u200b\u7684\u200b\u6548\u679c\u200b\uff0c\u200b\u5341\u5206\u200b\u65b9\u4fbf\u200b\u3002

                  \u200b\u9664\u6b64\u4e4b\u5916\u200b\uff0c\u200b\u6211\u200b\u8fd8\u200b\u7528\u200b\u4e86\u200b VSCode \u200b\u7684\u200b Paste Image \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u7c98\u8d34\u200b\u56fe\u7247\u200b\uff0c\u200b\u5341\u5206\u200b\u65b9\u4fbf\u200b\u3002\u200b\u7136\u540e\u200b\u987a\u5e26\u200b\u4fee\u6539\u200b\u4e00\u4e0b\u200b\u7c98\u8d34\u200b\u683c\u5f0f\u200b\uff1a

                  \"pasteImage.insertPattern\": \"#figure(\\n  image(\\\"${imageSyntaxPrefix}${imageFilePath}${imageSyntaxSuffix}\\\", width: 100%),\\n  caption: \\\"\\\",\\n) <>\",\n

                  \u200b\u8fd9\u6837\u200b\u7c98\u8d34\u200b\u7684\u200b\u56fe\u7247\u200b\u5c31\u200b\u4f1a\u200b\u53d8\u6210\u200b\uff1a

                  #figure(\n  image(\"xxx\", width: 100%),\n  caption: \"\",\n) <>\n
                  "},{"location":"PeiPei/typst/#_2","title":"\u4e00\u4e9b\u200b\u6280\u5de7","text":""},{"location":"PeiPei/typst/#_3","title":"\u4e2d\u82f1\u6587\u200b\u4e0d\u540c\u200b\u5b57\u4f53","text":"

                  \u200b\u7ed9\u200b text \u200b\u4f20\u5165\u200b font \u200b\u65f6\u200b\uff0c\u200b\u5982\u679c\u200b\u4f20\u5165\u200b\u4e00\u4e2a\u200b array\uff0cTypst \u200b\u4f1a\u200b\u6309\u200b\u987a\u5e8f\u200b\u9009\u62e9\u200b\u7b2c\u4e00\u4e2a\u200b\u5b58\u5728\u200b\u7684\u200b\u5b57\u4f53\u200b\u3002\u200b\u6240\u4ee5\u200b\u53ef\u4ee5\u200b\u8fd9\u6837\u200b\u5199\u200b\uff1a

                  #set text(font: (\"Times New Roman\", \"SimSun\"))\n

                  \u200b\u8fd9\u6837\u200b\u4e2d\u6587\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b\u5b8b\u4f53\u200b\uff0c\u200b\u82f1\u6587\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b Times New Roman\u3002\u200b\u53e6\u5916\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b\u81ea\u5e26\u200b\u7684\u200b SimSun\u3001SimHei \u200b\u4e4b\u7c7b\u200b\u7684\u200b\u5b57\u4f53\u200b\u4e0d\u200b\u652f\u6301\u200b Typst \u200b\u4f20\u5165\u200b\u7684\u200b weight \u200b\u53c2\u6570\u200b\uff0c\u200b\u5efa\u8bae\u200b\u4f7f\u7528\u200b\u601d\u6e90\u200b\u9ed1\u4f53\u200b\u3001\u200b\u601d\u6e90\u200b\u5b8b\u4f53\u200b\u4e4b\u7c7b\u200b\u7684\u200b\u5b57\u4f53\u200b\u3002Typst \u200b\u7684\u200b weight \u200b\u662f\u200b\u9009\u62e9\u200b\u53d8\u4f53\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u624b\u52a8\u200b\u52a0\u7c97\u200b\u5b57\u4f53\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5982\u679c\u200b\u5b57\u4f53\u200b\u4e0d\u200b\u652f\u6301\u200b\u53d8\u4f53\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b\u4e0d\u200b\u51fa\u6765\u200b\u3002

                  \u200b\u4e2d\u6587\u5b57\u4f53\u200b\u4e5f\u200b\u4e0d\u200b\u652f\u6301\u200b\u659c\u4f53\u200b\uff0c\u200b\u5e94\u8be5\u200b\u7528\u200b\u6977\u4f53\u200b\u4ee3\u66ff\u200b\u3002show \u200b\u4e00\u4e0b\u200b\u518d\u200b\u8bbe\u7f6e\u200b text \u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\u3002\u200b\u4f8b\u5982\u200b\uff1a

                  #show emph: text.with(font: (\"Linux Libertine\", \"STKaiti\"))\n

                  \u200b\u66f4\u200b\u8be6\u7ec6\u200b\u7684\u200b\u770b\u200b\u8fd9\u4e2a\u200b issue

                  "},{"location":"PeiPei/typst/#_4","title":"\u6bb5\u843d\u200b\u9996\u200b\u884c\u200b\u7f29\u8fdb","text":"

                  Typst \u200b\u548c\u200b \\(\\LaTeX\\) \u200b\u4e00\u6837\u200b\uff0c\u200b\u8bbe\u7f6e\u200b\u9996\u200b\u884c\u200b\u7f29\u8fdb\u200b\u540e\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u7ae0\u8282\u200b\u7684\u200b\u7b2c\u4e00\u4e2a\u200b\u6bb5\u843d\u200b\u4ecd\u7136\u200b\u4e0d\u4f1a\u200b\u7f29\u8fdb\u200b\u3002\u200b\u53ea\u597d\u200b\u52a0\u200b\u4e00\u4e2a\u200b\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\uff0c\u200b\u52a0\u4e0a\u200b\u4e00\u4e2a\u200b v(-1em) \u200b\u6765\u200b\u5b9e\u73b0\u200b\uff1a

                  #let fake-par = {\n  v(-1em)\n  show par: set block(spacing: 0pt)\n  par(\"\")\n}\n

                  \u200b\u4e4b\u540e\u200b\u901a\u8fc7\u200b show \u200b\u547d\u4ee4\u200b\u5728\u200b heading terms list enum figure table raw \u200b\u4e4b\u7c7b\u200b\u7684\u200b\u4e1c\u897f\u200b\u540e\u9762\u200b\u52a0\u4e0a\u200b\u8fd9\u4e2a\u200b\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\uff0c\u200b\u4f8b\u5982\u200b\u7ed9\u200b heading \u200b\u52a0\u4e0a\u200b\uff1a

                  show heading: it => {\n  it\n  v(5pt)\n  fake-par\n}\n

                  \u200b\u5f53\u7136\u200b\u4e3a\u4e86\u200b\u7f8e\u89c2\u200b\u6211\u200b\u8fd9\u91cc\u200b\u53e6\u5916\u200b\u52a0\u200b\u4e86\u200b\u4e2a\u200b v(5pt)\uff0c\u200b\u53ef\u4ee5\u200b\u6839\u636e\u200b\u81ea\u5df1\u200b\u7684\u200b\u559c\u597d\u200b\u8c03\u6574\u200b\u3002\u200b\u5bf9\u4e8e\u200b\u4ee3\u7801\u200b\u5757\u200b raw \u200b\u8981\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u884c\u5185\u200b\u4ee3\u7801\u200b\u548c\u200b\u4ee3\u7801\u200b\u5757\u200b\u7684\u200b raw \u200b\u8981\u200b\u505a\u200b\u533a\u522b\u200b\uff0c\u200b\u884c\u5185\u200b\u4ee3\u7801\u200b\u4e0d\u200b\u9700\u8981\u200b\u5728\u200b\u540e\u9762\u200b\u52a0\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\uff0c\u200b\u6240\u4ee5\u200b\u8981\u52a0\u200b\u4e00\u4e2a\u200b block: true \u200b\u6765\u200b\u533a\u5206\u200b\uff1a

                  show raw.where(block: true): it => {\n  it\n  fake-par\n}\n

                  \u200b\u53e6\u5916\u200b terms \u200b\u5982\u679c\u200b\u8bbe\u7f6e\u200b\u4e86\u200b\u9996\u884c\u200b\u7f29\u8fdb\u200b\u4f1a\u200b\u6709\u200b\u4e00\u4e9b\u200b\u95ee\u9898\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5728\u200b terms \u200b\u5757\u200b\u91cc\u200b\u8981\u200b\u53d6\u6d88\u200b\u7f29\u8fdb\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a

                  show terms: it => {\n  set par(first-line-indent: 0pt)\n  set terms(indent: 10pt, hanging-indent: 9pt)\n  it\n  fake-par\n}\n
                  "},{"location":"PeiPei/typst/#_5","title":"\u4ee3\u7801\u200b\u5757\u200b\u663e\u793a\u200b\u884c\u53f7","text":"
                  #show raw.where(block: true): it => { set par(justify: false); grid(\n  columns: (100%, 100%),\n  column-gutter: -100%,\n  block(width: 100%, inset: 1em, for i, line in it.text.split(\"\\n\") {\n    box(width: 0pt, align(right, str(i + 1) + h(2em)))\n    hide(line)\n    linebreak()\n  }),\n  block(radius: 1em, fill: luma(246), width: 100%, inset: 1em, it),\n)}\n

                  \u200b\u53e6\u5916\u200b\u8fd9\u4e2a\u200b issue \u200b\u91cc\u9762\u200b\u4e5f\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u5176\u4ed6\u200b\u7684\u200b\u65b9\u6cd5\u200b\u3002

                  "},{"location":"Research/","title":"Research","text":"

                  \u200b\u867d\u7136\u200b\u662f\u200b\u79d1\u7814\u200b\u83dc\u200b\ud83d\udc36\u200b\u4f46\u200b\u8fd8\u662f\u200b\u628a\u200b\u4e00\u4e9b\u200b\u7b14\u8bb0\u200b\u653e\u5728\u200b\u8fd9\u91cc\u200b\u597d\u200b\u4e86\u200b QaQ

                  Research list

                  • diffusion
                  • Unet
                  • batch nomarlization
                  • basic pytorch
                  • Stochastic Gradient Descent with momentum
                  • KL \u200b\u6563\u5ea6\u200b
                  • \u200b\u91cd\u200b\u53c2\u6570\u200b
                  • VAE \u200b\u8fd8\u6709\u200b\u4e00\u4e2a\u200b\u5f88\u200b\u4f18\u79c0\u200b\u7684\u200b\u89e3\u7b54\u200b

                  Useful pages:

                  • Reverse-mode automatic differentiation from scratch\uff0c in Python
                  • Example implementation of reverse-mode autodiff
                  "},{"location":"Research/Diffusion%20Model/DDIM/","title":"DDIM","text":"

                  \u200b\u7ea6\u200b 734 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

                  Abstract

                  \u200b\u5bf9\u4e8e\u200b DDIM\uff0c\u200b\u9996\u5148\u200b\u8fd8\u662f\u200b\u63a8\u8350\u200b\u9605\u8bfb\u200b\u82cf\u5251\u6797\u200b\u7684\u200b\u535a\u5ba2\u200b.\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b\u53ef\u4ee5\u200b\u8ddf\u8bfb\u200b\uff0c\u200b\u6587\u7ae0\u200b\u4e2d\u6709\u200b\u6211\u200b\u5374\u200b\u6ca1\u6709\u200b\u63d0\u200b\u7684\u200b\u90e8\u5206\u200b\u5c31\u662f\u200b\u6211\u200b\u8ba4\u4e3a\u200b\u6ca1\u4ec0\u4e48\u200b\u597d\u200b\u8865\u5145\u200b\u7684\u200b\u4e86\u200b\u3002

                  "},{"location":"Research/Diffusion%20Model/DDIM/#_1","title":"\u6e05\u6d17","text":"

                  \u200b\u4ece\u200b DDPM \u200b\u90a3\u7bc7\u200b\u535a\u5ba2\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u5df2\u7ecf\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\\(p(x_t|x_{t-1})\\)\u200b\u8fd9\u4e00\u200b\u524d\u540e\u200b\u8fde\u7eed\u200b\u65f6\u95f4\u200b\u7684\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u5df2\u7ecf\u200b\u6ca1\u6709\u200b\u4f7f\u7528\u200b\u5230\u200b\u4e86\u200b\uff0c\u200b\u5c3d\u7ba1\u200b\u6211\u4eec\u200b\u5f53\u65f6\u200b\u7ed9\u5b9a\u200b\u4e86\u200b\u8fd9\u200b\u4e00\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u7684\u200b\u8868\u8fbe\u5f0f\u200b\uff0c\u200b\u5e76\u200b\u4ee5\u6b64\u200b\u63a8\u51fa\u200b\u4e86\u200b\\(p(x_t|x_0)\\).\u200b\u4f46\u662f\u200b\u65e2\u7136\u200b\u6ca1\u6709\u200b\u7528\u5230\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5b8c\u6210\u200b\u540e\u7eed\u200b\u63a8\u5bfc\u200b\u63a8\u5bfc\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u4fdd\u7559\u200b\u540e\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u4e0d\u518d\u200b\u5b9a\u200b\u6b7b\u200b\u524d\u9762\u200b\u7684\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u51fd\u6570\u200b\u4e86\u200b\uff0c\u200b\u5148\u200b\u5c06\u200b\u5176\u200b\u5f53\u4f5c\u200b\u5f85\u5b9a\u200b\uff0c\u200b\u770b\u770b\u200b\u8fd9\u200b\u4e00\u65b0\u200b\u7684\u200b\u81ea\u7531\u5ea6\u200b\u4f1a\u200b\u5e26\u6765\u200b\u4ec0\u4e48\u200b\u3002

                  \u200b\u4e8e\u662f\u200b\u5728\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c06\u200b\u8fd9\u200b\u4e00\u9879\u200b\u79ef\u6389\u200b\uff0c\u200b\u968f\u540e\u200b\u4fdd\u6301\u200b\u6211\u4eec\u200b\u8d70\u51fa\u200b\u7684\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u6b63\u6001\u5206\u5e03\u200b\u7684\u200b\u5047\u8bbe\u200b\uff0c\u200b\u7528\u200b\u5f85\u5b9a\u200b\u7cfb\u6570\u200b\u6cd5\u200b\u6c42\u89e3\u200b\u3002

                  \u200b\u7136\u540e\u200b\u6211\u4eec\u200b\u5c31\u200b\u770b\u89c1\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u65b9\u7a0b\u200b\u4e66\u5c11\u200b\u4e86\u200b\u53e6\u200b\u4e00\u4e2a\u200b\uff0c\u200b\u8fd9\u200b\u4e8b\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u4e0d\u518d\u200b\u9650\u5236\u200b\\(p(x_t|x_{t-1})\\)\u200b\u81ea\u7136\u200b\u5c31\u200b\u591a\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u5173\u4e8e\u200b\u8fd9\u4e2a\u200b\u51fd\u6570\u200b\u53ef\u4ee5\u200b\u662f\u200b\u4ec0\u4e48\u200b\u7684\u200b\u81ea\u7531\u5ea6\u200b\uff08\u200b\u5f53\u7136\u200b\u8fd9\u4e2a\u200b\u51fd\u6570\u200b\u4e0d\u200b\u4e00\u5b9a\u200b\u8fd8\u662f\u200b DDPM \u200b\u7684\u200b\u5f62\u5f0f\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u4ed6\u200b\u8fd8\u662f\u200b\u8981\u200b\u6ee1\u8db3\u200b\u5176\u4ed6\u200b\u7ed9\u5b9a\u200b\u7684\u200b\u6027\u8d28\u200b\uff0c\u200b\u6bd4\u5982\u200b\u4fdd\u8bc1\u200b\\(p(x_t|x_0)\\)\u200b\u5f62\u5f0f\u200b\u5982\u200b\u524d\u200b\uff09\uff0c\u200b\u6211\u4eec\u200b\u8c03\u8282\u200b\u8fd9\u4e2a\u200b\u65b0\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5c31\u662f\u200b\u6362\u200b\u4e0d\u540c\u200b\u7684\u200b\u6ee1\u8db3\u6761\u4ef6\u200b\u7684\u200b\\(p(x_t|x_{t-1})\\)\u200b\u89e3\u200b\uff0c\u200b\u4f7f\u200b\u5176\u200b\u8868\u73b0\u200b\u51fa\u200b\u4e0d\u540c\u200b\u7684\u200b\u7279\u6027\u200b\u3002

                  \u200b\u968f\u540e\u200b\u7684\u200b\u81ea\u7136\u200b\u5c31\u662f\u200b\u51e0\u4e2a\u200b\u4e0d\u540c\u200b\u7684\u200b\u4f8b\u5b50\u200b\u4e86\u200b.\u200b\u9996\u5148\u200b\uff0c\u200b\u4e00\u5b9a\u200b\u5b58\u5728\u200b\u67d0\u4e2a\u200b\\(\\sigma_t\\)\u200b\u4f7f\u5f97\u200b\\(p(x_t|x_{t-1})\\)\u200b\u8fd8\u662f\u200b\u8ddf\u200b DDPM \u200b\u4e00\u6837\u200b\u7684\u200b\u53d6\u503c\u200b\uff0c\u200b\u6211\u4eec\u200b\u628a\u200b DDPM \u200b\u4e2d\u200b\u7684\u200b\u65b9\u5dee\u200b\u5e26\u5165\u200b\uff0c\u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u8ddf\u200b DDPM \u200b\u4e2d\u200b\u4e00\u6837\u200b\u7684\u200b\u7ed3\u679c\u200b.\u200b\u4ee5\u53ca\u200b\u6587\u7ae0\u200b\u4e2d\u200b\u5efa\u8bae\u200b\u7684\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u65b9\u5dee\u200b\uff0c\u200b\u90fd\u200b\u80fd\u200b\u5f97\u5230\u200b\u4e0d\u9519\u200b\u7684\u200b\u7ed3\u679c\u200b.\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u53d6\u200b\u4e00\u4e9b\u200b\u7279\u6b8a\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u6bd4\u5982\u200b\u5b8c\u5168\u200b\u53bb\u6389\u200b\u65b9\u5dee\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u5f80\u56de\u200b\u8d70\u200b\u7684\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5411\u91cf\u200b\u800c\u200b\u4e0d\u518d\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u6837\u200b\u8d70\u200b\u7684\u200b\u6548\u679c\u200b\u5f88\u200b\u597d\u200b\u3002

                  "},{"location":"Research/Diffusion%20Model/DDIM/#_2","title":"\u52a0\u901f","text":"

                  \u200b\u8fd9\u90e8\u5206\u200b\u539f\u200b\u8bba\u6587\u200b\u7684\u200b\u601d\u60f3\u200b\u5b9e\u5728\u200b\u662f\u200b\u7cbe\u5999\u200b\uff0c\u200b\u7528\u200b\u7c7b\u6bd4\u200b\u800c\u8a00\u200b\uff0c\u200b\u6211\u4eec\u200b\u4ece\u200b\u8d77\u70b9\u200b\u51fa\u53d1\u200b\u8d70\u200b\u4e86\u200b 1000 \u200b\u6b65\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u6bcf\u200b 5 \u200b\u6b65\u8bb0\u200b\u4e00\u6b65\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u770b\u4f5c\u200b\u662f\u200b 200 \u200b\u6b65\u200b\u8d70\u200b\u5230\u200b\u4e86\u200b\u540c\u4e00\u4e2a\u200b\u5730\u65b9\u200b\uff0c\u200b\u53ea\u8981\u200b\u6211\u4eec\u200b\u7684\u200b\u6a21\u578b\u200b\u9884\u6d4b\u200b\u7684\u200b\u8db3\u591f\u200b\u597d\u200b\uff0c\u200b\u5b8c\u5168\u200b\u7406\u89e3\u200b\u6211\u4eec\u200b\u662f\u200b\u6cbf\u7740\u200b\u90a3\u6761\u200b\u8def\u5f80\u200b\u5916\u200b\u8d70\u200b\u7684\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u200b 200 \u200b\u6b65\u200b\u4e5f\u200b\u8db3\u4ee5\u200b\u8ba9\u200b\u6211\u4eec\u200b\u8d70\u200b\u56de\u6765\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u52a0\u901f\u200b.\u200b\u8fd9\u4e00\u200b\u8fc7\u7a0b\u200b\u662f\u200b\u6709\u70b9\u50cf\u200b C++\u200b\u91cc\u200b\u7684\u200b upcasat\uff0c\u200b\u6211\u200b\u539f\u5148\u200b\u5f53\u200b\u4f60\u200b\u662f\u200b\u4e2a\u200b Shape \u200b\u7c7b\u200b\uff0c\u200b\u4f46\u200b\u6211\u200b\u77e5\u9053\u200b\u4f60\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u4e2a\u200b Circle\uff0c\u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u628a\u200b\u6307\u9488\u200b\u6539\u6210\u200b Circle*\u200b\u6765\u200b\u628a\u200b\u4f60\u200b\u5f53\u505a\u200b\u4e00\u4e2a\u200b circle \u200b\u5bf9\u5f85\u200b\uff0c\u200b\u5bf9\u8c61\u200b\u5e76\u200b\u6ca1\u6709\u200b\u53d8\u200b\uff0c\u200b\u53ea\u662f\u200b\u6211\u4eec\u200b\u5904\u7406\u200b\u4ed6\u200b\u7684\u200b\u65b9\u5f0f\u200b\u53d8\u200b\u4e86\u200b\uff0c\u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u4fee\u6539\u200b\u597d\u200b\u9002\u5408\u200b\u4e8e\u200b 200 \u200b\u6b65\u200b\u7684\u200b\\(\\alpha\uff0c\\beta\\)\u200b\u6765\u200b\u53cd\u5411\u200b\u91c7\u6837\u200b\u3002

                  \u200b\u6700\u540e\u200b\u4e00\u6bb5\u200b\u628a\u200b DDPM \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u9636\u200b\u5fae\u5206\u65b9\u7a0b\u200b\u7684\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u503c\u5f97\u4e00\u770b\u200b\u3002

                  "},{"location":"Research/Diffusion%20Model/DDPM/","title":"DDPM","text":"

                  \u200b\u7ea6\u200b 2473 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 8 \u200b\u5206\u949f\u200b

                  \u200b\u5173\u4e8e\u200b DDPM \u200b\u7684\u200b\u4e09\u79cd\u200b\u7406\u89e3\u200b\u65b9\u5f0f\u200b\u548c\u200b\u4e00\u4e9b\u200b\u76f4\u89c2\u200b\u7684\u200b\u89e3\u91ca\u200b

                  "},{"location":"Research/Diffusion%20Model/DDPM/#ddpm_1","title":"\u8ba4\u8bc6\u200b DDPM","text":"

                  \u200b\u9996\u5148\u200b\uff0c\u200b\u8ba4\u8bc6\u200b DDPM \u200b\u6700\u597d\u200b\u7684\u200b\u65b9\u5f0f\u200b\u5c31\u662f\u200b\u5148\u200b\u53bb\u200b\u8bfb\u4e00\u8bfb\u200b\u5927\u4f6c\u200b\u5bf9\u4e8e\u200b\u76f4\u89c2\u200b\u7406\u89e3\u200b DDPM \u200b\u7684\u200b\u8bb2\u89e3\u200b\u535a\u5ba2\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u5f15\u7528\u200b\u3010\u200b\u82cf\u5251\u6797\u200b](https://kexue.fm/archives/9119) \u200b\u5927\u4f6c\u200b\u7684\u200b\u535a\u5ba2\u200b\uff0c\u200b\u5efa\u8bae\u200b\u5927\u5bb6\u200b\u5148\u200b\u8bfb\u5b8c\u200b\u7b2c\u4e00\u7bc7\u200b\u6269\u6563\u200b\u6a21\u578b\u200b\u6f2b\u8c08\u200b\uff0c\u200b\u660e\u767d\u200b DDPM \u200b\u662f\u200b\u505a\u200b\u4ec0\u4e48\u200b\u7684\u200b\uff0c\u200b\u518d\u200b\u56de\u5230\u200b\u672c\u6587\u200b\u3002

                  "},{"location":"Research/Diffusion%20Model/DDPM/#_1","title":"\u5728\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u6e38\u200b\u8d70","text":"

                  DDPM\uff0c\u200b\u6309\u7167\u200b\u539f\u6587\u200b\u7684\u200b\u4ecb\u7ecd\u200b\uff0c\u200b\u4e0d\u200b\u53ea\u200b\u53ef\u4ee5\u200b\u7528\u4e8e\u200b\u5904\u7406\u200b\u56fe\u50cf\u200b\u4fe1\u606f\u200b\uff0c\u200b\u4f46\u662f\u200b\u539f\u6587\u200b\u7684\u200b\u5206\u6790\u200b\u4e3b\u8981\u200b\u662f\u4ece\u200b\u56fe\u50cf\u200b\u6765\u8bb2\u200b\u7684\u200b\uff08\u200b\u662f\u200b\u5427\u200b\uff09\uff0c\u200b\u6240\u4ee5\u200b\u6211\u200b\u4e5f\u200b\u4ece\u200b\u56fe\u50cf\u200b\u5206\u6790\u200b\u7684\u200b\u89d2\u5ea6\u200b\u6765\u8bf4\u200b\u4e00\u4e0b\u200b\u5427\u200b\u3002

                  \u200b\u4ec0\u4e48\u200b\u662f\u200b\u56fe\u50cf\u200b\uff1f\u200b\u6309\u7167\u200b\u6700\u200b\u7b80\u5355\u200b\u7684\u200b\u89d2\u5ea6\u200b\u7406\u89e3\u200b\uff0c\u200b\u56fe\u50cf\u200b\u5c31\u662f\u200b\u50cf\u7d20\u200b\u503c\u200b\u77e9\u9635\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u628a\u200b\u4e00\u5e45\u200b\u56fe\u200b\u4ece\u200b\u5de6\u4e0a\u89d2\u200b\u5230\u200b\u53f3\u4e0b\u89d2\u200b\u7684\u200b\u6240\u6709\u200b\u50cf\u7d20\u200b\u503c\u200b\uff08\u200b\u53ef\u80fd\u200b\u5206\u200b RGB \u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\uff09\u200b\u90fd\u200b\u5b58\u50a8\u200b\u8d77\u6765\u200b\uff0c\u200b\u5c31\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u8fd9\u4e2a\u200b\u4e2a\u200b\u56fe\u50cf\u200b\u7684\u200b\u6240\u6709\u200b\u4fe1\u606f\u200b\u3002

                  \u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u518d\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u56fe\u50cf\u200b\u4ece\u200b\u77e9\u9635\u200b\u62fc\u63a5\u200b\u6210\u200b\u4e00\u4e2a\u200b\u5411\u91cf\u200b\uff0c\u200b\u56fe\u50cf\u200b\u5c31\u200b\u6210\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u5f88\u200b\u9ad8\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\uff08\u200b\u6bd4\u5982\u200b 1024*1024 \u200b\u7ef4\u200b\uff09\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\uff0c\u200b\u6709\u4e9b\u200b\u70b9\u200b\u662f\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u56fe\u50cf\u200b\uff08\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u603b\u80fd\u200b\u62ff\u6765\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u56fe\u50cf\u200b\uff0c\u200b\u628a\u200b\u56fe\u50cf\u200b\u6620\u5c04\u200b\u5230\u200b\u70b9\u200b\u4e0a\u200b\uff09\uff0c\u200b\u5927\u90e8\u5206\u200b\u5374\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u566a\u58f0\u200b\u56fe\u200b\uff08\u200b\u60f3\u8c61\u200b\u4e00\u4e0b\u200b\u7535\u89c6\u200b\u82b1\u5c4f\u200b\uff0c\u200b\u6211\u4eec\u200b\u968f\u673a\u200b\u5728\u200b\u7a7a\u95f4\u200b\u91cc\u53d6\u200b\u4e00\u4e2a\u70b9\u200b\u5927\u6982\u200b\u5c31\u662f\u200b\u8fd9\u6837\u200b\u7684\u200b\uff09\uff0cDDPM \u200b\u5c31\u662f\u200b\u8bd5\u56fe\u200b\u4ece\u200b\u8fd9\u4e2a\u200b\u7a7a\u95f4\u200b\u7684\u200b\u968f\u673a\u200b\u4e00\u4e2a\u70b9\u200b\u51fa\u53d1\u200b\uff0c\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5728\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u6e38\u200b\u8d70\u200b\u3002

                  "},{"location":"Research/Diffusion%20Model/DDPM/#_2","title":"\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u5206\u5e03","text":"

                  \u200b\u6211\u4eec\u200b\u5f88\u200b\u597d\u200b\u7406\u89e3\u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u70b9\u200b\u7684\u200b\u56fe\u50cf\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u70b9\u200b\u5750\u6807\u200b\u62ff\u200b\u51fa\u6765\u200b\uff0c\u200b\u8fd8\u539f\u6210\u200b\u77e9\u9635\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8fd8\u539f\u200b\u5230\u200b\u56fe\u50cf\u200b\u4e86\u200b\uff0c\u200b\u90a3\u4e48\u200b\u4ec0\u4e48\u200b\u662f\u200b\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\uff1f

                  \u200b\u60f3\u8c61\u200b\u4e00\u4e2a\u200b\u5750\u6807\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u548c\u200b\u4e00\u4e2a\u200b\u5747\u503c\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u4e8c\u7ef4\u200b\u6b63\u6001\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u4e8c\u8005\u200b\u7684\u200b\u533a\u522b\u200b\uff0c\u200b\u4e00\u4e2a\u70b9\u200b\u53ef\u4ee5\u200b\u51c6\u786e\u200b\u8fd8\u539f\u200b\u5230\u200b\u4e00\u5e45\u200b\u56fe\u50cf\u200b\uff0c\u200b\u4f46\u200b\u6982\u7387\u5206\u5e03\u200b\u5e76\u200b\u4e0d\u200b\u51c6\u786e\u200b\uff0c\u200b\u4ed6\u200b\u53ea\u662f\u200b\u544a\u8bc9\u200b\u6211\u4eec\u200b\u8fd9\u5e45\u200b\u56fe\u200b\u662f\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u5b83\u200b\u4e5f\u200b\u53ef\u80fd\u200b\u662f\u200b\u5176\u4ed6\u200b\u56fe\u50cf\u200b\uff0c\u200b\u5b83\u200b\u662f\u200b\u5176\u4ed6\u200b\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u6982\u7387\u5206\u5e03\u200b\u7b97\u200b\u51fa\u200b\uff0c\u200b\u6bd4\u5982\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u786e\u5b9a\u200b\u4ed6\u200b\u662f\u200b\uff081\uff0c3\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u662f\u200b\u591a\u5c11\u200b\u3002

                  \u200b\u90a3\u4e48\u200b\uff0c\u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u56fe\u50cf\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u6211\u4eec\u200b\u5982\u4f55\u200b\u83b7\u53d6\u200b\u56fe\u50cf\u200b\u5462\u200b\uff1f\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u53d6\u200b\u5747\u503c\u200b\u7684\u200b\u5230\u200b\u56fe\u50cf\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\uff081\uff0c2\uff09\uff0c\u200b\u8fd9\u4e48\u200b\u505a\u200b\u7684\u200b\u9053\u7406\u200b\u662f\u200b\uff1a\u200b\u5b83\u200b\u662f\u200b\u8fd9\u5e45\u200b\u56fe\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u6309\u7167\u200b\u6982\u7387\u200b\u53bb\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u53ef\u80fd\u200b\u662f\u200b\uff081\uff0c2\uff09\uff0c\u200b\u4e5f\u200b\u53ef\u80fd\u200b\u662f\u200b\uff082\uff0c4\uff09\uff0c\u200b\u4f46\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u4e00\u4e9b\u200b\u5f88\u200b\u79bb\u8c31\u200b\u7684\u200b\u70b9\u200b\uff08\u200b\u504f\u79bb\u200b\u5747\u503c\u200b\u5f88\u200b\u8fdc\u200b\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u5c31\u200b\u5f88\u200b\u4f4e\u200b\u3002

                  \u200b\u56de\u5230\u200b DDPM \u200b\u7684\u200b\u5411\u524d\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u8d77\u70b9\u200b\u662f\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\uff081\uff0c2\uff09\uff0c\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e86\u200b\u4e00\u6b65\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5c31\u200b\u4e0d\u518d\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u800c\u662f\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\u53ef\u4ee5\u200b\u8fd1\u4f3c\u200b\u770b\u6210\u200b\u5747\u503c\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u60f3\u50cf\u200b\u6211\u4eec\u200b\u4ece\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\u51fa\u53d1\u200b\uff0c\u200b\u8d70\u200b\u4e86\u200b\u4e00\u6b65\u200b\u540e\u200b\uff0c\u200b\u53ef\u80fd\u200b\u5728\u200b\u4ee5\u200b\u5176\u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u4efb\u4f55\u200b\u4e00\u4e2a\u200b\u5730\u65b9\u200b\u4e0a\u200b\uff0c\u200b\u4e0d\u540c\u200b\u7684\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u6982\u7387\u200b\u90fd\u200b\u4e0d\u540c\u200b\uff08\u200b\u53ef\u4ee5\u200b\u7c7b\u6bd4\u200b\u7535\u5b50\u4e91\u200b\uff09.\u200b\u6211\u4eec\u200b\u518d\u200b\u8d70\u200b\u7b2c\u4e8c\u6b65\u200b\uff0c\u200b\u8ddd\u79bb\u200b\u5c31\u200b\u4f1a\u200b\u66f4\u200b\u8fdc\u200b\u4e00\u4e9b\u200b\uff0c\u200b\u6982\u7387\u5206\u5e03\u200b\u66f4\u200b\u5206\u6563\u200b\u4e00\u4e9b\u200b\u3002

                  \u200b\u6309\u7167\u200b\u539f\u6587\u200b\u8d70\u51fa\u200b\u4e00\u5343\u6b65\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u56fe\u50cf\u200b\u5c31\u200b\u4f1a\u200b\u53d8\u6210\u200b\u4e00\u4e2a\u200b\u4ee5\u200b\u539f\u56fe\u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u5f25\u6563\u200b\u7684\u200b\u5e7f\u9614\u200b\u7684\u200b\u7c7b\u4f3c\u200b\u7403\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\u5185\u200b\u4e86\u200b.\u200b\u56e0\u200b\u5176\u200b\u5e7f\u9614\u200b\uff0c\u200b\u6211\u4eec\u200b\u5927\u6982\u200b\u6700\u7ec8\u200b\u4f1a\u200b\u505c\u200b\u5728\u200b\u67d0\u200b\u4e00\u4e2a\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u4e0a\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u200b\u8bf4\u200b\u7684\u200b\u505c\u200b\u5728\u200b\u4e00\u4e2a\u200b\u566a\u70b9\u200b\u4e0a\u200b\uff0c\u200b\u662f\u200b\u6307\u200b\u4ece\u200b\u6700\u7ec8\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u53d6\u200b\u5747\u503c\u200b\u6216\u8005\u200b\u968f\u673a\u200b\u91c7\u6837\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u4ee5\u200b\u4ece\u200b\u5206\u5e03\u200b\u8dcc\u56de\u200b\u786e\u5b9a\u200b\u503c\u200b\u3002

                  \u200b\u539f\u6587\u4e2d\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u6bcf\u6b65\u200b\u600e\u4e48\u200b\u8d70\u200b\u7684\u200b\u516c\u5f0f\u200b\uff0c\u200b\u5176\u200b\u5177\u6709\u200b\u7684\u200b\u826f\u597d\u200b\u6027\u8d28\u200b\u5c31\u662f\u200b\uff1a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u4ece\u200b\u7ed9\u200b\u8ba2\u200b\u7684\u200b\u8d77\u70b9\u200b\uff0c\\(\\alpha\\)\uff0c\\(\\beta\\)\u200b\u4e2d\u200b\u76f4\u63a5\u200b\u63a8\u51fa\u200b\u7b2c\u200b N \u200b\u6b65\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u5e03\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\uff0c1k \u200b\u6b65\u540e\u200b\\(\\bar \\alpha\\)\u200b\u63a5\u8fd1\u200b\u4e8e\u6797\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u5e03\u200b\u53d6\u200b\u5747\u503c\u200b\u4e5f\u200b\u662f\u200b\u53d6\u200b\u4e0d\u5230\u200b\u539f\u56fe\u200b\u7684\u200b\u4e86\u200b\uff0c\u200b\u5747\u503c\u200b\u5df2\u7ecf\u200b\u5728\u200b 0 \u200b\u9644\u8fd1\u200b.\u200b\u603b\u4f53\u200b\u5206\u5e03\u200b\u63a5\u8fd1\u200b\u9ad8\u65af\u5206\u5e03\u200b\u3002

                  "},{"location":"Research/Diffusion%20Model/DDPM/#_3","title":"\u56de\u5230\u200b\u8d77\u70b9","text":"

                  \u200b\u4ece\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u8d70\u51fa\u200b 1000 \u200b\u6b65\u200b\uff0c\u200b\u5230\u8fbe\u200b\u7684\u200b\u7ec8\u70b9\u200b\uff0c\u200b\u8fd1\u4e4e\u200b\u670d\u4ece\u200b\u9ad8\u65af\u5206\u5e03\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u76f4\u63a5\u200b\u4ece\u200b\u9ad8\u65af\u5206\u5e03\u200b\u91c7\u6837\u200b\uff0c\u200b\u5c31\u200b\u80fd\u200b\u5f97\u5230\u200b\u8fd1\u4f3c\u200b\u4ece\u200b\u67d0\u4e2a\u200b/\u200b\u4efb\u4f55\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u51fa\u8d70\u200b\u6240\u200b\u8fbe\u5230\u200b\u7684\u200b\u7ec8\u70b9\u200b\u4e86\u200b\uff0c\u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u60f3\u200b\u56de\u53bb\u200b\uff0c\u200b\u600e\u4e48\u200b\u56de\u200b\uff1f

                  \u200b\u5230\u200b\u8fd9\u91cc\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u89e3\u7b54\u200b\u539f\u200b\u6a21\u578b\u200b\u4e2d\u200b\u4e00\u4e2a\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u4ee4\u4eba\u56f0\u60d1\u200b\u7684\u200b\u70b9\u200b\u4e86\u200b\uff0c\u200b\u5047\u5982\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e86\u200b 500 \u200b\u6b65\u200b\uff0c\u200b\u5230\u200b\u4e86\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e0b\u200b\u4e00\u6b65\u200b\uff0c\u200b\u5c31\u662f\u200b\u8d70\u200b\u5230\u200b 500 \u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u4e00\u4e2a\u200b\u6982\u7387\u5206\u5e03\u200b\u4e0a\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u8bad\u7ec3\u200b\u4e00\u4e2a\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u6765\u200b\u62df\u5408\u200b\u7684\u8bdd\u200b\uff0c\u200b\u4e0d\u200b\u5c31\u662f\u200b\u5728\u200b\u62df\u5408\u200b\u9ad8\u65af\u200b\u5417\u200b\uff0c\u200b\u9ad8\u65af\u200b\u53c8\u200b\u4f55\u987b\u200b\u62df\u5408\u200b\u5462\u200b\uff1f

                  \u200b\u95ee\u9898\u200b\u5c31\u200b\u5728\u200b\u8fd9\u91cc\u200b\u4e86\u200b\uff0c\u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u968f\u673a\u200b\u91c7\u4e86\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8bf4\u200b\u662f\u200b\u7ec8\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u8d70\u200b\u56de\u53bb\u200b\uff0c\u200b\u5f53\u7136\u200b\u4e0d\u80fd\u200b\u4ee5\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u9ad8\u65af\u200b\u8d70\u200b\uff0c\u200b\u90a3\u200b\u6700\u7ec8\u200b\u8d70\u5230\u200b\u7684\u200b\u8fd8\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u77e5\u9053\u200b\uff0c\u200b\u6211\u200b\u73b0\u5728\u200b\u5728\u200b\u8fd9\u91cc\u200b\uff0c\u200b\u90a3\u200b\u6211\u200b\u4e0a\u200b\u4e00\u6b65\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u662f\u4ece\u200b\u54ea\u91cc\u200b\u6765\u200b\u7684\u200b\uff1f\u200b\u6211\u8981\u200b\u56de\u5230\u200b\u90a3\u4e2a\u200b\u5730\u65b9\u200b\u53bb\u200b\u3002

                  \u200b\u60f3\u8c61\u200b\u4e00\u4e0b\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u91c7\u6837\u200b\u7684\u200b\u70b9\u200b\u5728\u200b\u8d77\u70b9\u200b\u90a3\u4e2a\u200b\u5706\u200b\u7684\u200b\u4e0a\u65b9\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u7684\u200b\u56de\u7b54\u200b\u662f\u200b\uff1a\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u4e0b\u9762\u200b\u6765\u200b\uff0c\u200b\u8981\u200b\u56de\u53bb\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5f80\u4e0b\u8d70\u200b.\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u5728\u200b\u4e0b\u9762\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u4e0a\u9762\u200b\u6765\u200b\uff0c\u200b\u5f80\u4e0a\u8d70\u200b.\u200b\u6240\u4ee5\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u54ea\u91cc\u200b\u6765\u4f1a\u200b\u968f\u7740\u200b\u6211\u200b\u73b0\u5728\u200b\u5728\u200b\u54ea\u91cc\u200b\u800c\u200b\u53d8\u5316\u200b\uff0c\u200b\u6240\u4ee5\u200b\uff0c\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u9884\u6d4b\u200b\u7684\u200b\u65f6\u5019\u200b\u9700\u8981\u200b\u6211\u4eec\u200b\u73b0\u5728\u200b\u7684\u200b\u4f4d\u7f6e\u200b\uff08\\(x_t\\)\uff09\u200b\u548c\u200b\u65f6\u95f4\u200b\uff0c\u200b\u6765\u200b\u62df\u5408\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u6765\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u3002

                  \u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5f00\u59cb\u200b\u8bad\u7ec3\u200b\uff0c\u200b\u7b2c\u4e00\u6b21\u200b\u8bad\u7ec3\u200b\u53ef\u80fd\u200b\u7f51\u7edc\u200b\u4e00\u6b65\u6b65\u200b\u5f80\u4e0a\u8d70\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u6a21\u578b\u200b\u503e\u5411\u200b\u4e8e\u200b\u5728\u200b\u8fd9\u4e9b\u200b\u8def\u5f84\u200b\u70b9\u4e0a\u200b\u8f93\u51fa\u200b\uff1a\u200b\u563f\u200b\uff0c\u200b\u6211\u200b\u662f\u4ece\u200b\u4e0b\u9762\u200b\u6765\u200b\u7684\u200b\uff0c\u200b\u5f80\u4e0b\u8d70\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u56de\u53bb\u200b.\u200b\u7b2c\u4e8c\u6b21\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u80fd\u200b\u5f80\u200b\u5de6\u200b\u8d70\u200b\uff0c\u200b\u540c\u6837\u200b\u8ba9\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u5728\u200b\u8fd9\u6761\u200b\u8def\u5f84\u200b\u4e0a\u200b\u61c2\u5f97\u200b\u5982\u4f55\u200b\u56de\u5f52\u200b.\u200b\u6700\u7ec8\u200b\uff0c\u200b\u8bad\u7ec3\u200b\u5b8c\u6bd5\u200b\u540e\u200b\uff0c\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u5c31\u200b\u61c2\u5f97\u200b\u5982\u4f55\u200b\u4ece\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u70b9\u200b\u8d70\u200b\u56de\u53bb\u200b\u4e86\u200b\u3002

                  \u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u8bbe\u8ba1\u200b\u5408\u9002\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u8ba9\u200b\u8bad\u7ec3\u200b\u8fc7\u7a0b\u200b\u53ef\u4ee5\u200b\u66f4\u597d\u200b\u7684\u200b\u9886\u8def\u200b\u56de\u53bb\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u6587\u7ae0\u200b\u4e2d\u200b\u6570\u5b66\u200b\u90e8\u5206\u200b\u5206\u6790\u200b\u7684\u200b\u5de5\u4f5c\u200b\u4e86\u200b\u3002

                  "},{"location":"Research/Diffusion%20Model/DDPM/#_4","title":"\u795e\u5947\u200b\u7684\u200b\u8bed\u610f\u200b\u878d\u5408","text":"

                  \u200b\u6211\u200b\u4e5f\u200b\u4e0d\u200b\u77e5\u9053\u200b\u5728\u200b\u8fd9\u91cc\u200b\u9002\u7528\u200b\u4e8e\u200b\u4ee5\u200b\u878d\u5408\u200b\u5bf9\u200b\u4e0d\u200b\u5bf9\u200b\uff0c\u200b\u4f46\u200b\u4e8b\u5b9e\u200b\u5c31\u662f\u200b\uff0c\u200b\u8f93\u5165\u200b\u7684\u200b\u8d77\u70b9\u200b\u4e0d\u200b\u552f\u4e00\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u540e\u200b\u8d70\u200b\u56de\u6765\u200b\u7684\u8bdd\u200b\uff0c\u200b\u4e0d\u4ec5\u200b\u53ef\u4ee5\u200b\u8d70\u200b\u56de\u200b\u8d77\u70b9\u200b\uff0c\u200b\u800c\u4e14\u200b\u53ef\u4ee5\u200b\u8d70\u200b\u56de\u200b\u8d77\u70b9\u200b\u4e4b\u95f4\u200b\u7684\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6bd4\u5982\u200b\u8f93\u5165\u200b\u6ee1\u6708\u200b\u548c\u200b\u534a\u6708\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u751f\u6210\u200b \u00be \u200b\u6708\u200b\uff0c\u200b\u8fd9\u200b\u4e24\u5e45\u200b\u56fe\u200b\u5728\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e0d\u540c\u70b9\u200b\u4e0a\u200b\uff0c\u200b\u76f8\u805a\u200b\u6709\u200b\u4e00\u6bb5\u8ddd\u79bb\u200b\uff0c\u200b\u4ed6\u4eec\u200b\u4e2d\u95f4\u200b\u7684\u200b\u70b9\u200b\u5927\u90e8\u5206\u200b\u90fd\u200b\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u566a\u70b9\u200b\uff0c\u200b\u4f46\u662f\u200b\u5374\u200b\u80fd\u200b\u88ab\u200b\u6210\u529f\u200b\u8d70\u200b\u5230\u200b\uff0c\u200b\u5b9e\u5728\u200b\u662f\u200b\u795e\u5947\u200b\u3002

                  "},{"location":"Research/Diffusion%20Model/DDPM/#_5","title":"\u8fdb\u4e00\u6b65\u200b\u7684\u200b\u5b66\u4e60","text":"

                  \u200b\u4ee5\u4e0a\u200b\u662f\u200b\u5bf9\u200b DDPM \u200b\u7684\u200b\u4e00\u4e2a\u200b\u7406\u89e3\u200b\u7684\u200b\u89d2\u5ea6\u200b\uff0c\u200b\u5927\u4f6c\u200b\u7684\u200b\u535a\u5ba2\u200b\u8fd8\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u5bf9\u4e8e\u200b DDPM \u200b\u7684\u200b\u4e24\u79cd\u200b\u4e0d\u540c\u200b\u7684\u200b\u7406\u89e3\u200b\u7684\u200b\u89c6\u89d2\u200b

                  \u200b\u6211\u4eec\u200b\u5148\u8bfb\u200b\u7b2c\u4e00\u7bc7\u200b\uff0c\u200b\u8fd9\u7bc7\u200b\u53ef\u4ee5\u200b\u8ddf\u8bfb\u200b.\u200b\u9996\u5148\u200b\u6587\u7ae0\u200b\u8bf4\u660e\u200b\u4e86\u200b\u628a\u200b\u95ee\u9898\u200b\u5206\u89e3\u6210\u200b\u591a\u200b\u6b65\u200b\u53ef\u4ee5\u200b\u5927\u5e45\u5ea6\u63d0\u9ad8\u200b\u62df\u5408\u200b\u80fd\u529b\u200b\uff0c\u200b\u8fd9\u200b\u662f\u200b\u5f88\u200b\u6709\u200b\u6559\u4e49\u200b\u7684\u200b\u89c2\u5bdf\u200b\u3002

                  \u200b\u8054\u5408\u200b\u6563\u5ea6\u200b\u7684\u200b\u6700\u200b\u6d88\u5316\u200b\u76ee\u6807\u200b\u4e5f\u200b\u5f88\u200b\u597d\u200b\u7406\u89e3\u200b\uff0c\u200b\u9996\u5148\u200b\u8981\u200b\u77e5\u9053\u200b KL \u200b\u6563\u5ea6\u200b\u662f\u200b\u8861\u91cf\u200b\u4e24\u4e2a\u200b\u5206\u5e03\u200b\u4e4b\u95f4\u200b\u76f8\u8fd1\u200b\u7a0b\u5ea6\u200b\u7684\u200b\u975e\u8d1f\u200b\u51fd\u6570\u200b\uff0cKL \u200b\u6563\u5ea6\u200b\u4e3a\u200b\u96f6\u5f53\u4e14\u200b\u4ec5\u200b\u5f53\u200b\u4e24\u4e2a\u200b\u5206\u5e03\u200b\u5b8c\u5168\u76f8\u540c\u200b.\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u8d70\u200b\u51fa\u6765\u200b\u7684\u200b\u8def\u200b\u8ddf\u200b\u8d70\u200b\u56de\u53bb\u200b\u7684\u200b\u8def\u200b\u662f\u200b\u5c3d\u53ef\u80fd\u200b\u76f8\u8fd1\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u8981\u200b\u6700\u5c0f\u5316\u200b KL \u200b\u6563\u5ea6\u200b\u3002

                  \u200b\u968f\u540e\u200b\u5c31\u662f\u200b\u6570\u5b66\u200b\u5904\u7406\u200b\uff0c\u200b\u53bb\u6389\u200b\u6700\u5c0f\u5316\u200b\u76ee\u6807\u200b\u4e2d\u200b\u7684\u200b\u65e0\u5173\u200b\u5e38\u6570\u200b\u9879\u200b.\u200b\u5e76\u200b\u5316\u7b80\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u4f7f\u200b\u4e4b\u200b\u53ef\u7528\u200b\u3002

                  \u200b\u8d85\u53c2\u200b\u8bbe\u7f6e\u200b\u4e2d\u200b\uff0c\u200b\u8981\u6c42\u200b\u8fb9\u7f18\u200b\u5206\u5e03\u200b\u76f8\u7b49\u200b\uff0c\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u8981\u6c42\u200b\u7ec8\u70b9\u200b\u7684\u200b\u5206\u5e03\u200b\u8981\u200b\u8fd1\u4f3c\u4e8e\u200b\u9ad8\u65af\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\\(\\bar \\alpha\\)\u200b\u8fd1\u4e4e\u200b 0 \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002

                  \u200b\u6709\u200b\u4e86\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u94fa\u57ab\u200b\uff0c\u200b\u6211\u200b\u8ba4\u4e3a\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b\u7684\u200b\u8109\u7edc\u200b\u662f\u200b\u76f8\u5f53\u200b\u6e05\u6670\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fdb\u5165\u200b\u4e0b\u200b\u4e00\u7bc7\u200b\u3002

                  \u200b\u7b2c\u4e09\u7bc7\u200b\u7684\u200b\u524d\u9762\u200b\u4e00\u5927\u90e8\u5206\u200b\u90fd\u200b\u8ddf\u200b\u7b2c\u4e00\u7bc7\u200b\u5b8c\u5168\u200b\u4e00\u6837\u200b\uff0c\u200b\u4f46\u200b\u5230\u200b\u4e86\u200b\u8d1d\u53f6\u65af\u200b\u7684\u200b\u90e8\u5206\u200b\uff0c\u200b\u5f00\u59cb\u200b\u6709\u200b\u4e86\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u77e5\u9053\u200b\uff0c\u200b\u5728\u200b DDPM \u200b\u4e2d\u200b\uff0c\\(p(x_{t-1}|x_t) = p(x_{t-1}|x_t\uff0cx_0)\\)\uff0c\u200b\u56e0\u4e3a\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u9a6c\u5c14\u53ef\u592b\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u6bcf\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\u4ec5\u200b\u4e0e\u200b\u524d\u200b\u4e00\u200b\u72b6\u6001\u200b\u6709\u5173\u200b\uff0c\u200b\u800c\u200b\u4e0e\u200b\u66f4\u200b\u524d\u200b\u7684\u200b\u72b6\u6001\u200b\u65e0\u5173\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u6210\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u77e5\u9053\u200b 500 \u200b\u6b65\u5230\u200b\u54ea\u91cc\u200b\u4e86\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u7ed9\u5b9a\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u80fd\u200b\u6709\u200b 501 \u200b\u6b65\u200b\u7684\u200b\u5206\u5e03\u200b\uff0c\u200b\u7b2c\u200b 0-499 \u200b\u6b65\u200b\uff0c\u200b\u7ed9\u200b\u4e0d\u200b\u7ed9\u200b\u90fd\u200b\u65e0\u6240\u8c13\u200b\uff0c\u200b\u4e0d\u200b\u6539\u53d8\u200b\u5206\u5e03\u200b\uff0c\u200b\u4f46\u662f\u200b\u5f15\u5165\u200b\u4e86\u200b\u8d77\u70b9\u200b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u662f\u200b\u53ef\u4ee5\u200b\u4ece\u200b\u8d77\u70b9\u200b\u76f4\u63a5\u200b\u63a8\u200b\\(x_t\uff0cx_{t-1}\\)\u200b\u7684\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u8ba9\u200b\u6211\u4eec\u200b\u7684\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e2d\u200b\u8bb8\u591a\u200b\u9879\u200b\u6210\u4e3a\u200b\u5df2\u77e5\u200b\u3002

                  \u200b\u968f\u540e\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e00\u8def\u200b\u63a8\u5bfc\u200b\u51fa\u200b\u635f\u5931\u200b\u51fd\u6570\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u63a8\u5bfc\u200b\u6d41\u7a0b\u200b\u4e0b\u200b\\(x_0\\)\u200b\u7ed9\u5b9a\u200b\uff0c\u200b\u6211\u4eec\u200b\u80fd\u200b\u76f4\u63a5\u200b\u5f97\u5230\u200b\u5f80\u56de\u200b\u8d70\u200b\u7684\u200b\u65b9\u5411\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u552f\u4e00\u200b\u9700\u8981\u200b\u8bad\u7ec3\u200b\u7684\u200b\u662f\u200b\u6a21\u578b\u200b\u731c\u200b\u539f\u70b9\u200b\u7684\u200b\u80fd\u529b\u200b\uff0c\u200b\u800c\u200b\u8fd9\u200b\u4e00\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff0c\u200b\u6b63\u5982\u200b\u63a8\u5bfc\u200b\u51fa\u6765\u200b\u7684\u200b\u90a3\u6837\u200b\uff0c\u200b\u662f\u200b\u8ddf\u200b\u524d\u9762\u200b\u51e0\u4e2a\u200b\u89c6\u89d2\u200b\u4e00\u6837\u200b\u7684\u200b\u3002

                  \u200b\u5230\u200b\u4e86\u200b\u9884\u4f30\u200b\u4fee\u6b63\u200b\u4e00\u8282\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u884c\u4e3a\u200b\u6709\u200b\u53ef\u4ee5\u200b\u88ab\u200b\u89e3\u91ca\u200b\u4e3a\u200b\uff0c\u200b\u5148\u731c\u200b\u51fa\u200b\u4e00\u4e2a\u200b\u8d77\u70b9\u200b\uff0c\u200b\u5f80\u56de\u200b\u8d70\u200b\uff0c\u200b\u5e76\u200b\u901a\u8fc7\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u4fee\u6b63\u200b\u8d77\u70b9\u200b\uff0c\u200b\u7136\u540e\u200b\u8d70\u200b\u4e0b\u200b\u4e00\u6b21\u200b\uff0c\u200b\u8fd9\u6837\u200b\u6211\u4eec\u200b\u8d77\u70b9\u200b\u731c\u200b\u7684\u200b\u8d8a\u6765\u8d8a\u200b\u51c6\u200b\uff0c\u200b\u56de\u5230\u200b\u8d77\u70b9\u200b\u7684\u200b\u80fd\u529b\u200b\u4e5f\u200b\u8d8a\u6765\u8d8a\u200b\u5f3a\u200b\u4e86\u200b\u3002

                  \u200b\u6b64\u5904\u200b\u7684\u200b\u7b2c\u4e09\u79cd\u200b\u7406\u89e3\u200b\u662f\u200b\u4e0e\u200b\u540e\u6765\u200b\u7684\u200b DDIM \u200b\u6709\u200b\u5f88\u200b\u5f3a\u200b\u7684\u200b\u5173\u8054\u6027\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\u6211\u4eec\u200b\u5229\u7528\u200b\u4e86\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e4b\u540e\u200b\u5176\u5b9e\u200b\u53ea\u200b\u9700\u8981\u200b\u5404\u4e2a\u200b\u65f6\u95f4\u200b\u70b9\u200b\u5bf9\u4e8e\u200b\\(x_0\\)\u200b\u7684\u200b\u5206\u5e03\u200b\u800c\u200b\u4e0d\u200b\u9700\u8981\u200b\u5176\u200b\u5bf9\u4e8e\u200b\u524d\u200b\u4e00\u4e2a\u200b\u65f6\u95f4\u200b\u70b9\u200b\u7684\u200b\u5206\u5e03\u200b\u4e86\u200b\uff0c\u200b\u4f46\u662f\u200b\u8981\u200b\u6ce8\u610f\u200b\uff0c\u200b\u6211\u4eec\u200b\u4ece\u540e\u200b\u5f80\u524d\u200b\u63a8\u200b\u4ecd\u7136\u200b\u9700\u8981\u200b\u4e00\u6b65\u200b\u4e00\u6b65\u200b\u8d70\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u4e00\u6b65\u200b\u8d70\u200b\u5b8c\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u9000\u5316\u200b\u56de\u200b VAE \u200b\u4e86\u200b\u3002

                  "},{"location":"blog/","title":"Blog","text":""},{"location":"blog/Minisql/","title":"Minisql","text":"

                  \u200b\u7ea6\u200b 544 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

                  Abstract

                  Minisql \u200b\u662f\u200b\u8ba1\u7b97\u673a\u79d1\u5b66\u200b\u4e0e\u200b\u6280\u672f\u200b\u4e13\u4e1a\u200b\u5927\u4e8c\u200b\u6625\u590f\u200b\u7684\u200b\u5fc5\u4fee\u8bfe\u200b\u6570\u636e\u5e93\u7cfb\u7edf\u200b\u590f\u200b\u5b66\u671f\u200b\u7684\u200b\u5927\u7a0b\u200b.\u200b\u672c\u200b\u535a\u5ba2\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u672c\u4eba\u200b\u5b9e\u73b0\u200b\u8fd9\u4e00\u200b\u6846\u67b6\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u7684\u200b\u95ee\u9898\u200b\u548c\u200b\u611f\u60f3\u200b\u3002

                  "},{"location":"blog/Minisql/#_1","title":"\u7b80\u4ecb","text":"

                  \u200b\u5f88\u200b\u65e9\u5c31\u200b\u542c\u8bf4\u200b\u4e86\u200b Minisql \u200b\u7684\u200b\u5927\u540d\u200b\u4e86\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u8fd9\u4e2a\u200b\u5927\u4e8c\u200b\u6625\u590f\u200b\u5230\u6765\u200b\u7684\u200b\u636e\u8bf4\u200b\u975e\u5e38\u200b\u5e9e\u5927\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5de5\u7a0b\u200b\uff0c\u200b\u6211\u200b\u5fc3\u91cc\u200b\u5176\u5b9e\u200b\u662f\u200b\u65e2\u200b\u975e\u5e38\u200b\u5bb3\u6015\u200b\u53c8\u200b\u975e\u5e38\u200b\u671f\u5f85\u200b\u7684\u200b\uff0c\u200b\u4e4b\u524d\u200b\u505a\u200b\u7684\u200b\u5927\u7a0b\u200b\u603b\u200b\u611f\u89c9\u200b\u7f3a\u200b\u90a3\u4e48\u200b\u70b9\u200b\u610f\u601d\u200b\uff0c\u200b\u4f46\u200b\u5230\u200b\u8fd9\u91cc\u200b\u5c31\u200b\u611f\u89c9\u200b\u5473\u200b\u5bf9\u200b\u4e86\u200b\uff08\u200b\u7b11\u200b\u54ed\u200b\uff09.

                  \u200b\u8fd9\u200b\u7ed9\u200b\u9879\u76ee\u200b\u662f\u200b\u53ef\u4ee5\u200b\u7ec4\u961f\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5355\u5237\u200b\u7684\u200b\uff0c\u200b\u6211\u200b\u9009\u62e9\u200b\u4e86\u200b\u5355\u5237\u200b\u5b8c\u6210\u200b\uff0c\u200b\u4e2a\u4eba\u200b\u8ba4\u4e3a\u200b\u5de5\u4f5c\u91cf\u200b\u662f\u200b\u5355\u4eba\u200b\u53ef\u4ee5\u200b\u627f\u62c5\u200b\u7684\u200b\uff0c\u200b\u4e5f\u200b\u6bd4\u8f83\u200b\u63a8\u8350\u200b\u5355\u4eba\u200b\u5b8c\u6210\u200b.\u200b\u4e00\u662f\u200b\u5f88\u591a\u200b\u6a21\u5757\u200b\u53ea\u6709\u200b\u81ea\u5df1\u200b\u4e0a\u200b\u624b\u5199\u200b\u8fc7\u200b\u4e86\u200b\uff0cdebug \u200b\u8fc7\u200b\u4e86\u200b\u624d\u200b\u6709\u200b\u771f\u5207\u200b\u7684\u200b\u611f\u53d7\u200b\uff1b\u200b\u4e8c\u662f\u200b\u6211\u200b\u89c9\u5f97\u200b\u5f88\u9177\u200b\uff01\ud83d\ude0e

                  "},{"location":"blog/Minisql/#_2","title":"\u6536\u83b7","text":"
                  1. \u200b\u7ec3\u4e60\u200b\u5de9\u56fa\u200b\u4e86\u200b oop \u200b\u548c\u200b db\uff0c\u200b\u524d\u8005\u200b\u662f\u56e0\u4e3a\u200b\u8fd9\u4e2a\u200b\u9879\u76ee\u200b\u90fd\u200b\u662f\u200b\u7528\u200b C++\u200b\u5b9e\u73b0\u200b\u7684\u200b.\u200b\u540e\u8005\u200b\u662f\u56e0\u4e3a\u200b\u8fd9\u4e2a\u200b\u9879\u76ee\u200b\u5f88\u591a\u200b\u90e8\u5206\u200b\u90fd\u200b\u662f\u200b\u628a\u200b\u6570\u636e\u5e93\u200b\u7406\u8bba\u200b\u5e94\u5f53\u200b\u7528\u5230\u200b\u5b9e\u8df5\u200b\u4e2d\u200b\u3002
                  2. \u200b\u719f\u6089\u200b\u4e86\u200b\u5927\u200b\u9879\u76ee\u200b\u7684\u200b\u6846\u67b6\u200b\uff0c\u200b\u4ee5\u53ca\u200b git\uff0ccmake \u200b\u7b49\u200b\u5de5\u5177\u200b\uff0c\u200b\u90fd\u200b\u662f\u200b\u5f88\u200b\u5b9e\u7528\u200b\u7684\u200b\u5de5\u5177\u200b\uff08\u200b\u5f53\u7136\u200b\u5728\u200b\u9879\u76ee\u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ea\u200b\u4fdd\u6301\u200b\u6700\u4f4e\u200b\u9650\u5ea6\u200b\u7684\u200b\u4f7f\u7528\u200b\u4e5f\u200b\u662f\u200b\u53ef\u4ee5\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b\u611f\u5174\u8da3\u200b\u7684\u8bdd\u200b\u5b8c\u5168\u200b\u53ef\u4ee5\u200b\u8d81\u200b\u8fd9\u4e2a\u200b\u673a\u4f1a\u200b\u719f\u6089\u8d77\u6765\u200b\uff09
                  3. \u200b\u719f\u6089\u200b\u4e86\u200b\u4e00\u4e9b\u200b\u8c03\u8bd5\u200b\u7684\u200b\u6280\u5de7\u200b\u548c\u200b\u597d\u200b\u7528\u200b\u7684\u200b\u6027\u80fd\u200b\u5206\u6790\u200b\u5de5\u5177\u200b
                  4. \u200b\u53c8\u200b\u88ab\u200b\u642d\u200b\u73af\u5883\u200b\u6298\u78e8\u200b\u4e86\u200b\u4e00\u904d\u200b\uff0c\u200b\u6297\u9006\u6027\u200b\u63d0\u9ad8\u200b\u4e86\u200b\uff01\ud83d\ude05
                  "},{"location":"blog/Minisql/#_3","title":"\u603b\u7eb2","text":"

                  \u200b\u8fd9\u90e8\u5206\u200b\u535a\u5ba2\u200b\u7684\u200b\u7ec4\u7ec7\u200b\u5f62\u5f0f\u200b\u5927\u4f53\u200b\u8fd8\u662f\u200b\u6309\u7167\u200b\u9879\u76ee\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u533a\u5206\u200b\u7684\u200b\u6a21\u5757\u200b\u987a\u5e8f\u200b\u6765\u200b\u7684\u200b\uff0c\u200b\u5728\u200b\u6700\u200b\u5f00\u5934\u200b\u8fd8\u6709\u200b\u4e00\u4e2a\u200b\u642d\u5efa\u200b\u73af\u5883\u200b\u7684\u200b\u8e29\u200b\u5751\u200b\u8bb0\u5f55\u200b\u3002

                  \u200b\u5728\u200b\u5177\u4f53\u200b\u5b9e\u73b0\u200b\u7684\u200b\u5404\u200b\u90e8\u5206\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u200b\u4e3b\u8981\u200b\u662f\u200b\u4f1a\u200b\u4ecb\u7ecd\u200b\u8fd9\u4e9b\u200b\u6a21\u5757\u200b\u91cc\u9762\u200b\u5404\u4e2a\u200b\u7ed3\u6784\u200b\u3001\u200b\u51fd\u6570\u200b\u5728\u200b\u4ec0\u4e48\u200b\u60c5\u5883\u200b\u4e0b\u200b\u5e94\u8be5\u200b\u88ab\u200b\u8c03\u7528\u200b\uff0c\u200b\u88ab\u200b\u8c03\u7528\u200b\u6765\u200b\u505a\u200b\u4ec0\u4e48\u200b\u4e8b\u200b\uff0c\u200b\u6574\u4e2a\u200b\u5927\u200b\u7684\u200b\u6a21\u5757\u200b\u5728\u200b\u505a\u200b\u4ec0\u4e48\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5982\u4f55\u200b\u4f18\u5316\u200b\u3002

                  \u200b\u53ef\u4ee5\u200b\u8bf4\u200b\u548c\u200b\u9879\u76ee\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u7684\u200b\u5185\u5bb9\u200b\u5728\u200b\u503e\u5411\u6027\u200b\u4e0a\u200b\u6709\u200b\u4e00\u4e9b\u200b\u91cd\u53e0\u200b\uff0c\u200b\u4f46\u200b\u4eba\u5bb6\u200b\u8bf4\u200b\u8fc7\u200b\u4e86\u200b\u6211\u200b\u5c31\u200b\u5c3d\u91cf\u200b\u4e0d\u518d\u200b\u91cd\u590d\u200b\u4e86\u200b\uff0c\u200b\u4e3b\u8981\u200b\u662f\u4ece\u200b\u4e00\u4e2a\u200b\u5b9e\u73b0\u200b\u8005\u200b\u7684\u200b\u89d2\u5ea6\u200b\u6765\u8bb2\u200b\u56f0\u60d1\u200b\u548c\u200b\u7406\u89e3\u200b\u7684\u200b\u3002

                  "},{"location":"blog/Minisql/minisql_part0/","title":"Minisql Environment Configurations","text":"

                  \u200b\u7ea6\u200b 602 \u200b\u4e2a\u200b\u5b57\u200b 24 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

                  Abstract

                  \u200b\u867d\u7136\u200b\u5df2\u7ecf\u200b\u642d\u51fa\u200b\u80fd\u200b\u7528\u200b\u7684\u200b\u73af\u5883\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u8fd8\u662f\u200b\u5f88\u96be\u200b\u4e0d\u200b\u5728\u200b\u5f00\u5934\u200b\u653e\u200b\u4e0a\u200b\u4e09\u4e2a\u200b\u6d41\u6c57\u200b\u9ec4\u8c46\u200b\u6765\u200b\u8868\u8fbe\u200b\u6211\u200b\u5bf9\u200b\u642d\u200b\u73af\u5883\u200b\u8fd9\u4ef6\u200b\u4e8b\u200b\u7684\u200b\u65e0\u8bed\u200b\ud83d\ude05\ud83d\ude05\ud83d\ude05

                  "},{"location":"blog/Minisql/minisql_part0/#_1","title":"\u521d\u8bd5\u200b\uff1a\u200b\u672c\u5730\u200b\u8fd0\u884c","text":"

                  \u200b\u672c\u4eba\u200b\u76ee\u524d\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b MacBookPro\uff0cMacOS Ventura13.3.1. \u200b\u76f4\u8bf4\u200b\u7684\u8bdd\u200b\uff0c\u200b\u672c\u5730\u200b\u8fd0\u884c\u200b\u7684\u200b\u5c1d\u8bd5\u200b\u5931\u8d25\u200b\u4e86\u200b\ud83d\ude05

                  "},{"location":"blog/Minisql/minisql_part0/#cmake","title":"Cmake","text":"

                  \u200b\u7b2c\u4e00\u4e2a\u200b\u5751\u200b\u662f\u200b cmake \u200b\u9636\u6bb5\u200b \u200b\u6709\u200b\u5982\u4e0b\u200b\u7684\u200b\u7ecf\u5178\u200b\u62a5\u9519\u200b\uff08\u200b\u7ecf\u5178\u200b\u662f\u56e0\u4e3a\u200b\u6211\u89c1\u200b\u8fc7\u200b\u4ed6\u200b\u65e0\u6570\u6b21\u200b\u4e86\u200b\uff09\uff1a

                  cmake ..                                                                                                                                                                                       \u2500\u256f\nCMake Error at /Users/xxx/opt/anaconda3/lib/cmake/GTest/GTestTargets.cmake:37 (message):\n  Some (but not all) targets in this export set were already defined.\n\n  Targets Defined: GTest::gtest;GTest::gtest_main\n\n  Targets not yet defined: GTest::gmock;GTest::gmock_main\n\nCall Stack (most recent call first):\n  /Users/xxx/opt/anaconda3/lib/cmake/GTest/GTestConfig.cmake:32 (include)\n  thirdparty/glog/CMakeLists.txt:71 (find_package)\n

                  \u200b\u6211\u200b\u4e0d\u200b\u61c2\u200b cmake\uff0c\u200b\u4e5f\u200b\u641c\u200b\u4e0d\u5230\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u611f\u89c9\u200b\u53ef\u80fd\u200b\u8ddf\u200b\u7248\u672c\u200b\u517c\u5bb9\u200b\u5565\u200b\u7684\u200b\u6709\u5173\u200b\uff08\u200b\u6709\u200b\u77e5\u9053\u200b\u7684\u200b\u5927\u4f6c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u5728\u200b\u8bc4\u8bba\u200b\u533a\u91cc\u200b\u8bf4\u200b\u8bf4\u200b\uff0c\u200b\u611f\u8c22\u200b\uff01\uff09\u200b\u4e0d\u8fc7\u200b\u6211\u200b\u770b\u5230\u200b\u4e86\u200b\u62a5\u9519\u200b\u8def\u5f84\u200b\u4e0a\u200b\u4e86\u200b anaconda3\uff0c\u200b\u60f3\u200b\u8d77\u6765\u200b\u6211\u200b\u7ec8\u7aef\u200b\u7684\u200b\u73af\u5883\u200b\u8fd8\u662f\u200b conda base\uff0c\u200b\u6240\u4ee5\u200b\u6211\u200b\u4e00\u4e2a\u200bconda deactivae\u200b\u540e\u200b\uff0c\u200b\u91cd\u5efa\u200b build \u200b\u76ee\u5f55\u200b\uff0c\u200b\u518d\u200b cmake \u200b\u5c31\u200b\u6ca1\u6709\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u4e86\u200b\u3002

                  \u200b\u4f46\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u53ea\u662f\u200b\u88ab\u200b\u6682\u65f6\u200b\u4fee\u590d\u200b\u4e86\u200b\u7b97\u662f\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u8c03\u7528\u200b VSCode \u200b\u7684\u200b cmake \u200b\u63d2\u4ef6\u200b\u5565\u200b\u7684\u200b\u8fd8\u662f\u200b\u4f1a\u200b\u8fd9\u6837\u200b\uff0c\u200b\u6211\u200b\u4e5f\u200b\u6ca1\u200b\u627e\u200b\u51fa\u6765\u200b\u8fd9\u91cc\u200b\u7684\u200b\u8981\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b\u3002

                  "},{"location":"blog/Minisql/minisql_part0/#make","title":"Make","text":"

                  Cmake \u200b\u901a\u200b\u4e86\u200b Make \u200b\u53c8\u200b\u4e0d\u901a\u200b\ud83d\ude05 \u200b\u62a5\u9519\u200b\u5982\u4e0b\u200b\uff1a

                  In file included from /Users/xxx/Desktop/minisql/src/executor/execute_engine.cpp:1:\nIn file included from /Users/xxx/Desktop/minisql/src/include/executor/execute_engine.h:5:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/string:551:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/string_view:222:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/algorithm:1851:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__algorithm/ranges_sample.h:13:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__algorithm/sample.h:18:\n/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__random/uniform_int_distribution.h:162:5: error: static_assert failed due to requirement '__libcpp_random_is_valid_inttype<char>::value' \"IntType must be a supported integer type\"\n    static_assert(__libcpp_random_is_valid_inttype<_IntType>::value\uff0c \"IntType must be a supported integer type\");\n    ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n/Users/xxx/Desktop/minisql/test/include/utils/utils.h:24:41: note: in instantiation of template class 'std::uniform_int_distribution<char>' requested here\n    std::uniform_int_distribution<char> uniform_dist(33\uff0c 122);\n
                  \u200b\u770b\u8d77\u6765\u200b\u662f\u200b\u6846\u67b6\u200b\u91cc\u200b\u5b9e\u4f8b\u200b\u5316\u200b\u6a21\u677f\u200b\u7684\u200b\u65f6\u5019\u200b\u7528\u200b\u7684\u200b\u7684\u200b char \u200b\u7c7b\u578b\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u91cc\u200b\u4e0d\u8ba9\u200b\u7528\u200b char \u200b\u7c7b\u578b\u200b\uff0c\u200b\u90a3\u200b\u600e\u4e48\u529e\u200b\uff0c\u200b\u8981\u200b\u6211\u200b\u53bb\u200b\u6539\u200b\u6846\u67b6\u200b\u5417\u200b\uff0c\u200b\u8fd9\u200b\u73a9\u610f\u200b\u4e07\u4e00\u200b\u8026\u5408\u200b\u7684\u200b\u5f88\u200b\u7d27\u200b\u6211\u200b\u7684\u200b\u7406\u89e3\u200b\u6210\u672c\u200b\u52a0\u200b\u4fee\u6539\u200b\u6210\u672c\u200b\u4f30\u8ba1\u200b\u90fd\u200b\u591f\u200b\u6211\u200b\u53d7\u200b\u7684\u200b\u4e86\u200b.\u200b\u8fd9\u91cc\u200b\u7684\u200b\u4e24\u4e2a\u200b\u9009\u62e9\u200b\u4e00\u4e2a\u200b\u662f\u200b\u6362\u4e2a\u200b SDK \u200b\u7248\u672c\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u4e0d\u200b\u77e5\u9053\u200b\u80fd\u200b\u4e0d\u80fd\u200b\u8d77\u6548\u200b\uff0c\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u5c31\u662f\u200b\u8dd1\u200b\u8def\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u8fd8\u6709\u200b\u4e00\u53f0\u200b Windows \u200b\u6e38\u620f\u200b\u672c\u200b\uff0c\u200b\u6240\u4ee5\u200b\u679c\u65ad\u200b\u6da6\u200b\u4e86\u200b\u3002

                  "},{"location":"blog/Minisql/minisql_part0/#wsl2","title":"\u4e8c\u8bd5\u200b\uff1aWSL2","text":"

                  \u200b\u6211\u200b\u7684\u200b Win \u200b\u672c\u200b\u65e9\u5c31\u200b\u88c5\u200b\u8fc7\u200b WSL2 \u200b\u4e86\u200b\uff0c\u200b\u4e4b\u524d\u200b\u8dd1\u200b\u4e00\u4e9b\u200b\u6a21\u578b\u200b\u7684\u200b\u65f6\u5019\u200b\u628a\u200b ssh \u200b\u5565\u200b\u7684\u200b\u4e5f\u200b\u914d\u597d\u200b\u4e86\u200b\uff08\u200b\u4e0d\u8fc7\u200b\u7389\u6e56\u200b\u53ea\u80fd\u200b\u7528\u200b\u52a8\u6001\u200b IP \u200b\u6211\u200b\u4e09\u5929\u4e24\u5934\u200b\u5c31\u200b\u5f97\u200b\u6362\u200b\u4e00\u4e0b\u200b\ud83d\ude05\uff09\uff0c\u200b\u6240\u4ee5\u200b\u6210\u672c\u200b\u5176\u5b9e\u200b\u4e0d\u200b\u5927\u200b\u3002 \u200b\u8fd9\u91cc\u200b\u9047\u5230\u200b\u4e24\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u4e00\u662f\u200b cmake \u200b\u9636\u6bb5\u200b\u8ddf\u200b\u4e0a\u9762\u200b\u4e00\u6837\u200b\u7684\u200b\u95ee\u9898\u200b\uff0c\u200b\u89e3\u51b3\u200b\u65b9\u6cd5\u200b\u8fd8\u662f\u200bconda deactivate\uff0c\u200b\u4e8c\u662f\u200b\u63d0\u793a\u200b\u6ca1\u6709\u200b gflag \u200b\u6a21\u5757\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u6700\u200b\u7b80\u5355\u200b\uff0c\u200b\u76f4\u63a5\u200b\u5b89\u88c5\u200b\u4e00\u4e0b\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b

                  sudo apt-get install gflags\n

                  \u200b\u7136\u540e\u200b\u5c31\u200b\u80fd\u200b\u8dd1\u200b\u4e86\u200b\uff0c\u200b\u867d\u7136\u200b\u5728\u200b\u8fd9\u91cc\u200b\u7528\u200b\u5404\u79cd\u200b Cmake \u200b\u63d2\u4ef6\u200b\u4e00\u7c7b\u200b\u7684\u200b\u8fd8\u662f\u200b\u6ca1\u200b\u4e00\u4e2a\u200b\u80fd\u200b\u8dd1\u200b\u7684\u200b\uff08\u200b\u62a5\u200b Cmake \u200b\u9636\u6bb5\u200b\u7684\u200b\u90a3\u4e2a\u200b\u9519\u200b\uff09\uff0c\u200b\u6211\u200b\u8bd5\u56fe\u7528\u200b Clion \u200b\u8fdc\u7a0b\u200b\u5f00\u53d1\u200b\u7ed3\u679c\u200b\u540e\u7aef\u200b\u4e5f\u200b\u5d29\u574f\u200b\u4e86\u200b\u5f00\u200b\u4e0d\u200b\u8d77\u6765\u200b\uff0c\u200b\u5404\u79cd\u200b\u4e8b\u60c5\u200b\u641e\u200b\u5f97\u200b\u6211\u200b\u5f88\u70e6\u200b\uff0c\u200b\u4f46\u200b\u603b\u7b97\u200b\u6709\u4e2a\u200b\u80fd\u200b\u7528\u200b\u7684\u200b VSCode + ssh + WSL2 \u200b\u7684\u200b\u65b9\u6848\u200b\u80fd\u200b\u8dd1\u200b\u4e86\u200b\uff0c\u200b\u4ed6\u200b\u7684\u200b\u4f18\u70b9\u200b\u662f\u200b\u80fd\u200b\u8dd1\u200b\uff0c\u200b\u7f3a\u70b9\u200b\u662f\u200b\u80fd\u200b\u8dd1\u200b\u7684\u200b\u8865\u96c6\u200b\uff0c\u200b\u4f46\u200b\u6211\u200b\u5b9e\u5728\u200b\u6298\u817e\u200b\u4e0d\u52a8\u200b\u4e86\u200b\u5c31\u200b\u5148\u200b\u8fd9\u6837\u200b\u4e86\u200b\u3002

                  "},{"location":"blog/Minisql/minisql_part1/","title":"Minisql#1 Disk and BufferPoolManager","text":"

                  \u200b\u7ea6\u200b 475 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b

                  Abstract

                  \u200b\u8fd9\u200b\u4e00\u90e8\u5206\u200b\u4e3b\u8981\u200b\u8d1f\u8d23\u200b\u4e0e\u200b\u5185\u5b58\u200b\u78c1\u76d8\u7a7a\u95f4\u200b\u7533\u8bf7\u200b\u91ca\u653e\u200b\u7b49\u200b\u6253\u4ea4\u9053\u200b\uff0c\u200b\u5728\u200b\u9879\u76ee\u200b\u4e2d\u200b\u7684\u200b\u5730\u4f4d\u200b\u5927\u6982\u200b\u76f8\u5f53\u4e8e\u200bnew delete\uff0c\u200b\u6240\u4ee5\u200b\u8fd9\u200b\u4e00\u90e8\u5206\u200b\u5728\u200b\u540e\u7eed\u200b\u4f1a\u200b\u88ab\u200b\u9891\u7e41\u200b\u8c03\u7528\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u76f4\u63a5\u200b\u4e0e\u200b\u78c1\u76d8\u200b IO \u200b\u6253\u4ea4\u9053\u200b\u7684\u200b\uff0c\u200b\u5b9e\u73b0\u200b\u65e2\u200b\u8981\u6c42\u200b\u6b63\u786e\u200b\u53c8\u200b\u8981\u6c42\u200b\u6548\u7387\u200b

                  "},{"location":"blog/Minisql/minisql_part1/#_1","title":"\u52a8\u673a","text":"

                  \u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u624b\u5934\u4e0a\u200b\u73b0\u5728\u200b\u6709\u200b 65536\uff084096*16\uff09\u200b\u9875\u200b\uff08\u200b\u4e00\u9875\u200b\u4e3a\u200b 4096Bytes\uff09\u200b\u7684\u200b\u6570\u636e\u200b\u9700\u8981\u200b\u5b58\u5728\u200b\u78c1\u76d8\u200b\u4e0a\u200b\uff0c\u200b\u6700\u200b\u81ea\u7136\u200b\u7684\u200b\u60f3\u6cd5\u200b\u5c31\u662f\u200b\u6570\u7ec4\u200b\uff0c\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u53d8\u957f\u200b\u6570\u7ec4\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u6587\u4ef6\u200b\u5c3e\u200b\u7ee7\u7eed\u200b\u5199\u5165\u200b\u65b0\u200b\u7684\u200b\u9875\u200b\u3002

                  \u200b\u4f46\u662f\u200b\uff0c\u200b\u6570\u636e\u5e93\u200b\u4f1a\u200b\u5bf9\u200b\u6570\u636e\u200b\u8fdb\u884c\u200b\u5220\u9664\u200b.\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u5206\u914d\u200b\u51fa\u53bb\u200b\u7b2c\u200b 0-9 \u200b\u9875\u200b\u7528\u4e8e\u200b\u8bb0\u5f55\u200b\u67d0\u4e2a\u200b\u8868\u200b\uff0c\u200b\u7136\u540e\u200b\u5220\u9664\u200b\u4e86\u200b\u5176\u4e2d\u200b\u7b2c\u200b 2\uff0c4\uff0c6 \u200b\u9875\u200b\u7684\u200b\u6570\u636e\u200b\uff0c\u200b\u90a3\u4e48\u200b\u4e0b\u6b21\u200b\u518d\u200b\u8bf7\u6c42\u200b\u9875\u9762\u200b\u6765\u200b\u5b58\u50a8\u200b\u4fe1\u606f\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u200b\u7a7a\u95f2\u200b\u7684\u200b\u4e09\u9875\u200b\u6765\u200b\u5b58\u50a8\u200b.\u200b\u4e0d\u200b\u8fd9\u6837\u200b\u505a\u200b\uff0c\u200b\u90a3\u4e48\u200b\u9762\u5bf9\u200b\u7533\u8bf7\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u5220\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u7533\u8bf7\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u5220\u200b 100 \u200b\u9875\u200b\u8fd9\u6837\u200b\u7684\u200b\u64cd\u4f5c\u200b\uff0c\u200b\u672c\u6765\u200b\u53ea\u8981\u200b 100 \u200b\u9875\u200b\u7684\u200b\u7a7a\u95f4\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9e\u73b0\u200b\uff0c\u200b\u5b9e\u9645\u4e0a\u200b\u5374\u4f1a\u82b1\u200b\u7684\u200b\u591a\u5f97\u591a\u200b\u3002

                  \u200b\u8fd9\u200b\u5c31\u200b\u5f15\u51fa\u200b\u4e86\u200b BitMap\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u62ff\u51fa\u200b\u4e00\u9875\u200b\u6765\u200b\uff0c\u200b\u628a\u200b\u8fd9\u200b\u4e00\u9875\u200b 4096 \u200b\u4e2a\u200b Byte\uff0c\u200b\u5373\u200b 32768 \u200b\u4e2a\u200b bit\uff0c\u200b\u6bcf\u4e2a\u200b bit \u200b\u7684\u200b 0 \u200b\u6307\u793a\u200b\u8be5\u9875\u200b\u672a\u200b\u88ab\u200b\u4f7f\u7528\u200b\uff0c1 \u200b\u6307\u793a\u200b\u5df2\u7ecf\u200b\u88ab\u200b\u4f7f\u7528\u200b\uff0c\u200b\u8fd9\u6837\u200b\u8fd9\u200b\u4e00\u9875\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7ba1\u7406\u200b\u5176\u540e\u200b\u7684\u200b 32768 \u200b\u9875\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u73b0\u5728\u200b\u5176\u4e2d\u200b\u627e\u200b 0\uff0c\u200b\u6ca1\u6709\u200b 0 \u200b\u4e86\u200b\uff0c\u200b\u624d\u200b\u53bb\u200b\u65b0\u5f00\u200b\u4e00\u9875\u200b\u3002

                  \u200b\u5f53\u7136\u200b\u5b9e\u9645\u4e0a\u200b\u8fd9\u200b\u4e00\u9875\u200b\u7684\u200b 4096B \u200b\u6211\u4eec\u200b\u4e0d\u4f1a\u200b\u90fd\u200b\u62ff\u200b\u53bb\u200b\u7528\u6765\u200b\u8bb0\u5f55\u200b\u4f7f\u7528\u200b\u60c5\u51b5\u200b\uff0c\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u5143\u200b\u6570\u636e\u200b\u6bd4\u5982\u200b\u8bb0\u5f55\u200b\u76ee\u524d\u200b\u4ee5\u200b\u5360\u7528\u200b\u7684\u200b\u6709\u200b 10 \u200b\u9875\u200b\u7b49\u7b49\u200b\u3002

                  \u200b\u4f46\u200b\u6ce8\u610f\u200b\u7b2c\u4e00\u6bb5\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b 65536 \u200b\u9875\u200b\u8981\u200b\u5b58\u200b\uff0c\u200b\u4e00\u9875\u200b BitMap \u200b\u4e0d\u591f\u200b\uff0c\u200b\u90a3\u200b\u5c31\u200b\u591a\u6765\u200b\u51e0\u4e2a\u200b.\u200b\u6211\u4eec\u200b\u628a\u200b 1 \u200b\u9875\u200b BitMap \u200b\u548c\u200b\u540e\u9762\u200b\u7684\u200b\uff08\u200b\u5927\u6982\u200b\uff0932767 \u200b\u9875\u200b\u79f0\u4e3a\u200b\u4e00\u6bb5\u200b(extent)\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4e24\u6bb5\u200b\u6765\u200b\u5b58\u50a8\u200b 65536 \u200b\u9875\u200b\uff0c\u200b\u5728\u200b\u6700\u200b\u524d\u9762\u200b\u6765\u4e2a\u200b Disk Meta Page \u200b\u6765\u200b\u7ba1\u7406\u200b\u6240\u6709\u200b\u9875\u200b\u3002

                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/","title":"\u8ba1\u7b97\u673a\u200b\u4f53\u7cfb\u7ed3\u6784\u200b - lab4 Cache","text":"

                  Abstract

                  \u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b Cache \u200b\u8bbe\u8ba1\u200b\u7684\u200b\u601d\u60f3\u200b\uff0c\u200b\u4ece\u200b\u6a21\u5757\u200b\u62bd\u8c61\u200b\u7684\u200b\u5c42\u9762\u200b\u8bb2\u8bb2\u200b\u5404\u200b\u6a21\u5757\u200b\u7684\u200b\u529f\u80fd\u200b\u548c\u200b\u4ea4\u4e92\u200b\u7684\u200b\u903b\u8f91\u200b\u3002

                  \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

                  \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

                  \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

                  \u200b\u672c\u6b21\u200b\u5b9e\u9a8c\u200b\u662f\u200b\u8981\u200b\u5b9e\u73b0\u200b\u4e00\u4e2a\u200b Cache\uff0c\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u4f1a\u200b\u5b9e\u73b0\u200b\u4e00\u4e2a\u200b CMU(Cache Management Unit)\u200b\u6765\u200b\u5b8c\u6210\u200b CPU\uff0c Memory\uff0c Cache \u200b\u4e4b\u95f4\u200b\u7684\u200b\u4ea4\u4e92\u200b\u548c\u200b\u63a7\u5236\u200b\uff0c\u200b\u7ed3\u6784\u200b\u5982\u4e0b\u200b\uff1a

                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#memory","title":"Memory","text":"

                  \u200b\u5728\u200b\u672c\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b Memory \u200b\u53ea\u200b\u4e0e\u200b CMU \u200b\u4ea4\u4e92\u200b\u3002

                  Memory \u200b\u4e0e\u200b CMU \u200b\u7684\u200b\u4ea4\u4e92\u200b\u53ea\u6709\u200b\u4e00\u79cd\u200b\uff1a

                  • CMU \u200b\u628a\u200b\u8bfb\u5199\u200b\u9700\u8981\u200b\u7684\u200b\u5730\u5740\u200b\u548c\u200b\u6570\u636e\u200b\u7ed9\u200b Memory\uff0c Memory \u200b\u8fdb\u884c\u200b\u8bfb\u5199\u64cd\u4f5c\u200b\u7136\u540e\u200b\u8fd4\u56de\u200b\u6570\u636e\u200b\u7ed9\u200b CMU
                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#cache","title":"Cache","text":"

                  Cache \u200b\u5185\u90e8\u200b\u7ef4\u62a4\u200b\u7740\u200b\u6240\u6709\u200b Cache line \u200b\u548c\u200b\u6807\u8bb0\u200b\u4f4d\u200b\uff0c\u200b\u5e76\u4e14\u200b\u4e0e\u200b CMU \u200b\u8fdb\u884c\u200b\u4ea4\u4e92\u200b\uff0c\u200b\u4e3b\u8981\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a

                  • \u200b\u8fd4\u56de\u200b\u90e8\u5206\u200b\u63a7\u5236\u200b\u4fe1\u606f\u200b\u7ed9\u200b CMU\uff0c\u200b\u5305\u62ec\u200b
                    • \u200b\u662f\u5426\u200b\u547d\u4e2d\u200b
                    • \u200b\u88ab\u200b\u66ff\u6362\u200b\u7684\u200b Cache line \u200b\u662f\u5426\u200b\u6709\u6548\u200b\u4e14\u810f\u200b
                    • \u200b\u88ab\u200b\u5199\u200b\u56de\u200b\u7684\u200b Cache line \u200b\u7684\u200b tag\uff08\u200b\u8fd9\u6837\u200b CMU \u200b\u624d\u80fd\u200b\u83b7\u5f97\u200b\u6b63\u786e\u200b\u7684\u200b\u5730\u5740\u200b\uff0c\u200b\u7136\u540e\u200b\u628a\u200b\u6570\u636e\u200b\u5199\u56de\u200b Memory\uff09
                  • \u200b\u6267\u884c\u200b CMU \u200b\u8981\u6c42\u200b\u7684\u200b\u64cd\u4f5c\u200b\uff0c\u200b\u5305\u62ec\u200b
                    • load: \u200b\u4e5f\u200b\u5c31\u200b\u662f\u4ece\u200b\u547d\u4e2d\u200b\u7684\u200b(1)Cache line \u200b\u4e2d\u8bfb\u200b\u4fe1\u606f\u200b\u548c\u200b\u6807\u8bb0\u200b(LRU)\uff0c\u200b\u8fd4\u56de\u200b
                    • edit: \u200b\u4e5f\u200b\u5c31\u662f\u200b\u5bf9\u200b\u547d\u4e2d\u200b\u7684\u200b Cache line \u200b\u8fdb\u884c\u200b\u4fee\u6539\u200b\u548c\u200b\u6807\u8bb0\u200b(LRU\uff0c dirty)\uff0c\u200b\u8fd4\u56de\u200b
                    • store: \u200b\u5c06\u200b CMU \u200b\u7684\u200b\u7ed9\u200b\u7684\u200b\u6570\u636e\u200b\u66ff\u6362\u200b\u8fdb\u200b Cache line\uff0c\u200b\u5e76\u4e14\u200b\u6807\u8bb0\u200b(valid\uff0c dirty\uff0c tag)\uff0c \u200b\u8fd4\u56de\u200b
                    • invalid: \u200b\u6e05\u7a7a\u200b Cache
                  1. \u200b\u547d\u4e2d\u200b\u4e86\u200b\u54ea\u4e2a\u200b Cache line \u200b\u6216\u8005\u200b\u54ea\u4e2a\u200b\u90fd\u200b\u6ca1\u200b\u547d\u4e2d\u200b\u7531\u200b Cache \u200b\u5185\u90e8\u200b\u903b\u8f91\u200b\u5206\u8fa8\u200b.\u200b\u5982\u679c\u200b\u90fd\u200b\u6ca1\u200b\u547d\u4e2d\u200b Cache \u200b\u6b64\u200b\u5468\u671f\u200b\u5c31\u200b\u5565\u200b\u90fd\u200b\u4e0d\u200b\u5e72\u200b\uff0c\u200b\u53ea\u200b\u8fd4\u56de\u200b\u63a7\u5236\u200b\u4fe1\u53f7\u200b\uff0c\u200b\u7b49\u5f85\u200b CMU \u200b\u540e\u7eed\u200b\u63a7\u5236\u200b

                  \u200b\u4e3a\u4e86\u200b\u505a\u597d\u200b\u8fd9\u4e9b\u200b\u4e8b\u200b\uff0cCache \u200b\u5185\u90e8\u200b\u4f1a\u200b\u8fdb\u884c\u200b\u5b9e\u73b0\u200b\u5408\u9002\u200b\u7684\u200b\u7ec4\u5408\u200b\u903b\u8f91\u200b\u6765\u200b\u8fdb\u884c\u200b\u7d22\u5f15\u200b\uff0c\u200b\u6bd4\u8f83\u200b\u7b49\u7b49\u200b

                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#cpu","title":"CPU","text":"

                  CPU \u200b\u4e0e\u200b CMU \u200b\u7684\u200b\u4ea4\u4e92\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a

                  • CPU \u200b\u9700\u8981\u200b\u8bbf\u5b58\u200b\uff0c\u200b\u5c06\u200b\u8bfb\u5199\u200b\u5730\u5740\u200b\u548c\u200b\u6570\u636e\u200b\u7ed9\u200b CMU
                  • CPU \u200b\u8fd8\u4f1a\u200b\u63a5\u53d7\u200b CMU \u200b\u7684\u200b\u7b49\u5f85\u200b\u4fe1\u53f7\u200b\uff0c\u200b\u963b\u585e\u200b\u6d41\u6c34\u7ebf\u200b\u7b49\u5f85\u200b\u6570\u636e\u200b\u5c31\u4f4d\u200b
                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#cmu","title":"CMU","text":"

                  CMU \u200b\u5185\u90e8\u200b\u7ef4\u62a4\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u673a\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u72b6\u6001\u200b\u673a\u4f1a\u200b\u6839\u636e\u4e0a\u8ff0\u200b\u4e09\u4e2a\u200b\u7ec4\u4ef6\u200b\u7684\u200b\u63a7\u5236\u200b\u4fe1\u53f7\u200b\u8fdb\u884c\u200b\u8df3\u8f6c\u200b\uff1a

                  • CPU \u200b\u662f\u5426\u200b\u6709\u200b\u8bfb\u5199\u200b\u8bf7\u6c42\u200b
                  • Memory \u200b\u5bf9\u200b\u8bfb\u5199\u200b\u8bf7\u6c42\u200b\u7684\u200b\u5904\u7406\u200b
                  • Cache \u200b\u7684\u200b\u63a7\u5236\u200b\u4fe1\u53f7\u200b\u53cd\u6620\u200b Cache \u200b\u662f\u200b\u547d\u4e2d\u200b\u4e86\u200b\uff0c\u200b\u9700\u8981\u200b\u8bbf\u5b58\u200b\u8fd8\u662f\u200b\u9700\u8981\u200b\u5199\u56de\u200b

                  \u200b\u540c\u65f6\u200b CMU \u200b\u4e5f\u200b\u4f1a\u200b\u6839\u636e\u200b\u81ea\u5df1\u200b\u7684\u200b\u72b6\u6001\u200b\uff0c\u200b\u5bf9\u200b\u4e0a\u8ff0\u200b\u4e09\u4e2a\u200b\u7ec4\u4ef6\u200b\u8fdb\u884c\u200b\u63a7\u5236\u200b\uff1a

                  • CPU \u200b\u662f\u5426\u200b\u5e94\u8be5\u200b stall(1)
                  • Cache \u200b\u8981\u200b\u6267\u884c\u200b\u54ea\u4e2a\u200b\u64cd\u4f5c\u200b(2)
                  • Memory \u200b\u8981\u200b\u6267\u884c\u200b\u54ea\u4e2a\u200b\u64cd\u4f5c\u200b(3)
                  1. \u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u4e0b\u4e2a\u200b state \u200b\u4e0d\u662f\u200b IDLE \u200b\u5c31\u200b\u8be5\u200b stall \u200b\u4e86\u200b
                    • load
                    • edit
                    • store
                    • invalid
                  2. \u200b\u8bfb\u5199\u64cd\u4f5c\u200b
                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/","title":"\u8ba1\u7b97\u673a\u200b\u4f53\u7cfb\u7ed3\u6784\u200b - lab5 Scoreboard","text":"

                  Abstract

                  \u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b Scoreboard \u200b\u8bbe\u8ba1\u200b\u7684\u200b\u601d\u60f3\u200b\uff0c\u200b\u5305\u62ec\u200b\u4e00\u4e9b\u200b\u8fd0\u884c\u200b\u7684\u200b\u539f\u5219\u200b\u548c\u200b\u5bf9\u200b\u5404\u79cd\u200b hazard \u200b\u7684\u200b\u5904\u7406\u200b\u3002\u200b\u5728\u200b\u4e00\u4e9b\u200b\u5177\u4f53\u200b\u7684\u200b\u7ec6\u8282\u200b\u4e0a\u5747\u200b\u6309\u7167\u200b\u5b9e\u9a8c\u200b\u7ed9\u4e88\u200b\u7684\u200b\u6846\u67b6\u200b\u8fdb\u884c\u200b\u89e3\u91ca\u200b\u3002\u200b\u5305\u62ec\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u7684\u200b\u5b89\u6392\u200b\u548c\u8868\u200b\u7684\u200b\u8bbe\u8ba1\u200b\u7b49\u200b\uff0c\u200b\u8be6\u60c5\u8bf7\u200b\u770b\u200b \u200b\u5b9e\u9a8c\u200b\u6307\u5bfc\u200b\u3002

                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/#_1","title":"\u57fa\u672c\u200b\u539f\u5219","text":"

                  \u200b\u5728\u200b Scoreboard \u200b\u7b97\u6cd5\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3b\u8981\u200b\u7ef4\u62a4\u200b\u7684\u200b\u662f\u200b\u4e24\u5f20\u200b\u8868\u200b\uff0cFUS (1) \u200b\u548c\u200b RRS(2)\u3002\u200b\u6211\u4eec\u200b\u7528\u200b issue(3)\u200b\u4e00\u8bcd\u200b\u6765\u200b\u6307\u4ee3\u200b\u6211\u4eec\u200b\u5c06\u200b\u53d6\u5230\u200b\u7684\u200b\u6307\u4ee4\u200b\u653e\u5165\u200b FUS \u200b\u548c\u200b RRS \u200b\u7684\u200b\u8fc7\u7a0b\u200b

                  1. Functional Unit Status\uff0c\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u6b63\u5728\u200b\u6bcf\u4e2a\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u4e0a\u200b\u8fd0\u884c\u200b\u6216\u200b\u7b49\u5f85\u200b\u8fd0\u884c\u200b\u7684\u200b\u6307\u4ee4\u200b\u7684\u200b\u72b6\u6001\u200b
                  2. Register Result Status\uff0c\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u6bcf\u4e2a\u200b\u5bc4\u5b58\u5668\u200b\u6b63\u5728\u200b\u88ab\u200b FUS \u200b\u4e2d\u200b\u54ea\u4e2a\u200b\u5355\u5143\u200b\u4f5c\u4e3a\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\uff0c\u200b\u6216\u8005\u200b\u4e0d\u200b\u88ab\u200b\u4efb\u4f55\u200b\u5355\u5143\u200b\u4f5c\u4e3a\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b
                  3. \u200b\u53d1\u5c04\u200b

                  \u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u4e9b\u200b\u7b97\u6cd5\u200b\u6267\u884c\u200b\u7684\u200b\u57fa\u672c\u200b\u539f\u5219\u200b\uff1a

                  • \u200b\u6211\u4eec\u200b\u4e0d\u4f1a\u200b\u5c06\u200b\u9519\u8bef\u200b\u53d6\u5740\u200b(1)\u200b\u7684\u200b\u6307\u4ee4\u200b\u53d1\u5c04\u200b
                  • \u200b\u4ece\u200b\u6307\u4ee4\u200b\u88ab\u200b\u53d1\u5c04\u200b\u7684\u200b\u90a3\u200b\u4e00\u4e2a\u200b\u5468\u671f\u200b\u5230\u200b\u6267\u884c\u200b\u7ed3\u675f\u200b\u7684\u200b\u90a3\u200b\u4e00\u4e2a\u200b\u5468\u671f\u200b\uff0c\u200b\u6307\u4ee4\u200b\u90fd\u200b\u4f1a\u200b\u5b58\u5728\u200b\u4e8e\u200b\u4e0a\u8ff0\u200b\u4e24\u5f20\u200b\u8868\u4e2d\u200b
                  • \u200b\u5728\u200b\u672c\u200b lab \u200b\u7684\u200b\u8bbe\u8ba1\u200b\u5b9e\u73b0\u200b\u4e2d\u200b\uff0c\u200b\u5f53\u524d\u200b IS \u200b\u6307\u4ee4\u200b\u88ab\u200b\u963b\u585e\u200b\u4f1a\u200b\u5bfc\u81f4\u200b\u540e\u7eed\u200b\u6307\u4ee4\u200b\u4e5f\u200b\u88ab\u200b\u963b\u585e\u200b\uff0c\u200b\u76f4\u81f3\u200b\u5f53\u524d\u200b IS \u200b\u6307\u4ee4\u200b\u88ab\u200b\u6210\u529f\u200b\u53d1\u5c04\u200b\u6216\u8005\u200b\u88ab\u200b flush
                  • \u200b\u5728\u200b IF \u200b\u9636\u6bb5\u200b\u6211\u4eec\u200b\u53d6\u5f97\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\uff0c\u200b\u8be5\u200b\u6307\u4ee4\u200b\u4e0b\u200b\u4e00\u200b\u5468\u671f\u200b\u4f1a\u200b\u8fdb\u5165\u200b IS \u200b\u9636\u6bb5\u200b\u88ab\u200b\u51b3\u5b9a\u200b\u53d1\u5c04\u200b\u6216\u662f\u200b\u963b\u585e\u200b
                  1. \u200b\u9519\u8bef\u200b\u53d6\u5740\u200b\u5c31\u662f\u6307\u200b\u8df3\u8f6c\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u53d6\u5f97\u200b\u7684\u200b\u5176\u5b9e\u200b\u4e0d\u5e94\u200b\u88ab\u200b\u6267\u884c\u200b\u7684\u200b\u6307\u4ee4\u200b
                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/#is","title":"\u53d1\u5c04\u200b\u539f\u5219\u200b(IS)","text":"

                  \u200b\u6211\u4eec\u200b\u901a\u8fc7\u200b\u4ee5\u4e0b\u200b\u4e24\u6761\u200b\u89c4\u5219\u200b\u6765\u200b\u5728\u200b\u4e00\u822c\u200b\u60c5\u51b5\u200b\u4e0b\u200b\u51b3\u5b9a\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u662f\u5426\u200b\u53ef\u4ee5\u200b\u88ab\u200b\u53d1\u5c04\u200b\uff1a

                  • \u200b\u5982\u679c\u200b\u5f53\u524d\u200b IS \u200b\u6307\u4ee4\u200b\u7684\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u540c\u65f6\u200b\u4e5f\u200b\u662f\u200b\u8868\u4e2d\u200b\u67d0\u6761\u200b\u6307\u4ee4\u200b\u7684\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\uff0c\u200b\u90a3\u4e48\u200b\u963b\u585e\u200b\u8be5\u200b\u6307\u4ee4\u200b\u7684\u200b\u53d1\u5c04\u200b\u76f4\u5230\u200b\u4e0d\u518d\u200b\u5b58\u5728\u200b\u51b2\u7a81\u200b
                  • \u200b\u5982\u679c\u200b\u5f53\u524d\u200b IS \u200b\u6307\u4ee4\u200b\u9700\u8981\u200b\u4f7f\u7528\u200b\u7684\u200b\u8fd0\u884c\u200b\u5355\u5143\u200b\u5df2\u7ecf\u200b\u88ab\u8868\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\u5360\u636e\u200b\uff0c\u200b\u90a3\u4e48\u200b\u963b\u585e\u200b\u8be5\u200b\u6307\u4ee4\u200b\u76f4\u5230\u200b\u4e0d\u200b\u5728\u200b\u5b58\u5728\u200b\u8be5\u200b\u51b2\u7a81\u200b

                  \u200b\u4ee5\u4e0a\u200b\u4e24\u4e2a\u200b\u8981\u6c42\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u68c0\u6d4b\u200b

                  • RRS \u200b\u4e2d\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u662f\u5426\u200b\u4e3a\u7a7a\u200b
                  • FUS \u200b\u4e2d\u200b\u8fd0\u884c\u200b\u5355\u5143\u200b\u662f\u5426\u200b busy

                  \u200b\u6765\u200b\u51b3\u5b9a\u200b\u3002

                  \u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\u4e0a\u8ff0\u200b\u4e24\u6761\u200b\u539f\u5219\u200b\u662f\u200b\u65e0\u8bba\u5982\u4f55\u200b\u8981\u200b\u88ab\u200b\u6ee1\u8db3\u200b\u7684\u200b\uff0c\u200b\u5426\u5219\u200b\u7684\u8bdd\u200b

                  • RRS \u200b\u5bf9\u5e94\u72b6\u6001\u200b\u4f1a\u200b\u88ab\u200b\u65b0\u200b\u53d1\u5c04\u200b\u7684\u200b\u6307\u4ee4\u200b\u8986\u76d6\u200b
                  • FUS \u200b\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\u4f1a\u200b\u88ab\u200b\u65b0\u200b\u53d1\u5c04\u200b\u7684\u200b\u6307\u4ee4\u200b\u8986\u76d6\u200b

                  \u200b\u4ee5\u4e0a\u200b\u5c31\u662f\u200b\u5173\u4e8e\u200b\u53d1\u5c04\u200b\u7684\u200b\u4e00\u822c\u200b\u539f\u5219\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e3a\u4e86\u200b\u6ee1\u8db3\u200b\u53ea\u6709\u200b\u6b63\u786e\u200b\u53d6\u5740\u200b\u7684\u200b\u6307\u4ee4\u200b\u624d\u200b\u4f1a\u200b\u88ab\u200b\u53d1\u5c04\u200b\u7684\u200b\u539f\u5219\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4e00\u4e9b\u200b\u989d\u5916\u200b\u7684\u200b\u68c0\u6d4b\u200b\uff0c\u200b\u8fd9\u4e9b\u200b\u68c0\u6d4b\u200b\u4e3b\u8981\u200b\u8ddf\u200b\u8df3\u8f6c\u200b\u6307\u4ee4\u200b\u6709\u5173\u200b\uff0c\u200b\u4e00\u822c\u6765\u8bf4\u200b\uff1a

                  • \u200b\u5982\u679c\u200b\u5f53\u524d\u200b FUS \u200b\u4e2d\u200b\u6ca1\u6709\u200b\u8df3\u8f6c\u200b\u6307\u4ee4\u200b
                    • \u200b\u65e0\u200b\u963b\u585e\u200b
                  • \u200b\u5982\u679c\u200b\u5f53\u524d\u200b FUS \u200b\u4e2d\u6709\u200b\u8df3\u8f6c\u200b\u6307\u4ee4\u200b
                    • \u200b\u5982\u679c\u200b\u8be5\u200b\u8df3\u8f6c\u200b\u6307\u4ee4\u200b\u8fd8\u200b\u672a\u200b done
                      • \u200b\u76ee\u524d\u200b IS \u200b\u548c\u200b IF \u200b\u9636\u6bb5\u200b\u6307\u4ee4\u200b\u6b63\u786e\u6027\u200b\u672a\u77e5\u200b\uff0c\u200b\u963b\u585e\u200b\u5176\u200b\u53d1\u5c04\u200b
                    • \u200b\u5982\u679c\u200b\u8df3\u8f6c\u200b\u6307\u4ee4\u200b done \u200b\u5e76\u4e14\u200b
                      • \u200b\u4e0d\u200b\u9700\u8981\u200b\u8df3\u8f6c\u200b
                        • \u200b\u5f53\u524d\u200b IS \u200b\u548c\u200b IF \u200b\u4e2d\u200b\u987a\u5e8f\u200b\u53d6\u5740\u200b\u7684\u200b\u662f\u200b\u5bf9\u200b\u7684\u200b\u6307\u4ee4\u200b\uff0c\u200b\u4e0d\u518d\u200b\u963b\u585e\u200b
                      • \u200b\u9700\u8981\u200b\u8df3\u8f6c\u200b
                        • \u200b\u5f53\u524d\u200b IS \u200b\u548c\u200b IF \u200b\u4e2d\u200b\u987a\u5e8f\u200b\u53d6\u5740\u200b\u7684\u200b\u662f\u200b\u9519\u200b\u7684\u200b\uff0c\u200b\u5237\u65b0\u200b\u9519\u8bef\u200b IF \u200b\u548c\u200b IS\uff0c\u200b\u4e0b\u200b\u4e00\u200b\u5468\u671f\u200b IF \u200b\u4e2d\u4f1a\u53d6\u200b\u4e0a\u200b\u6b63\u786e\u200b\u7684\u200b\u6307\u4ee4\u200b

                  \u200b\u5982\u679c\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u901a\u8fc7\u200b\u4e86\u200b\u8df3\u8f6c\u200b\u7684\u200b\u53d1\u5c04\u200b\u68c0\u6d4b\u200b\u548c\u200b\u4e00\u822c\u200b\u7684\u200b\u53d1\u5c04\u200b\u68c0\u6d4b\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u53d1\u5c04\u200b\u4e86\u200b\u3002\u200b\u5e76\u4e14\u200b\u6211\u4eec\u200b\u5e94\u5f53\u200b\u6ce8\u610f\u200b\u5230\u200b\u4e00\u822c\u200b\u539f\u5219\u200b\u7684\u200b\u7b2c\u4e00\u6761\u200b\u5c31\u200b\u963b\u6b62\u200b\u4e86\u200b WAW hazard \u200b\u7684\u200b\u53d1\u751f\u200b

                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/#ex","title":"\u6267\u884c\u200b\u539f\u5219\u200b(EX)","text":"

                  \u200b\u6240\u6709\u200b\u521a\u200b\u8fdb\u5165\u200b FUS \u200b\u7684\u200b\u6307\u4ee4\u200b\u90fd\u200b\u8981\u200b\u7b49\u5f85\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u5747\u200b\u5c31\u4f4d\u200b(1)\uff0c\u200b\u800c\u540e\u200b\u53ef\u4ee5\u200b\u53d1\u9001\u200b\u4fe1\u53f7\u200b\u548c\u200b\u6570\u636e\u200b\u7ed9\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u5f00\u59cb\u200b\u6267\u884c\u200b\u3002

                  1. \u200b\u8fd9\u91cc\u200b\u7684\u200b\u5c31\u4f4d\u200b\u5c31\u662f\u200b FUS \u200b\u4e2d\u200b\u7684\u200b Ready \u200b\u4f4d\u5747\u200b\u7f6e\u200b 1

                  \u200b\u5177\u4f53\u200b\u800c\u8a00\u200b\uff0cFUS \u200b\u7684\u200b Ready \u200b\u4f4d\u200b\u7684\u200b\u8bbe\u7f6e\u200b\u9075\u5faa\u200b\u4ee5\u4e0b\u200b\u539f\u5219\u200b\uff1a

                  • \u200b\u6307\u4ee4\u200b\u88ab\u200b\u53d1\u5c04\u200b\u8fdb\u5165\u200b FUS \u200b\u65f6\u200b\uff0c\u200b\u8868\u5185\u200b\u5df2\u6709\u200b\u7684\u200b\u6307\u4ee4\u200b\u90fd\u200b\u5fc5\u7136\u200b\u662f\u200b\u5148\u4e8e\u200b\u8be5\u200b\u6307\u4ee4\u200b\u7684\u200b(1)\uff0c\u200b\u5982\u679c\u200b\u8fd9\u4e9b\u200b\u5148\u524d\u200b\u7684\u200b\u6307\u4ee4\u200b\u9700\u8981\u200b\u5199\u200b\u65b0\u200b\u6307\u4ee4\u200b\u7684\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5c31\u200b\u5e94\u8be5\u200b\u7b49\u200b\uff0c\u200b\u521d\u59cb\u200b Ready \u200b\u7f6e\u200b 0
                  • \u200b\u82e5\u200b\u65e0\u200b\u5148\u524d\u200b\u6307\u4ee4\u200b\u8981\u200b\u5199\u200b\u5f53\u524d\u200b\u7684\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\uff0c\u200b\u5176\u200b\u521d\u59cb\u200b Ready \u200b\u7f6e\u200b 1
                  • \u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u5b8c\u5199\u200b\u540e\u200b\uff0c\u200b\u8981\u200b\u56de\u6765\u200b\u628a\u200b\u8868\u4e2d\u200b\u6240\u6709\u200b\u5728\u200b\u4ed6\u200b\u7684\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u4e0a\u200b\u7b49\u5f85\u200b\u7684\u200b\u6307\u4ee4\u200b\u7684\u200b\u5bf9\u5e94\u200b Ready \u200b\u4f4d\u7f6e\u200b 1\uff0c\u200b\u4ee5\u200b\u901a\u77e5\u200b\u8fd9\u4e9b\u200b\u6307\u4ee4\u200b\u65b0\u200b\u6570\u636e\u200b\u5df2\u200b\u5c31\u4f4d\u200b(2)
                  1. \u200b\u53d1\u5c04\u200b\u4e0a\u200b\u5148\u4e8e\u200b\u4e00\u5b9a\u200b\u610f\u5473\u7740\u200b\u6307\u4ee4\u200b\u987a\u5e8f\u200b\u4e0a\u200b\u5148\u4e8e\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5728\u200b\u672c\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u53d1\u5c04\u200b\u53e3\u200b\uff0c\u200b\u524d\u9762\u200b\u7684\u200b\u6307\u4ee4\u200b\u53d1\u5c04\u200b\u5b8c\u200b\u4e86\u200b\u624d\u80fd\u200b\u8f6e\u200b\u5230\u200b\u540e\u9762\u200b\u7684\u200b
                  2. \u200b\u7531\u4e8e\u200b\u53d1\u5c04\u200b\u7684\u200b\u7b2c\u4e00\u6761\u200b\u4e00\u822c\u200b\u539f\u5219\u200b\uff0c\u200b\u5bf9\u200b\u67d0\u200b\u4e00\u200b\u76ee\u6807\u200b\u5bc4\u5b58\u5668\u200b\u5199\u200b\u7684\u200b\u6307\u4ee4\u200b\u540c\u65f6\u200b\u5728\u200b\u8868\u4e2d\u200b\u53ea\u4f1a\u200b\u6709\u200b\u4e00\u6761\u200b

                  \u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u628a\u200b\u6570\u636e\u200b\u548c\u200b\u4f7f\u200b\u80fd\u200b\u4fe1\u53f7\u200b\u7ed9\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u540e\u200b\uff0c\u200b\u6267\u884c\u200b\u5f00\u59cb\u200b\uff0c\u200b\u5c31\u200b\u53ea\u200b\u9700\u8981\u200b\u7b49\u200b\u6267\u884c\u200b\u7ed3\u675f\u200b\u800c\u200b\u4e0d\u518d\u200b\u8981\u8bfb\u200b\u5bc4\u5b58\u5668\u200b\u4e86\u200b\uff0c\u200b\u6b64\u65f6\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u628a\u200b Ready \u200b\u5168\u7f6e\u200b 0 \u200b\u5e76\u4e14\u200b\u6e05\u96f6\u200b Q \u200b\u4f4d\u6765\u200b\u8868\u660e\u200b\u8fd9\u200b\u4e00\u70b9\u200b(1)\u3002\u200b\u53e6\u5916\u200b\u7b49\u5f85\u200b\u6570\u636e\u200b\u5c31\u4f4d\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e5f\u200b\u662f\u200b\u5728\u200b\u89e3\u51b3\u200b RAW hazard

                  1. \u200b\u6765\u200b\u8868\u660e\u200b\u6211\u200b\u4e0d\u518d\u200b\u9700\u8981\u200b\u6e21\u200b\u8fd9\u4e2a\u200b\u5bc4\u5b58\u5668\u200b\u4e86\u200b\uff0c\u200b\u4f60\u4eec\u200b\u60f3\u8981\u200b\u5199\u200b\u7684\u8bdd\u200b\u53ef\u4ee5\u200b\u5199\u200b\u4e86\u200b\uff0c\u200b\u4e0d\u5fc5\u200b\u963b\u585e\u200b

                  Tip

                  \u200b\u7531\u4e8e\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u5199\u200b\u5b8c\u540e\u200b\uff0c\u200b\u56de\u5934\u200b\u8fdb\u884c\u200b\u901a\u77e5\u200b\u53ef\u80fd\u200b\u540c\u65f6\u200b\u4ee4\u200b\u591a\u6761\u200b\u6307\u4ee4\u200b\u5c31\u4f4d\u200b\u3002\u200b\u6211\u4eec\u200b\u8981\u200b\u591a\u4e2a\u200b\u5468\u671f\u200b\u4f9d\u6b21\u200b\u628a\u200b\u8fd9\u4e9b\u200b\u6307\u4ee4\u200b\u7684\u200b Ready \u200b\u4f4d\u6e05\u200b 0 \u200b\u5e76\u200b\u5f00\u59cb\u200b\u6267\u884c\u200b\u3002\u200b\u4e3a\u4e86\u200b\u505a\u5230\u200b\u8fd9\u200b\u4e00\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u52a0\u4e0a\u200b else \u200b\u4fdd\u8bc1\u200b\u4e00\u200b\u5468\u671f\u200b\u53ea\u6709\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u5f00\u59cb\u200b\u6267\u884c\u200b\uff0c\u200b\u5e76\u4e14\u200b\u6211\u4eec\u200b\u7684\u200b\u8bbe\u8ba1\u200b\u9700\u8981\u200b\u4fdd\u8bc1\u200b\u672a\u200b\u88ab\u200b\u6267\u884c\u200b\u7684\u200b\u6307\u4ee4\u200b\u4fdd\u6301\u200b\u5f53\u524d\u200b\u72b6\u6001\u200b\u5230\u200b\u4e0b\u200b\u4e00\u200b\u5468\u671f\u200b

                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/#wb","title":"\u5199\u56de\u200b\u539f\u5219\u200b(WB)","text":"

                  \u200b\u50cf\u200b\u6267\u884c\u200b\u539f\u5219\u200b\u4e2d\u200b\u63d0\u5230\u200b\u7684\u200b\u4e00\u6837\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u80fd\u200b\u6709\u200b\u591a\u4e2a\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u5728\u200b\u540c\u4e00\u200b\u5468\u671f\u200b\u540c\u65f6\u200b\u7ed3\u675f\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u591a\u4e2a\u200b\u5468\u671f\u200b\u8ba9\u200b\u4ed6\u4eec\u200b\u9010\u4e00\u200b\u5199\u56de\u200b\u3002\u200b\u9664\u6b64\u4ee5\u5916\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u9700\u8981\u200b\u89e3\u51b3\u200b WAR hazard\uff0c\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u53d1\u73b0\u200b\u67d0\u4e2a\u200b FUS \u200b\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\u7684\u200b Ready \u200b\u4f4d\u200b\u4ecd\u7136\u200b\u662f\u200b 1\uff0c\u200b\u90a3\u4e48\u200b\u5c31\u200b\u610f\u5473\u7740\u200b\uff1a

                  • \u200b\u8be5\u200b\u5bc4\u5b58\u5668\u200b\u5f53\u524d\u200b\u503c\u200b\u5c31\u662f\u200b\u5b83\u200b\u9700\u8981\u200b\u62ff\u200b\u53bb\u200b\u8fd0\u7b97\u200b\u7684\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u7684\u200b\u503c\u200b
                  • \u200b\u8be5\u200b\u6307\u4ee4\u200b\u8fd8\u200b\u672a\u200b\u8bfb\u53d6\u200b\u8be5\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u503c\u200b\u5e76\u200b\u62ff\u7ed9\u200b\u529f\u80fd\u200b\u5355\u5143\u200b\u6267\u884c\u200b(1)
                  1. \u200b\u8fd9\u200b\u5c31\u200b\u89e3\u91ca\u200b\u4e86\u200b\u4e3a\u4ec0\u4e48\u200b\u6267\u884c\u200b\u539f\u5219\u200b\u4e2d\u200b\u628a\u200b\u6570\u636e\u200b\u8bfb\u200b\u8d70\u200b\u6267\u884c\u200b\u540e\u8981\u200b\u628a\u200b Ready \u200b\u7f6e\u200b 0 \u200b\u4e86\u200b\uff0c\u200b\u8fd9\u662f\u200b\u544a\u8bc9\u200b\u90a3\u4e9b\u200b\u7b49\u200b WAR \u200b\u7684\u200b\u6307\u4ee4\u200b\u8bf4\u200b\uff0c\u200b\u6211\u200b\u5df2\u7ecf\u200b\u8bfb\u5b8c\u200b\u4e86\u200b\uff0c\u200b\u73b0\u5728\u200b\u4f60\u200b\u628a\u200b\u65b0\u200b\u6570\u636e\u200b\u8986\u76d6\u200b\u4e0a\u53bb\u200b\u4e5f\u200b\u6ca1\u5173\u7cfb\u200b

                  \u200b\u6240\u4ee5\u200b\u663e\u7136\u200b\u8fd9\u4e9b\u200b\u5bc4\u5b58\u5668\u200b\u6211\u4eec\u200b\u73b0\u5728\u200b\u662f\u200b\u4e0d\u80fd\u200b\u5199\u200b\u7684\u200b\uff0c\u200b\u5426\u5219\u200b FUS \u200b\u4e2d\u200b\u7684\u200b\u5bc4\u5b58\u5668\u200b\u5c31\u200b\u6ca1\u6cd5\u200b\u62ff\u200b\u6b63\u786e\u200b\u7684\u200b\u503c\u200b\u53bb\u200b\u6267\u884c\u200b\u4e86\u200b

                  \u200b\u603b\u7684\u6765\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u68c0\u6d4b\u200b\uff1a

                  • \u200b\u5bf9\u4e8e\u200b\u6240\u6709\u200b FUS \u200b\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\uff0c\u200b\u5982\u679c\u200b\u5176\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u8ddf\u200b\u6211\u200b\u7684\u200b\u76ee\u6807\u200b\u5bc4\u5b58\u5668\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u90a3\u4e48\u200b\u4e0d\u200b\u6784\u6210\u200b WAR hazard
                  • \u200b\u5bf9\u4e8e\u200b\u6240\u6709\u200b FUS \u200b\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\uff0c\u200b\u5982\u679c\u200b\u5176\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u8ddf\u200b\u6211\u200b\u7684\u200b\u76ee\u6807\u200b\u5bc4\u5b58\u5668\u200b\u4e00\u6837\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5982\u679c\u200b\u5176\u200b Ready \u200b\u4f4d\u4e3a\u200b 0\uff0c\u200b\u90a3\u4e48\u200b\u4e0d\u200b\u6784\u6210\u200b WAR hazard
                  • \u200b\u4e00\u65e6\u200b\u5b58\u5728\u200b\u67d0\u4e00\u200b FUS \u200b\u4e2d\u200b\u7684\u200b\u6307\u4ee4\u200b\u5176\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u8ddf\u200b\u6211\u200b\u7684\u200b\u76ee\u6807\u200b\u5bc4\u5b58\u5668\u200b\u4e00\u6837\u200b\uff0c\u200b\u4e14\u200b\u5176\u200b Ready \u200b\u4f4d\u4e3a\u200b 1\uff0c\u200b\u90a3\u4e48\u200b\u6784\u6210\u200b WAR hazard\uff0c\u200b\u963b\u585e\u200b\u5199\u56de\u200b
                  \u200b\u8bc1\u660e\u200b WAR \u200b\u5b58\u5728\u200b \\(\\iff\\) FUS \u200b\u4e2d\u200b\u5b58\u5728\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u8ddf\u200b\u5199\u200b\u56de\u200b\u6307\u4ee4\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u4e00\u6837\u200b\u4e14\u200b Ready \u200b\u4f4d\u4e3a\u200b 1 \u200b\u7684\u200b\u6307\u4ee4\u200b

                  (\\(\\Rightarrow\\)) WAR \u200b\u5b58\u5728\u200b\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b C \u200b\u6307\u4ee4\u200b\u8981\u200b\u5199\u200b\u56de\u200b\u7684\u8bdd\u200b\u4f1a\u200b\u628a\u200b B \u200b\u6307\u4ee4\u200b\u8fd8\u200b\u672a\u200b\u8bfb\u53d6\u200b\u7684\u200b\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u7684\u200b\u503c\u200b\u7ed9\u200b\u8986\u76d6\u200b\u6389\u200b\uff0c\u200b\u90a3\u4e48\u200b C \u200b\u7684\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u4e00\u5b9a\u200b\u548c\u200b B \u200b\u7684\u200b\u67d0\u200b\u4e00\u6e90\u200b\u5bc4\u5b58\u5668\u200b\u76f8\u7b49\u200b\uff0c\u200b\u524d\u534a\u90e8\u200b\u5206\u8bc1\u200b\u6bd5\u200b\u3002

                  \u200b\u56e0\u4e3a\u200b\u53d1\u5c04\u200b\u7684\u200b\u7b2c\u4e00\u6761\u200b\u4e00\u822c\u200b\u539f\u5219\u200b\uff0cC \u200b\u4e00\u5b9a\u200b\u662f\u200b FUS \u200b\u4e2d\u200b\u552f\u4e00\u200b\u4e00\u6761\u200b\u4ee5\u6b64\u200b\u5bc4\u5b58\u5668\u200b\u4e3a\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u7684\u200b\u3002\u200b\u90a3\u4e48\u200b B \u200b\u7684\u200b Ready \u200b\u4f4d\u200b\u4e00\u5b9a\u200b\u4e3a\u200b 1 \u200b\u800c\u200b\u4e0d\u662f\u200b 0\uff0c\u200b\u56e0\u4e3a\u200b\u60f3\u8981\u200b B \u200b\u7684\u200b Ready \u200b\u4f4d\u4e3a\u200b 0\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\uff1a

                  • B \u200b\u4e4b\u524d\u200b\u5b58\u5728\u200b A \u200b\u6307\u4ee4\u200b\u8981\u200b\u5199\u200b\u540c\u4e00\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b
                  • A \u200b\u8fd8\u200b\u6ca1\u200b\u5199\u200b

                  \u200b\u4f46\u662f\u200b\u6b64\u65f6\u200b C \u200b\u5df2\u7ecf\u200b\u53d1\u5c04\u200b\u4e86\u200b\uff0c\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b A \u200b\u4e00\u5b9a\u200b\u5199\u200b\u5b8c\u200b\u4e86\u200b\uff0c\u200b\u5426\u5219\u200b AC \u200b\u7684\u200b\u76ee\u7684\u200b\u5bc4\u5b58\u5668\u200b\u76f8\u540c\u200b C \u200b\u662f\u200b\u53d1\u200b\u4e0d\u200b\u51fa\u6765\u200b\u7684\u200b\u3002\u200b\u6240\u4ee5\u200b B \u200b\u7684\u200b Ready \u200b\u4f4d\u200b\u4e00\u5b9a\u200b\u4f4d\u4e3a\u200b 1

                  (\\(\\Leftarrow\\)) Trivial\uff0c\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b\u5199\u56de\u200b\u539f\u5219\u200b\u4e2d\u200b\u7684\u200b\u8868\u8ff0\u200b

                  "},{"location":"blog/%E6%88%91%E7%9A%84-cli-%E5%B7%A5%E5%85%B7/","title":"\u6211\u200b\u7684\u200b CLI \u200b\u5de5\u5177","text":"

                  Abstract

                  \u200b\u8fd9\u91cc\u200b\u5217\u51fa\u200b\u4e86\u200b\u5f88\u591a\u200b\u597d\u7528\u200b\u7684\u200b CLI(commandline interface)\u200b\u5de5\u5177\u200b

                  \u200b\u5982\u679c\u200b\u4ed4\u7ec6\u200b\u770b\u770b\u200b\u7684\u200b\u5316\u4f1a\u200b\u53d1\u73b0\u200b\u5927\u591a\u6570\u200b\u90fd\u200b\u662f\u200b\u62ff\u200b Rust \u200b\u91cd\u5199\u200b\u7684\u200b(Rewrite it in Rust!)

                  • dust
                  • duf
                  • procs
                  • fd
                  • btm
                  • exa
                  • autojump
                  • ripgrep
                  • bat
                  • httpie
                  • hyperfine
                  • fzf
                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/","title":"\u8ba1\u7b97\u673a\u7f51\u7edc\u200b - lab2 \u200b\u4f7f\u7528\u200b\u4e8c\u200b\u5c42\u4ea4\u6362\u673a\u200b\u7ec4\u7f51","text":"

                  Abstract

                  \u200b\u56e0\u4e3a\u200b\u8fd9\u4e2a\u200b\u5b9e\u9a8c\u200b\u505a\u200b\u7684\u200b\u65f6\u5019\u200b\u51e0\u4e4e\u200b\u6ca1\u4ec0\u4e48\u200b\u6307\u5bfc\u200b\uff0c\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u795e\u79d8\u200b\u7684\u200b\u6587\u6863\u200b\uff0c\u200b\u4e00\u200b\u6574\u4e2a\u200b\u5b9e\u9a8c\u5ba4\u200b\u7684\u200b\u7ebf\u200b\u548c\u200b\u4e00\u200b\u7bb1\u5b50\u200b\u7684\u200b\u795e\u79d8\u200b\u673a\u5668\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5c31\u200b\u6fc0\u60c5\u200b\u5199\u4e2a\u200b\u7ecf\u9a8c\u200b

                  \u200b\u4e3b\u8981\u200b\u662f\u200b\u8bb2\u200b\u4e86\u200b\u8bb2\u200b\u600e\u4e48\u200b\u8ba9\u200b\u5b9e\u9a8c\u200b\u8dd1\u200b\u8d77\u6765\u200b\uff0c\u200b\u8fd8\u6709\u200b\u5404\u79cd\u200b\u610f\u5916\u200b\u95ee\u9898\u200b\u7684\u200b\u5904\u7406\u200b\u4e4b\u7c7b\u200b\u7684\u200b

                  \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

                  \u200b\u5b9e\u9a8c\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u5e74\u79cb\u51ac\u200b

                  \u200b\u5b9e\u9a8c\u62a5\u544a\u200b\u6a21\u677f\u200b\uff1a

                  \u200b\u5f80\u671f\u200b\u53c2\u8003\u200b\uff1a \uff08\u200b\u6765\u81ea\u200b\u6d59\u6c5f\u5927\u5b66\u200b\u8bfe\u7a0b\u200b\u5171\u4eab\u200b\u8ba1\u5212\u200b\uff09

                  \u200b\u6307\u5bfc\u8001\u5e08\u200b\uff1a\u200b\u9ec4\u6b63\u8c26\u200b

                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_1","title":"\u8ba4\u8bc6\u200b\u5b9e\u9a8c\u5ba4\u200b\u7684\u200b\u4eea\u5668","text":"

                  \u200b\u679c\u200b\u54a9\u200b\u90a3\u200b\u585e\u200b\u8fd9\u91cc\u200b\u6ca1\u6709\u200b\u7167\u7247\u200b\uff0c\u200b\u4f46\u662f\u200b\u6bd4\u8f83\u200b\u5173\u952e\u200b\u7684\u200b\u51e0\u4e2a\u200b\u8bbe\u5907\u200b\u7684\u200b\u5916\u89c2\u200b\u90fd\u200b\u4f1a\u200b\u5927\u6982\u200b\u63cf\u8ff0\u200b\u4e00\u4e0b\u200b\uff1a

                  \u200b\u4ea4\u6362\u673a\u200b\u8def\u7531\u5668\u200b\u7f51\u7ebf\u200bPC\u200b\u663e\u793a\u5c4f\u200b\u548c\u200b\u952e\u76d8\u200b

                  \u200b\u6b63\u9762\u200b\u6709\u200b\u5f88\u591a\u200b\u7aef\u53e3\u200b\uff0c\u200b\u6ca1\u6709\u200b\u5f00\u200b\u5173\u952e\u200b\uff0c\u200b\u6b63\u9762\u200b\u6709\u200b mode \u200b\u952e\u200b

                  \u200b\u6682\u65f6\u200b\u7528\u200b\u4e0d\u5230\u200b\uff0c\u200b\u6bd4\u8d77\u200b\u4ea4\u6362\u673a\u200b\u7aef\u53e3\u200b\u6ca1\u200b\u90a3\u4e48\u200b\u591a\u200b\uff0c\u200b\u6709\u5f00\u200b\u5173\u952e\u200b

                  \u200b\u5b9e\u9a8c\u5ba4\u200b\u91cc\u200b\u770b\u8d77\u6765\u200b\u662f\u200b\u7f51\u7ebf\u200b\u7684\u200b\u57fa\u672c\u200b\u5c31\u662f\u200b\u7f51\u7ebf\u200b\uff08\u200b\u5e9f\u8bdd\u200b\uff09\uff0c

                  \u200b\u6bd4\u8f83\u200b\u7279\u6b8a\u200b\u7684\u200b\u4e8b\u200b\u5982\u679c\u200b\u4e24\u7aef\u200b\u900f\u660e\u200b\u5934\u200b\u5185\u90e8\u200b\u7684\u200b\u7ebf\u200b\u7684\u200b\u989c\u8272\u200b\u987a\u5e8f\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\u4ea4\u53c9\u200b\u7f51\u7ebf\u200b\u3002

                  \u200b\u5982\u679c\u200b\u4e00\u6839\u200b\u6241\u6241\u7684\u200b\u6de1\u84dd\u8272\u200b\u7684\u200b\uff0c\u200b\u53e6\u4e00\u7aef\u200b\u662f\u200b\u4e32\u53e3\u200b\u7684\u200b\u7ebf\u200b\uff0c\u200b\u90a3\u4e2a\u200b\u662f\u200b\u62ff\u6765\u200b\u8fde\u200b console \u200b\u548c\u200b PC \u200b\u7684\u200b\u3002

                  \u200b\u673a\u7bb1\u200b\u91cc\u200b\u4e0a\u65b9\u200b\u8fde\u200b\u7740\u200b\u6446\u200b\u4e86\u200b\u56db\u53f0\u200b PC\uff0c\u200b\u4e00\u822c\u200b\u4ece\u200b\u4e0a\u200b\u5f80\u200b\u4e0b\u200b\u6807\u53f7\u200b 1-4

                  \u200b\u5f00\u673a\u200b\u65b9\u5f0f\u200b\u5f88\u8ff7\u200b\uff0c\u200b\u6211\u200b\u662f\u200b\u6309\u200b F1 \u200b\u7136\u540e\u200b\u9000\u51fa\u200b\uff0c\u200b\u611f\u89c9\u200b\u80af\u5b9a\u200b\u4e0d\u662f\u200b\u6b63\u5e38\u200b\u9014\u5f84\u200b

                  \u200b\u6700\u200b\u4e0b\u9762\u200b\u6446\u7740\u200b\u7684\u200b\u663e\u793a\u5c4f\u200b\u548c\u200b\u952e\u76d8\u200b\uff0c\u200b\u901a\u8fc7\u200b\u6309\u952e\u200b\u9009\u62e9\u200b\u53ef\u4ee5\u200b\u8fde\u63a5\u200b\u5230\u200b\u4e0d\u540c\u200b\u7684\u200b PC\uff0c\u200b\u987a\u7740\u200b\u663e\u793a\u5c4f\u200b\u7684\u200b\u7ebf\u200b\u5f80\u540e\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u56db\u53f0\u200b PC \u200b\u5728\u200b\u540e\u9762\u200b\u662f\u200b\u63d2\u200b\u5230\u200b\u4e86\u200b 1-4 \u200b\u53e3\u4e0a\u200b\u7684\u200b\uff08\u200b\u6211\u200b\u5f53\u65f6\u200b\u662f\u200b\u6ca1\u6709\u200b PC4\uff0c\u200b\u6709\u200b PC5 \u200b\u63d2\u200b\u5728\u200b 5 \u200b\u4e0a\u9762\u200b\uff0c\u200b\u6211\u200b\u7ed9\u200b\u6539\u200b\u63d2\u200b\u5230\u200b 4 \u200b\u4e86\u200b\uff09

                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_2","title":"\u8d77\u6b65","text":"

                  \u200b\u5176\u5b9e\u200b\u4e5f\u200b\u5c31\u200b\u8d77\u6b65\u200b\u662f\u200b\u6700\u96be\u200b\u7684\u200b\uff0c\u200b\u540e\u9762\u200b\u57fa\u672c\u200b\u5c31\u200b\u6309\u7167\u200b\u6587\u6863\u200b\u6765\u200b\u505a\u200b\u5c31\u662f\u200b\u3002

                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_3","title":"\u8fde\u4e0d\u4e0a\u200b\u4ea4\u6362\u673a","text":"

                  \u200b\u8fde\u63a5\u200b\u4ea4\u6362\u673a\u200b\u8981\u200b\u505a\u200b\u7684\u200b\u6709\u200b\uff1a

                  • \u200b\u7528\u200b\u524d\u6587\u200b\u63d0\u5230\u200b\u7684\u200b\u4e32\u53e3\u200b-\u200b\u7f51\u53e3\u200b\u7ebf\u6765\u200b\u8fde\u63a5\u200b\u67d0\u200b PC \u200b\u548c\u200b\u4ea4\u6362\u673a\u200b\u7684\u200b console\u3001
                  • \u200b\u5207\u6362\u200b\u5230\u200b\u90a3\u53f0\u200b PC\uff0c \u200b\u6253\u5f00\u200b\u684c\u9762\u4e0a\u200b\u7684\u200b putty\uff0c \u200b\u9009\u62e9\u200b serial\uff0c\u200b\u9ed8\u8ba4\u200b\u901f\u7387\u200b 9600 \u200b\u5373\u53ef\u200b\uff0c\u200b\u542f\u52a8\u200b
                  • \u200b\u72c2\u200b\u6309\u200b\u56de\u8f66\u200b\uff0c\u200b\u51fa\u73b0\u200b\u547d\u4ee4\u884c\u200b\u63d0\u793a\u7b26\u200b\u5c31\u200b\u6210\u529f\u200b\u4e86\u200b\uff0c\u200b\u6ca1\u200b\u53cd\u5e94\u200b\u7528\u200b\u624b\u6276\u200b\u4e00\u4e0b\u200b console \u200b\u770b\u200b\u4e00\u4e0b\u200b\u63d2\u7d27\u200b\u4e86\u200b\u6ca1\u6709\u200b

                  \u200b\u5c31\u200b\u6211\u200b\u800c\u8a00\u200b\uff0c\u200b\u673a\u7bb1\u200b\u91cc\u200b\u7684\u200b\u4e0b\u9762\u200b\u7684\u200b\u4e00\u53f0\u200b\u4ea4\u6362\u673a\u200b\u662f\u200b\u6b7b\u6d3b\u200b\u8fde\u4e0d\u4e0a\u200b\uff0c\u200b\u6700\u540e\u200b\u8bd5\u200b\u4e86\u200b\u534a\u5929\u200b\u662f\u200b\u4e0a\u9762\u200b\u7684\u200b\u53e6\u4e00\u53f0\u200b\u4ea4\u6362\u673a\u200b\u7528\u200b\u624b\u6276\u200b\u7a33\u200b\u4e86\u200b\u53ef\u4ee5\u200b\u4e0a\u200b\u3002

                  \u200b\u5982\u679c\u200b\u4f60\u8bd5\u200b\u4e86\u200b\u5f88\u591a\u200b\u90fd\u200b\u4e0d\u884c\u200b\u7684\u8bdd\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b\u5b9e\u9a8c\u5ba4\u200b\u91cc\u200b\u6e9c\u8fbe\u200b\u4e00\u5708\u200b\u591a\u200b\u6478\u200b\u51e0\u4e2a\u200b\u4ea4\u6362\u673a\u200b\u56de\u6765\u200b.\u200b\u6211\u4eec\u200b\u7b2c\u4e8c\u6b21\u200b\u6478\u200b\u4e86\u200b\u4e24\u53f0\u200b\u767d\u8272\u200b\u7684\u200b\u5c0f\u5c0f\u7684\u200b\u4ea4\u6362\u673a\u200b\u6765\u200b\u7528\u200b\u3002

                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_4","title":"\u4ea4\u6362\u673a\u200b\u5bc6\u7801","text":"

                  \u200b\u6211\u4eec\u200b\u6478\u6765\u200b\u7684\u200b\u4e24\u53f0\u200b\u4ea4\u6362\u673a\u200b\u90fd\u200b\u8981\u6c42\u200b enable \u200b\u5bc6\u7801\u200b\uff0c\u200b\u91cd\u7f6e\u200b\u5bc6\u7801\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6478\u200b\u7684\u200b\u6bd4\u8f83\u200b\u719f\u200b\u4e86\u200b\uff0c\u200b\u6ce8\u610f\u200b\u9002\u7528\u200b\u7684\u200b\u662f\u200b\u5c0f\u578b\u200b\u767d\u8272\u200b\u4ea4\u6362\u673a\u200b\uff0c\u200b\u6b63\u9762\u200b\u578b\u53f7\u200b\u5199\u200b\u7740\u200b C3560 \u200b\u6b65\u9aa4\u200b\uff1a

                  • \u200b\u8fde\u63a5\u200b console \u200b\u548c\u200b PC\uff0c\u200b\u6253\u5f00\u200b putty\uff0c\u200b\u65ad\u7535\u200b
                  • \u200b\u957f\u200b\u6309\u200b mode \u200b\u952e\u200b\uff0c\u200b\u4e0a\u7535\u200b
                  • \u200b\u7ee7\u7eed\u200b\u6309\u200b mode\uff0c\u200b\u7b49\u5f85\u200b\uff0cputty \u200b\u4e0a\u200b\u5e94\u8be5\u200b\u9646\u7eed\u200b\u6709\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u8f93\u51fa\u200b\u4e86\u200b\uff0c\u200b\u773c\u5c16\u200b\u7684\u200b\u8fd8\u200b\u80fd\u200b\u770b\u5230\u200b password recovery mechanism is enabled\uff0c\u200b\u770b\u5230\u200b\u8fd9\u53e5\u200b\u8bdd\u200b\u7ee7\u7eed\u200b\u6309\u200b
                  • \u200b\u7ee7\u7eed\u200b\u6309\u200b mode \u200b\u76f4\u5230\u200b\u5c4f\u5e55\u200b\u4e0a\u200b\u51fa\u73b0\u200b switch: \u200b\u63d0\u793a\u7b26\u200b\u548c\u200b\u4e24\u4e2a\u200b\u9009\u9879\u200b(flash_init\uff0c boot)
                  • \u200b\u5148\u200bflash_init\uff0c\u200b\u7136\u540e\u200bren flash:config.text flash:config.old\uff0c\u200b\u7136\u540e\u200bboot
                  • \u200b\u7b49\u5f85\u200b\u91cd\u542f\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u5dee\u4e0d\u591a\u200b\u5b8c\u200b\u4e86\u200b\u4f1a\u200b\u8ba9\u200b\u6309\u200b\u56de\u8f66\u200b\u786e\u8ba4\u200b\uff0c\u200b\u6309\u200b\u5b8c\u6709\u200b\u4e2a\u200b\u662f\u5426\u200b\u8fdb\u5165\u200b\u521d\u59cb\u5316\u200b\u914d\u7f6e\u200b\uff0c\u200b\u8f93\u5165\u200b no
                  • \u200b\u91cd\u7f6e\u200b\u6210\u529f\u200b
                  "},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#pc-ip","title":"\u8bbe\u5b9a\u200b PC \u200b\u7684\u200b IP","text":"

                  \u200b\u5b9e\u9a8c\u200b\u5f00\u59cb\u200b\u524d\u200b\u6211\u4eec\u200b\u8981\u200b\u67e5\u770b\u200b\u5404\u200b PC \u200b\u7684\u200b IP\uff0cwin + R\uff0c\u200b\u8f93\u5165\u200b cmd \u200b\u6253\u5f00\u200b\u547d\u4ee4\u884c\u200b\uff0c\u200b\u8f93\u5165\u200bipconfig\u200b\u5c31\u200b\u80fd\u200b\u770b\u5230\u200b ip \u200b\u4e86\u200b\uff0c\u200b\u6ca1\u6709\u200b\u7684\u8bdd\u200b\u68c0\u67e5\u200b\u8fde\u63a5\u200b\uff0c\u200b\u770b\u770b\u200b\u4fe1\u53f7\u706f\u200b\u53d8\u7eff\u200b\u4e86\u200b\u6ca1\u6709\u200b\u3002

                  \u200b\u4e00\u822c\u800c\u8a00\u200b PC \u200b\u7684\u200b IP \u200b\u90fd\u200b\u633a\u200b\u6b63\u5e38\u200b\u7684\u200b\uff0c\u200b\u4e92\u76f8\u200b\u4e4b\u95f4\u200b\u90fd\u200b\u901a\u200b\uff08\u200b\u6bd4\u8f83\u200b\u6b63\u5e38\u200b\u7684\u200b IP 10.0.0.13 10.0.1.13 10.0.2.13 10.0.3.13 \u200b\u4ed6\u4eec\u200b\u663e\u7136\u200b\u90fd\u200b\u901a\u200b\uff09

                  \u200b\u7136\u800c\u200b\u6211\u200b\u5f53\u65f6\u200b\u4e24\u4e2a\u200b PC \u200b\u662f\u200b 10 \u200b\u5f00\u5934\u200b\u4e24\u4e2a\u200b\u662f\u200b 192 \u200b\u5f00\u5934\u200b\uff0c\u200b\u4e0d\u901a\u200b\uff0c\u200b\u9700\u8981\u200b\u624b\u52a8\u200b\u8bbe\u5b9a\u200b

                  \u200b\u8fd9\u65f6\u5019\u200b\u5343\u4e07\u522b\u200b\u53bb\u200b putty \u200b\u91cc\u9762\u200b\u6572\u200b\u547d\u4ee4\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u6211\u200b\u8fd9\u4e48\u200b\u641e\u200b\u56db\u53f0\u200b PC \u200b\u5168\u65ad\u200b\u8054\u200b\u4e86\u200b\uff0c\u200b\u8981\u200b\u5728\u200b windows \u200b\u7684\u200b\u63a7\u5236\u9762\u677f\u200b\u91cc\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u5177\u4f53\u6b65\u9aa4\u200b\u7f51\u4e0a\u200b\u90fd\u200b\u6709\u200b\uff0c\u200b\u8981\u200b\u628a\u200b\u56db\u53f0\u200b\u653e\u5230\u200b\u540c\u4e00\u200b\u7f51\u6bb5\u200b\u3002

                  \u200b\u606d\u559c\u200b

                  \u200b\u63a5\u4e0b\u6765\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8ddf\u7740\u200b\u6587\u6863\u200b\u4e00\u6b65\u6b65\u200b\u8d70\u200b\u5b8c\u200b\u5b9e\u9a8c\u200b\u4e86\u200b\u3002

                  "},{"location":"blog/enable-chatgpt_academic/","title":"Enable ChatGPT_academic","text":"

                  Abstract

                  \u200b\u901b\u200b\u5927\u8857\u200b\u7684\u200b\u65f6\u5019\u200b\u5076\u7136\u200b\u770b\u5230\u200b\u7684\u200b\u5de5\u5177\u200b\uff0c\u200b\u8dd1\u200b\u8d77\u6765\u200b\u7528\u7528\u200b\u770b\u200b\uff01

                  \u200b\u51c6\u5907\u200b\u5de5\u4f5c\u200b

                  \u200b\u8bf7\u200b\u5728\u200b\u9605\u8bfb\u200b\u6b64\u6587\u200b\u524d\u200b\u51c6\u5907\u200b\u597d\u200b ChatGPT \u200b\u7684\u200b API Key \u200b\u548c\u200b\u597d\u200b\u7528\u200b\u7684\u200b\u4ee3\u7406\u200b.\uff08\u200b\u524d\u8005\u200b\u4e3b\u8981\u200b\u662f\u200b\u6ce8\u518c\u200b\u597d\u200b\u8d26\u53f7\u200b\u5c31\u884c\u200b\uff0c\u200b\u5408\u7406\u200b\u5229\u7528\u200b https://sms-activate.org/\uff09

                  \u200b\u4e3b\u8981\u200b\u7684\u200b\u6d41\u7a0b\u200b\u5c31\u200b\u5728\u200b\u9879\u76ee\u200b\u7684\u200b\u6e90\u5730\u5740\u200b\u8bb2\u200b\u7684\u200b\u5f88\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u7167\u200b\u505a\u200b\u5373\u53ef\u200b\u3002

                  \u200b\u7b14\u8005\u200b\u6ca1\u6709\u200b\u7528\u200b docker \u200b\u90e8\u7f72\u200b\uff0c\u200b\u90e8\u7f72\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u53ea\u200b\u9047\u5230\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u6362\u200b\u8fc7\u6e90\u200b\u540e\u200b pip \u200b\u627e\u200b\u4e0d\u5230\u200b\u9ad8\u200b\u7248\u672c\u200b\u7684\u200b gradio

                  \u200b\u89e3\u51b3\u65b9\u6848\u200b\u662f\u200b\uff1a

                  pip install --upgrade gradio -i https://pypi.org/simple\n

                  -i \u200b\u662f\u200b --index-url \u200b\u7684\u200b\u7f29\u5199\u200b\uff0c\u200b\u610f\u601d\u200b\u662f\u4ece\u200b\u6307\u5b9a\u200b\u6e90\u200b\u4e0b\u8f7d\u200b

                  "},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/","title":"\u7528\u200b Mac \u200b\u7684\u200b VSCode \u200b\u8c03\u8bd5\u200b C/C++\u200b\u7a0b\u5e8f","text":"

                  Abstract

                  \u200b\u5728\u200b Mac \u200b\u7684\u200b\u73af\u5883\u200b\u4e0a\u7528\u200b VSCode \u200b\u6765\u200b debug \u200b\u634f\u200b\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u4e5f\u200b\u78b0\u5230\u200b\u4e9b\u200b\u95ee\u9898\u200b\u7684\u8bdd\u200b\u4e0d\u59a8\u200b\u6765\u200b\u770b\u770b\u200b\ud83d\udc40

                  \u200b\u73af\u5883\u200b

                  MacOS: Ventura 13.2.1 VSCode: 1.76.2 x64 C/C++: 1.14.5 CodeLLDB: 1.8.0 Code Runner: 0.12.0

                  "},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#cc","title":"C/C++","text":"

                  \u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b VSCode \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u542f\u7528\u200b\u540e\u200b\uff0c\u200b\u4f1a\u200b\u5728\u200b VSCode \u200b\u4e2d\u200b\u6dfb\u52a0\u200b C/C++\u200b\u7684\u200b\u8bed\u6cd5\u200b\u9ad8\u4eae\u200b\u3001\u200b\u4ee3\u7801\u200b\u63d0\u793a\u200b\u3001\u200b\u4ee3\u7801\u200b\u8df3\u8f6c\u200b\u7b49\u200b\u529f\u80fd\u200b\u3002 \u200b\u540c\u65f6\u200b\u53f3\u4e0a\u89d2\u200b\u51fa\u73b0\u200b\u5982\u4e0b\u200b\u56fe\u6807\u200b\uff1a

                  \u200b\u9009\u62e9\u200b run \u200b\u7684\u8bdd\u200b\uff0c\u200b\u63d2\u4ef6\u200b\u5c31\u200b\u4f1a\u200b\u63a5\u7740\u200b\u8ba9\u200b\u6211\u4eec\u200b\u9009\u62e9\u200b\u4f7f\u7528\u200b\u7684\u200b\u7f16\u8bd1\u5668\u200b

                  \u200b\u6bd4\u5982\u200b\u6211\u200b\u9009\u62e9\u200b clang++\uff0c\u200b\u90a3\u4e48\u200b\u63d2\u4ef6\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u5f53\u524d\u5de5\u4f5c\u200b\u533a\u4e0b\u200b\u81ea\u52a8\u200b\u751f\u6210\u200b\u76f8\u5e94\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u5e76\u200b\u5f00\u59cb\u8fd0\u884c\u200b\u3002

                  \u200b\u5bf9\u4e8e\u200b\u8c03\u8bd5\u200b\uff0c\u200b\u5f88\u200b\u9057\u61be\u200b\u7684\u200b\u662f\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u662f\u200b\u8fd0\u884c\u200b\u5728\u200b Debug Console \u200b\u4e2d\u200b\u7684\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\uff0c\u200b\u8fd0\u884c\u200b\u5728\u200b debug console \u200b\u4e2d\u200b\u7684\u200b\u95ee\u9898\u200b\u662f\u200b\u6ca1\u6709\u200b stdin \u200b\u8ba9\u200b\u6211\u4eec\u200b\u8f93\u5165\u200b\u3002

                  \u200b\u7ecf\u8fc7\u200b\u67e5\u8be2\u200b\uff0c\u200b\u53d1\u73b0\u200b Mac \u200b\u4e0a\u200b C/C++\u200b\u63d2\u4ef6\u200b\u4e0d\u200b\u652f\u6301\u200b debugger \u200b\u8fd0\u884c\u200b\u5728\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\uff0csetting \u200b\u91cc\u200b\u4e5f\u200b\u6ca1\u6709\u200b\u4fee\u6539\u200b\u9009\u9879\u200b\uff0c\u200b\u53ea\u80fd\u200b\u8fd0\u884c\u200b\u5728\u200b debug console \u200b\u6216\u8005\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b.\u200b\u8be6\u89c1\u200b\u5b98\u7f51\u200b

                  \u200b\u5982\u679c\u200b\u5e0c\u671b\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b\u8fd0\u884c\u200b\u8fdb\u884c\u200b\u8f93\u5165\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u5728\u200b launch.json \u200b\u4e2d\u200b\u914d\u7f6e\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u5f53\u524d\u200b\u7248\u672c\u200b\u9ed8\u8ba4\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u53ea\u4f1a\u200b\u751f\u6210\u200b task.json\uff0c\u200b\u6ca1\u6709\u200b launch.json\uff1a

                  \u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u5148\u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b task.json.\u200b\u8fd9\u91cc\u200b\u7684\u200b\u4e00\u4e9b\u200b\u53c2\u6570\u200b\u662f\u200b\u53ef\u4ee5\u200b\u4fee\u6539\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u200b args\uff0c\u200b\u5c31\u662f\u200b\u7f16\u8bd1\u200b\u65f6\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5176\u4e2d\u200b-g\u200b\u53c2\u6570\u200b\uff0c\u200b\u4f1a\u200b\u8ba9\u200b\u7f16\u8bd1\u5668\u200b\u751f\u6210\u200b\u8c03\u8bd5\u4fe1\u606f\u200b\uff0c\u200b\u8fd9\u6837\u200b\u624d\u80fd\u200b\u8fdb\u884c\u200b debug.\u200b\u8fd8\u6709\u200b cwd \u200b\u53c2\u6570\u200b\uff0c\u200b\u8fd0\u884c\u200b\u7a0b\u5e8f\u200b\u7684\u200b\u6587\u4ef6\u5939\u200b\u4f4d\u7f6e\u200b\uff0c\u200b\u5982\u679c\u200b\u4e0d\u5199\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u9ed8\u8ba4\u200b\u5728\u200b\u5f53\u524d\u5de5\u4f5c\u200b\u533a\u200b\u7684\u200b\u6839\u76ee\u5f55\u200b\u4e0b\u200b\u8fd0\u884c\u200b\uff0c\u200b\u800c\u200b\u975e\u200b\u7a0b\u5e8f\u200b\u6240\u5728\u200b\u76ee\u5f55\u200b\uff0c\u200b\u8fd9\u200b\u5728\u200b\u4e00\u4e9b\u200b\u6253\u5f00\u200b\u6587\u4ef6\u200b\u7684\u200b\u64cd\u4f5c\u200b\u4e0a\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u5bfc\u81f4\u200b\u95ee\u9898\u200b.\u200b\u6700\u540e\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b label\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u522b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e2d\u200b\u901a\u8fc7\u200b\u8fd9\u4e2a\u200b label \u200b\u6765\u200b\u8c03\u7528\u200b\u8fd9\u4e2a\u200b task.

                  \u200b\u6211\u4eec\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u914d\u7f6e\u6587\u4ef6\u200b launch.json\uff1a\u200b\u9009\u62e9\u200b\u4fa7\u680f\u200b\u7684\u200b debug \u200b\u56fe\u6807\u200b\uff0c\u200b\u70b9\u51fb\u200bcreate a launch.json file:

                  \u200b\u521a\u200b\u5f00\u59cb\u200b\u662f\u200b\u7a7a\u200b\u7684\u200b\uff0c\u200b\u4ec0\u4e48\u200b\u90fd\u200b\u6ca1\u6709\u200b.\u200b\u70b9\u51fb\u200b\u53f3\u4e0b\u89d2\u200b\u7684\u200bAdd Configuration\uff0c\u200b\u5c31\u200b\u6709\u200b\u4e00\u4e9b\u200b\u9009\u9879\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6709\u200b\u63d2\u4ef6\u200b\u4e3a\u200b\u6211\u4eec\u200b\u51c6\u5907\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u6a21\u7248\u200b\uff0c\u200b\u6211\u4eec\u200b\u9009\u62e9\u200bC/C++ lldb\uff08\u200b\u542f\u52a8\u200b\uff09\uff0c\u200b\u610f\u601d\u200b\u662f\u200b C/C++\u200b\u63d2\u4ef6\u200b\u63d0\u4f9b\u200b\u7684\u200b\uff0c\u200b\u542f\u52a8\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u5e76\u200b\u5bf9\u200b\u5176\u200b debug \u200b\u7684\u200b\u914d\u7f6e\u200b\uff0c\u200b\u9009\u62e9\u200b\u9644\u52a0\u200b\u7684\u8bdd\u200b\u662f\u200b\u9644\u52a0\u200b\u5230\u200b\u4e00\u4e2a\u200b\u5df2\u7ecf\u200b\u5728\u200b\u6267\u884c\u200b\u7684\u200b\u8fdb\u7a0b\u200b\u4e0a\u200b\u7684\u200b\uff1a

                  \u200b\u9ed8\u8ba4\u200b\u7684\u200b\u6a21\u677f\u200b\u957f\u200b\u8fd9\u4e2a\u200b\u6837\u5b50\u200b\uff1a

                  \u200b\u8fd9\u200b\u5e76\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\uff0c\u200b\u9996\u5148\u200b\u4fee\u6539\u200b program \u200b\u4e3a\u200b

                  \"program\": \"${workspaceFolder}/${fileBasenameNoExtension}\"\uff0c\n
                  \uff0c\u200b\u8fd9\u6837\u200b\u4ed6\u200b\u8fd0\u884c\u200b\u7684\u200b\u5c31\u200b\u4f1a\u200b\u662f\u200b\u5f53\u524d\u76ee\u5f55\u200b\u4e0b\u200b\u7684\u200b\u5f53\u524d\u200b\u6587\u4ef6\u200b\uff08\u200b\u4e00\u822c\u200b\u5c31\u662f\u200b\u5149\u6807\u200b\u60ac\u505c\u200b\u7684\u200b\u90a3\u4e2a\u200b\u6587\u4ef6\u200b\uff09\u200b\u540c\u540d\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\uff08\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u6ca1\u200b\u540e\u7f00\u200b\uff09\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7f16\u8bd1\u200b\u51fa\u6765\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u53eb\u505a\u200ba.out\uff0c\u200b\u8fd9\u4e2a\u200b\u914d\u7f6e\u200b\u5c31\u200b\u4e0d\u200b\u9002\u7528\u200b\uff08\u200b\u4f1a\u200b\u8c03\u7528\u200ba\uff09\uff0c\u200b\u8bf7\u200b\u5728\u200b\u914d\u7f6e\u200b\u4e2d\u200b\u4fee\u6539\u200b\u4e3a\u200b/a.out\u200b\u6216\u8005\u200b\u8ba9\u200b\u7f16\u8bd1\u200b\u51fa\u6765\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u540d\u4e3a\u200ba.

                  \u200b\u65b0\u52a0\u200b\u4e00\u5217\u200bpreLaunchTask\uff0c\u200b\u503c\u200b\u5c31\u662f\u200b\u4e4b\u524d\u200b task.json \u200b\u4e0a\u200b\u7684\u200b label\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u8fd0\u884c\u200b\u524d\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u524d\u5148\u200b\u8fd0\u884c\u200b task \u200b\u7f16\u8bd1\u200b\u5f53\u524d\u200b\u6587\u4ef6\u200b\uff08\u200b\u8fd9\u6837\u200b\u6bd4\u8f83\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u81ea\u52a8\u200b\u628a\u200b\u6700\u65b0\u200b\u7684\u200b\u6e90\u4ee3\u7801\u200b\u7f16\u8bd1\u200b\uff0c\u200b\u8981\u200b\u591a\u200b\u6587\u4ef6\u200b\u7f16\u8bd1\u200b\u7684\u8bdd\u200b\u4e5f\u200b\u5728\u200b task \u200b\u8bbe\u7f6e\u200b.\u200b\u5982\u679c\u200b\u4e0d\u200b\u4f7f\u7528\u200b task \u200b\u624b\u52a8\u200b\u7f16\u8bd1\u200b\u7684\u8bdd\u200b\uff0c\u200b\u8bb0\u5f97\u200b\u52a0\u4e0a\u200b-g\uff09.\u200b\u6700\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u628a\u200b\"externalConsole\": false\uff0c\u200b\u6539\u4e3a\u200b\"externalConsole\": true\uff0c\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\u8fd0\u884c\u200b\u4e86\u200b\u3002

                  \u200b\u7b14\u8005\u200b\u5230\u200b\u8fd9\u200b\u4e00\u6b65\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b debug \u200b\u5566\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5728\u200b watch \u200b\u7a97\u53e3\u200b\u6267\u884c\u547d\u4ee4\u200b\u6765\u200b\u76d1\u89c6\u200b\u53d8\u91cf\u200b\uff0c\u200b\u5982\u200b\u5168\u5c40\u53d8\u91cf\u200b\u4e00\u7c7b\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b C/C++\u200b\u5bf9\u200b\u4e00\u4e9b\u200b\u7c7b\u578b\u200b\u7684\u200b\u53d8\u91cf\u200b\u7684\u200b\u76d1\u89c6\u200b\u652f\u6301\u200b\u4e0d\u662f\u200b\u5f88\u200b\u597d\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b string\uff1a \u200b\u76d1\u89c6\u200b\u4fe1\u606f\u200b\u5c31\u662f\u200b\u4e00\u5768\u200b\u3002

                  "},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#code-runner","title":"Code Runner","text":"

                  \u200b\u53e6\u200b\u4e00\u4e2a\u200b VSCode \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u542f\u7528\u200b\u540e\u200b\u53f3\u4e0a\u89d2\u200b\u53c8\u200b\u4f1a\u200b\u591a\u200b\u4e00\u4e2a\u200b\u6807\u200b\uff1a

                  \u200b\u8fd9\u4e2a\u200b\u662f\u200b\u53ef\u4ee5\u200b\u8dd1\u200b\u5728\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\u91cc\u200b\u7684\u200b\uff1a

                  "},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#codelldb","title":"CodeLLDB \ud83d\udc4d","text":"

                  \u200b\u8fd9\u4e2a\u200b\u63d2\u4ef6\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b debug\uff0c\u200b\u6211\u200b\u611f\u89c9\u200b\u6bd4\u200b C/C++\u200b\u597d\u7528\u200b\u591a\u200b\u4e86\u200b\u3002

                  \u200b\u542f\u7528\u200b\u63d2\u4ef6\u200b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b launch.json \u200b\u4e2d\u53ef\u9009\u200b\u914d\u7f6e\u200b\u5c31\u200b\u591a\u200b\u4e86\u200b\u51e0\u4e2a\u200b\uff0c\u200b\u6211\u4eec\u200b\u4f7f\u7528\u200bCodeLLDB (launch)\u200b\u6a21\u677f\u200b\uff1a

                  \u200b\u540c\u6837\u200b\u7a0d\u5fae\u200b\u4fee\u6539\u200b\uff1a

                  \u200b\u56de\u5230\u200b\u4fa7\u8fb9\u200b\u680f\u200b debug \u200b\u6a21\u5757\u200b\uff0c\u200b\u9009\u62e9\u200b\u65b0\u200b\u7684\u200b\u542f\u52a8\u200b\u914d\u7f6e\u200b\uff08\u200b\u8fd9\u91cc\u200b\u9009\u200b\u7684\u200b\u662f\u200b launch.json \u200b\u91cc\u200b\u5199\u200b\u597d\u200b\u7684\u200b\u51e0\u4e2a\u200b\u914d\u7f6e\u200b\uff09\uff1a

                  \u200b\u8fd9\u4f1a\u200b\u5728\u200b\u6211\u4eec\u200b\u542f\u7528\u200b debug \u200b\u7684\u200b\u65f6\u5019\u200b\u53bb\u200b launch.json \u200b\u91cc\u9762\u200b\u627e\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u7684\u200b\u914d\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u8fdb\u884c\u200b debug.

                  \u200b\u6709\u65f6\u5019\u200b debug \u200b\u5f39\u200b\u51fa\u200b\u5947\u602a\u200b\u7684\u200b\u62a5\u9519\u200b\uff0c\u200b\u662f\u56e0\u4e3a\u200b\u5f53\u524d\u200b\u6253\u5f00\u200b\u7684\u200b\u662f\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u8bd5\u56fe\u200b\u5bf9\u200b launch.json \u200b\u8fdb\u884c\u200b debug\uff0c\u200b\u6240\u4ee5\u200b\u62a5\u9519\u200b\u4e86\u200b.\u200b\u6211\u4eec\u200b\u6253\u5f00\u200b\u8981\u200b debug \u200b\u7684\u200b\u6e90\u4ee3\u7801\u200b\u6587\u4ef6\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b.

                  CodeLLDB \u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\uff1a

                  \u200b\u53ef\u4ee5\u200b\u5728\u200b\u76d1\u89c6\u200b\u91cc\u200b\u76f4\u63a5\u200b\u7528\u200b\u53d8\u91cf\u540d\u200b\u76d1\u89c6\u200b\u53d8\u91cf\u200b\uff1a

                  \u200b\u53ef\u4ee5\u200b\u5728\u200b debug console \u200b\u4e2d\u200b\u8f93\u5165\u200b\u547d\u4ee4\u200b\uff1a

                  \u200b\u53d8\u91cf\u200b\u91cc\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u652f\u6301\u200b\u4e5f\u597d\u200b\u4e00\u4e9b\u200b\uff1a

                  \u200b\u8fd9\u91cc\u200b\u8fd8\u6709\u200b\u5b98\u65b9\u200b\u6587\u6863\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u770b\u200b\u3002

                  \u200b\u624b\u52a8\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b task.json

                  \u200b\u5728\u200b\u83dc\u5355\u200b terminal > Configure Tasks \u200b\u9009\u62e9\u200b C/C++\u200b\u6765\u200b\u751f\u6210\u200b\u6a21\u677f\u200b

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab1-%E6%97%B6%E9%92%9F%E4%B8%AD%E6%96%AD/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab1 \u200b\u65f6\u949f\u200b\u4e2d\u65ad","text":"

                  Abstract

                  \u200b\u4e00\u4e2a\u200b kernel \u200b\u7684\u200b\u8fd0\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b

                  \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

                  \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

                  \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab1-%E6%97%B6%E9%92%9F%E4%B8%AD%E6%96%AD/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
                  - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\n- start_kernel: \u200b\u8fdb\u884c\u200b\u4e00\u4e9b\u200b\u8f93\u51fa\u200b\uff0c\u200b\u8fdb\u5165\u200b test()\u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- _traps: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u597d\u200b\u4e0a\u4e0b\u6587\u200b\u540e\u200b\u8c03\u7528\u200b\u4e2d\u65ad\u200b\u5904\u7406\u7a0b\u5e8f\u200b trap_handler\n- trap_handler: \u200b\u786e\u8ba4\u200b\u662f\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u540e\u200b\u8c03\u7528\u200b clock_set_next\n- clock_set_next: \u200b\u5229\u7528\u200b sbi_ecall \u200b\u8bbe\u7f6e\u200b\u4e0b\u200b\u4e00\u6b21\u200b\u4e2d\u65ad\u200b\u65f6\u95f4\u200b\n- _traps: \u200b\u8fd4\u56de\u200b_traps \u200b\u540e\u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b sret \u200b\u8fd4\u56de\u200b\u6b7b\u5faa\u73af\u200b\n- test: \u200b\u6b7b\u5faa\u73af\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u91cd\u590d\u200b\u4e0a\u8ff0\u200b\u6d41\u7a0b\u200b\n
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab2 \u200b\u7ebf\u7a0b\u200b\u8c03\u5ea6","text":"

                  Abstract

                  \u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u7684\u200b\u8fd0\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b

                  \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

                  \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

                  \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
                  - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n    - mm_init: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n    - task_init: \u200b\u5b8c\u6210\u200b\u5bf9\u200b\u6240\u6709\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB \u200b\u7684\u200b\u521d\u59cb\u5316\u200b(1)\uff0c\u200b\u5305\u62ec\u200b\u5f53\u524d\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b idle \u200b\u7ebf\u7a0b\u200b\n        - test_init: \u200b\u8be5\u200b\u51fd\u6570\u8c03\u7528\u200b\u4f1a\u586b\u200b\u597d\u200b task_test_counter \u200b\u548c\u200b 1task_test_priority \u200b\u4e24\u4e2a\u200b\u6570\u7ec4\u200b\u7528\u4e8e\u200b\u7ed9\u200b\u6211\u4eec\u200b\u540e\u7eed\u200b\u521d\u59cb\u5316\u200b\u4f7f\u7528\u200b\n        - \u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\u4f5c\u4e3a\u200b idle \u200b\u7684\u200b PCB\uff0c\u200b\u586b\u5199\u200b\u5e76\u4e14\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b current\n        - \u200b\u8fed\u4ee3\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7ebf\u7a0b\u200b\u5206\u914d\u200b\u5e76\u200b\u586b\u5199\u200b PCB\uff0c\u200b\u6ce8\u610f\u200b\u5176\u4e2d\u200b ra \u200b\u548c\u200b sp \u200b\u7684\u200b\u8bbe\u7f6e\u200b\n            - ra: ra \u200b\u56fa\u5b9a\u200b\u4e3a\u200b__dummy\uff0c\u200b\u8fd9\u662f\u200b\u6211\u4eec\u200b\u4e3a\u200b\u7ebf\u7a0b\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u540e\u200b\u8bbe\u7f6e\u200b\u7684\u200b\u8fd4\u56de\u200b\u5730\u5740\u200b\n            - sp: \u200b\u76f4\u63a5\u200b\u7528\u200b\u5206\u914d\u200b\u7ed9\u200b PCB \u200b\u7684\u200b\u8fd9\u200b\u4e00\u9875\u200b\u505a\u6808\u200b\uff0c\u200b\u6808\u9876\u200b\u81ea\u7136\u200b\u5c31\u662f\u200b PCB \u200b\u5730\u5740\u200b+4K\n- start_kernel: \u200b\u8fdb\u5165\u200b test()\u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- _traps: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u597d\u200b\u4e0a\u4e0b\u6587\u200b\u540e\u200b\u8c03\u7528\u200b\u4e2d\u65ad\u200b\u5904\u7406\u7a0b\u5e8f\u200b trap_handler\n- trap_handler: \u200b\u786e\u8ba4\u200b\u662f\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u540e\u200b\uff0c\u200b\u8bbe\u7f6e\u200b\u4e0b\u6b21\u200b\u4e2d\u65ad\u200b\u65f6\u95f4\u200b\uff0c\u200b\u8fdb\u5165\u200b do_timer()\u200b\u68c0\u67e5\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u5269\u4f59\u65f6\u95f4\u200b\n- do_timer: \u200b\u5982\u679c\u200b\u662f\u200b idle \u200b\u6216\u8005\u200b\u65f6\u95f4\u200b\u7528\u5c3d\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule()\u200b\u8c03\u5ea6\u200b\u8d70\u200b\uff0c\u200b\u5426\u5219\u200b\u65f6\u95f4\u200b\u51cf\u4e00\u200b\n- schedule: \u200b\u6839\u636e\u200b policy \u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u8c03\u7528\u200b switch_to()\u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b(2)\uff0c\u200b\u5982\u679c\u200b\u6240\u6709\u200b\u7ebf\u7a0b\u200b\u65f6\u95f4\u200b\u90fd\u200b\u7528\u200b\u5b8c\u200b\u4e86\u200b\u5c31\u200b\u5148\u200b\u521d\u59cb\u5316\u200b\u65f6\u95f4\u200b\u518d\u200b\u9009\u62e9\u200b\n- switch_to: \u200b\u524d\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- __switch_to: \u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB(3)\n- __dummy: \u200b\u4ece\u200b__switch_to \u200b\u8fd4\u56de\u200b\uff0c\u200b\u8fd4\u56de\u200b\u5730\u5740\u200b\u5c31\u662f\u200b PCB \u200b\u4e2d\u200b\u6062\u590d\u200b\u7684\u200b__dummy.\u200b\u6211\u4eec\u200b\u5728\u200b dummy \u200b\u4e2d\u200b\u7ed3\u675f\u200b\u6b64\u6b21\u200b\u4e2d\u65ad\u200b\u7528\u200b sret \u200b\u56de\u5230\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u6267\u884c\u200b\u7684\u200b\u51fd\u6570\u200b dummy\n- dummy: \u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u4e3b\u200b\u51fd\u6570\u200b\uff0c\u200b\u5207\u6362\u200b\u56de\u6765\u200b\u540e\u200b\u8fdb\u884c\u200b\u4e00\u6b21\u200b\u8f93\u51fa\u200b\u7136\u540e\u200b\u5faa\u73af\u200b\u7b49\u5f85\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- _traps: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4e00\u822c\u200b\u662f\u200b\u5269\u4f59\u65f6\u95f4\u200b\u51cf\u4e00\u200b\u7136\u540e\u200b\u7ee7\u7eed\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u95f4\u200b\u7528\u200b\u5b8c\u200b\uff0c\u200b\u518d\u6b21\u200b\u8fdb\u5165\u200b schedule \u200b\u5faa\u73af\u200b\n
                  1. \u200b\u4e5f\u200b\u5c31\u662f\u200b\u5e2e\u200b\u6bcf\u4e2a\u200b\u7ebf\u7a0b\u200b\u586b\u597d\u200b task_struct
                  2. \u200b\u5bf9\u4e8e\u200b\u8fd9\u4e2a\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u8d70\u200b\u7684\u200b\u7ebf\u7a0b\u200b\u6765\u8bf4\u200b\uff0c\u200b\u4ed6\u200b\u53ea\u662f\u200b\u8c03\u7528\u200b\u4e86\u200b switch_to \u200b\u51fd\u6570\u200b\uff0c\u200b\u7136\u540e\u200b\u7b49\u200b\u7740\u200b\u518d\u200b\u8fd4\u56de\u200b\u7f62\u4e86\u200b.\u200b\u867d\u7136\u200b\u5b9e\u9645\u4e0a\u200b CPU \u200b\u628a\u200b\u6b64\u200b\u7ebf\u7a0b\u200b\u8e22\u200b\u5f00\u53bb\u200b\u5e72\u200b\u522b\u7684\u200b\u6d3b\u200b\u4e86\u200b\uff0c\u200b\u4f46\u672c\u200b\u7ebf\u7a0b\u200b\u5e76\u4e0d\u77e5\u9053\u200b.\u200b\u6240\u4ee5\u200b CPU \u200b\u518d\u6b21\u200b\u8c03\u5ea6\u200b\u56de\u6b64\u200b\u7ebf\u7a0b\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u5c31\u200b\u8be5\u200b\u4ece\u200b switch_to \u200b\u51fd\u6570\u200b\u8fd4\u56de\u200b\uff0c\u200b\u4ece\u800c\u200b\u8ba9\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u65e0\u611f\u200b\u8854\u63a5\u200b\u3002
                  3. \u200b\u52a0\u8f7d\u200b\u540e\u200b\u6211\u4eec\u200b\u7684\u200b sp \u200b\u4f1a\u8bbe\u200b\u4e3a\u200b\u4e4b\u524d\u200b\u5206\u914d\u200b\u9875\u200b\u7684\u200b\u9876\u7aef\u200b\uff0cra \u200b\u4f1a\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b__dummy\uff0c\u200b\u8fd9\u200b\u90fd\u200b\u662f\u200b\u521d\u59cb\u5316\u200b\u65f6\u200b\u8bbe\u8ba1\u200b\u7684\u200b
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/#_1","title":"\u6ce8\u610f\u4e8b\u9879","text":"

                  \u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u5bf9\u4e8e\u200b\u975e\u200b idle \u200b\u7ebf\u7a0b\u200b\u7b2c\u4e00\u6b21\u200b\u4ece\u200b __switch_to \u200b\u8fd4\u56de\u200b\u7684\u200b\u90fd\u200b\u662f\u200b __dummy\uff0c \u200b\u8fd9\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b PCB \u200b\u88ab\u200b\u6062\u590d\u200b\u51fa\u6765\u200b\u7684\u200b ra \u200b\u51b3\u5b9a\u200b\u7684\u200b

                  \u200b\u4f46\u662f\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u7b2c\u4e8c\u6b21\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u5b83\u200b\u6062\u590d\u200b\u7684\u200b PCB \u200b\u5c31\u662f\u200b\u5b83\u200b\u4e4b\u524d\u200b\u81ea\u5df1\u200b\u5b58\u200b\u4e0b\u6765\u200b\u7684\u200b\u800c\u200b\u4e0d\u518d\u200b\u662f\u200b\u521d\u59cb\u5316\u200b\u7684\u200b.\u200b\u8fd9\u4e2a\u200b\u5b58\u200b\u4e0b\u6765\u200b\u7684\u200b ra \u200b\u5c31\u662f\u200b switch_to\uff0c__switch_to \u200b\u51fd\u6570\u200b\u8fd0\u884c\u200b\u65f6\u200b\u7684\u200b ra \u200b\u5f53\u7136\u200b\u662f\u200b__switch_to \u200b\u7684\u200b\u8c03\u7528\u8005\u200b

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab3 \u200b\u865a\u62df\u5185\u5b58","text":"

                  Abstract

                  \u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b

                  \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

                  \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

                  \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
                  - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b(1)\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n    - setup_vm: \u200b\u586b\u5199\u200b\u9875\u8868\u200b(2)\n    - relocate: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u81f3\u6b64\u200b\u865a\u62df\u5185\u5b58\u200b\u5df2\u7ecf\u200b\u542f\u52a8\u200b\n    - mm_init: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n    - setup_vm_final: \u200b\u5229\u7528\u200b mm \u200b\u4e2d\u200b\u7684\u200b\u51fd\u6570\u200b\u5206\u914d\u200b\u65b0\u200b\u7684\u200b\u9875\u200b\u6765\u200b\u8bbe\u7f6e\u200b\u591a\u7ea7\u200b\u5206\u6bb5\u200b\u9875\u8868\u200b\uff0c\u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b(3)\n    - task_init: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n- start_kernel: \u200b\u8fdb\u5165\u200b test \u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u7b49\u5f85\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u8d70\u200b\n
                  1. \u200b\u6ce8\u610f\u200b\u8981\u200b\u4f7f\u7528\u200b\u6808\u200b\u7684\u200b\u7269\u7406\u5730\u5740\u200b\uff0c\u200b\u6b64\u65f6\u200b\u7b26\u53f7\u8868\u200b\u91cc\u200b\u7684\u200b\u90fd\u200b\u662f\u200b\u865a\u62df\u5730\u5740\u200b
                  2. \u200b\u6ce8\u610f\u200b\u8fd9\u91cc\u200b\u8df3\u200b\u586b\u8868\u200b\u8981\u200b\u586b\u200b\u76f4\u63a5\u200b\u6620\u5c04\u200b\u548c\u200b\u7b49\u503c\u200b\u6620\u5c04\u200b\u4e24\u6bb5\u200b
                  3. \u200b\u786e\u5b9a\u200b\u597d\u200b\u4e0d\u540c\u200b\u6bb5\u200b\u7684\u200b\u7269\u7406\u200b\u865a\u62df\u5730\u5740\u200b\u548c\u200b\u6743\u9650\u200b\u7b49\u200b\uff0c\u200b\u8c03\u7528\u200b creat_mapping \u200b\u51fd\u6570\u200b\u5206\u914d\u200b\u5e76\u200b\u586b\u5199\u200b\u9875\u8868\u200b\uff0c\u200b\u6ce8\u610f\u200b\u9875\u8868\u200b\u9879\u5747\u200b\u4f7f\u7528\u200b\u7269\u7406\u5730\u5740\u200b
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#satp","title":"\u5199\u200b satp","text":"

                  \u200b\u6211\u4eec\u200b\u542f\u7528\u200b\u865a\u62df\u5185\u5b58\u200b\u7684\u200b\u90a3\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5199\u200b satp \u200b\u7684\u200b\u90a3\u200b\u4e00\u6b65\u200b\u53ea\u662f\u200b\u4e00\u53e5\u200bcsrw\uff0c\u200b\u6307\u4ee4\u200b\u5199\u200b\u5b8c\u200b\u5bc4\u5b58\u5668\u200b\u4e5f\u200b\u4e0d\u4f1a\u200b\u5e72\u4ec0\u4e48\u200b\u989d\u5916\u200b\u7684\u200b\u4e8b\u60c5\u200b\uff0cCP \u200b\u8fd8\u662f\u200b\u8981\u200b\u7ee7\u7eed\u200b\u53bb\u200b PC+4 \u200b\u6267\u884c\u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\u3002

                  \u200b\u6240\u4ee5\u200b PC+4 \u200b\u8fd9\u4e2a\u200b\u5730\u5740\u200b\u5728\u200b\u865a\u62df\u5185\u5b58\u200b\u4e0b\u8be5\u200b\u600e\u4e48\u200b\u53d6\u6307\u200b(1)\uff0c\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u5c31\u662f\u200b\u601d\u8003\u9898\u200b\u6240\u200b\u5173\u5fc3\u200b\u7684\u200b\u3002

                  1. \u200b\u6709\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6620\u5c04\u200b\u5417\u200b\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u7528\u200b\u4e2d\u65ad\u200b\u5904\u7406\u200b\uff1f
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#_1","title":"\u4e3a\u4ec0\u4e48\u200b\u7b2c\u4e00\u6b21\u200b\u6211\u4eec\u200b\u542f\u7528\u200b\u7684\u200b\u9875\u8868\u200b\u662f\u200b\u4e00\u7ea7\u200b\u7684","text":"

                  \u200b\u6587\u6863\u200b\u4e2d\u200b\u5176\u5b9e\u200b\u5df2\u7ecf\u200b\u6709\u200b\u94fe\u63a5\u200b\u6307\u5411\u200b\u4e86\u200b\u89e3\u91ca\u200b\u8fd9\u200b\u4e00\u70b9\u200b\u7684\u200b\u6587\u6863\u200b\uff0c\u200b\u5177\u4f53\u200b\u800c\u8a00\u200b\uff0c\u200b\u5728\u200b\u8fd9\u6bb5\u200b\u63cf\u8ff0\u200b\u8f6c\u5316\u200b\u865a\u62df\u5185\u5b58\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u7684\u200b\u624b\u518c\u200b\u4e2d\u200b

                  \u200b\u4ed4\u7ec6\u9605\u8bfb\u200b\uff0c\u200b\u5176\u4e2d\u200b\u7b2c\u56db\u70b9\u200b\u63d0\u5230\u200b\u82e5\u200b\u5f53\u524d\u9875\u200b\u8868\u9879\u200b\u7684\u200b\u6743\u9650\u200b\u8868\u660e\u200b\u4e86\u200b\u53ef\u8bfb\u200b\u6216\u8005\u200b\u53ef\u200b\u6267\u884c\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5c31\u200b\u4f1a\u200b\u5f53\u4f5c\u200b\u662f\u200b\u6700\u540e\u200b\u4e00\u7ea7\u200b\u9875\u8868\u200b\uff0c\u200b\u5426\u5219\u200b\u624d\u200b\u4f1a\u200b\u628a\u200b\u5b83\u200b\u5f53\u4f5c\u200b\u67d0\u200b\u4e00\u7ea7\u200b\u7684\u200b\u9875\u8868\u200b

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#debug","title":"debug \u200b\u6ce8\u610f","text":"
                  • \u200b\u5f53\u200b\u6211\u4eec\u200b\u6309\u7167\u200b\u6587\u6863\u200b\u4fee\u6539\u200b\u4e86\u200b\u94fe\u63a5\u200b\u6587\u4ef6\u200b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b gdb \u200b\u4e2d\u200b\u76f4\u63a5\u200b\u7528\u200b\u7b26\u53f7\u200b\u6765\u200b\u6253\u65ad\u200b\u70b9\u200b\u4e4b\u7c7b\u200b\u7684\u200b\u64cd\u4f5c\u200b\u5c31\u200b\u90fd\u200b\u662f\u200b\u6309\u7167\u200b\u4fee\u6539\u200b\u4e86\u200b\u94fe\u63a5\u200b\u6587\u4ef6\u200b\u4e4b\u540e\u200b\u7684\u200b\u865a\u62df\u5730\u5740\u200b\u4e86\u200b\uff0c\u200b\u6240\u4ee5\u200b\u542f\u7528\u200b\u865a\u62df\u5185\u5b58\u200b\u4e4b\u524d\u200b\u4e3a\u4e86\u200b\u5728\u200b\u6b63\u786e\u200b\u7684\u200b\u7269\u7406\u5730\u5740\u200b\u6253\u65ad\u200b\u70b9\u200b\uff0c\u200b\u9700\u8981\u200b\u624b\u52a8\u200b\u8f93\u5165\u200b\u5730\u5740\u200b\u3002
                  • \u200b\u5982\u679c\u200b\u4f60\u200b\u8ddf\u200b\u6211\u200b\u4e00\u6837\u200b\u6539\u5b8c\u200b\u9875\u8868\u200b\u6ca1\u4e8b\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e00\u200b\u5237\u65b0\u200b tlb \u200b\u5c31\u200b\u5bc4\u200b\u4e86\u200b.\u200b\u4e8e\u200b\u6211\u200b\u7684\u200b\u7ecf\u9a8c\u200b\u800c\u8a00\u200b\uff0c\u200b\u662f\u200b\u9875\u8868\u200b\u5199\u200b\u7684\u200b\u6709\u200b\u95ee\u9898\u200b\u3002
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab4 \u200b\u7528\u6237\u200b\u6001","text":"

                  Abstract

                  \u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b

                  \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

                  \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

                  \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
                  - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus(1) \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n    - setup_vm: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n    - relocate: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n    - mm_init: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n    - setup_vm_final: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n    - task_init: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n        - \u200b\u5bf9\u4e8e\u200b idle \u200b\u4ee5\u5916\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u9700\u8981\u200b\u5728\u200b task_struct \u200b\u4e2d\u200b\u989d\u5916\u200b\u7ed9\u5b9a\u200b\u4ee5\u4e0b\u200b\u4fe1\u606f\u200b\uff1a\n            - sepc: \u200b\u6b64\u200b\u7ebf\u7a0b\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u540e\u200b\u4ece\u200b S Mode \u200b\u56de\u200b U Mode \u200b\u7684\u200b\u5730\u5740\u200b\uff0c\u200b\u663e\u7136\u200b\u5c31\u662f\u200b\u7528\u6237\u7a0b\u5e8f\u200b\u8d77\u59cb\u200b\u5730\u5740\u200b USER_START\n            - sscratch: \u200b\u7528\u6237\u200b\u6808\u9876\u200b\uff0c\u200b\u7ea6\u5b9a\u200b\u4e3a\u200b USER_END\n            - sstatus: \u200b\u8fdb\u884c\u200b\u8bbe\u7f6e\u200b\u4f7f\u5f97\u200b sret \u200b\u540e\u200b\u6211\u4eec\u200b\u56de\u5230\u200b U Mode \u200b\u800c\u200b\u975e\u200b S Mode\n            - satp: \u200b\u6bcf\u4e2a\u200b\u8fdb\u7a0b\u200b\u90fd\u200b\u6709\u200b\u81ea\u5df1\u200b\u7684\u200b\u7269\u7406\u5730\u5740\u200b\u7a7a\u95f4\u200b\u548c\u200b\u865a\u62df\u5730\u5740\u200b\u7a7a\u95f4\u200b\uff0c\u200b\u5f7c\u6b64\u200b\u9694\u79bb\u200b\n                - \u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u5404\u200b\u8fdb\u7a0b\u200b\u95f4\u200b\u9694\u79bb\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u200b\u9700\u8981\u200b\u6bcf\u4e2a\u200b\u8fdb\u7a0b\u200b\u5404\u81ea\u200b\u6709\u200b\u4e00\u4efd\u200b\u4e8c\u8fdb\u5236\u200b\u7684\u200b\u6587\u4ef6\u200b\u7684\u200b\u62f7\u8d1d\u200b(2)\n                - \u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\u62f7\u8d1d\u200b\u4e8c\u8fdb\u5236\u200b\u6587\u4ef6\u200b\u540e\u200b\uff0c\u200b\u65b0\u5efa\u200b\u9875\u8868\u200b\uff0c\u200b\u628a\u200b\u8fd9\u4e9b\u200b\u9875\u200b\u7684\u200b\u7269\u7406\u200b\u5730\u5740\u6620\u5c04\u200b\u5230\u200b USER_START \u200b\u5f00\u5934\u200b\u7684\u200b\u865a\u62df\u5730\u5740\u200b\n                - \u200b\u5206\u914d\u200b\u65b0\u7684\u4e00\u9875\u200b\u4f5c\u6808\u200b\uff0c\u200b\u628a\u200b\u8fd9\u200b\u4e00\u9875\u200b\u7684\u200b\u7269\u7406\u200b\u5730\u5740\u6620\u5c04\u200b\u5230\u200b USER_END-4K\n                - \u200b\u6839\u636e\u200b\u65b0\u200b\u9875\u8868\u200b\u5730\u5740\u200b\u8ba1\u7b97\u200b satp\n- start_kernel: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b(3)\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- schedule: \u200b\u6839\u636e\u200b policy \u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- switch_to: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB \u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- __switch_to: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB(6)\n- __dummy: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b(4)\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b USER_START(5)\n- USER_START: \u200b\u5f00\u59cb\u200b\u6267\u884c\u200b\u7528\u6237\u200b\u6001\u200b\u4ee3\u7801\u200b\uff0c\u200b\u5305\u62ec\u200b\u5404\u79cd\u200b\u7cfb\u7edf\u200b\u8c03\u7528\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u95f4\u200b\u7247\u7528\u200b\u5b8c\u200b\n- _traps: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u5207\u200b\u7cfb\u7edf\u200b\u6808\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u8c03\u5ea6\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\n- __switch_to: \u200b\u540c\u200b\u4e0a\u200b\uff0c\u200b\u6b64\u540e\u200b\u8f6e\u6d41\u200b\u8c03\u5ea6\u200b\n
                  1. \u200b\u6ce8\u610f\u200b\u5bf9\u200b sstatus \u200b\u7684\u200b\u8bbe\u7f6e\u200b\u7981\u6b62\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b\u6211\u4eec\u200b\u7684\u200b idle \u200b\u8fdb\u7a0b\u200b\u4e0d\u4f1a\u200b\u88ab\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u8c03\u5ea6\u200b\u8d70\u200b
                  2. \u200b\u4e8c\u8fdb\u5236\u200b\u6587\u4ef6\u200b\u91cc\u200b\u6709\u200b\u4ee3\u7801\u200b\u548c\u200b\u6570\u636e\u200b\u7b49\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u90a3\u4e9b\u200b\u5168\u5c40\u53d8\u91cf\u200b\u6211\u4eec\u200b\u5f53\u7136\u200b\u5e0c\u671b\u200b\u5404\u200b\u8fdb\u7a0b\u200b\u9694\u79bb\u200b.\u200b\u65b9\u4fbf\u200b\u8d77\u200b\u89c1\u200b\u6211\u4eec\u200b\u5168\u90fd\u200b\u62f7\u8d1d\u200b
                  3. \u200b\u56e0\u4e3a\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u4e4b\u524d\u200b\u5df2\u7ecf\u200b ban \u200b\u6389\u200b\u4e86\u200b
                  4. \u200b\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b\u540e\u200b\u4e2d\u65ad\u200b\u624d\u200b\u91cd\u65b0\u200b\u4f7f\u80fd\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u76f4\u63a5\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u4e86\u200b sstatus \u200b\u7684\u200b SPIE
                  5. sepc \u200b\u5728\u200b__switch_to \u200b\u4e2d\u200b\u5c31\u200b\u5df2\u7ecf\u200b load \u200b\u597d\u200b\u4e86\u200b
                  6. \u200b\u8fd9\u91cc\u200b\u52a0\u8f7d\u200b\u7684\u200b PCB \u200b\u5c31\u662f\u200b\u6211\u4eec\u200b task_init \u200b\u7684\u200b\u65f6\u5019\u200b\u5199\u200b\u597d\u200b\u7684\u200b\uff0c\u200b\u6ce8\u610f\u200b\u8fd9\u91cc\u200b\u52a0\u8f7d\u200b\u7684\u200b ra \u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u65f6\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b__dummy
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#uapp","title":"uapp \u200b\u7684\u200b\u52a0\u8f7d","text":"

                  \u200b\u5728\u200b vmlinux.lds \u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u7684\u200b uapp.S \u200b\u6587\u4ef6\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\u5230\u200b _sramdisk\uff0c_eramdisk \u200b\u4e4b\u95f4\u200b

                  • \u200b\u5982\u679c\u200b uapp.S \u200b\u4e2d\u200b\u6211\u4eec\u200b\u7528\u200b\u7684\u200b\u662f\u200b\u7eaf\u200b\u4e8c\u8fdb\u5236\u200b\u6587\u4ef6\u200b\uff0c\u200b\u90a3\u4e48\u200b_sramdisk \u200b\u7b2c\u4e00\u884c\u200b\u5c31\u662f\u200b\u7a0b\u5e8f\u200b\u7b2c\u4e00\u884c\u200b
                  • \u200b\u5982\u679c\u200b uapp.S \u200b\u4e2d\u200b\u6211\u4eec\u200b\u7528\u200b\u7684\u200b\u662f\u200b elf \u200b\u6587\u4ef6\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u89e3\u7801\u200b elf \u200b\u5934\u6765\u200b\u5b9a\u4f4d\u200b\u5177\u4f53\u200b\u7684\u200b\u4e8c\u8fdb\u5236\u200b\u4f4d\u7f6e\u200b\uff0c \u200b\u540c\u65f6\u200b elf \u200b\u4e2d\u200b\u4e5f\u200b\u5236\u5b9a\u200b\u4e86\u200b\u7a0b\u5e8f\u200b\u5165\u53e3\u200b\u4e00\u7c7b\u200b\u7684\u200b\u4fe1\u606f\u200b
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#phdr-p_flags","title":"phdr->p_flags","text":"

                  \u200b\u6ce8\u610f\u200b\u8fd9\u200b\u4e00\u9879\u200b\u867d\u7136\u200b\u662f\u200b\u58f0\u660e\u200b\u6743\u9650\u200b\u7684\u200b\u7684\u200b\u4f46\u200b\u5b9a\u4e49\u200b\u4e0d\u200b\u7b49\u540c\u4e8e\u200b\u9875\u8868\u200b\u9879\u200b\u7684\u200b perm\uff0c\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_1","title":"\u6267\u884c\u200b\u6743\u9650","text":"

                  \u200b\u6ce8\u610f\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u9875\u8868\u200b\u548c\u200b sstatus \u200b\u4fdd\u8bc1\u200b\u8fd0\u884c\u200b\u7528\u6237\u200b\u6001\u200b\u4ee3\u7801\u200b\u65f6\u200b\u6743\u9650\u200b\u68c0\u67e5\u200b\u80fd\u591f\u200b\u901a\u8fc7\u200b\uff0c\u200b\u5426\u5219\u200b\u4f1a\u200b\u5bfc\u81f4\u200b scause = 0xc \u200b\u7684\u200b inst page fault \u200b\u6b64\u65f6\u200b\u4e5f\u8bb8\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b gdb \u200b\u4e2d\u8bfb\u200b\u4fe1\u606f\u200b\u4f46\u662f\u200b\u4e00\u200b\u6267\u884c\u200b\u5c31\u200b\u51fa\u9519\u200b

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_2","title":"\u62f7\u8d1d\u200b\u95ee\u9898","text":"

                  \u200b\u865a\u62df\u5185\u5b58\u200b\u6620\u5c04\u200b\u662f\u200b\u4ee5\u9875\u200b\u4e3a\u200b\u5355\u4f4d\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u200b 0x00010000 \u200b\u8d77\u200b\u7684\u200b\u865a\u62df\u200b\u9875\u200b\u6620\u5c04\u200b\u5230\u200b 0x80000000 \u200b\u8d77\u200b\u7684\u200b\u7269\u7406\u200b\u9875\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u5165\u53e3\u200b\u5728\u200b 0x100e8\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5e94\u8be5\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u5165\u53e3\u200b\u62f7\u8d1d\u200b\u81f3\u200b 0x800000e8 \u200b\u800c\u200b\u4e0d\u662f\u200b 0x80000000

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_3","title":"\u6808\u200b\u5207\u6362","text":"

                  \u200b\u5728\u200b_traps \u200b\u4e2d\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u4e00\u4e9b\u200b\u5185\u6838\u200b\u7ebf\u7a0b\u200b\u53d1\u8d77\u200b\u7684\u200b\u5f02\u5e38\u200b\u662f\u200b\u4e0d\u200b\u9700\u8981\u200b\u5207\u6362\u200b\u6808\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u901a\u8fc7\u200b\u68c0\u67e5\u200b sscratch \u200b\u4e3a\u200b 0 \u200b\u6765\u200b\u786e\u8ba4\u200b\u8fd9\u200b\u4e00\u70b9\u200b

                  \u200b\u8fd9\u4e00\u200b\u68c0\u67e5\u200b\u9700\u8981\u200b\u7528\u5230\u200b\u989d\u5916\u200b\u7684\u200b\u5bc4\u5b58\u5668\u200b\uff08\u200b\u5982\u200b t0\uff09\uff0c\u200b\u4f46\u662f\u200b\u6211\u4eec\u200b\u662f\u200b\u8981\u200b\u4fdd\u8bc1\u200b t0 \u200b\u7684\u200b\u503c\u200b\u5728\u200b\u4e2d\u65ad\u200b\u524d\u540e\u200b\u503c\u200b\u4e0d\u53d8\u200b\uff0c\u200b\u6240\u4ee5\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u7528\u200b\uff0c\u200b\u9700\u8981\u200b\u5148\u538b\u6808\u200b\uff0c\u200b\u8fd4\u56de\u200b\u4e4b\u524d\u200b\u8bb0\u5f97\u200b\u6062\u590d\u200b

                  Bug

                  \u200b\u8fd9\u91cc\u200b\u63d0\u5230\u200b\u7684\u200b\u538b\u6808\u200b\u7684\u200b\u529e\u6cd5\u200b\u5728\u200b\u6b64\u5904\u200b\u4ecd\u7136\u200b\u53ef\u884c\u200b\uff0c\u200b\u4f46\u200b\u5728\u200b Lab5 \u200b\u4e2d\u200b\u4f1a\u200b\u9047\u5230\u200b\u95ee\u9898\u200b\uff0c\u200b\u73b0\u5728\u200b\u6709\u200b\u4e00\u4e2a\u200b\u66f4\u597d\u200b\u7528\u200b\u4e5f\u200b\u66f4\u200b\u7b80\u6d01\u200b\u7684\u200b\u65b9\u6cd5\u200b

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab5 Demand Paging","text":"

                  Abstract

                  \u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b

                  \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

                  \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

                  \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
                  - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n    - setup_vm: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n    - relocate: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n    - mm_init: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n    - setup_vm_final: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n    - task_init: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n        - \u200b\u5bf9\u4e8e\u200b idle \u200b\u4ee5\u5916\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u5728\u200b task_struct \u200b\u4e2d\u200b\u6dfb\u52a0\u200b stack \u200b\u548c\u200b segment-01(1)\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4e24\u6bb5\u200b vma\n- start_kernel: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- schedule: \u200b\u6839\u636e\u200b policy \u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- switch_to: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB \u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- __switch_to: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB\n- __dummy: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b ENTRY\n- ENTRY: PC \u200b\u8df3\u8f6c\u200b\u81f3\u200b ENTRY\uff0c\u200b\u4f46\u662f\u200b\u6b64\u65f6\u200b\u8be5\u9875\u200b\u7684\u200b\u6620\u5c04\u200b\u5e76\u672a\u200b\u5b8c\u6210\u200b\uff0cPAGE FAULT\n- _traps: PAGE FAULT\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\u8fdb\u5165\u200b trap_handler\n- trap_handler: \u200b\u786e\u8ba4\u200b\u662f\u200b PAGE FAULT \u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200b do_page_fault\n- do_page_fault: \u200b\u6839\u636e\u200b current \u200b\u7684\u200b vma \u200b\u786e\u8ba4\u200b\u662f\u200b\u6bb5\u200b\u9519\u8bef\u200b\u3001\u200b\u6587\u4ef6\u200b\u9875\u200b\u7f3a\u9875\u200b\u8fd8\u662f\u200b\u533f\u540d\u200b\u9875\u200b\u7f3a\u9875\u200b\uff0c\u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\uff0c\u200b\u586b\u5199\u5185\u5bb9\u200b(2)\uff0c\u200b\u586b\u5199\u200b\u9875\u8868\u200b\uff0c\u200b\u8fd4\u56de\u200b\n- _traps: \u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b\uff0c\u200b\u6b64\u540e\u200b\u5bf9\u5e94\u200b\u9875\u200b\u5df2\u6709\u200b\u6620\u5c04\u200b\n- ENTRY: \u200b\u6062\u590d\u200b\u6267\u884c\u200b\uff0c\u200b\u6b64\u540e\u200b\u8c03\u5ea6\u200b\u6216\u8005\u200b\u9047\u5230\u200b\u65b0\u200b\u7684\u200b\u7f3a\u9875\u200b\u5747\u200b\u540c\u4e0a\u200b\u5904\u7406\u200b\n
                  1. \u200b\u4e5f\u200b\u5373\u200b readelf \u200b\u65f6\u200b\u5f97\u5230\u200b\u7684\u200b segment-01\uff0c\u200b\u5305\u62ec\u200b.text .rodata .bss
                  2. \u200b\u6e05\u96f6\u200b\u6216\u8005\u200b\u62f7\u8d1d\u200b\u6587\u4ef6\u200b\u5185\u5bb9\u200b
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/#_1","title":"\u6808\u200b\u5207\u6362\u200b\u95ee\u9898","text":"

                  \u200b\u6587\u6863\u200b\u4e2d\u200b\u6307\u51fa\u200b\uff0c\u200b\u7531\u200b\u7528\u6237\u200b\u53d1\u8d77\u200b\u7684\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5728\u200b_traps\u200b\u5f00\u5934\u200b\u5207\u6362\u200b\u5230\u200b\u5185\u6838\u200b\u6808\u200b\uff0c\u200b\u4f46\u662f\u200b\u5bf9\u4e8e\u200b\u5185\u6838\u200b\u53d1\u8d77\u200b\u7684\u200b\u4e2d\u65ad\u200b\u5c31\u200b\u4e0d\u200b\u9700\u8981\u200b\u3002\u200b\u800c\u200b\u8981\u200b\u5224\u65ad\u200b\u4e2d\u65ad\u200b\u662f\u5426\u200b\u7531\u200b\u5185\u6838\u200b\u53d1\u8d77\u200b\u5c31\u8981\u200b\u5224\u65ad\u200bsscratch\u200b\u662f\u5426\u200b\u4e3a\u200b 0\uff0c\u200b\u5728\u200b lab4 \u200b\u4e2d\u200b\u6211\u200b\u628a\u200b t0 \u200b\u538b\u6808\u200b\u540e\u200b\u7528\u200b t0 \u200b\u6765\u200b\u68c0\u9a8c\u200b\u3002

                  \u200b\u4f46\u662f\u200b\u5728\u200b lab5 \u200b\u4e2d\u200b\u8fd9\u200b\u4e00\u200b\u65b9\u6cd5\u200b\u884c\u4e0d\u901a\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5f53\u200b\u6211\u4eec\u200b\u8bd5\u56fe\u200b\u628a\u200b t0 \u200b\u538b\u6808\u200b\u7684\u200b\u65f6\u5019\u200b\u6211\u4eec\u200b\u7684\u200b\u6808\u200b\u53ef\u80fd\u200b\u6839\u672c\u5c31\u662f\u200b\u6ca1\u200b\u5206\u914d\u200b\u7684\u200b\u7528\u6237\u200b\u6808\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u538b\u6808\u200b\u7684\u200b\u884c\u4e3a\u200b\u53ea\u4f1a\u200b\u5f15\u53d1\u200b\u65b0\u200b\u7684\u200b PAGE FAULT\uff0c\u200b\u5982\u6b64\u200b\u6c38\u8fdc\u200b\u5faa\u73af\u200b\u3002

                  \u200b\u4e3a\u4e86\u200b\u5bfb\u627e\u200b\u89e3\u51b3\u200b\u65b9\u6cd5\u200b\u53ef\u4ee5\u200b\u5148\u200b\u8bd5\u56fe\u200b\u53bb\u200b\u67e5\u770b\u200b linux \u200b\u65f6\u200b\u5982\u4f55\u200b\u89e3\u51b3\u200b\u8fd9\u4e00\u200b\u95ee\u9898\u200b\u7684\u200b\uff0c\u200b\u8fd9\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4ee3\u7801\u200b

                  \u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b linux \u200b\u4f7f\u7528\u200b\u4e86\u200b tp\uff08thread pointer\uff09\u200b\u4ee5\u53ca\u200b\u6307\u4ee4\u200bcsrwr,\u200b\u524d\u8005\u200b\u5012\u200b\u4e0d\u662f\u200b\u5fc5\u8981\u200b\u7684\u200b\u4f7f\u7528\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3b\u8981\u200b\u5173\u6ce8\u200b\u5230\u200bcsrwr\u200b\u6307\u4ee4\u200b\u53ef\u4ee5\u200b\u5b9e\u73b0\u200b csr \u200b\u4e0e\u200b\u5176\u4ed6\u200b\u5bc4\u5b58\u5668\u200b\u7684\u200b\u4ea4\u6362\u200b\uff0c\u200b\u4ece\u800c\u200b\u6211\u4eec\u200b sp \u200b\u4e0e\u200bsscratch\u200b\u7684\u200b\u5207\u6362\u200b\u5c31\u200b\u4e0d\u200b\u9700\u8981\u200b\u5176\u4ed6\u200b\u5bc4\u5b58\u5668\u200b\u4e86\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u6b63\u786e\u200b\u7684\u200b\u89e3\u51b3\u200b\u65b9\u5f0f\u200b\u3002

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/#vmas","title":"vmas","text":"

                  \u200b\u5728\u200b kernel \u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u5206\u914d\u200b\u4e86\u200b\u4e00\u200b\u6574\u9875\u200b\uff0c\u200b\u5176\u4e2d\u200b\u7684\u200b\u4f4e\u200b\u5730\u5740\u200b\u653e\u200b\u4e86\u200b\u4e2a\u200b task_struct\uff0c\u200b\u9ad8\u200b\u5730\u5740\u200b\u5c31\u662f\u200b\u6808\u9876\u200b\uff08\u200b\u5982\u4e0b\u200b\u56fe\u200b\uff0c\u200b\u6765\u81ea\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff09\u3002\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u7a0d\u5fae\u200b\u9650\u5236\u200b\u4e00\u4e0b\u200b vmas \u200b\u7684\u200b\u5927\u5c0f\u200b\uff0c\u200b\u4e0d\u80fd\u200b\u628a\u200b\u5206\u914d\u200b\u7684\u200b\u4e00\u9875\u200b\u5168\u7ed9\u200b\u7528\u200b\u4e86\u200b\uff0c\u200b\u8fd8\u8981\u200b\u7559\u70b9\u200b\u7ed9\u200b\u6808\u7528\u200b\u3002

                                      \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u25c4\u2500\u2500\u2500 High Address\n                    \u2502             \u2502\n                    \u2502    stack    \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n              sp \u2500\u2500\u25ba\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n                    \u2502      \u2502      \u2502\n                    \u2502      \u25bc      \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n    4KB Page        \u2502             \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u2502 task_struct \u2502\n                    \u2502             \u2502\n                    \u2502             \u2502\n                    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u25c4\u2500\u2500\u2500 Low Address\n
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab6 fork","text":"

                  Abstract

                  \u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b

                  \u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b

                  \u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b

                  \u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a

                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
                  - opensbi \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- _start: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n    - setup_vm: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n    - relocate: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n    - mm_init: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n    - setup_vm_final: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n    - task_init: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n- start_kernel: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- schedule: \u200b\u6839\u636e\u200b policy \u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- switch_to: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB \u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- __switch_to: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB\n- __dummy: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b ENTRY\n- ENTRY: PC \u200b\u8df3\u8f6c\u200b\u81f3\u200b ENTRY\uff0c\u200b\u4f46\u662f\u200b\u6b64\u65f6\u200b\u8be5\u9875\u200b\u7684\u200b\u6620\u5c04\u200b\u5e76\u672a\u200b\u5b8c\u6210\u200b\uff0cPAGE FAULT\n- _traps: PAGE FAULT\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\u8fdb\u5165\u200b trap_handler\n- trap_handler: \u200b\u786e\u8ba4\u200b\u662f\u200b PAGE FAULT \u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200b do_page_fault\n- do_page_fault: \u200b\u6839\u636e\u200b current \u200b\u7684\u200b vma \u200b\u786e\u8ba4\u200b\u662f\u200b\u6bb5\u200b\u9519\u8bef\u200b\u3001\u200b\u6587\u4ef6\u200b\u9875\u200b\u7f3a\u9875\u200b\u8fd8\u662f\u200b\u533f\u540d\u200b\u9875\u200b\u7f3a\u9875\u200b\uff0c\u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\uff0c\u200b\u586b\u5199\u5185\u5bb9\u200b\uff0c\u200b\u586b\u5199\u200b\u9875\u8868\u200b\uff0c\u200b\u8fd4\u56de\u200b\n- _traps: \u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b\uff0c\u200b\u6b64\u540e\u200b\u5bf9\u5e94\u200b\u9875\u200b\u5df2\u6709\u200b\u6620\u5c04\u200b\n- ENTRY: \u200b\u6062\u590d\u200b\u6267\u884c\u200b\uff0c\u200b\u76f4\u5230\u200b\u8c03\u7528\u200b fork\n- _traps: \u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u8fdb\u5165\u200b trap_handler\n- trap_handler: \u200b\u786e\u8ba4\u200b\u662f\u200b fork \u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200b sys_clone\n- sys_clone: \u200b\u8fdb\u884c\u200b\u4e00\u5b9a\u200b\u7684\u200b\u62f7\u8d1d\u200b\u4ee5\u200b\u521d\u59cb\u5316\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u521d\u59cb\u5316\u200b\u5b8c\u6210\u200b\u540e\u200b\u52a0\u5165\u200b\u8c03\u5ea6\u200b\u961f\u5217\u200b\n    -  \u200b\u5c06\u7236\u200b\u8fdb\u7a0b\u200b kernel stack \u200b\u6240\u5728\u200b\u9875\u200b\u62f7\u8d1d\u200b\u4e00\u4efd\u200b\u7ed9\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5305\u62ec\u200b\n          - task_struct: \u200b\u4f4d\u4e8e\u200b\u8be5\u9875\u200b\u4f4e\u200b\u5730\u5740\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5185\u5bb9\u200b\u5728\u200b__switch_to \u200b\u5230\u200b\u81f3\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u65f6\u5019\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u9879\u200b\u9700\u8981\u200b\u6539\u52a8\u200b\n              - pid: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u65b0\u200b pid\n              - thread.sp: \u200b\u6362\u5230\u5b50\u200b\u8fdb\u7a0b\u200b\u540e\u200b\u7cfb\u7edf\u200b\u6808\u200b\u7684\u200b\u8d77\u59cb\u200b\u5730\u5740\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5207\u6362\u200b\u8fc7\u6765\u200b\u65f6\u6808\u200b\u5185\u200b\u5df2\u6709\u200b\u6570\u636e\u200b\n              - thread.ra: __switch_to \u200b\u5230\u5b50\u200b\u8fdb\u7a0b\u200b\u540e\u200b\uff0c__switch_to \u200b\u51fd\u6570\u200b\u7ed3\u675f\u200b\uff0c\u200b\u5e94\u8be5\u200b ret \u200b\u5230\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b__return_from_fork\n              - thread.sscratch: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u5728\u200b\u5185\u6838\u200b\u6001\u200b\u7684\u200b sscratch\uff0c\u200b\u5728\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u200b\u65f6\u4f1a\u200b\u4e0e\u200b sp \u200b\u4ea4\u6362\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5b9e\u8d28\u200b\u662f\u5b50\u200b\u8fdb\u7a0b\u200b\u7528\u6237\u200b\u6001\u200b\u7684\u200b sp (1)\n              - satp: \u200b\u6839\u636e\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u9875\u8868\u200b\u4fee\u6539\u200b\n              - pgd: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u9875\u8868\u200b\n          - pt_regs: \u200b\u4f4d\u4e8e\u200b\u8be5\u9875\u200b\u9ad8\u200b\u5730\u5740\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5185\u5bb9\u200b\u5728\u5b50\u200b\u8fdb\u7a0b\u200b\u4ece\u200b\u5185\u6838\u200b\u6001\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u65f6\u200b\u5c06\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u9879\u200b\u9700\u8981\u200b\u6539\u52a8\u200b\n              - a0: \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u540e\u200b\u643a\u5e26\u200b\u7684\u200b\u8c03\u7528\u200b\u8fd4\u56de\u503c\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u5f97\u5230\u200b\u7684\u200b fork \u200b\u8fd4\u56de\u503c\u200b\uff0c0\n              - sepc: fork \u200b\u5bf9\u5e94\u200b ecall \u200b\u7684\u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\n    - \u200b\u5c06\u7236\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u7528\u6237\u200b\u6001\u9875\u200b\u5185\u5bb9\u200b\u90fd\u200b\u62f7\u8d1d\u200b\u4e00\u4efd\u200b\u7ed9\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u5e76\u200b\u5728\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u9875\u8868\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\u8fd9\u4e9b\u200b\u9875\u200b\u7684\u200b\u6620\u5c04\u200b\n- _traps: \u200b\u7236\u200b\u8fdb\u7a0b\u200b fork \u200b\u5b8c\u6bd5\u200b\uff0c\u200b\u643a\u5e26\u200b\u5b50\u200b\u8fdb\u7a0b\u200b pid \u200b\u6062\u590d\u200b\u7528\u6237\u200b\u6001\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b ecall \u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\n- fork: \u200b\u56de\u5230\u200b\u7528\u6237\u200b\u6001\u200b\uff0c\u200b\u7ee7\u7eed\u6267\u884c\u200b\u7236\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u6253\u5370\u4fe1\u606f\u200b\u76f4\u5230\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u8d70\u200b\uff0c\u200b\u968f\u540e\u200b\u8c03\u5ea6\u200b\u7b97\u6cd5\u200b\u9009\u62e9\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\n- __switch_to: \u200b\u4fdd\u5b58\u200b\u7236\u200b\u8fdb\u7a0b\u200b\u4e0a\u4e0b\u6587\u200b\u81f3\u7236\u200b\u8fdb\u7a0b\u200b task_struct,\u200b\u4ece\u5b50\u200b\u8fdb\u7a0b\u200b task_struct \u200b\u4e2d\u200b\u6062\u590d\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u5185\u6838\u200b\u6001\u200b\u4e0a\u4e0b\u6587\u200b(2)\uff0cret \u200b\u8fd4\u56de\u200b\u5230\u200b__return_from_fork \u200b\u7ee7\u7eed\u6267\u884c\u200b\u7528\u6237\u200b\u6001\u200b\u4ee3\u7801\u200b\n- __return_from_fork: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u4ece\u200b pt_regs \u200b\u4e2d\u200b\u6062\u590d\u200b\u7528\u6237\u200b\u6001\u200b\u4e0a\u4e0b\u6587\u200b(3)\uff0c\u200b\u5305\u62ec\u200b\u8fd4\u56de\u503c\u200b 0\uff0c\u200b\u4ece\u200b trap \u200b\u8fd4\u56de\u200b ecall \u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\uff0c\u200b\u7ee7\u7eed\u6267\u884c\u200b\n
                  1. \u200b\u6b63\u5e38\u200b\u6765\u8bf4\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u200b\u7684\u200b sp \u200b\u5e94\u8be5\u200b\u4ece\u200b pt_regs \u200b\u4e2d\u200b\u6062\u590d\u200b\uff08\u200b\u6587\u6863\u200b\u4e2d\u200b\u4e5f\u200b\u662f\u200b\u8fd9\u4e48\u200b\u8bf4\u200b\u7684\u200b\uff09\uff0c\u200b\u4f46\u200b\u6211\u200b\u5b9e\u8df5\u200b\u4e0a\u200b\u662f\u4ece\u200b sscratch \u200b\u6062\u590d\u200b\u7684\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u5e94\u8be5\u200b\u6839\u636e\u200b\u5177\u4f53\u200b\u5b9e\u73b0\u200b\u4fee\u6539\u200b\u3002
                  2. \u200b\u6b64\u5904\u200b\u7684\u200b\u4e0a\u4e0b\u6587\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5728\u200b fork \u200b\u4e2d\u200b\u8bbe\u7f6e\u200b\u7684\u200b
                  3. \u200b\u6b64\u5904\u200b\u7684\u200b\u4e0a\u4e0b\u6587\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5728\u200b fork \u200b\u4e2d\u200b\u8bbe\u7f6e\u200b\u7684\u200b
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/#_1","title":"\u8c03\u5ea6\u200b\u7b97\u6cd5","text":"

                  \u200b\u6211\u4eec\u200b\u7684\u200b task \u200b\u6570\u7ec4\u200b\u5927\u5c0f\u200b\u662f\u200bNR_TASKS,\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u505a\u5230\u200b

                  • \u200b\u53ea\u200b\u521d\u59cb\u5316\u200b\u6307\u5b9a\u200b\u6570\u91cf\u200b\u7684\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u586b\u6ee1\u200b\u6574\u4e2a\u200b\u6570\u7ec4\u200b
                  • \u200b\u8c03\u5ea6\u200b\u7684\u200b\u65f6\u5019\u200b\u8981\u200b\u904d\u5386\u200b\u6570\u7ec4\u200b\uff0c\u200b\u4f46\u662f\u200b\u53ea\u4f1a\u200b\u8c03\u5ea6\u200b\u90a3\u4e9b\u200b\u6709\u6548\u200b\u7684\u200b task
                  "},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/#_2","title":"\u8fd4\u56de\u503c\u200b\u5f02\u5e38","text":"

                  \u200b\u5982\u679c\u200b\u5fd8\u200b\u4e86\u200b\u5c06\u5b50\u200b\u8fdb\u7a0b\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u200b\u7684\u200b\u5730\u5740\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b ecall \u200b\u4e0b\u200b\u4e00\u6761\u200b\uff0c\u200b\u53ef\u80fd\u200b\u5bfc\u81f4\u200b fork \u200b\u8fd4\u56de\u503c\u200b\u5f02\u5e38\u200b\u3002\u200b\u8bbe\u60f3\u200b\u5982\u4e0b\u200b\u60c5\u51b5\u200b\uff1a

                  • idle \u200b\u8fdb\u7a0b\u200b pid \u200b\u4e3a\u200b 0\uff0c\u200b\u7236\u200b\u8fdb\u7a0b\u200b\u4e3a\u200b 1\uff0c\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u4e3a\u200b 2
                  • \u200b\u8c03\u5ea6\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u540e\u200b sepc \u200b\u6307\u5411\u200b ecall\uff0c\u200b\u6240\u4ee5\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u540e\u200b\u7ee7\u7eed\u6267\u884c\u200b ecall
                  • \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u6267\u884c\u200b ecall \u200b\u518d\u6b21\u200b\u8fdb\u884c\u200b fork\uff0cfork \u200b\u51fa\u65b0\u200b\u7684\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u5728\u200b\u6b64\u6b21\u200b fork \u200b\u4e2d\u200b\uff0c\u200b\u7236\u200b\u8fdb\u7a0b\u200b\u4e3a\u200b 2\uff0c\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u4e3a\u200b 3
                  • 2 \u200b\u8fdb\u7a0b\u200b\u5b8c\u6210\u200b fork \u200b\u8fd4\u56de\u200b\uff0c\u200b\u6b64\u65f6\u200b\u8fd4\u56de\u200b\u7684\u200b\u662f\u200b ecall \u200b\u7684\u200b\u4e0b\u200b\u4e00\u6761\u200b\uff08\u200b\u56e0\u4e3a\u200b\u7cfb\u7edf\u200b\u8c03\u7528\u200b\u4e2d\u4f1a\u200b\u5c06\u200b sepc+4\uff09\uff0c\u200b\u8fd4\u56de\u503c\u200b\u4e3a\u200b 3

                  \u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b 2 \u200b\u8fdb\u7a0b\u200b\u56e0\u4e3a\u200b\u989d\u5916\u200b\u8fdb\u884c\u200b\u4e86\u200b\u4e00\u6b21\u200b fork \u200b\u6240\u4ee5\u200b\u8fd4\u56de\u503c\u200b\u4e0d\u518d\u200b\u662f\u200b\u5176\u200b\u4f5c\u4e3a\u200b 1 \u200b\u7684\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u62ff\u5230\u200b\u7684\u200b 0\uff0c\u200b\u800c\u662f\u200b\u4f5c\u4e3a\u200b 3 \u200b\u7684\u200b\u7236\u200b\u8fdb\u7a0b\u200b\u62ff\u5230\u200b\u7684\u200b 3\uff0c\u200b\u8fd9\u200b\u5c31\u200b\u53d1\u751f\u200b\u4e86\u200b\u9519\u8bef\u200b

                  "},{"location":"blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/","title":"Y-combinator \u200b\u4e0e\u200b\u9012\u5f52","text":"

                  Abstract

                  \u200b\u4ecb\u7ecd\u200b\u4e86\u200b lambda \u200b\u6f14\u7b97\u200b\u4e2d\u200b\u7684\u200b Y-combinator\uff0c\u200b\u4e3b\u8981\u200b\u662f\u200b\u5e0c\u671b\u200b\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\u6765\u200b\u5e2e\u52a9\u200b\u7406\u89e3\u200b

                  \u200b\u9996\u5148\u200b\u8bf7\u200b\u770b\u200b xg \u200b\u7684\u200b\u7b14\u8bb0\u200b1\uff0c\u200b\u63a8\u5bfc\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u8bb2\u200b\u7684\u200b\u5f88\u200b\u6e05\u695a\u200b\u4e86\u200b

                  \u200b\u8fd9\u91cc\u200b\u4e3b\u8981\u200b\u8ba8\u8bba\u200b\u53e6\u5916\u200b\u51e0\u4e2a\u200b\u95ee\u9898\u200b

                  "},{"location":"blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/#y-combinator_1","title":"\u4e0d\u7528\u200b Y-combinator \u200b\u53ef\u4ee5\u200b\u5417","text":"

                  \u200b\u5f53\u7136\u200b\u53ef\u4ee5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u6587\u4e2d\u200b\u7684\u200bproto proto\u200b\u672c\u6765\u200b\u5c31\u662f\u200b\u7b49\u4ef7\u200b\u4e8e\u200bY u\u200b\u7684\u200b\uff0c\u200b\u8981\u200b\u7528\u200b\u8fd9\u79cd\u200b\u65b9\u5f0f\u200b\u5b9e\u73b0\u200b\u9012\u5f52\u200b\u4e3b\u8981\u200b\u8d70\u200b\u4ee5\u4e0b\u200b\u56db\u6b65\u200b

                  1. \u200b\u5199\u51fa\u200b\u8c03\u7528\u200b\u81ea\u5df1\u200b\u7684\u200b\u90a3\u200b\u4e00\u7248\u200b\u7684\u200b lambda: \\(fact_1 = \\lambda n . is0\\ n\\ 1\\ ( *\\ n\\ (fact_1\\ (pred\\ n)))\\)
                  2. \u200b\u628a\u200b\u5bf9\u200b\u81ea\u5df1\u200b\u7684\u200b\u8c03\u7528\u200b\u6539\u6210\u200b\u5bf9\u200b\u53c2\u6570\u200b f \u200b\u7684\u200b\u8c03\u7528\u200b\uff1a\\(fact_2 = \\lambda f. \\lambda n . is0\\ n\\ 1\\ ( *\\ n\\ (f\\ (pred\\ n)))\\)
                  3. \u200b\u628a\u200b f \u200b\u6539\u5199\u200b\u6210\u200b f f: \\(fact_3 = \\lambda f. \\lambda n . is0\\ n\\ 1\\ ( *\\ n\\ (f\\ f\\ (pred\\ n)))\\)
                  4. \u200b\u5bf9\u200b\u5f97\u5230\u200b\u7684\u200b\u65b0\u200b\u7684\u200b lambda \u200b\u8868\u8fbe\u5f0f\u200b\u5e94\u7528\u200b\u81ea\u5df1\u200b\uff1a\\(fact = fact_3\\ fact_3\\)

                  \u200b\u76f4\u63a5\u200b\u770b\u200b\u8fd9\u200b\u73a9\u610f\u200b\u8fd8\u662f\u200b\u6709\u70b9\u200b\u62bd\u8c61\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\u6765\u200b\u770b\u770b\u200b\u8fd9\u4e2a\u200b\u4e1c\u897f\u200b\u6709\u200b\u54ea\u4e9b\u200b\u6027\u8d28\u200b\uff0c\u200b\u800c\u200b\u820d\u53bb\u200b\u4e2d\u95f4\u200b\u5316\u7b80\u200b\u7684\u200b\u7ec6\u8282\u200b

                  \\(fact_3\\ fact_3\\ 0 \\rightarrow 1\\)\\(fact_3\\ fact_3\\ 2 \\rightarrow *\\ 2\\ (fact_3\\ fact_3\\ 1)\\) \\[\\begin{align} &fact_3\\ fact_3\\ 0 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ f\\ (pred\\ n))))\\ fact_3\\ 0 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (fact_3\\ fact_3\\ (pred\\ n))))\\ 0 \\\\ =& is0\\ 0\\ 1\\ ( *\\ 0\\ (fact_3\\ fact_3\\ (pred\\ 0))) \\\\ =& 1 \\end{align}\\] \\[\\begin{align} &fact_3\\ fact_3 2 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ f\\ (pred\\ n))))\\ fact_3\\ 2 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (fact_3\\ fact_3\\ (pred\\ n))))\\ 2 \\\\ =& is0\\ 2\\ 1\\ ( *\\ 2\\ (fact_3\\ fact_3\\ (pred\\ 2))) \\\\ =& *\\ 2\\ (fact_3\\ fact_3\\ 1) \\\\ \\end{align}\\]

                  \u200b\u4ee5\u4e0a\u200b\uff0c\u200b\u7b2c\u4e00\u4e2a\u200b\u6027\u8d28\u200b\u662f\u200b base case\uff0c\u200b\u7b2c\u4e8c\u4e2a\u200b\u6027\u8d28\u200b\u662f\u200b indection case\uff0c\u200b\u53ef\u4ee5\u200b\u663e\u7136\u200b\u770b\u51fa\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b

                  "},{"location":"blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/#y-combinator_2","title":"Y-combinator \u200b\u7684\u200b\u5b9e\u4f8b","text":"

                  \u200b\u4e0a\u9762\u200b\u90a3\u6837\u200b\u5df2\u7ecf\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b\uff0c\u200b\u4e3a\u4ec0\u4e48\u200b\u8fd8\u200b\u9700\u8981\u200b Y-combinator? \u200b\u56e0\u4e3a\u200b\u4e0a\u9762\u200b\u7684\u200b\u5b9e\u73b0\u200b\u65b9\u6cd5\u200b\u4e2d\u200b\u9012\u5f52\u200b\u7684\u200b\u903b\u8f91\u200b\u548c\u200b\u51fd\u6570\u200b\u7684\u200b\u903b\u8f91\u200b\u6df7\u5728\u200b\u4e86\u200b\u4e00\u8d77\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u9012\u5f52\u200b\u7684\u200b\u903b\u8f91\u200b\u62bd\u8c61\u200b\u6210\u200b Y\uff0c\u200b\u628a\u200b\u51fd\u6570\u200b\u7684\u200b\u903b\u8f91\u200b\u62bd\u8c61\u200b\u6210\u200b u\uff0c\u200b\u5bf9\u200b Y \u200b\u5e94\u7528\u200b u \u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u9012\u5f52\u200b\u7684\u200b u.\u200b\u5177\u4f53\u6765\u8bf4\u200b\u53ef\u4ee5\u200b\u5206\u6210\u200b\u4ee5\u4e0b\u200b\u4e09\u6b65\u200b

                  1. \u200b\u5199\u51fa\u200b\u8c03\u7528\u200b\u81ea\u5df1\u200b\u7684\u200b\u90a3\u200b\u4e00\u7248\u200b\u7684\u200b lambda: \\(fact_1 = \\lambda n . is0\\ n\\ 1\\ ( *\\ n\\ (fact_1\\ (pred\\ n)))\\)
                  2. \u200b\u628a\u200b\u5bf9\u200b\u81ea\u5df1\u200b\u7684\u200b\u8c03\u7528\u200b\u6539\u6210\u200b\u5bf9\u200b\u53c2\u6570\u200b f \u200b\u7684\u200b\u8c03\u7528\u200b\uff1a\\(fact_2 = \\lambda f. \\lambda n . is0\\ n\\ 1\\ ( *\\ n\\ (f\\ (pred\\ n)))\\)
                  3. \u200b\u5e94\u7528\u200b\u4e8e\u200b Y-combinator: \\(fact = Y\\ fact_2\\)

                  \u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u7b80\u6d01\u200b\u4e86\u200b\u8bb8\u591a\u200b\uff0c\u200b\u4e0b\u9762\u200b\u518d\u200b\u6765\u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b Y-combinator \u200b\u672c\u8eab\u200b\uff0c\u200b\u76f4\u63a5\u200b\u770b\u200b\u4ed6\u200b\u7684\u200b\u5185\u5bb9\u200b\u7684\u8bdd\u200b\u4e5f\u200b\u662f\u200b\u4e00\u200b\u5768\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5229\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\uff0c\u200b\u4e0d\u7ba1\u200b\u4ed6\u200b\u7684\u200b\u5185\u5bb9\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u5728\u4e4e\u200b\u5316\u7b80\u200b\u7684\u200b\u7ec6\u8282\u200b\uff0c\u200b\u53ea\u200b\u770b\u200b\u51e0\u4e2a\u200b\u6027\u8d28\u200b\uff1a

                  \\(Y\\ fact_2 \\rightarrow fact_2\\ (Y\\ fact_2)\\)\\(Y\\ fact_2\\ 0 \\rightarrow 1\\)\\(Y\\ fact_2\\ 2 \\rightarrow *\\ 2\\ (Y\\ fact_2\\ 1)\\) \\[\\begin{aligned} &Y\\ fact_2 \\\\ =& (\\lambda f. fact_2\\ (f\\ f)) (\\lambda f. fact_2\\ (f\\ f)) \\\\ =& fact_2\\ ((\\lambda f. fact_2\\ (f\\ f)) (\\lambda f. fact_2\\ (f\\ f))) \\\\ =& fact_2\\ (Y\\ fact_2) \\\\ \\end{aligned}\\] \\[\\begin{aligned} &Y\\ fact_2\\ 0 \\\\ =& fact_2\\ (Y\\ fact_2)\\ 0 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ (pred\\ n))))\\ (Y\\ fact_2)\\ 0 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ ((Y\\ fact_2)\\ (pred\\ n))))\\ 0 \\\\ =& is0\\ 0\\ 1\\ ( *\\ 0\\ ((Y\\ fact_2)\\ (pred\\ 0))) \\\\ =& 1 \\end{aligned}\\] \\[\\begin{aligned} &Y\\ fact_2\\ 2 \\\\ =& fact_2\\ (Y\\ fact_2)\\ 2 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1 ( *\\ n\\ (f\\ (pred\\ n)))) (Y\\ fact_2)\\ 2 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ ((Y\\ fact_2)\\ (pred\\ n))))\\ 2 \\\\ =& is0\\ 2\\ 1\\ ( *\\ 2\\ ((Y\\ fact_2)\\ (pred\\ 2))) \\\\ =& *\\ 2\\ (Y\\ fact_2\\ 1) \\end{aligned}\\]

                  \u200b\u4ee5\u4e0a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u5176\u200b\u6027\u8d28\u200b\u6709\u200b

                  1. \u200b\u5728\u200b\u524d\u9762\u200b\u51ed\u7a7a\u200b\u591a\u200b\u5e94\u7528\u200b\u4e00\u6b21\u200b fact_2
                  2. base case
                  3. induction case

                  \u200b\u4ee5\u4e0a\u200b\u63a8\u5bfc\u200b\u7684\u200b\u6bd4\u8f83\u200b\u540a\u200b\u8be1\u200b\u7684\u200b\u5730\u65b9\u200b\u662f\u200b\u9700\u8981\u200b\u4ee5\u200b\u8fd9\u79cd\u200b\u8fd0\u7b97\u200b\u987a\u5e8f\u200b\u624d\u200b\u597d\u200b\u51fa\u200b\u7ed3\u679c\u200b2\uff0c\u200b\u867d\u7136\u200b\u6211\u4eec\u200b\u8fd9\u91cc\u200b\u5bf9\u200b\u6709\u200b\u597d\u51e0\u4e2a\u200b\u5b50\u9879\u200b\u7684\u200b\u65f6\u5019\u200b\u5148\u200b\u6f14\u7b97\u200b\u4ec0\u4e48\u200b\u5e76\u200b\u6ca1\u6709\u200b\u89c4\u5b9a\u200b

                  \u200b\u6709\u200b\u4ee5\u4e0a\u200b\u6027\u8d28\u200b\uff0c\u200b\u6beb\u65e0\u7591\u95ee\u200b\\(Y fact_2\\)\u200b\u4e5f\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b

                  1. \u200b\u8fd9\u91cc\u200b\u662f\u200b xg \u200b\u7684\u200b\u7b14\u8bb0\u200b \u21a9

                  2. \u200b\u4ee5\u4e0a\u200b\u7684\u200b\u63a8\u5bfc\u200b\u53c2\u8003\u200b\u4e86\u200b\u8fd9\u7bc7\u200b \u200b\u535a\u5ba2\u200b \u21a9

                  "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/","title":"\u5728\u200b VSCode \u200b\u4e0a\u200b\u5199\u200b Markdown","text":"

                  Abstract

                  markdown \u200b\u771f\u200b\u65b9\u4fbf\u200b\u554a\u200b\u771f\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb2\u200b\u4e86\u200b\u600e\u4e48\u200b\u5728\u200b VSCode \u200b\u4e0a\u200b\u914d\u7f6e\u200b\u4e00\u4e2a\u200b\u597d\u7528\u200b\u7684\u200b\u5199\u200b markdown \u200b\u7684\u200b\u73af\u5883\u200b

                  "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/#_1","title":"\u8d77\u6b65","text":"

                  \u200b\u9996\u5148\u200b\u542f\u7528\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u4e24\u4e2a\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5f00\u59cb\u200b\u5199\u200b markdown\uff0c\u200b\u5e76\u200b\u5728\u200b\u53f3\u4fa7\u200b\u9884\u89c8\u200b\u4e86\u200b

                  \u200b\u6548\u679c\u56fe\u200b

                  \u200b\u6ce8\u610f\u200b\u9884\u89c8\u200b\u9700\u8981\u200b\u5728\u200b\u7f16\u8f91\u5668\u200b\u53f3\u4e0a\u89d2\u200b\u70b9\u51fb\u200b\u9884\u89c8\u200b\u6309\u94ae\u200b\u5f00\u542f\u200b\u6216\u8005\u200b\u4f7f\u7528\u200b\u5feb\u6377\u952e\u200b

                  \u200b\u5982\u679c\u200b\u9700\u8981\u200b\u4fdd\u5b58\u200b\u6210\u200b PDF \u200b\u6216\u8005\u200b\u522b\u7684\u200b\u683c\u5f0f\u200b\uff0c\u200b\u5728\u200b\u9884\u89c8\u200b\u754c\u9762\u200b\u53f3\u952e\u200b\u5c31\u200b\u597d\u200b\uff0cChrome \u200b\u4e00\u680f\u200b\u7684\u200b\u4e09\u4e2a\u200b\u9009\u9879\u200b\u90fd\u200b\u662f\u200b\u4e0d\u200b\u9700\u8981\u200b\u989d\u5916\u200b\u5b89\u88c5\u200b\u7684\u200b\uff1a

                  \u200b\u6570\u5b66\u516c\u5f0f\u200b\u6e32\u67d3\u200b\u95ee\u9898\u200b

                  \u200b\u6709\u65f6\u5019\u200b\u4fdd\u5b58\u200b\u6210\u200b PDF \u200b\u65f6\u4f1a\u200b\u53d1\u73b0\u200b\u6570\u5b66\u516c\u5f0f\u200b\u6e32\u67d3\u200b\u5931\u8d25\u200b\u4e86\u200b\uff0c\u200b\u8c03\u67e5\u200b\u4e86\u200b\u4e00\u4e0b\u200b\u53d1\u73b0\u200b\u662f\u200b\u751f\u6210\u200b\u7684\u200b\u901f\u5ea6\u200b\u592a\u5feb\u200b\u4e86\u200b\u6570\u5b66\u516c\u5f0f\u200b\u6765\u4e0d\u53ca\u200b\u6e32\u67d3\u200b\uff0c\u200b\u8c03\u8282\u200b\u4ee5\u4e0b\u200b\u53c2\u6570\u200b\u53ef\u4ee5\u200b\u89e3\u51b3\u95ee\u9898\u200b\uff1a

                  "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/#_2","title":"\u5feb\u6377\u200b\u5730\u200b\u63d2\u5165\u200b\u56fe\u7247","text":"

                  \u200b\u5c31\u200b\u6700\u200b\u539f\u6559\u65e8\u4e3b\u4e49\u200b\u7684\u200b\u63d2\u5165\u65b9\u5f0f\u200b\u800c\u8a00\u200b\uff0c\u200b\u9700\u8981\u200b\u628a\u200b\u56fe\u7247\u200b\u4fdd\u5b58\u200b\u5230\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u5939\u200b\uff0c\u200b\u8d77\u597d\u200b\u540d\u5b57\u200b\uff0c\u200b\u518d\u200b\u5229\u7528\u200b![](url)\u200b\u683c\u5f0f\u200b\u63d2\u5165\u200b\uff0c\u200b\u6b65\u9aa4\u200b\u76f8\u5f53\u200b\u7e41\u7410\u200b\uff0c\u200b\u8ddf\u200b Word \u200b\u7684\u200b\u56fe\u7247\u200b\u63d2\u5165\u200b\u5b8c\u5168\u200b\u662f\u200b\u4e24\u4e2a\u200b\u91cf\u7ea7\u200b\u7684\u200b\u5de5\u4f5c\u91cf\u200b\u3002

                  \u200b\u63a8\u8350\u200b\u4f7f\u7528\u200bPaste Image\u200b\u63d2\u4ef6\u200b\uff1a

                  \u200b\u4fee\u6539\u200b\u5982\u4e0b\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff1a \u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u56fe\u7247\u200b\u63d2\u5165\u200b\u5230\u200b\u5f53\u524d\u200b md \u200b\u6587\u4ef6\u200b\u4e0b\u200b\u7684\u200b images/mdfilename/time.png \u200b\u4f4d\u7f6e\u200b\u3002

                  \u200b\u7528\u200b\u7cfb\u7edf\u200b\u81ea\u5e26\u200b\u7684\u200b\u622a\u5c4f\u200b\u5de5\u5177\u200b\u622a\u5c4f\u200b\u5230\u200b\u7c98\u8d34\u677f\u200b\u540e\u200b Command+Option+v \u200b\u5373\u53ef\u200b\u5b58\u5165\u200b\u6587\u4ef6\u5939\u200b\u5e76\u200b\u81ea\u52a8\u200b\u5f15\u7528\u200b\u6b63\u786e\u200b\u7684\u200b\u8def\u5f84\u200b\u3002

                  \u200b\u8bbe\u7f6e\u200b\u9ed8\u8ba4\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b

                  \u200b\u672c\u4eba\u200b\u4f7f\u7528\u200b mkdocs for material \u200b\u642d\u5efa\u200b\u6b64\u200b\u7f51\u9875\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7ed9\u200b\u6b64\u200b\u63d2\u4ef6\u200b\u6dfb\u52a0\u200b\u7684\u200b\u56fe\u7247\u200b\u6dfb\u52a0\u200b\u7edf\u4e00\u200b\u6837\u5f0f\u200b\uff1a

                  • \u200b\u8bbe\u7f6e\u200b css\uff1a\u200b\u6bd4\u5982\u200b\u9634\u5f71\u200b\u5706\u89d2\u200b\u7b49\u200b \u200b\u6211\u200b\u6b63\u5728\u200b\u4f7f\u7528\u200b\u7684\u200b
                    img[src*=\"pic\"] {\n    box-shadow: 2px 2px 10px #666;\n    border-radius: 4px;\n    width: 98%;\n    display: block;\n    margin: 10px auto;\n}\n
                  • \u200b\u5728\u200b mkdocs.yml \u200b\u6dfb\u52a0\u200b css \u200b\u4f5c\u4e3a\u200b\u989d\u5916\u200b css\uff1a
                    extra_css:\n- css/extra.css\n
                  • \u200b\u8bbe\u7f6e\u200b Paste Imgae \u200b\u81ea\u52a8\u200b\u6dfb\u52a0\u200b\u540e\u7f00\u200b\uff1a
                    \"pasteImage.suffix\": \"#pic\"\n
                  • \u200b\u53ef\u4ee5\u200b\u6dfb\u52a0\u200b\u591a\u4e2a\u200b\u6837\u5f0f\u200b\uff0c\u200b\u5e76\u200b\u6539\u53d8\u200b#\u200b\u540e\u200b\u7684\u200b\u540d\u79f0\u200b\u6765\u200b\u5207\u6362\u200b
                  "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%AD%E4%BD%BF%E7%94%A8-conda-%E7%9A%84%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E9%97%AE%E9%A2%98/","title":"\u5728\u200b VSCode \u200b\u4e2d\u200b\u4f7f\u7528\u200b conda \u200b\u7684\u200b\u865a\u62df\u73af\u5883\u200b\u95ee\u9898","text":"

                  Abstract

                  \u200b\u7528\u200b conda \u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u7684\u200b\u4e00\u4e2a\u200b\u795e\u79d8\u200b\u95ee\u9898\u200b \ud83e\udd14

                  "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%AD%E4%BD%BF%E7%94%A8-conda-%E7%9A%84%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E9%97%AE%E9%A2%98/#_1","title":"\u65b0\u200b\u65b9\u6cd5","text":"

                  \u200b\u4e0b\u9762\u200b\u7684\u200b\u65e7\u200b\u65b9\u6cd5\u200b\u662f\u200b\u597d\u4e45\u200b\u4ee5\u524d\u200b\u4e0d\u200b\u77e5\u9053\u200b\u4ece\u200b\u54ea\u4e2a\u200b\u7284\u89d2\u200b\u65ee\u65ef\u200b\u91cc\u200b\u627e\u200b\u51fa\u6765\u200b\u7684\u200b\uff0c\u200b\u6211\u200b\u4f7f\u7528\u200b\u5230\u200b\u76ee\u524d\u200b\u4e5f\u200b\u6ca1\u6709\u200b\u95ee\u9898\u200b\u3002

                  \u200b\u4f46\u200b\u6700\u8fd1\u200b\u770b\u5230\u200b \u200b\u5efa\u8bae\u200b\uff0c\u200b\u8bd5\u7740\u200b\u6362\u200b\u4e86\u200b\u5176\u4e2d\u200b\u5efa\u8bae\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u53d1\u73b0\u200b\u4e5f\u200b\u662f\u200b\u53ef\u884c\u200b\u7684\u200b\u3002

                  \u200b\u8bf7\u200b\u5728\u200b setting.json \u200b\u4e2d\u200b\u52a0\u5165\u200b
                    \"terminal.integrated.inheritEnv\": false,\n
                  "},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%AD%E4%BD%BF%E7%94%A8-conda-%E7%9A%84%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E9%97%AE%E9%A2%98/#_2","title":"\u65e7\u200b\u65b9\u6cd5","text":"

                  \u200b\u6700\u8fd1\u200b\u5f00\u59cb\u200b\u4f7f\u7528\u200b conda\uff0c\u200b\u8bd5\u56fe\u200b\u5728\u200b VSCode \u200b\u7ec8\u7aef\u200b\u91cc\u200b\u5207\u6362\u200b\u865a\u62df\u73af\u5883\u200b\uff0c\u200b\u547d\u4ee4\u884c\u200b\u63d0\u793a\u200b\u5df2\u7ecf\u200b\u5207\u6362\u200b\uff0c\u200b\u4f46\u662f\u200b python \u200b\u73af\u5883\u200b\u5b9e\u9645\u4e0a\u200b\u6ca1\u6709\u200b\u53d8\u200b\u3002 \u200b\u89e3\u51b3\u65b9\u6848\u200b\u5982\u4e0b\u200b\uff1a

                  1. \u200b\u5feb\u6377\u952e\u200bcommand shift p\uff0c\u200b\u641c\u7d22\u200b settings\uff0c\u200b\u6253\u5f00\u200b user settings json
                  2. \u200b\u52a0\u5165\u200b\u5982\u4e0b\u200b\u5185\u5bb9\u200b\uff1a
                      \"terminal.integrated.env.osx\": {\n      \"PATH\": \"\"\n  }\uff0c\n
                  1. \u200b\u91cd\u542f\u200b VSCode \u200b\u5373\u53ef\u200b
                  "},{"location":"blog/vscode-snippet/","title":"VSCode Snippet","text":"

                  Abstract

                  \u200b\u5728\u200b VSCode \u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u81ea\u5b9a\u4e49\u200b Snippet\uff0c\u200b\u8fd9\u200b\u53ef\u4ee5\u200b\u6781\u5927\u5730\u63d0\u9ad8\u200b\u6211\u4eec\u200b\u5728\u200b\u8f93\u5165\u200b\u67d0\u79cd\u200b\u91cd\u590d\u200b\u7684\u200b\u4ee3\u7801\u200b\u65f6\u200b\u7684\u200b\u6548\u7387\u200b

                  "},{"location":"blog/vscode-snippet/#snippet","title":"Snippet \u200b\u7b80\u4ecb","text":"

                  \u200b\u5176\u5b9e\u200b Snippet \u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5728\u200b\u81ea\u52a8\u200b\u8865\u5168\u200b\u4e2d\u200b\u7ecf\u5e38\u200b\u770b\u89c1\u200b\u7684\u200b\u9009\u9879\u200b\u4e4b\u4e00\u200b\uff0c\u200b\u4e00\u822c\u200b Snippet \u200b\u4f1a\u200b\u81ea\u52a8\u200b\u8865\u5145\u200b\u51fa\u200b\u4e00\u79cd\u200b\u6846\u67b6\u200b\uff0c\u200b\u81ea\u52a8\u200b\u586b\u5145\u200b\u5176\u4e2d\u200b\u4e00\u4e9b\u200b\u4fe1\u606f\u200b(1)\uff0c\u200b\u7136\u540e\u200b\u518d\u200b\u628a\u200b\u6211\u4eec\u200b\u7684\u200b\u5149\u6807\u200b\u4f9d\u6b21\u200b\u79fb\u52a8\u200b\u5230\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u8fdb\u884c\u200b\u8f93\u5165\u200b\u3002

                  1. \u200b\u6bd4\u5982\u8bf4\u200b\u65e5\u671f\u200b\uff0c\u200b\u5f53\u524d\u200b\u6587\u4ef6\u540d\u200b\uff0c\u200b\u6216\u8005\u200b\u526a\u8d34\u677f\u200b\u5185\u5bb9\u200b\u7b49\u200b

                  \u200b\u4f46\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5bf9\u200b\u6307\u5b9a\u200b\u7684\u200b\u8bed\u8a00\u200b\u8bbe\u7f6e\u200b\u6211\u4eec\u200b\u81ea\u5df1\u200b\u7684\u200b Snippet\uff0c\u200b\u8fd9\u6837\u200b\u4ee5\u540e\u200b\u6211\u4eec\u200b\u5728\u200b\u8f93\u5165\u200b\u7684\u200b\u65f6\u5019\u200b\u81ea\u52a8\u200b\u8865\u5168\u200b\u4e2d\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6211\u4eec\u200b\u81ea\u5df1\u200b\u7684\u200b Snippet \u200b\u4e86\u200b\u3002

                  \u200b\u5177\u4f53\u200b\u7684\u200b\u8bed\u6cd5\u200b\u548c\u200b\u4ecb\u7ecd\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b \u200b\u5b98\u65b9\u200b\u6587\u6863\u200b

                  "},{"location":"blog/vscode-snippet/#markdown","title":"Markdown \u200b\u4e2d\u200b\u7684\u200b\u81ea\u52a8\u200b\u8865\u5168\u200b\u95ee\u9898","text":"

                  \u200b\u4f60\u200b\u6216\u8bb8\u200b\u6ce8\u610f\u200b\u5230\u200b\u4e86\u200b markdown \u200b\u4e2d\u200b\u8f93\u5165\u200b\u6587\u672c\u200b\u5e76\u200b\u4e0d\u4f1a\u200b\u89e6\u53d1\u200b\u81ea\u52a8\u200b\u8865\u5168\u200b(1)\uff0c\u200b\u8fd9\u4e00\u200b\u73b0\u8c61\u200b\u5728\u200b\u8fd9\u4e2a\u200b \u200b\u95ee\u9898\u200b \u200b\u4e2d\u200b\u5df2\u6709\u200b\u8ba8\u8bba\u200b

                  1. \u200b\u53c8\u200b\u6216\u8005\u200b\u5176\u5b9e\u200b\u4f60\u200b\u6ca1\u200b\u6ce8\u610f\u200b\u5230\u200b\uff08\u200b\u4e50\u200b\uff09

                  \u200b\u89e3\u51b3\u200b\u65b9\u6cd5\u200b\u6b63\u5982\u200b\u56de\u7b54\u200b\u4e2d\u200b\u6240\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u624b\u52a8\u200b\u4e3a\u200b markdown \u200b\u5f00\u542f\u200b\u81ea\u52a8\u200b\u8865\u5168\u200b\uff1b

                  settings.json
                    \"[markdown]\": {\n    \"editor.quickSuggestions\": {\n      \"other\": true,\n      \"comments\": false,\n      \"strings\": true\n    },\n  }\n

                  \u200b\u8fd9\u200b\u6837\u5b50\u200b Snippet \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u6b63\u5e38\u200b\u4f7f\u7528\u200b\u4e86\u200b\u3002

                  "},{"location":"blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E4%BC%98%E5%8C%96%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88/","title":"\u7528\u200b Vim \u200b\u6279\u91cf\u200b\u4f18\u5316\u200b\u4e2d\u6587\u200b\u6392\u7248","text":"

                  Abstract

                  \u200b\u4f17\u6240\u5468\u77e5\u200b\u4e2d\u82f1\u6587\u200b\u6df7\u6742\u200b\u7684\u200b\u6392\u7248\u200b\u5176\u5b9e\u200b\u662f\u200b\u6709\u200b\u8bb2\u7a76\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b\u5b9e\u9645\u64cd\u4f5c\u200b\u8d77\u6765\u200b\u8f93\u5165\u6cd5\u200b\u5207\u6765\u5207\u200b\u53bb\u200b\u9ebb\u70e6\u200b\u5f97\u200b\u5f88\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb2\u200b\u7684\u200b\u662f\u200b\u7528\u200b vim \u200b\u7684\u200b Pangu \u200b\u63d2\u4ef6\u200b\u6765\u200b\u6279\u91cf\u200b\u81ea\u52a8\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u65b9\u6cd5\u200b

                  "},{"location":"blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E4%BC%98%E5%8C%96%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88/#vim-pangu","title":"\u5b89\u88c5\u200b Vim \u200b\u5de5\u5177\u200b Pangu","text":"

                  \u200b\u9996\u5148\u200b\u5b89\u88c5\u200b vim-plug\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u53ef\u4ee5\u200b\u5e2e\u52a9\u200b\u6211\u4eec\u200b\u65b9\u4fbf\u200b\u7684\u200b\u5b89\u88c5\u200b vim \u200b\u63d2\u4ef6\u200b\u7684\u200b\u63d2\u4ef6\u200b

                  \u200b\u968f\u540e\u200b\u5b89\u88c5\u200b Pangu \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5728\u200b ~/.vimrc \u200b\u4e2d\u200b\u6dfb\u52a0\u200b

                  Plug 'hotoo/pangu.vim'\uff0c { 'for': ['markdown'\uff0c 'vimwiki'\uff0c 'text'] }\nlet g:pangu_rule_date = 1\n

                  \u200b\u968f\u540e\u200b\u5728\u200b vim \u200b\u4e2d\u200b\u6267\u884c\u200b:PlugInstall\u200b\u5373\u53ef\u200b\u5b89\u88c5\u200b

                  Pangu \u200b\u7684\u200b \u200b\u5b98\u65b9\u200b\u9996\u9875\u200b \u200b\u4e0a\u200b\u5df2\u7ecf\u200b\u6709\u200b\u6bd4\u8f83\u200b\u8be6\u7ec6\u200b\u7684\u200b\u8bf4\u660e\u200b\u4e86\u200b\uff0c\u200b\u60f3\u8981\u200b\u542f\u7528\u200b\u5176\u4e2d\u200b\u7684\u200b\u529f\u80fd\u200b\u7167\u7740\u200b\u505a\u200b\u5c31\u662f\u200b\u4e86\u200b

                  "},{"location":"blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E4%BC%98%E5%8C%96%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88/#pangu","title":"\u6279\u91cf\u200b\u4f7f\u7528\u200b Pangu \u200b\u683c\u5f0f\u5316","text":"

                  \u200b\u9996\u5148\u200b\u7528\u200b vim \u200b\u6279\u91cf\u200b\u6253\u5f00\u200b\u60f3\u8981\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u4e00\u822c\u6765\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u662f\u200b\u6587\u4ef6\u5939\u200b\u4e0b\u200b\u7684\u200b\u6240\u6709\u200b markdown \u200b\u6587\u4ef6\u200b

                  vim **/*.md\n

                  \u200b\u90a3\u4e48\u200b\u6240\u6709\u200b\u7b26\u5408\u200b\u683c\u5f0f\u200b\u7684\u200b\u6587\u4ef6\u200b\u90fd\u200b\u88ab\u200b\u6253\u5f00\u200b\u5728\u200b\u7f13\u5b58\u200b(buffer)\u200b\u4e2d\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b:ls\u200b\u6765\u200b\u67e5\u770b\u200b\uff0c\u200b\u7528\u200b:n\u200b\u6765\u200b\u5207\u6362\u200b

                  \u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b vim \u200b\u7684\u200b\u7f13\u5b58\u200b\u548c\u200b\u6587\u4ef6\u200b\u7684\u200b\u5173\u7cfb\u200b\u7406\u89e3\u200b\u6210\u200b\u5185\u5b58\u200b\u548c\u200b\u78c1\u76d8\u200b\u7684\u200b\u5173\u7cfb\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b\u7f13\u5b58\u200b\u4e2d\u200b\u53ef\u4ee5\u200b\u4fee\u6539\u200b\u6587\u4ef6\u200b\uff0c\u200b\u4f46\u200b\u76f4\u5230\u200bupdate\u200b\u6216\u200bw\u200b\u4e4b\u524d\u200b\u90fd\u200b\u4e0d\u4f1a\u200b\u5199\u5165\u200b\u78c1\u76d8\u200b

                  \u200b\u8981\u200b\u6279\u91cf\u200b\u5904\u7406\u200b\uff0c\u200b\u4f7f\u7528\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b

                  :bufdo PanguAll\n:bufdo update\n:q\n

                  \u200b\u5176\u4e2d\u200b\u7684\u200b bufdo \u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u5bf9\u200b\u6240\u6709\u200b\u7f13\u5b58\u200b\u4e2d\u200b\u7684\u200b\u6587\u4ef6\u200b\u6267\u884c\u547d\u4ee4\u200b

                  \u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u8fd9\u200b\u4e00\u200b\u903b\u8f91\u200b\u5199\u5165\u200b bash \u200b\u811a\u672c\u200b\u4e2d\u200b\uff0c\u200b\u4e0b\u9762\u200b\u662f\u200b\u4e00\u4e2a\u200b\u793a\u4f8b\u200b\uff1a

                  vim **/*.md -c ':silent! bufdo execute  \"PanguAll\" | update' -c ':q'\n
                  \u200b\u5176\u4e2d\u200b\u7684\u200b silent!\u200b\u53ef\u4ee5\u200b\u8ba9\u200b vim \u200b\u5728\u200b\u6267\u884c\u547d\u4ee4\u200b\u65f6\u200b\u4e0d\u200b\u8f93\u51fa\u200b\u4efb\u4f55\u200b\u4fe1\u606f\u200b\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u4e0d\u7528\u200b\u6309\u200b more \u200b\u4e86\u200b

                  \u200b\u4e4b\u6240\u4ee5\u200b\u7528\u200b execute \u200b\u800c\u200b\u4e0d\u200b\u76f4\u63a5\u200b PanguAll \u200b\u662f\u56e0\u4e3a\u200b\u597d\u50cf\u200b\u540e\u8005\u200b\u4f1a\u200b\u5bfc\u81f4\u200b bufdo \u200b\u4e0d\u200b\u6267\u884c\u200b\u540e\u7eed\u200b\u7684\u200b update\uff0c\u200b\u5177\u4f53\u200b\u4e3a\u5565\u200b\u6211\u200b\u8fd8\u200b\u83dc\u83dc\u200b\u770b\u4e0d\u51fa\u6765\u200b

                  \u200b\u6700\u540e\u200b\u7684\u200b\u9000\u51fa\u200b\u653e\u5728\u200b\u53e6\u200b\u4e00\u4e2a\u200b-c \u200b\u53ef\u4ee5\u200b\u4fdd\u8bc1\u200b\u662f\u200b\u5728\u200b\u524d\u8005\u200b\u6267\u884c\u200b\u5b8c\u200b\u4e86\u200b\u624d\u200b\u9000\u51fa\u200b\u800c\u200b\u4e0d\u662f\u200b\u6bcf\u5199\u200b\u4e00\u4e2a\u200b\u6587\u4ef6\u200b\u5c31\u8bd5\u200b\u7740\u200b\u9000\u51fa\u200b\u4e00\u6b21\u200b

                  \u200b\u5982\u679c\u200b\u4f60\u200b\u8fd8\u6709\u200b\u5176\u4ed6\u200b\u7684\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u9700\u6c42\u200b\u53ef\u4ee5\u200b\u7ee7\u7eed\u200b\u6dfb\u52a0\u200b\u6307\u4ee4\u200b\uff0c\u200b\u4e0d\u51fa\u610f\u5916\u200b\u7684\u8bdd\u200b\u4e0a\u9762\u200b\u7684\u200b\u811a\u672c\u200b\u662f\u200b\u80fd\u591f\u200b\u76f4\u63a5\u200b\u8dd1\u200b\u7684\u200b

                  "},{"location":"blog/arch-linux-day1/","title":"Arch Linux Day1","text":"

                  Abstract

                  \u200b\u5f00\u59cb\u200b\u6298\u817e\u200b Arch Linux \u200b\u7684\u200b\u7b2c\u4e00\u5929\u200b\uff01

                  "},{"location":"blog/arch-linux-day1/#_1","title":"\u5f15\u8a00","text":"

                  \u200b\u4e3a\u4ec0\u4e48\u200b\u7a81\u7136\u200b\u5f00\u59cb\u200b\u60f3\u8981\u200b\u6298\u817e\u200b Linux \u200b\u4e86\u200b\uff1f\u200b\u5176\u5b9e\u200b\u6709\u200b\u591a\u65b9\u9762\u200b\u7684\u200b\u539f\u56e0\u200b\uff1a

                  • \u200b\u7b2c\u4e00\u4e2a\u200b\u539f\u56e0\u200b\u5c31\u662f\u200b\u4e00\u76f4\u200b\u7f3a\u5c11\u200b\u4e00\u4e2a\u200b\u7eed\u822a\u200b\u957f\u200b\u7684\u200b\u8f7b\u8584\u200b\u7b14\u8bb0\u672c\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e00\u76f4\u200b\u6ca1\u6709\u200b\u5b9e\u73b0\u200b\uff0c\u200b\u5927\u5b66\u200b\u5f00\u59cb\u200b\u7684\u200b\u65f6\u5019\u200b\u4e70\u200b\u7684\u200b\u662f\u200b\u4e00\u4e2a\u200b 2.1kg \u200b\u7684\u200b\u6e38\u620f\u200b\u672c\u200b\uff0c\u200b\u7eed\u822a\u200b 2h \u200b\u4e0d\u5230\u200b\u3002\u200b\u81f3\u4eca\u200b\u90fd\u200b\u8fd8\u200b\u8bb0\u5f97\u200b\u5927\u4e00\u200b\u8d39\u52b2\u200b\u7684\u200b\u80cc\u7740\u200b\u7535\u8111\u200b\u53bb\u200b\u4e0a\u200b\u7a0b\u7b97\u200b\u7ed3\u679c\u200b\u8fd8\u200b\u6ca1\u200b\u4e0b\u8bfe\u200b\u5c31\u200b\u5173\u673a\u200b\u4e86\u200b\ud83d\ude07\u3002

                    \u200b\u540e\u6765\u200b\u6211\u7238\u200b\u7a81\u7136\u200b\u7ed9\u200b\u6211\u200b\u4e70\u200b\u4e86\u200b\u53f0\u200b macbook pro 16 \u200b\u82f1\u5bf8\u200b\uff0c\u200b\u91cd\u91cf\u200b\u51cf\u8f7b\u200b\u4e86\u200b\u8db3\u8db3\u200b 0.1kg\uff0c\u200b\u5e76\u4e14\u200b intel \u200b\u82af\u7247\u200b\u7684\u200b macbook \u200b\u561b\u200b\uff0c\u200b\u7eed\u822a\u200b\u4e5f\u200b\u5f88\u96be\u8bf4\u200b\u8fbe\u5230\u200b\u4e86\u200b\u4ee4\u4eba\u6ee1\u610f\u200b\u7684\u200b\u6c34\u5e73\u200b\uff083-4h \u200b\u5427\u200b\uff09\u3002

                    \u200b\u6240\u4ee5\u200b\u4e3a\u4e86\u200b\u6ee1\u8db3\u200b\u8fd9\u65b9\u9762\u200b\u7684\u200b\u9700\u6c42\u200b\uff0c\u200b\u5c31\u200b\u4e00\u76f4\u200b\u5728\u200b\u89c2\u5bdf\u200b\u7740\u200b\u65b0\u51fa\u200b\u7684\u200b\u7b14\u8bb0\u672c\u200b\uff0c\u200b\u5e76\u4e14\u200b\u7531\u4e8e\u200b\u7eed\u822a\u200b\u7684\u200b\u539f\u56e0\u200b\u5927\u90e8\u5206\u200b\u65f6\u5019\u200b\u90fd\u200b\u5728\u200b\u76ef\u200b\u7740\u200b macbook\uff0c\u200b\u56e0\u4e3a\u200b\u5176\u4ed6\u200b\u9635\u8425\u200b\u7684\u200b\u7eed\u822a\u200b\u8fd8\u200b\u771f\u200b\u5c31\u200b\u6ca1\u200b\u4e00\u4e2a\u200b\u80fd\u200b\u6253\u200b\u7684\u200b\u3002

                    \u200b\u4f46\u524d\u200b\u4e00\u6bb5\u65f6\u95f4\u200b\u65b0\u200b\u53d1\u5e03\u200b\u7684\u200b m3 mbp \u200b\u4ea7\u54c1\u7ebf\u200b\u5b9e\u5728\u200b\u662f\u200b\u5200\u6cd5\u200b\u592a\u200b\u6076\u5fc3\u200b\u4eba\u200b\u4e86\u200b\uff0c\u200b\u75af\u72c2\u200b\u9609\u5272\u200b\uff0c\u200b\u5c31\u662f\u200b\u8981\u200b\u8ba9\u200b\u4eba\u200b\u8bf4\u200b\u7740\u200b\u867d\u7136\u200b\u8fd9\u8fb9\u200b\u9609\u200b\u4e00\u70b9\u200b\u90a3\u8fb9\u200b\u9609\u200b\u4e00\u70b9\u200b\u95ee\u9898\u200b\u4e5f\u200b\u4e0d\u200b\u5927\u200b\u5566\u200b\u7136\u540e\u200b\u4e3a\u4e86\u200b\u65b0\u200b\u82af\u7247\u200b\u53bb\u200b\u8d2d\u4e70\u200b\u5b83\u200b\uff0c\u200b\u597d\u50cf\u200b\u975e\u8981\u200b\u5230\u200b m3max \u200b\u624d\u80fd\u200b\u611f\u89c9\u200b\u6ca1\u200b\u88ab\u200b\u6076\u5fc3\u200b\u5230\u200b\uff0c\u200b\u4f46\u200b\u90a3\u200b\u6027\u80fd\u200b\u5c31\u200b\u6ea2\u51fa\u200b\u592a\u591a\u200b\u4e86\u200b\u3002\u200b\u800c\u200b mbp m1pro \u200b\u7b97\u662f\u200b\u8ddf\u200b\u65b9\u9762\u200b\u90fd\u200b\u6ca1\u6709\u200b\u9609\u5272\u200b\u7684\u200b\u4e00\u7248\u200b\u4f46\u200b\u53c8\u200b\u4f1a\u200b\u611f\u89c9\u200b\u82af\u7247\u200b\u7565\u200b\u6709\u70b9\u200b\u65e7\u200b\u4e86\u200b\u3002

                    \u200b\u4e00\u770b\u200b PC \u200b\u9635\u8425\u200b\uff0c\u200b\u673a\u68b0\u200b\u9769\u547d\u200b\u7684\u200b\u65e0\u754c\u200b 14pro \u200b\u9996\u53d1\u200b 3999 \u200b\u5b9e\u5728\u200b\u662f\u200b\u9999\u200b\uff0c\u200b\u73b0\u5728\u200b\u7684\u8bdd\u200b\u65e0\u200b\u754c\u200b 13+\u200b\u642d\u8f7d\u200b AMD R7-7840HS \u200b\u53ea\u8981\u200b 2599\uff0c\u200b\u642d\u8f7d\u200b 2.8K \u200b\u5c4f\u200b 120HZ\uff08\u200b\u867d\u7136\u200b\u89c2\u611f\u200b\u4e00\u822c\u200b\uff09\u200b\u4f46\u200b\u90fd\u200b\u8fd9\u200b\u4ef7\u4f4d\u200b\u4e86\u200b\u8fd8\u8981\u200b\u4ec0\u4e48\u200b\u81ea\u884c\u8f66\u200b\u3002\u200b\u76f8\u6bd4\u4e4b\u4e0b\u200b 10000 \u200b\u7684\u200b mbp m1pro \u200b\u5c31\u200b\u663e\u5f97\u200b\u6709\u70b9\u200b\u51a4\u79cd\u200b\u4e86\u200b\u3002

                    \u200b\u4e0d\u8fc7\u200b\u4e00\u5927\u200b\u95ee\u9898\u200b\u662f\u200b\uff0c\u200b\u7528\u200b\u4e86\u200b\u8fd9\u4e48\u4e45\u200b MacOS \u200b\u5b9e\u5728\u200b\u662f\u200b\u89c9\u5f97\u200b windows \u200b\u7684\u200b\u7cfb\u7edf\u200b\u6ca1\u6709\u200b\u8fbe\u5230\u200b\u53ef\u7528\u200b\u7684\u200b\u6c34\u5e73\u200b\ud83d\ude07\uff0c\u200b\u7eed\u822a\u200b\u4e5f\u200b\u4e0d\u884c\u200b\uff0c\u200b\u9664\u4e86\u200b\u6253\u6e38\u620f\u200b\u975e\u5e38\u200b\u65b9\u4fbf\u200b\u5f88\u96be\u8bf4\u200b\u6709\u200b\u522b\u7684\u200b\u4f18\u70b9\u200b\u3002

                    \u200b\u90a3\u4e48\u200b\u600e\u529e\u200b\u5462\u200b\uff0c\u200b\u5f53\u7136\u200b\u662f\u200b\u4e70\u200b\u4e00\u53f0\u200b\u4fbf\u5b9c\u200b\u5f3a\u52b2\u200b\uff08\u200b\u5982\u65e0\u754c\u200b 14+\uff09\u200b\u7684\u200b\u7535\u8111\u200b\u540c\u65f6\u200b\u914d\u7f6e\u200b\u4e00\u4e2a\u200b\u6bd4\u8f83\u200b\u597d\u7528\u200b\u7684\u200b\u7cfb\u7edf\u200b\u5566\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5c31\u8981\u200b\u5f00\u59cb\u200b\u6298\u817e\u200b Linux

                  • \u200b\u7b2c\u4e8c\u4e2a\u200b\u539f\u56e0\u200b\u5c31\u662f\u200b\u6700\u8fd1\u200b\u5728\u200b\u5907\u6218\u200b\u6258\u798f\u200b\u4f46\u662f\u200b\u653e\u5bd2\u5047\u200b\u4e86\u200b\u53c8\u200b\u60f3\u200b\u6478\u9c7c\u200b\uff0c\u200b\u7136\u540e\u200b\u5c31\u200b\u5728\u200b\u6cb9\u7ba1\u200b\u4e0a\u200b\u770b\u200b\u4e86\u200b\u4e0d\u5c11\u200b\u82f1\u6587\u200b\u89c6\u9891\u200b\u3002\u200b\u5f53\u65f6\u200b\u5c31\u200b\u6ce8\u610f\u200b\u5230\u200b\u4e86\u200b\u975e\u5e38\u200b\u6d41\u7545\u200b\u7684\u200b hyperland\uff08tiling window manager\uff09\uff0c\u200b\u7136\u540e\u200b\u6e10\u6e10\u200b\u7684\u200b\u5c31\u200b\u5bf9\u200b\u8fd9\u65b9\u9762\u200b\u611f\u5174\u8da3\u200b\u4e86\u200b\u3002

                  • \u200b\u6700\u540e\u200b\u4e00\u4e2a\u200b\u539f\u56e0\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u6211\u200b\u672c\u8eab\u200b\u5c31\u200b\u633a\u200b\u559c\u6b22\u200b\u8fd9\u79cd\u200b customizable \u200b\u7684\u200b\u4e1c\u897f\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6298\u817e\u200b\u8d77\u6765\u200b\u4e5f\u200b\u611f\u89c9\u200b\u4e0d\u9519\u200b\u3002
                  • \u200b\u8fd9\u200b\u5b66\u671f\u200b\u521a\u597d\u200b\u5b66\u5b8c\u200b\u4e86\u200b OS
                  "},{"location":"blog/arch-linux-day1/#arch-linux","title":"\u4e3a\u4ec0\u4e48\u200b\u662f\u200b Arch Linux","text":"
                  • \u200b\u9996\u5148\u200b\u611f\u89c9\u200b\u5f88\u9177\u200b\uff0c\u200b\u5e76\u4e14\u200b\u53ef\u4ee5\u200b\u5728\u200b\u73a9\u200b\u7cfb\u7edf\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u5b66\u200b\u70b9\u200b\u4e1c\u897f\u200b
                  • \u200b\u7136\u540e\u200b\u60f3\u8981\u200b\u4f7f\u7528\u200b hyperland \u200b\u7684\u8bdd\u200b\u662f\u200b\u9700\u8981\u200b\u4e00\u4e9b\u200b\u6700\u65b0\u200b\u7684\u200b\u8f6f\u4ef6\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u53ea\u200b\u5bf9\u200b Arch Linux\uff0c NixOS \u200b\u4e00\u7c7b\u200b\u7684\u200b\u7cfb\u7edf\u200b\u652f\u6301\u200b\u6bd4\u8f83\u200b\u597d\u200b
                  • \u200b\u6211\u200b\u6bd4\u8f83\u200b\u7231\u200b\u6298\u817e\u200b
                  "},{"location":"blog/arch-linux-day1/#_2","title":"\u4eca\u5929\u200b\u9047\u5230\u200b\u7684\u200b\u95ee\u9898","text":"

                  \u200b\u662f\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u63a5\u4e0b\u6765\u200b\u5c31\u200b\u9047\u5230\u200b\u95ee\u9898\u200b\u4e86\u200b\ud83d\ude07\u3002

                  \u200b\u9996\u5148\u200b\u662f\u200b intel \u200b\u7684\u200b mbp\uff0c\u200b\u5b83\u200b\u4e0d\u8ba9\u200b\u6211\u88c5\u200b\uff0c\u200b\u6211\u9009\u200b\u4e86\u200b\u4ece\u200b U \u200b\u76d8\u200b\u542f\u52a8\u200b\u5b83\u200b\u5c31\u200b\u8df3\u200b\u8d70\u200b\u95ee\u200b\u6211\u200b\u662f\u4e0d\u662f\u200b\u8981\u200b\u5728\u200b\u4e0a\u9762\u200b\u88c5\u200b\u4e00\u4e2a\u200b MacOS\uff08\uff1f\uff09

                  \u200b\u7136\u540e\u200b\u7528\u200b\u6e38\u620f\u200b\u672c\u200b\u5462\u200b\uff0c\u200b\u6b64\u65f6\u200b\u552f\u4e00\u200b\u9047\u5230\u200b\u7684\u200b\u95ee\u9898\u200b\u662f\u200b\u5b89\u88c5\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9009\u62e9\u200b\u78c1\u76d8\u200b\u65f6\u200b\u6ca1\u6709\u200b SSD\uff0c\u200b\u53ea\u200b\u8ba9\u200b\u6211\u200b\u88c5\u200b\u5728\u200b U \u200b\u76d8\u200b\u4e0a\u200b\uff0c\u200b\u5954\u524d\u200b\u8d70\u200b\u540e\u200b\u4e5f\u200b\u4e0d\u200b\u77e5\u9053\u200b\u8be5\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b\uff08\u200b\u4f5c\u200b\u7684\u200b\ud83d\ude07\uff09

                  "},{"location":"blog/arch-linux-day1/#_3","title":"\u6210\u529f\u200b\u505a\u5230\u200b\u7684","text":""},{"location":"blog/arch-linux-day1/#_4","title":"\u865a\u62df\u673a","text":"

                  \u200b\u4e0b\u5348\u200b\u53c8\u200b\u5c0f\u200b\u6363\u9f13\u200b\u4e86\u200b\u4e00\u4f1a\u513f\u200b\u5728\u200b pd \u200b\u4e0a\u88c5\u200b\u597d\u200b\u4e86\u200b arch linux

                  \u200b\u7b97\u662f\u200b\u521d\u6b65\u200b\u8dd1\u200b\u8d77\u6765\u200b\u4e86\u200b\u5427\u200b\uff0c \u200b\u540e\u9762\u200b\u8981\u200b\u600e\u4e48\u529e\u200b\u6211\u200b\u4e5f\u200b\u4e0d\u200b\u592a\u200b\u6e05\u695a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5148\u200b\u5728\u200b\u865a\u62df\u673a\u200b\u4e0a\u5148\u200b\u6363\u9f13\u200b\u6363\u9f13\u200b\u770b\u770b\u200b\u6548\u679c\u200b\u5982\u4f55\u200b\u3002

                  \u200b\u54e6\u200b\u5bf9\u200b\u4e86\u200b\uff0c\u200b\u5728\u200b pd \u200b\u4e0a\u200b\u8dd1\u200b\u6211\u200b\u9047\u200b\u5f97\u5230\u200b\u95ee\u9898\u200b\u662f\u200b\u6ca1\u6cd5\u200b cmd+q \u200b\u547c\u200b\u51fa\u200b kitty \u200b\u7ec8\u7aef\u200b\uff0c\u200b\u65b9\u6cd5\u200b\u662f\u200b\u7528\u200b cmd+r \u200b\u624b\u52a8\u200b\u542f\u52a8\u200b kitty\uff0c\u200b\u7136\u540e\u200b\u53bb\u200b\u914d\u7f6e\u200b\u91cc\u200b\u53e6\u8bbe\u200b\u4e00\u4e2a\u200b\u5feb\u6377\u952e\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u5feb\u6377\u952e\u200b\u542f\u52a8\u200b kitty \u200b\u4e86\u200b\u3002

                  "},{"location":"blog/arch-linux-day1/#_5","title":"\u79fb\u52a8\u786c\u76d8","text":"

                  \u200b\u4f46\u662f\u200b\u865a\u62df\u673a\u200b\u4e0a\u200b\u5728\u200b\u592a\u5361\u200b\u4e86\u200b\uff0c\u200b\u4e8e\u662f\u200b\u6211\u200b\u4e00\u8f6c\u200b\u79fb\u52a8\u786c\u76d8\u200b\uff0c\u200b\u867d\u7136\u200b\u8bf4\u200b 90 \u200b\u5757\u200b\u7684\u200b\u5c0f\u200b\u786c\u76d8\u76d2\u200b\u6700\u9ad8\u200b\u8bfb\u5199\u200b\u901f\u5ea6\u200b\u4e5f\u200b\u5c31\u200b 1GBps \u200b\u5de6\u53f3\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e5f\u200b\u5c06\u200b\u5c06\u200b\u591f\u7528\u200b\u4e86\u200b\u3002

                  \u200b\u6709\u200b\u51e0\u6b65\u200b\u53ef\u80fd\u200b\u8981\u200b\u6ce8\u610f\u200b\u7684\u200b\uff1a

                  \u200b\u5f00\u59cb\u200b\u5b89\u88c5\u200b\u4e4b\u524d\u200b\u53ef\u4ee5\u200b\u6362\u6e90\u200b\uff0c\u200b\u867d\u7136\u200b\u6211\u200b\u6ca1\u6362\u200b\u3002

                  \u200b\u65e0\u7ebf\u7f51\u200b\u7684\u8bdd\u200b\u8981\u200b\u7528\u200biwctl\u200b\u5148\u200b\u8054\u7f51\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200bbaidu.com\u200b\u6d4b\u8bd5\u200b

                  \u200b\u7136\u540e\u200b\u53ef\u4ee5\u200b\u8bbe\u7f6e\u200bhttp_proxy https_proxy all_proxy\u200b\u7b49\u200b\u73af\u5883\u53d8\u91cf\u200b\u5230\u200b\u540c\u4e00\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u5141\u8bb8\u200b\u5c40\u57df\u7f51\u200b\u8fde\u63a5\u200b\u7684\u200b\u68af\u5b50\u200b\u7684\u200b\u5bf9\u5e94\u200b\u7aef\u53e3\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8d70\u200b\u4ee3\u7406\u200b\u4e86\u200b\u3002

                  \u200b\u63a5\u4e0b\u6765\u200b\u90fd\u200b\u662f\u200b\u5e38\u89c4\u200b\u8bbe\u7f6e\u200b\uff0cprofile\u200b\u4e2d\u200bwindow\u200b\u6211\u200b\u9009\u62e9\u200b\u7684\u200b\u662f\u200bhyperland

                  \u200b\u5982\u679c\u200b\u5f00\u59cb\u200b\u5b89\u88c5\u200b\u4e86\u200b\u4e4b\u540e\u200b\u5361\u200b\u5728\u200b\u4e86\u200b\u67d0\u200b\u4e00\u6b65\u200b reflector \u200b\u4e00\u7c7b\u200b\u7684\u8bdd\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8bd5\u8bd5\u200b\u5728\u200b\u5b89\u88c5\u200b\u4e4b\u524d\u200b\u8f93\u5165\u200b

                  systemctl mask reflector.service\nsystemctl stop reflector\n
                  \u200b\u8d77\u7801\u200b\u8fd9\u200b\u5bf9\u200b\u6211\u200b\u662f\u200b\u6709\u6548\u200b\u7684\u200b\u3002

                  \u200b\u5b89\u88c5\u200b\u5b8c\u6210\u200b\u540e\u200b\u4ec0\u4e48\u200b post installation \u200b\u9009\u200b no\uff0c\u200b\u7136\u540e\u200b\u91cd\u542f\u200b\u5373\u53ef\u200b\u3002

                  "},{"location":"blog/arch-linux-day1/#_6","title":"\u7f51\u7edc","text":"

                  \u200b\u521a\u200b\u8fdb\u6765\u200b\u5e76\u200b\u6ca1\u6709\u200b\u7f51\u200b\uff0c\u200b\u4f5c\u4e3a\u200b\u5c0f\u767d\u200b\u8ddf\u200b\u5b89\u88c5\u200b\u7684\u200b\u65f6\u5019\u200b\u4e00\u6837\u200b\u76f4\u63a5\u200b\u7528\u200biwctl\u200b\u7ed3\u679c\u200b\u7b49\u200b daemon \u200b\u7b49\u200b\u4e86\u200b\u534a\u5929\u200b\uff0c\u200b\u539f\u6765\u200b daemon \u200b\u8981\u200b\u81ea\u5df1\u200b\u624b\u52a8\u200b\u5f00\u200b\ud83d\udca6

                  systemctl start iwd\n

                  \u200b\u4f46\u662f\u200b\u7528\u200b\u4e86\u200b iwctl \u200b\u4e5f\u200b\u4e0d\u80fd\u200b\u50cf\u200b\u4e4b\u524d\u200b\u90a3\u6837\u200b\u76f4\u63a5\u200b\u8fde\u4e0a\u200b\u4e86\u200b\uff0c\u200b\u6211\u200b\u4e5f\u200b\u4e0d\u200b\u77e5\u9053\u200b\u4e3a\u5565\u200b

                  \u200b\u6700\u540e\u200b\u8f6c\u800c\u200b\u4f7f\u7528\u200bnmcli,\u200b\u5176\u5b9e\u200b\u4e5f\u200b\u6ca1\u200b\u5565\u200b\u719f\u6089\u200b\u4e00\u4e0b\u200b\u8bed\u6cd5\u200b\u5c31\u884c\u4e86\u200b\uff0c\u200b\u987a\u4fbf\u200b\u4e00\u63d0\u200biwctl\u200b\u627e\u200b\u4e0d\u5230\u200b\u6211\u200b\u7684\u200b\u70ed\u70b9\u200b\u4f46\u662f\u200bnmcli\u200b\u53ef\u4ee5\u200b

                  \u200b\u8fd8\u6709\u200b\u5f88\u200b\u8be1\u5f02\u200b\u7684\u200b\u4e8b\u60c5\u200b\u662f\u200b\u8fde\u63a5\u200b\u6821\u7f51\u200b\u4e0d\u200b\u9700\u8981\u200b\u8d26\u53f7\u5bc6\u7801\u200b

                  "},{"location":"blog/arch-linux-day1/#_7","title":"\u5927\u6742\u70e9","text":"

                  \u200b\u521d\u8fdb\u200b hyperland \u200b\u7684\u200b\u5b57\u4f53\u200b\u5bf9\u200b\u6211\u200b\u6765\u8bf4\u200b\u592a\u5927\u200b\u4e86\u200b\uff0c\u200b\u53bb\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e2d\u5c06\u200b monitor \u200b\u4e00\u9879\u200b\u7684\u200b\u6700\u540e\u200b\u4e00\u4e2a\u200b auto \u200b\u6539\u6210\u200b 1 \u200b\u4f1a\u200b\u597d\u200b\u5f88\u591a\u200b\uff0c\u200b\u8fd9\u200b\u4e00\u9879\u200b\u662f\u200b\u7f29\u653e\u200b\u7cfb\u6570\u200b\uff0c\u200b\u7cfb\u6570\u200b\u8d8a\u5927\u200b\uff0c\u200b\u5b57\u4f53\u200b\u8d8a\u5927\u200b

                  \u200b\u968f\u540e\u200b\u8bd5\u7740\u200b\u5b89\u88c5\u200b\u4e86\u200b nix \u200b\u6765\u200b\u8fdb\u884c\u200b\u5305\u200b\u7ba1\u7406\u200b\uff0c\u200b\u4f46\u200b\u611f\u89c9\u200b\u5e76\u200b\u4e0d\u7b97\u200b\u7279\u522b\u200b\u65b9\u4fbf\u200b\ud83e\udd14

                  \u200b\u9996\u5148\u200b\u662f\u200b zsh \u200b\u88c5\u5728\u200b\u4e86\u200b\u5947\u602a\u200b\u7684\u200b\u5730\u65b9\u200b\uff0c\u200b\u6211\u7528\u200b\u4e86\u200b\u8f6f\u200b\u8fde\u63a5\u200b\u8fde\u200b\u5230\u200b/bin/zsh\u200b\u53bb\u200b\u4e86\u200b

                  nix \u200b\u4f3c\u4e4e\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u88c5\u200b\u5b57\u4f53\u200b\uff0c\u200b\u4f46\u200b\u6211\u200b\u4e0d\u200b\u77e5\u9053\u200b\u88c5\u200b\u5230\u54ea\u53bb\u200b\u4e86\u200b\uff0c\u200b\u8d77\u7801\u200b\u6211\u200b\u7ffb\u200b\u4e86\u200b\u4e00\u4e0b\u200b\u5b57\u4f53\u200b\u6587\u4ef6\u5939\u200b\u6ca1\u200b\u770b\u89c1\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6700\u540e\u200b\u7528\u200bpacman\u200b\u88c5\u200b\u4e86\u200b meslo\uff0c\u200b\u7136\u540e\u200b\u5728\u200b kitty \u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e2d\u52a0\u200b\u4e86\u200b\u4e00\u884c\u200bfont_family MesloLGS NF\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u4e86\u200b

                  \u200b\u7ec8\u7aef\u200b\u7f8e\u5316\u200b\u53c2\u8003\u200b\u4e4b\u524d\u200b\u7684\u200b \u200b\u535a\u5ba2\u200b\u3002

                  nix \u200b\u88c5\u200bautojump\u200b\u540c\u6837\u200b\u4e0d\u884c\u200b\uff0c\u200b\u5e76\u200b\u4e0d\u200b\u76f4\u63a5\u200b\u63d0\u4f9b\u200b j \u200b\u800c\u662f\u200b\u63d0\u4f9b\u200b autojump\uff0c\u200b\u5e76\u4e14\u200b\u597d\u50cf\u200b\u6ca1\u6709\u200b\u5305\u542b\u200b script \u200b\u6240\u4ee5\u200b\u8dd1\u200b\u4e0d\u901a\u200b\u3002

                  \u200b\u6211\u200b\u6700\u540e\u200b\u9009\u62e9\u200b\u7528\u200b pacman \u200b\u4ece\u200b aur \u200b\u4e2d\u200b\u5b89\u88c5\u200b\uff1a

                  # first install base-devel\nsudo pacman -S base-devel\n# then clone the repo from aur\ngit clone https://aur.archlinux.org/autojump.git\n# then cd into the repo\ncd autojump\n# then build the package\nmakepkg -si\n

                  \u200b\u4e0a\u9762\u200b\u7684\u200b\u505a\u200b\u5b8c\u200b\u4e86\u200b\u4e4b\u540e\u200b\u8fd8\u4f1a\u200b\u63d0\u793a\u200b\u5c06\u200b\u4e00\u884c\u200b\u547d\u4ee4\u200b\u52a0\u5165\u200b bashrc \u200b\u4e2d\u200b\u3002

                  \u200b\u63a5\u4e0b\u6765\u200b\u662f\u200b\u5b89\u88c5\u200b QQ\uff0c\u200b\u6211\u200b\u662f\u200b\u76f4\u63a5\u200b\u7528\u200b nix\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u4e2d\u6587\u200b\u521a\u200b\u5f00\u59cb\u200b\u663e\u793a\u200b\u4e0d\u200b\u51fa\u6765\u200b\uff0c\u200b\u5728\u200b wiki \u200b\u4e2d\u200b\u63d0\u793a\u200b\u4f7f\u7528\u200bwinetricks fakechinese\u200b\u53ef\u200b\u89e3\u51b3\u200b

                  \u200b\u622a\u56fe\u200b\u5de5\u5177\u200b\u4f3c\u4e4e\u200b\u8981\u200b\u81ea\u5df1\u200b\u5907\u200b\uff0c\u200b\u6211\u9009\u200b\u4e86\u200bgrimblast

                  "},{"location":"blog/arch-linux-day2/","title":"Arch Linux Day2","text":"

                  Abstract

                  \u200b\u5f00\u59cb\u200b\u6298\u817e\u200b Arch Linux \u200b\u7684\u200b\u7b2c\u4e8c\u5929\u200b\uff01\u200b\u4eca\u5929\u200b\u5c31\u662f\u200b\u4e00\u4e9b\u200b\u5e38\u89c4\u200b\u7684\u200b\u73af\u5883\u200b\u914d\u7f6e\u200b

                  "},{"location":"blog/arch-linux-day2/#_1","title":"\u6742\u9879","text":""},{"location":"blog/arch-linux-day2/#_2","title":"\u7b80\u5355\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177","text":"

                  \u200b\u7528\u200b bat \u200b\u66ff\u4ee3\u200b cat\uff0c\u200b\u7528\u200b eza \u200b\u4ee3\u66ff\u200b ls\uff0c\u200b\u5e76\u200b\u8bbe\u7f6e\u200b\u597d\u200b alias\u3002

                  "},{"location":"blog/arch-linux-day2/#_3","title":"\u4ee3\u7406","text":"

                  \u200b\u672c\u6765\u200b\u4ee3\u7406\u200b\u8fd9\u4e2a\u200b\u4e8b\u200b\u8fd8\u200b\u633a\u200b\u7b80\u5355\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b\u524d\u200b\u51e0\u4e2a\u200b\u6708\u200b clash \u200b\u4e00\u200b\u7cfb\u200b\u5168\u90fd\u200b\u5220\u5e93\u200b\u8dd1\u200b\u8def\u200b\u4e86\u200b\uff0c\u200b\u6240\u4ee5\u200b\u521a\u200b\u5f00\u59cb\u200b\u5c31\u200b\u8bd5\u56fe\u200b\u627e\u200b\u4e00\u4e2a\u200b\u66ff\u4ee3\u200b\u65b9\u6848\u200b

                  \u200b\u627e\u5230\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u633a\u591a\u4eba\u200b\u63a8\u8350\u200b\u7684\u200b\u65b9\u6848\u200b\u662f\u200b\u4f7f\u7528\u200b nekoray\uff0c\u200b\u76f8\u5173\u200b\u7684\u200b\u6559\u7a0b\u200b\u6211\u200b\u89c9\u5f97\u200b\u5b98\u65b9\u200b\u7684\u200b\u6587\u6863\u200b\u8bf4\u200b\u7684\u200b\u4e0d\u7b97\u200b\u6e05\u695a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u53bb\u200b\u6cb9\u7ba1\u200b\u4e0a\u200b\u770b\u770b\u200b\u76f8\u5173\u200b\u7684\u200b\u89c6\u9891\u200b\uff0c\u200b\u6bd4\u8f83\u6e05\u695a\u200b

                  \u200b\u4f46\u662f\u200b\u5bf9\u4e8e\u200b\u6211\u200b\u6765\u8bf4\u200b\uff0csockboom \u200b\u7ed9\u200b\u7684\u200b\u94fe\u63a5\u200b nekoray \u200b\u4e00\u76f4\u200b\u53ea\u80fd\u200b\u66f4\u65b0\u200b\u51fa\u200b nothing\uff0c\u200b\u6211\u200b\u4e5f\u200b\u4e0d\u200b\u592a\u200b\u6e05\u695a\u200b\u662f\u200b\u54ea\u91cc\u200b\u7684\u200b\u95ee\u9898\u200b\u53ef\u80fd\u200b\u8ba2\u9605\u200b\u94fe\u63a5\u200b\u8fd4\u56de\u200b\u7684\u200b\u683c\u5f0f\u200b nekoray \u200b\u5e76\u200b\u4e0d\u200b\u5b8c\u5168\u200b\u8ba4\u200b\uff1f\u200b\u603b\u4e4b\u200b\u6700\u540e\u200b\u653e\u5f03\u200b\u4e86\u200b\u8fd9\u4e2a\u200b\u65b9\u6848\u200b

                  \u200b\u6700\u540e\u200b\u7684\u200b\u65b9\u6848\u200b\u662f\u200b\u4f7f\u7528\u200b clash\uff08\u200b\u6ca1\u9519\u200b\u8fd8\u662f\u200b\u5b83\u200b\uff09\u200b\u52a0\u200b webui\uff0cwebui \u200b\u5c31\u662f\u200b\u65f6\u4e0d\u65f6\u200b\u62ff\u6765\u200b\u5207\u4e2a\u200b\u8282\u70b9\u200b\u7684\u200b\uff0cclash \u200b\u53ea\u8981\u200b\u628a\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u5728\u200b~/.config/clash/config.yaml(1)\u200b\u91cc\u9762\u200b\u653e\u200b\u597d\u200b\uff0c\u200b\u7136\u540e\u200b\u8fd0\u884c\u200b clash \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\u3002

                  1. wget -O ~/.config/clash/config.yaml YOUR_SUBSCRIBE_URL

                  \u200b\u4e3a\u4e86\u200b\u5168\u5c40\u200b\u5f00\u542f\u200b\u4ee3\u7406\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u5728\u200b/etc/environment \u200b\u91cc\u9762\u200b\u52a0\u4e0a\u200b

                  http_proxy=http://127.0.0.1:7890\nhttps_proxy=http://127.0.0.1:7890\nall_proxy=http://127.0.0.1:7890\n
                  "},{"location":"blog/arch-linux-day2/#python","title":"python \u200b\u73af\u5883","text":"

                  python \u200b\u5e94\u8be5\u200b\u662f\u200b\u9884\u88c5\u200b\u7684\u200b

                  anaconda \u200b\u901a\u8fc7\u200b\uff1a

                  yay -S anaconda\n

                  \u200b\u5b89\u88c5\u200b

                  \u200b\u7136\u540e\u200b\u7528\u200b conda \u200b\u5b89\u88c5\u200b pip\uff0cpacman \u200b\u88c5\u200b\u7684\u200b pip \u200b\u7591\u4f3c\u200b\u8ddf\u200b conda \u200b\u914d\u5408\u200b\u5f97\u200b\u4e0d\u662f\u200b\u5f88\u200b\u597d\u200b

                  VSCode \u200b\u4e5f\u200b\u4e00\u5e76\u200b\u88c5\u200b\u4e86\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/","title":"Arch Linux + Hyprland \u200b\u5b89\u88c5\u200b\u5168\u200b\u6d41\u7a0b","text":"

                  Abstract

                  \u200b\u4eca\u5929\u200b\u5f88\u200b\u4e0d\u5e78\u200b\u7684\u200b\u7ecf\u5386\u200b\u4e86\u200b\u7b2c\u4e8c\u200b\u548c\u200b\u7b2c\u4e09\u6b21\u200b\u7684\u200b\u91cd\u88c5\u7cfb\u7edf\u200b\ud83d\ude07\uff0c\u200b\u5728\u200b\u95f4\u9699\u200b\u51b3\u5b9a\u200b\u628a\u200b\u4e00\u200b\u6574\u4e2a\u200b\u6d41\u7a0b\u200b\u5199\u200b\u4e0b\u6765\u200b\uff0c\u200b\u4f9b\u200b\u5927\u5bb6\u200b\uff08\u200b\u4ee5\u53ca\u200b\u4ee5\u540e\u200b\u7684\u200b\u6211\u200b\uff09\u200b\u53c2\u8003\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_1","title":"\u542f\u52a8\u76d8","text":"
                  • \u200b\u524d\u5f80\u200b arch linux \u200b\u5b98\u7f51\u200b\u4e0b\u8f7d\u200b\u6700\u65b0\u200b\u955c\u50cf\u200b\uff0c\u200b\u540e\u7f00\u200b iso
                  • \u200b\u968f\u673a\u200b\u9009\u200b\u4e00\u4e2a\u200b\u70e7\u5f55\u200b\u5de5\u5177\u200b\uff08\u200b\u6700\u200b\u5e38\u89c1\u200b\u7684\u200b ecther\uff09\u200b\u548c\u200b\u4e00\u4e2a\u200b\u7a7a\u200b\u7684\u200b U \u200b\u76d8\u200b/\u200b\u79fb\u52a8\u786c\u76d8\u200b
                  • \u200b\u9009\u62e9\u200b\u4e0b\u8f7d\u200b\u7684\u200b iso \u200b\u6587\u4ef6\u200b\u548c\u200b\u63d2\u8fdb\u53bb\u200b\u7684\u200b\u542f\u52a8\u76d8\u200b\uff0c\u200b\u70e7\u5f55\u200b
                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_2","title":"\u4ece\u200b\u542f\u52a8\u76d8\u200b\u542f\u52a8","text":"

                  \u200b\u91cd\u542f\u200b\u7b14\u8bb0\u672c\u200b\u6309\u200b f2 \u200b\u8fdb\u5165\u200b bios\uff0c\u200b\u5173\u95ed\u200b secure boot\uff08\u200b\u53ef\u80fd\u200b\u9700\u8981\u200b\u5148\u200b\u8bbe\u7f6e\u200b\u5bc6\u7801\u200b\u624d\u80fd\u200b\u5173\u200b\uff09\uff0c\u200b\u9009\u62e9\u200b\u4f18\u5148\u200b\u4ece\u200b\u542f\u52a8\u76d8\u200b\u542f\u52a8\u200b\u800c\u200b\u975e\u200b ssd \u200b\u4e0a\u200b\u7684\u200b windows

                  \u200b\u4fdd\u5b58\u200b\u5e76\u200b\u9000\u51fa\u200b

                  \u200b\u63a5\u4e0b\u6765\u200b\u5c31\u200b\u4f1a\u200b\u8fdb\u53bb\u200b\u542f\u52a8\u76d8\u200b\u4e0a\u200b\u7684\u200b\u7cfb\u7edf\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u7cfb\u7edf\u200b\u662f\u200b\u62ff\u6765\u200b\u7ed9\u200b\u6211\u4eec\u200b\u5b89\u88c5\u200b\u7528\u200b\u7684\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_3","title":"\u51c6\u5907\u200b\u5de5\u4f5c","text":"

                  \u200b\u8fdb\u5165\u200b\u542f\u52a8\u76d8\u200b\u7684\u200b\u7ec8\u7aef\u200b

                  \u200b\u65e0\u7ebf\u7f51\u200b\u7684\u8bdd\u200b\uff0c\u200b\u9996\u5148\u200b\u7528\u200b iwctl \u200b\u8054\u7f51\u200b\uff0c\u200b\u53c2\u8003\u200b \u200b\u8fd9\u7bc7\u200b \uff0c\u200b\u6709\u7ebf\u200b\u4e0d\u200b\u9700\u8981\u200b\u8fd9\u200b\u4e00\u6b65\u200b

                  \u200b\u6b64\u65f6\u200b curl baidu.com \u200b\u5e94\u8be5\u200b\u662f\u200b\u901a\u200b\u7684\u200b

                  \u200b\u7136\u540e\u200b\u8fd8\u200b\u9700\u8981\u200b\u4ee3\u7406\u200b\uff08\u200b\u6216\u8005\u200b\u6362\u6e90\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\uff1f\u200b\u6211\u200b\u4e00\u76f4\u200b\u662f\u200b\u4ee3\u7406\u200b\uff09\uff0c\u200b\u5728\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u8bbe\u5907\u200b\u4e0a\u200b\u5f00\u542f\u200b clash \u200b\u7684\u200b\u5141\u8bb8\u200b\u5c40\u57df\u7f51\u200b\u8054\u673a\u200b\uff0c\u200b\u5e76\u4e14\u200b\u8bb0\u4f4f\u200b\u8be5\u200b\u8bbe\u5907\u200b\u7684\u200b ip \u200b\u548c\u200b\u7aef\u53e3\u200b\uff08\u200b\u4e00\u822c\u200b\u662f\u200b 7890 \u200b\u7aef\u53e3\u200b\uff09

                  \u200b\u7136\u540e\u200b\u7528\u200b\u73af\u5883\u53d8\u91cf\u200b\u8bbe\u7f6e\u200b\u4ee3\u7406\u200b\uff0c\u200b\u6211\u200b\u4e00\u822c\u200b\u8bbe\u7f6e\u200b http_proxy,https_proxy,all_proxy \u200b\u4e09\u4e2a\u200b\uff0c\u200b\u683c\u5f0f\u200b\u4e3a\u200b

                  export http_proxy=http://ip:7890 https_proxy=...\n

                  \u200b\u6b64\u65f6\u200b curl google.com \u200b\u5e94\u8be5\u200b\u662f\u200b\u901a\u200b\u7684\u200b

                  \u200b\u7136\u540e\u200b vim /etc/pacman.conf \u200b\u628a\u200b\u5e76\u884c\u200b\u4e0b\u8f7d\u200b\u7684\u200b\u6ce8\u91ca\u200b\u53bb\u6389\u200b\uff0c\u200b\u5f00\u542f\u200b\u5e76\u884c\u200b\u4e0b\u8f7d\u200b

                  \u200b\u6700\u540e\u200b archinstall \u200b\u5f00\u59cb\u200b\u5b89\u88c5\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#archinstall","title":"archinstall","text":"

                  Wanrning

                  \u200b\u5982\u679c\u200b archinstall \u200b\u540e\u5361\u200b\u5728\u200b\u4e86\u200b\u67d0\u4e2a\u200b reflector \u200b\u90a3\u91cc\u200b\u52a8\u200b\u4e0d\u4e86\u200b\u7684\u8bdd\u200b\uff0c\u200b\u8bd5\u8bd5\u200b

                  systemctl mask reflector.service\n
                  \u200b\u6216\u8005\u200b
                  systemctl stop reflector\n

                  \u200b\u8fdb\u5165\u200b archinstall \u200b\u8bbe\u7f6e\u200b\u9875\u9762\u200b

                  mirrors \u200b\u8fdb\u53bb\u200b\u7b2c\u4e00\u9879\u200b\u7136\u540e\u200b\u9009\u62e9\u200b\u5730\u533a\u200b\u5c31\u200b\u597d\u200b\uff0c\u200b\u6211\u200b\u9009\u62e9\u200b\u4e2d\u56fd\u200b\uff0c\u200b\u5b8c\u6bd5\u200b\u540e\u200b locales \u200b\u4e5f\u200b\u4e00\u5e76\u200b\u88ab\u200b defined \u200b\u4e86\u200b

                  disk configuration \u200b\u8fdb\u5165\u200b\u540e\u200b\u9009\u62e9\u200b\u7b2c\u4e00\u9879\u200b\u6700\u5927\u5316\u200b\u5229\u7528\u200b\uff0c\u200b\u7136\u540e\u200b\u9009\u62e9\u200b\u4f60\u200b\u60f3\u8981\u200b\u5b89\u88c5\u200b\u7684\u200b\u76d8\u200b\uff0c\u200b\u6587\u4ef6\u7cfb\u7edf\u200b\u6211\u9009\u200b btrfs\uff0c\u200b\u540e\u7eed\u200b\u7684\u200b\u9009\u9879\u200b\u90fd\u200b\u662f\u200b\u9ed8\u8ba4\u200b

                  Bug

                  \u200b\u6b64\u5904\u200b\u6211\u200b\u4e0d\u200b\u77e5\u9053\u200b\u4e3a\u4ec0\u4e48\u200b\u662f\u200b\u65e0\u6cd5\u200b\u9009\u62e9\u200b\u7535\u8111\u200b\u5185\u90e8\u200b\u7684\u200b\u76d8\u200b\u800c\u200b\u53ea\u80fd\u200b\u9009\u62e9\u200b\u8fd9\u4e2a\u200b\u5b89\u88c5\u200b\u4ecb\u8d28\u200b\uff0c\u200b\u6211\u200b\u8fd8\u200b\u4e0d\u200b\u77e5\u9053\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u73b0\u5728\u200b\u6211\u200b\u7684\u200b\u7cfb\u7edf\u200b\u5c31\u200b\u88c5\u200b\u5728\u200b\u5f53\u65f6\u200b\u7684\u200b\u5b89\u88c5\u200b\u4ecb\u8d28\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u4e00\u5757\u200b\u79fb\u52a8\u786c\u76d8\u200b\u4e0a\u9762\u200b

                  \u200b\u53ef\u4ee5\u200b\u4e0d\u200b\u52a0\u200b root password \u200b\u53ea\u8981\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b user \u200b\u5e76\u4e14\u200b\u52a0\u5165\u200b sudo \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b

                  profile \u200b\u9009\u62e9\u200b desktop \uff0c hyprland\uff0c\u200b\u540e\u7eed\u200b\u9009\u9879\u200b\u4e2d\u200b\u552f\u4e00\u200b\u6ce8\u610f\u200b\u7684\u200b\u662f\u200b\u663e\u5361\u200b\u9a71\u52a8\u200b\u4f7f\u7528\u200b\u5f00\u6e90\u200b\u9a71\u52a8\u200b\u8fd8\u662f\u200b n \u200b\u5361\u200b\u4e13\u6709\u200b\u9a71\u52a8\u200b\uff0cn \u200b\u5361\u200b\u4e13\u6709\u200b\u9a71\u52a8\u200b\u66f4\u200b\u5f3a\u5927\u200b\u4e00\u70b9\u200b\u4f46\u662f\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u6709\u4f4d\u200b\u672a\u77e5\u200b\u7684\u200b\u95ee\u9898\u200b\uff08\u200b\u517c\u5bb9\u6027\u200b\u4e0d\u597d\u200b\uff09

                  network configuration \u200b\u9009\u62e9\u200b use network management

                  timzezone \u200b\u9009\u200b\u4e0a\u6d77\u200b

                  optional repo \u200b\u9009\u62e9\u200b multilib

                  \u200b\u7136\u540e\u200b\u5b89\u88c5\u200b

                  \u200b\u7ed3\u675f\u200b\u540e\u200b post-installation configuration \u200b\u76f4\u63a5\u200b\u9009\u200b no \u200b\u7136\u540e\u200b reboot \u200b\u91cd\u542f\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_4","title":"\u521d\u6b65\u200b\u914d\u7f6e","text":""},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#hyprland","title":"hyprland \u200b\u672c\u8eab","text":"

                  \u200b\u8fdb\u5165\u200b\u540e\u200b super+q\uff08win+q\uff09\u200b\u547c\u200b\u51fa\u200b\u7ec8\u7aef\u200b

                  \u200b\u9996\u5148\u200b\u4fee\u6539\u200b~/.confi/hypr/hyperlnd.conf

                  \u200b\u628a\u200b autogenerated \u200b\u90a3\u200b\u4e00\u884c\u200b\u6ce8\u91ca\u200b\u6389\u200b\uff0c\u200b\u53bb\u6389\u200b\u9876\u90e8\u200b\u901a\u77e5\u200b\u680f\u200b

                  \u200b\u628a\u200b monitor \u200b\u7684\u200b\u6700\u540e\u200b\u4e00\u4e2a\u200b auto\uff08\u200b\u7f29\u653e\u200b\u500d\u6570\u200b\uff09\u200b\u6539\u6210\u200b 1\uff0c\u200b\u9000\u51fa\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_5","title":"\u8054\u7f51","text":"

                  \u200b\u4e0d\u200b\u63a8\u8350\u200b\u7ee7\u7eed\u200b\u4f7f\u7528\u200b iwctl\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u7528\u200b\u4e86\u200b\u4ee5\u540e\u200b\u8fde\u4e0d\u4e0a\u200b\u5e76\u4e14\u200b\u5b83\u200b\u641c\u200b\u4e0d\u5230\u200b\u70ed\u70b9\u200b\uff0c\u200b\u5982\u679c\u200b\u8981\u200b\u7528\u200b\u7684\u8bdd\u200b\u8981\u200b\u8bb0\u5f97\u200b\u5148\u200b\u7528\u200b systemctl start iwd \u200b\u5f00\u542f\u200b daemon

                  \u200b\u4f7f\u7528\u200b nmcli\uff0c\u200b\u6559\u7a0b\u200b\u7f51\u4e0a\u200b\u90fd\u200b\u662f\u200b\uff0c\u200b\u6211\u7528\u200b\u7684\u200b\u662f\u200b

                  nmcli dev wifi connect ZJUWLAN\n

                  \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b

                  \u200b\u7136\u540e\u200b\u4e00\u6837\u200b\u7684\u200b\u4ee3\u7406\u200b\uff0c\u200b\u6d4b\u8bd5\u200b baidu \u200b\u548c\u200b google \u200b\u7684\u200b\u8fde\u901a\u6027\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#pacman","title":"Pacman \u200b\u8bbe\u7f6e","text":"

                  \u200b\u5176\u5b9e\u200b\u9700\u8981\u200b\u6539\u5f97\u200b\u4e0d\u200b\u591a\u200b\uff0c\u200b\u4e4b\u524d\u200b\u63d0\u5230\u200b\u7684\u200b\u5e76\u884c\u200b\u4e0b\u8f7d\u200b\uff0c\u200b\u8fd8\u6709\u200b Color \u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u50cf\u200b\u5f00\u542f\u200b

                  \u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u52a0\u5165\u200b\u4e00\u884c\u200b ILOveCandy \u200b\u6765\u200b\u628a\u200b\u8fdb\u5ea6\u6761\u200b\u5207\u6362\u200b\u6210\u200b pacman \u200b\u7279\u6709\u200b\u7684\u200b\u5403\u200b\u8c46\u5b50\u200b\u6837\u5f0f\u200b

                  \u200b\u63a5\u4e0b\u6765\u200b\u662f\u200b\u6362\u6e90\u200b\uff0c\u200b\u9996\u5148\u200b\u5b89\u88c5\u200b reflector(1)

                  1. extra/reflector 2023-1 A Python 3 module and script to retrieve and filter the latest Pacman mirror list.
                  sudo pacman -S reflector\n

                  \u200b\u7136\u540e\u200b\u5907\u4efd\u200b

                  sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak\n

                  \u200b\u7136\u540e\u200b\u4f7f\u7528\u200b\u8be5\u200b\u6307\u4ee4\u200b\u5bfb\u627e\u200b\u5341\u4e2a\u200b\u6700\u5feb\u200b\u7684\u200b\u6e90\u200b\uff1a

                  sudo reflector --verbose --latest 10 --country China --protocol http --sort rate --save /etc/pacman.d/mirrorlist\n

                  \u200b\u6700\u540e\u200b\u66f4\u65b0\u200b\u4e00\u4e0b\u200b pacman

                  sudo pacman -Sy\n
                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#shell","title":"shell \u200b\u5207\u6362","text":"
                  sudo pacman -S zsh firefox ttf-meslo-nerd git\nchsh -s zsh\n

                  \u200b\u7136\u540e\u200b\u5207\u6362\u200b kitty \u200b\u7684\u200b\u9ed8\u8ba4\u200b\u5b57\u4f53\u200b

                  \u200b\u5728\u200b~/.config/kitty/kitty.conf \u200b\u4e2d\u200b\u52a0\u5165\u200b

                  font_family MesloLGS NF\n

                  \u200b\u7136\u540e\u200b\u53c2\u8003\u200b\u6211\u200b\u7684\u200b\u8fd9\u7bc7\u200b \u200b\u535a\u5ba2\u200b \u200b\u8fdb\u884c\u200b\u7f8e\u5316\u200b\uff0c\u200b\u4f7f\u7528\u200b firefox \u200b\u6253\u5f00\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u590d\u5236\u200b\u547d\u4ee4\u200b

                  \u200b\u6211\u200b\u662f\u200b\u8dd1\u200b\u5b8c\u200b powerlevel10k \u200b\u90a3\u200b\u4e00\u6bb5\u200b\u540e\u200b\u76f4\u63a5\u200b\u4ee4\u5f00\u200b\u4e00\u4e2a\u200b\u7ec8\u7aef\u200b\u8fdb\u5165\u200b zsh \u200b\u5f00\u59cb\u200b\u521d\u59cb\u5316\u200b powerlevel10k \u200b\u4e86\u200b

                  \u200b\u65b0\u200b\u7684\u200b shell \u200b\u4e2d\u200b proxy \u200b\u53c8\u200b\u5931\u6548\u200b\u4e86\u200b\uff0c\u200b\u76f4\u63a5\u200b\u628a\u200b export \u200b\u90a3\u200b\u4e00\u884c\u200b\u5728\u200b zshrc \u200b\u4e2d\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b proxy \u200b\u7684\u200b alias\uff0c\u200b\u6b64\u540e\u200b\u5c31\u200b\u7528\u200b proxy \u200b\u76f4\u63a5\u200b\u542f\u52a8\u200b\u4ee3\u7406\u200b\uff0c\u200b\u76f4\u5230\u200b\u6211\u4eec\u200b\u8dd1\u200b\u8d77\u6765\u200b\u672c\u200b\u8ba1\u7b97\u673a\u200b\u7684\u200b\u4ee3\u7406\u200b

                  \u200b\u65b0\u200b\u7684\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\u7ee7\u7eed\u200b\u5b8c\u6210\u200b\u7ec8\u7aef\u200b\u7684\u200b\u4f18\u5316\u200b

                  \u200b\u5176\u4e2d\u200b autojump \u200b\u4f4d\u4e8e\u200b aur \u200b\u4e2d\u200b\uff0c\u200b\u901a\u8fc7\u200b

                  # first install base-devel\nsudo pacman -S base-devel\n# then clone the repo from aur\ngit clone https://aur.archlinux.org/autojump.git\n# then cd into the repo\ncd autojump\n# then build the package\nmakepkg -si\n

                  \u200b\u5b89\u88c5\u200b\uff0c\u200b\u5e76\u200b\u4f9d\u7167\u200b\u63d0\u793a\u200b\u628a\u200b\u54cd\u5e94\u200b\u547d\u4ee4\u200b\u8f93\u5165\u200b.zshrc

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_6","title":"\u8f93\u5165\u6cd5","text":"
                  sudo pacman -S fcitx5-im fcitx5-chinese-addons\n

                  Warning

                  fcitx5-im \u200b\u5185\u90e8\u200b\u5305\u542b\u200b\u56db\u4e2a\u200b\u5305\u200b\uff0c\u200b\u6211\u200b\u7684\u200b\u5efa\u8bae\u200b\u662f\u200b\u5168\u90fd\u200b\u4e0b\u200b\uff0c\u200b\u6211\u200b\u4e4b\u524d\u200b\u53ea\u4e0b\u200b\u4e86\u200b\u524d\u200b\u4e24\u4e2a\u200b\u7ed3\u679c\u200b qq\uff0cvscode \u200b\u4e00\u7c7b\u200b\u7684\u200b xwayland \u200b\u7684\u200b\u7a0b\u5e8f\u200b\u6b7b\u6d3b\u200b\u6ca1\u6cd5\u7528\u200b\u8f93\u5165\u6cd5\u200b\uff0c\u200b\u6211\u200b\u628a\u200b\u540e\u200b\u4e24\u4e2a\u200b\u5305\u200b\u52a0\u88c5\u200b\u56de\u53bb\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b

                  \u200b\u5148\u8dd1\u200b

                  fcitx5 --replace -d\n

                  Bug

                  \u200b\u5bf9\u200b\u6211\u200b\u800c\u8a00\u200b\u6b64\u5904\u200b\u4f1a\u200b\u6709\u200b\u4e00\u4e2a\u200b DBus call error\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u4e09\u4e2a\u200b\uff0c\u200b\u4f46\u200b\u5176\u5b9e\u200b\u4e0d\u7528\u200b\u7ba1\u200b\uff0c\u200b\u867d\u7136\u200b\u6709\u200b\u8fd9\u4e2a\u200b error \u200b\u4f46\u662f\u200b\u8f93\u5165\u6cd5\u200b\u8fd8\u662f\u200b\u7167\u6837\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u7684\u200b\uff0c\u200b\u6211\u200b\u4e24\u6b21\u200b\u91cd\u88c5\u7cfb\u7edf\u200b\u5c31\u662f\u200b\u56e0\u4e3a\u200b\u65e0\u6cd5\u200b\u53bb\u6389\u200b\u8fd9\u4e2a\u200b error \uff0c\u200b\u8fd8\u200b\u4ee5\u4e3a\u200b\u8f93\u5165\u6cd5\u200b\u5c31\u200b\u8dd1\u4e0d\u4e86\u200b\u4e86\u200b\uff0c\u200b\u91cd\u88c5\u200b\u662f\u200b\u4e3a\u4e86\u200b\u4ece\u200b nvidia \u200b\u7684\u200b\u4e13\u6709\u200b\u9a71\u52a8\u200b\u6362\u200b\u5230\u200b\u5f00\u6e90\u200b\u9a71\u52a8\u200b\u770b\u770b\u200b\u80fd\u200b\u4e0d\u80fd\u200b\u89e3\u51b3\u95ee\u9898\u200b\uff0c\u200b\u7b54\u6848\u200b\u662f\u200b\u4e0d\u80fd\u200b\ud83d\ude07

                  \u200b\u542f\u52a8\u200b fcitx5-configtool\uff0c\u200b\u53bb\u6389\u200b only show current languages,\u200b\u6ed1\u200b\u5230\u5e95\u200b\u53cc\u51fb\u200b pinyin\uff0capply

                  \u200b\u4e0d\u51fa\u610f\u5916\u200b\u6b64\u65f6\u200b ctrl+space \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5207\u6362\u200b\u5230\u200b\u8f93\u5165\u6cd5\u200b\u4e86\u200b\uff0c\u200b\u867d\u7136\u200b\u770b\u8d77\u6765\u200b\u5168\u662f\u200b\u4e71\u7801\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u9700\u8981\u200b\u4e2d\u6587\u200b\u73af\u5883\u200b

                  \u200b\u5b89\u88c5\u200b\u4e2d\u6587\u5b57\u4f53\u200b

                  sudo pacman -S noto-fonts-cjk\n

                  \u200b\u5728\u200b/etc/locale.gen \u200b\u4e2d\u200b\u53bb\u6389\u200b zh_CN.UTF8 \u200b\u90a3\u200b\u4e00\u884c\u200b\u7684\u200b\u6ce8\u91ca\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u540e\u200b\u6267\u884c\u200b locale-gen \u200b\u6307\u4ee4\u200b\uff0c\u200b\u7136\u540e\u200b\u91cd\u542f\u200b

                  \u200b\u73b0\u5728\u200b\u53ea\u8981\u200b\u6211\u4eec\u200b\u50cf\u200b\u4e0a\u9762\u200b\u4e00\u6837\u200b\u542f\u52a8\u200b fcitx5 --replace -d \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5207\u6362\u200b\u8f93\u5165\u6cd5\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5427\u200b\u8fd9\u200b\u4e00\u9879\u200b\u96c6\u6210\u200b\u8fdb\u200b hyprland \u200b\u542f\u52a8\u9879\u200b\u4e2d\u200b

                  hyprland.conf
                  exec-once=fcitx5 --replace -d\n

                  \u200b\u6309\u7167\u200b\u4e00\u822c\u200b\u7684\u200b\u6559\u7a0b\u200b\uff0c\u200b\u8fd8\u200b\u9700\u8981\u200b\u6dfb\u52a0\u200b\u4ee5\u4e0b\u200b\u73af\u5883\u53d8\u91cf\u200b\u5230\u200b/etc/environment \u200b\u4e2d\u200b

                  QT_IM_MODULE=fcitx\nXMODIFIERS=@im=fcitx\nSDL_MOULE=fcitx\n

                  \u200b\u4f5c\u7528\u200b\u662f\u200b\u4ec0\u4e48\u200b\u6682\u65f6\u200b\u8fd8\u200b\u4e0d\u200b\u77e5\u9053\u200b

                  \u200b\u91cd\u542f\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\u5df2\u7ecf\u200b\u81ea\u52a8\u200b\u542f\u52a8\u200b\u4e86\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#qq","title":"QQ","text":"

                  qq \u200b\u5e76\u200b\u4e0d\u200b\u5728\u200b extra \u200b\u76ee\u5f55\u200b\u4e2d\u200b\uff0c\u200b\u800c\u662f\u200b\u8ddf\u200b autojump \u200b\u4e00\u6837\u200b\u5728\u200b aur \u200b\u4e2d\u200b\uff0c\u200b\u4e3a\u4e86\u200b\u4ece\u200b aur \u200b\u4e2d\u200b\u5b89\u88c5\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u50cf\u200b autojump \u200b\u90a3\u6837\u200b clone repo \u200b\u7136\u540e\u200b makepkg\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4e00\u4e9b\u200b\u81ea\u52a8\u5316\u200b\u5de5\u5177\u200b\u6765\u200b\u5e2e\u200b\u6211\u200b\u4e13\u95e8\u200b\u505a\u200b\u8fd9\u4ef6\u200b\u4e8b\u200b\uff0c\u200b\u6bd4\u5982\u200b yay \u200b\u6216\u8005\u200b paru\uff08\u200b\u7528\u200b rust \u200b\u91cd\u5199\u200b\u7684\u200b\uff09

                  \u200b\u5b89\u88c5\u200b yay
                  git clone https://aur.archlinux.org/yay.git\ncd yay\nmakepkg -si\n

                  \u200b\u7136\u540e\u200b\u7528\u200b yay \u200b\u5b89\u88c5\u200b qq

                  yay -S qq\n

                  \u200b\u4e24\u4e2a\u200b\u9009\u9879\u200b\u4e00\u822c\u200b\u9009\u200b None

                  \u200b\u5b89\u88c5\u200b\u5b8c\u6bd5\u200b\u540e\u200b\u7528\u200b linuxqq \u200b\u547d\u4ee4\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u542f\u52a8\u200b qq \u200b\u4e86\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#python","title":"python \u200b\u73af\u5883","text":"

                  \u200b\u9996\u5148\u200b\u7528\u200b yay \u200b\u5b89\u88c5\u200b anaconda

                  yay -S anaconda\n
                  \u200b\u5b89\u88c5\u200b\u5b8c\u6210\u200b\u540e\u200b\u6309\u7167\u200b\u6307\u793a\u200b activate \u200b\u4e86\u200b\u4e4b\u540e\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5728\u200b\u547d\u4ee4\u884c\u200b\u4f7f\u7528\u200b conda \u200b\u4e86\u200b

                  \u200b\u7136\u540e\u200b\u5982\u5e38\u200b\u4f7f\u7528\u200b\u5373\u53ef\u200b\uff0c\u200b\u6211\u200b\u7684\u200b pip \u200b\u4e5f\u200b\u662f\u200b\u7528\u200b conda \u200b\u88c5\u200b\u7684\u200b\u56e0\u4e3a\u200b pacman \u200b\u88c5\u200b\u7684\u200b\u4f3c\u4e4e\u200b\u548c\u200b conda \u200b\u914d\u5408\u200b\u5f97\u200b\u4e0d\u662f\u200b\u5f88\u200b\u597d\u200b

                  IDE \u200b\u9009\u62e9\u200b code

                  sudo pacman -S code\n
                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_7","title":"\u547d\u4ee4\u884c\u200b\u5de5\u5177","text":"

                  \u200b\u6709\u4e9b\u200b\u7528\u200b rust \u200b\u91cd\u5199\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b\u90fd\u200b\u8fd8\u200b\u633a\u597d\u7528\u200b\u7684\u200b

                  • bottom
                  • eza
                  • bat

                  \u200b\u5e76\u4e14\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b alias \u200b\u65e0\u611f\u200b\u4ee3\u66ff\u200b\u5b83\u4eec\u200b\u7684\u200b\u539f\u7248\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_8","title":"\u4ee3\u7406","text":"

                  \u200b\u5f88\u200b\u4e0d\u5e78\u200b\u7684\u200b\u662f\u200b clash \u200b\u4e00\u200b\u7cfb\u200b\u524d\u4e0d\u4e45\u200b\u5220\u5e93\u200b\u8dd1\u200b\u8def\u200b\u4e86\u200b\uff0c\u200b\u4e0d\u8fc7\u200b\u8fd8\u6709\u200b\u4e00\u652f\u200b clash-verge-rev \u200b\u4ecd\u7136\u200b\u5728\u200b\u7ef4\u62a4\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4ece\u200b aur \u200b\u5b89\u88c5\u200b

                  git clone https://aur.archlinux.org/clash-verge-rev-bin.git\ncd clash-verge-rev-bin\nmakepkg -si\n

                  \u200b\u5b8c\u6210\u200b\u540e\u200b\u4f7f\u7528\u200b clash-verge \u200b\u542f\u52a8\u200b\u5373\u53ef\u200b\uff0c\u200b\u7528\u6cd5\u200b\u662f\u200b\u4f7f\u7528\u200b\u673a\u573a\u200b\u7ed9\u200b\u7684\u200b url

                  \u200b\u4f46\u200b\u6211\u200b\u8c8c\u4f3c\u200b\u5f00\u542f\u200b\u4e86\u200b system proxy \u200b\u4e4b\u540e\u200b\u5176\u4ed6\u200b\u7684\u200b\u5e94\u7528\u200b\u4ecd\u7136\u200b\u6ca1\u6709\u200b\u76f4\u63a5\u200b\u8d70\u200b\u68af\u5b50\u200b\uff1f

                  \u200b\u5bf9\u4e8e\u200b\u8fd9\u6837\u200b\u7684\u200b\u60c5\u51b5\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u624b\u52a8\u200b\u8bbe\u7f6e\u200b system proxy

                  \u200b\u5728\u200b/etc/environment \u200b\u4e2d\u200b\u52a0\u5165\u200b

                  http_proxy=http://127.0.0.1:7897\nhttps_proxy=http://127.0.0.1:7897\nall_proxy=http://127.0.0.1:7897\n

                  \u200b\u91cd\u542f\u200b\u5b9e\u9a8c\u200b\u5373\u53ef\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_9","title":"\u5916\u200b\u63a5\u663e\u793a\u5668","text":"

                  \u200b\u8fd9\u4e2a\u200b hyprland \u200b\u7684\u200b\u5b98\u7f51\u200b\u8bf4\u200b\u7684\u200b\u6bd4\u8f83\u6e05\u695a\u200b\u4e86\u200b\uff0ctldr\uff1a

                  \u200b\u9996\u5148\u200b\u7528\u200b hyprctl monitors list \u200b\u5217\u51fa\u200b\u6240\u6709\u200b\u8fde\u63a5\u200b\u7684\u200b\u663e\u793a\u5668\u200b\uff0c\u200b\u627e\u5230\u200b\u4f60\u200b\u8981\u200b\u8bbe\u7f6e\u200b\u7684\u200b\u663e\u793a\u5668\u200b\u7684\u200b\u6807\u8bc6\u7b26\u200b\uff0c\u200b\u6bd4\u5982\u200b\u6211\u200b\u8fd9\u91cc\u200b\u662f\u200b HDMI-A-1

                  \u200b\u7136\u540e\u200b\u5728\u200b~/.config/hypr/hyperland.conf \u200b\u4e2d\u200b\u4fee\u6539\u200b monitor \u200b\u7684\u200b\u914d\u7f6e\u200b \u200b\u6bd4\u5982\u200b\u6211\u200b\u7684\u200b\u7b2c\u4e8c\u5757\u200b\u5c4f\u5e55\u200b\u7684\u200b\u914d\u7f6e\u200b\u5c31\u662f\u200b

                  monitor=HDMI-A-1,preferred,auto,1.666667\n
                  \u200b\u66f4\u200b\u591a\u200b\u8bf8\u5982\u200b\u5237\u65b0\u7387\u200b\u8272\u6df1\u200b\u4e4b\u7c7b\u200b\u7684\u200b\u8bf7\u200b\u53c2\u8003\u200b\u5b98\u7f51\u200b

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_10","title":"\u622a\u56fe","text":"

                  \u200b\u4f7f\u7528\u200b yay \u200b\u5b89\u88c5\u200b grimblast\uff0c\u200b\u5982\u679c\u200b\u6ca1\u6709\u200b wl-clipboard \u200b\u7684\u8bdd\u200b\uff0c\u200b\u8fd8\u200b\u9700\u8981\u200b\u7528\u200b Pacman \u200b\u6765\u200b\u5b89\u88c5\u200b wl-clipboard

                  "},{"location":"blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/#_11","title":"\u5176\u4ed6","text":"

                  \u200b\u5176\u4ed6\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u5b89\u88c5\u200b\u7684\u200b\u5de5\u5177\u200b\u6709\u200b

                  • neofetch
                  • flatpak
                  • preload
                  "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/","title":"\u7528\u200b Docker \u200b\u642d\u5efa\u200b minisql \u200b\u73af\u5883","text":"

                  Abstract

                  \u200b\u4e00\u4e2a\u200b\u7b80\u6613\u200b\u7684\u200b\u6559\u7a0b\u200b\u6765\u200b\u4ecb\u7ecd\u200b\u5982\u4f55\u200b\u5728\u200b MacOS \u200b\u4e0a\u7528\u200b docker \u200b\u642d\u5efa\u200b minisql \u200b\u73af\u5883\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6709\u4eba\u200b\u8981\u200b\u95ee\u200b\u4e86\u200b\uff0c\u200b\u4e3a\u4ec0\u4e48\u200b\u4e0d\u200b\u76f4\u63a5\u200b\u672c\u5730\u200b\u90e8\u7f72\u200b\u5462\u200b\u3002 \u200b\u6211\u200b\u4e5f\u200b\u60f3\u200b\u672c\u5730\u200b\u90e8\u7f72\u200b\u554a\u200b\uff0c\u200b\u4f46\u662f\u200b\u7f16\u8bd1\u200b\u8d77\u6765\u200b\u7834\u4e8b\u200b\u592a\u591a\u200b\u4e86\u200b\ud83d\ude05\uff0c\u200b\u7d22\u6027\u200b\u8bd5\u200b\u4e00\u79cd\u200b\u8de8\u5e73\u53f0\u200b\u7684\u200b\u65b9\u6848\u200b\u3002

                  \u200b\u73af\u5883\u200b

                  MacOS: Ventura 13.4.1 Docker: 4.16.2 Ubuntu: 20.04

                  "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#1","title":"1.\u200b\u542f\u52a8\u200b\u5bb9\u5668","text":""},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#11-docker","title":"1.1 \u200b\u4e0b\u8f7d\u200b Docker","text":"

                  \u200b\u9996\u5148\u200b\u4f60\u200b\u8981\u200b\u6709\u200b docker \u200b\u8f6f\u4ef6\u200b\uff0c\u200b\u5148\u53bb\u200b\u5b98\u7f51\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u3002

                  "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#12","title":"1.2 \u200b\u62c9\u53d6\u200b\u955c\u50cf","text":"

                  \u200b\u542f\u52a8\u200b docker \u200b\u8f6f\u4ef6\u200b.\u200b\u6765\u5230\u200b\u547d\u4ee4\u884c\u200b\u4e2d\u200b\u8f93\u5165\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b\u6765\u62c9\u53d6\u200b ubuntu:20.04 \u200b\u955c\u50cf\u200b\uff08minisql \u200b\u5f53\u524d\u200b\u63a8\u8350\u200b\u90e8\u7f72\u200b\u5728\u200b ubuntu:20.04\uff09\uff1a

                  docker pull ubuntu:20.04\n

                  \u200b\u955c\u50cf\u200b

                  \u200b\u955c\u50cf\u200b\uff08Image\uff09\u200b\u662f\u200b\u4e00\u4e2a\u200b\u9759\u6001\u200b\u7684\u200b\u3001\u200b\u53ea\u8bfb\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5b83\u200b\u5305\u542b\u200b\u4e86\u200b\u64cd\u4f5c\u7cfb\u7edf\u200b\u3001\u200b\u6587\u4ef6\u7cfb\u7edf\u200b\u548c\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u7684\u200b\u6240\u6709\u200b\u6587\u4ef6\u200b\u548c\u200b\u8bbe\u7f6e\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u6784\u5efa\u200b\u5bb9\u5668\u200b\u7684\u200b\u57fa\u7840\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u4f5c\u200b\u662f\u200b\u4e00\u4e2a\u200b\u6a21\u677f\u200b\u6216\u8005\u200b\u84dd\u56fe\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u901a\u8fc7\u200b Dockerfile \u200b\u6587\u4ef6\u200b\u5b9a\u4e49\u200b\u548c\u200b\u6784\u5efa\u200b\u7684\u200b\uff0cDockerfile \u200b\u4e2d\u200b\u5305\u542b\u200b\u4e86\u200b\u4e00\u7cfb\u5217\u200b\u6307\u4ee4\u200b\u548c\u200b\u914d\u7f6e\u200b\uff0c\u200b\u7528\u4e8e\u200b\u521b\u5efa\u200b\u955c\u50cf\u200b.\u200b\u955c\u50cf\u200b\u53ef\u4ee5\u200b\u5b58\u50a8\u200b\u5728\u200b Docker Registry \u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u955c\u50cf\u200b\u540d\u79f0\u200b\u548c\u200b\u6807\u7b7e\u200b\u6765\u200b\u552f\u4e00\u200b\u6807\u8bc6\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u4e0d\u53ef\u200b\u4fee\u6539\u200b\u7684\u200b\uff0c\u200b\u5982\u679c\u200b\u9700\u8981\u200b\u5bf9\u200b\u955c\u50cf\u200b\u8fdb\u884c\u200b\u66f4\u6539\u200b\uff0c\u200b\u9700\u8981\u200b\u91cd\u65b0\u200b\u6784\u5efa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u955c\u50cf\u200b\u3002

                  docker imagesdocker pulldocker rmi

                  \u200b\u4f7f\u7528\u200bdocker images\u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u5f53\u524d\u200b\u5df2\u6709\u200b\u7684\u200b\u955c\u50cf\u200b\u5217\u8868\u200b.\u200b\u8fd9\u200b\u5c06\u200b\u663e\u793a\u200b\u6240\u6709\u200b\u5df2\u200b\u4e0b\u8f7d\u200b\u548c\u200b\u6784\u5efa\u200b\u7684\u200b\u955c\u50cf\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5b83\u4eec\u200b\u7684\u200b\u76f8\u5173\u200b\u4fe1\u606f\u200b\uff0c\u200b\u5982\u200b\u955c\u50cf\u200b ID\u3001\u200b\u540d\u79f0\u200b\u3001\u200b\u6807\u7b7e\u200b\u3001\u200b\u5927\u5c0f\u200b\u7b49\u200b.

                  \u200b\u4f7f\u7528\u200bdocker pull\u200b\u547d\u4ee4\u200b\u4ece\u200b Docker Registry \u200b\u4e2d\u62c9\u53d6\u200b\u955c\u50cf\u200b.\u200b\u5982\u679c\u200b\u4e0d\u200b\u6307\u5b9a\u200b\u6807\u7b7e\u200b\uff0c\u200b\u9ed8\u8ba4\u200b\u62c9\u53d6\u200b latest \u200b\u6807\u7b7e\u200b\u7684\u200b\u955c\u50cf\u200b.\u200b\u4f8b\u5982\u200b\uff0cdocker pull ubuntu:20.04\u200b\u5c06\u62c9\u53d6\u200b Ubuntu 20.04 \u200b\u955c\u50cf\u200b\u3002

                  \u200b\u4f7f\u7528\u200bdocker rmi\u200b\u547d\u4ee4\u200b\u5220\u9664\u200b\u955c\u50cf\u200b.\u200b\u4f8b\u5982\u200b\uff0cdocker rmi ubuntu:20.04\u200b\u5c06\u200b\u5220\u9664\u200b Ubuntu 20.04 \u200b\u955c\u50cf\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b ID \u200b\u6307\u5b9a\u200b\u8981\u200b\u5220\u9664\u200b\u7684\u200b\u955c\u50cf\u200b\u3002

                  "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#13","title":"1.3 \u200b\u542f\u52a8\u200b\u5bb9\u5668","text":"

                  \u200b\u7528\u200bdocker run\u200b\u542f\u52a8\u200b\u4e00\u4e2a\u200b\u5bb9\u5668\u200b\uff0c\u200b\u53c2\u6570\u200b-it\u200b\u8868\u793a\u200b\u542f\u52a8\u200b\u5b8c\u540e\u200b\u76f4\u63a5\u200b\u542f\u52a8\u200b\u5bb9\u5668\u200b\u7684\u200b\u7ec8\u7aef\u200b\u4ee5\u4f9b\u200b\u64cd\u4f5c\u200b\uff0c-p\u200b\u8868\u793a\u200b\u7aef\u53e3\u6620\u5c04\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u628a\u200b loclahost:2333 \u200b\u6620\u5c04\u200b\u4e3a\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\uff0c--name\u200b\u540e\u63a5\u200b\u5bb9\u5668\u200b\u540d\u5b57\u200b\uff0cubuntu:20.04\u200b\u8868\u793a\u200b\u4f7f\u7528\u200b\u7684\u200b\u955c\u50cf\u200b\u3002

                  docker run -it  -p 2333:22 --name minisql ubuntu:20.04\n
                  \u200b\u6267\u884c\u200b\u5b8c\u200b\u547d\u4ee4\u200b\u5e94\u200b\u770b\u5230\u200b\u6211\u4eec\u200b\u4ee5\u200b root \u200b\u7528\u6237\u200b\u8fdb\u5165\u200b\u4e86\u200b\u5bb9\u5668\u200b\u7684\u200b\u7ec8\u7aef\u200b\uff1a

                  \u200b\u7aef\u53e3\u6620\u5c04\u200b

                  \u200b\u7aef\u53e3\u6620\u5c04\u200b\u662f\u200b\u4e00\u79cd\u200b\u5c06\u200b\u4e3b\u673a\u200b\uff08\u200b\u5bbf\u4e3b\u673a\u200b\uff09\u200b\u7aef\u53e3\u200b\u4e0e\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u7aef\u53e3\u200b\u8fdb\u884c\u200b\u7ed1\u5b9a\u200b\u7684\u200b\u6280\u672f\u200b.\u200b\u5b83\u200b\u5141\u8bb8\u200b\u4ece\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u7684\u200b\u7279\u5b9a\u200b\u7aef\u53e3\u200b\u8bbf\u95ee\u200b\u5bb9\u5668\u200b\u5185\u200b\u8fd0\u884c\u200b\u7684\u200b\u670d\u52a1\u200b\u6216\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u3002

                  \u200b\u5728\u200b Docker \u200b\u4e2d\u200b\uff0c\u200b\u901a\u8fc7\u200b\u4f7f\u7528\u200b-p\u200b\u6216\u200b--publish\u200b\u53c2\u6570\u200b\u6765\u200b\u8fdb\u884c\u200b\u7aef\u53e3\u6620\u5c04\u200b.\u200b\u53c2\u6570\u200b\u7684\u200b\u683c\u5f0f\u200b\u4e3a\u200b\u4e3b\u673a\u200b\u7aef\u53e3\u200b\uff1a\u200b\u5bb9\u5668\u200b\u7aef\u53e3\u200b\uff0c\u200b\u5176\u4e2d\u200b\u4e3b\u673a\u200b\u7aef\u53e3\u200b\u662f\u200b\u60a8\u200b\u5e0c\u671b\u200b\u5728\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u66b4\u9732\u200b\u7684\u200b\u7aef\u53e3\u53f7\u200b\uff0c\u200b\u5bb9\u5668\u200b\u7aef\u53e3\u200b\u662f\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u670d\u52a1\u200b\u6240\u200b\u76d1\u542c\u200b\u7684\u200b\u7aef\u53e3\u53f7\u200b\u3002

                  docker run -it -p 2333:22 --name minisql ubuntu:20.04\u200b\u547d\u4ee4\u200b\u5c06\u200b\u4e3b\u673a\u200b\u7684\u200b 2333 \u200b\u7aef\u53e3\u6620\u5c04\u200b\u5230\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b.\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u7684\u200b\u4efb\u4f55\u200b\u8bf7\u6c42\u200b\u53d1\u9001\u5230\u200b 2333 \u200b\u7aef\u53e3\u200b\u65f6\u200b\uff0c\u200b\u5c06\u200b\u88ab\u200b\u8f6c\u53d1\u200b\u5230\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\uff0c22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\u662f\u200b SSH \u200b\u4f7f\u7528\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u7aef\u53e3\u200b.\u200b\u56e0\u6b64\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u8bbf\u95ee\u200b\u4e3b\u673a\u200b\u7684\u200b 2333 \u200b\u7aef\u53e3\u200b\u6765\u200b\u8bbf\u95ee\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u8fd0\u884c\u200b\u7684\u200b SSH \u200b\u670d\u52a1\u200b\uff0c\u200b\u4ee5\u4fbf\u200b\u8fdb\u884c\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u548c\u200b\u64cd\u4f5c\u200b\u3002

                  "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#2","title":"2.\u200b\u73af\u5883\u200b\u521d\u6b65\u200b\u8bbe\u7f6e","text":""},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#21","title":"2.1\uff08\u200b\u53ef\u200b\u9009\u200b\uff09\u200b\u6362\u6e90","text":"\u53ef\u80fd\u200b\u5b58\u5728\u200b\u7684\u200b\u95ee\u9898\u200b

                  \u200b\u6709\u65f6\u5019\u200b\u76f4\u63a5\u200b\u6362\u6e90\u4f1a\u200b\u9047\u5230\u200b\u62a5\u9519\u200b\uff1a \u200b\u8fd9\u200b\u9700\u8981\u200b\u6211\u4eec\u200b\u5148\u200b\u4f7f\u7528\u200b http\uff0c\u200b\u8fd0\u884c\u200b\u5982\u4e0b\u200b\u547d\u4ee4\u200b\u6362\u200b http \u200b\u6e90\u200b\uff1a

                  echo \"\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n\" > /etc/apt/sources.list\n
                  \u200b\u8fd9\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b\u4e0b\u200b\u4e00\u6b65\u200b\u4e86\u200b\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u5e0c\u671b\u200b\u5728\u200b\u4e4b\u540e\u200b\u6362\u56de\u200b https \u200b\u6e90\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5728\u200b\u6267\u884c\u200b\u5b8c\u200b 2.2 \u200b\u540e\u200b\uff0c\u200b\u9700\u8981\u200b\u5148\u200b

                  \u200b\u66f4\u65b0\u200b\u8bc1\u4e66\u200b\uff1a

                  apt install --reinstall ca-certificates\n
                  \u200b\u6362\u56de\u200b https \u200b\u6e90\u200b\uff1a
                  echo \"\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n\" > /etc/apt/sources.list\n
                  \u200b\u518d\u6b21\u200b\u66f4\u65b0\u200b apt\uff1a
                  apt update\napt upgrade\n
                  \u200b\u5373\u53ef\u200b\uff08\u200b\u8be5\u200b\u65b9\u6cd5\u200b\u6765\u81ea\u200b\u6b64\u200b\u535a\u5ba2\u200b)

                  \u200b\u76f4\u63a5\u200b\u6267\u884c\u547d\u4ee4\u200b\u5373\u53ef\u200b

                  cp /etc/apt/sources.list /etc/apt/sources.list.bak\necho \"\n    deb https://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\n    deb https://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\n    deb https://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\n    deb https://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n    \" > /etc/apt/sources.list\n

                  \u200b\u6362\u6e90\u200b

                  \u200b\u6362\u6e90\u200b\u662f\u200b\u6307\u200b\u5c06\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\uff08\u200b\u955c\u50cf\u200b\uff09\u200b\u66ff\u6362\u200b\u4e3a\u200b\u7279\u5b9a\u200b\u5730\u533a\u200b\u6216\u200b\u7f51\u7edc\u200b\u73af\u5883\u200b\u4e0b\u200b\u66f4\u200b\u5feb\u901f\u200b\u3001\u200b\u53ef\u9760\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b.\u200b\u8fd9\u662f\u200b\u4e3a\u4e86\u200b\u63d0\u9ad8\u200b\u8f6f\u4ef6\u5305\u200b\u7684\u200b\u4e0b\u8f7d\u901f\u5ea6\u200b\u3001\u200b\u89e3\u51b3\u200b\u7f51\u7edc\u200b\u8bbf\u95ee\u200b\u9650\u5236\u200b\u6216\u200b\u8bbf\u95ee\u200b\u7279\u5b9a\u200b\u5730\u533a\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u800c\u200b\u91c7\u53d6\u200b\u7684\u200b\u63aa\u65bd\u200b\u3002

                  \u200b\u66f4\u6362\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\u7684\u200b\u5177\u4f53\u65b9\u6cd5\u200b\u4f1a\u56e0\u200b\u4e0d\u540c\u200b\u7684\u200b\u64cd\u4f5c\u7cfb\u7edf\u200b\u548c\u200b\u8f6f\u4ef6\u5305\u200b\u7ba1\u7406\u5de5\u5177\u200b\u800c\u200b\u6709\u6240\u200b\u5dee\u5f02\u200b.\u200b\u5728\u200b\u57fa\u4e8e\u200b Ubuntu \u200b\u7684\u200b Docker \u200b\u5bb9\u5668\u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7f16\u8f91\u200b /etc/apt/sources.list \u200b\u6587\u4ef6\u200b\uff0c\u200b\u5c06\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\u66ff\u6362\u200b\u4e3a\u200b\u56fd\u5185\u200b\u7684\u200b\u955c\u50cf\u200b\u6e90\u200b\uff0c\u200b\u5982\u200b\u6d59\u6c5f\u5927\u5b66\u200b\u3001\u200b\u6e05\u534e\u5927\u5b66\u200b\u7b49\u200b.\u200b\u8fd9\u6837\u4e00\u6765\u200b\uff0c\u200b\u901a\u8fc7\u200b\u5bb9\u5668\u200b\u4e2d\u200b\u7684\u200b apt-get \u200b\u6216\u200b apt \u200b\u547d\u4ee4\u200b\u5b89\u88c5\u200b\u8f6f\u4ef6\u200b\u65f6\u200b\uff0c\u200b\u5c06\u200b\u4ece\u200b\u56fd\u5185\u200b\u955c\u50cf\u200b\u6e90\u200b\u4e0b\u8f7d\u200b\u8f6f\u4ef6\u5305\u200b\uff0c\u200b\u63d0\u9ad8\u200b\u901f\u5ea6\u200b\u548c\u200b\u7a33\u5b9a\u6027\u200b\u3002

                  "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#22","title":"2.2 \u200b\u5b89\u88c5\u200b\u5fc5\u8981\u200b\u5de5\u5177","text":"

                  \u200b\u9996\u5148\u200b\u66f4\u65b0\u200b apt

                  apt update\napt upgrade\n

                  \u200b\u5b89\u88c5\u200b\u4e00\u4e9b\u200b\u5fc5\u8981\u200b\u7684\u200b\u5de5\u5177\u200b\uff1a

                  apt install openssh-server vim git cmake gcc g++ gdb sudo\n

                  "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#3-ssh-vscode","title":"3.\u200b\u914d\u7f6e\u200b SSH\uff0c\u200b\u4f7f\u7528\u200b VSCode \u200b\u5f00\u53d1","text":""},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#31","title":"3.1\uff08\u200b\u53ef\u200b\u9009\u200b\uff09\u200b\u521b\u5efa\u200b\u7528\u6237","text":"

                  \u200b\u5982\u679c\u200b\u5e0c\u671b\u200b\u7528\u975e\u200b root \u200b\u7528\u6237\u200b\u767b\u9646\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5148\u200b\u521b\u5efa\u200b\u5e76\u200b\u8bbe\u7f6e\u200b\u4e00\u4e2a\u200b\u7528\u6237\u200b\uff1a

                  useradd -m stormckey\npasswd stormckey\n
                  \u200b\u8fd9\u91cc\u200b\u7684\u200b stormckey \u200b\u6362\u6210\u200b\u4f60\u200b\u81ea\u5df1\u200b\u8d77\u200b\u7684\u200b\u7528\u6237\u540d\u200b

                  \u200b\u7ed9\u200b\u7528\u6237\u200b\u6dfb\u52a0\u200b sudo \u200b\u6743\u9650\u200b\uff0c\u200b\u9700\u8981\u200b\u5728\u200b/etc/sudoers\u200b\u6587\u4ef6\u200b\u4e2d\u200b# User privilege specification\u200b\u6dfb\u52a0\u200b\uff1a

                  "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#32","title":"3.2 \u200b\u914d\u7f6e\u200b\u514d\u5bc6\u200b\u767b\u9646","text":"

                  \u200b\u6765\u5230\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u7684\u200b\u53d1\u8d77\u8005\u200b\u7aef\u200b\uff08\u200b\u8fd9\u91cc\u200b\u5c31\u662f\u200b\u5bbf\u4e3b\u673a\u200b\uff09\uff0c\u200b\u6267\u884c\u200b\u4e0b\u9762\u200b\u547d\u4ee4\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u8f93\u5165\u200b paseephrase \u200b\u65f6\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff08\u200b\u4e3a\u7a7a\u200b\uff09

                  ssh-keygen\n
                  \u200b\u6765\u5230\u200b\u63d0\u793a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u590d\u5236\u200b id_rsa.pub \u200b\u7684\u200b\u5185\u5bb9\u200b\uff0c\u200b\u5c06\u200b\u5b83\u200b\u5199\u5165\u200b\u88ab\u200b\u8fde\u63a5\u7aef\u200b\uff08\u200b\u8fd9\u91cc\u200b\u662f\u200b\u5bb9\u5668\u200b\uff09\u200b\u7684\u200b/home/stormckey/.ssh/authorized_keys\u200b\u6587\u4ef6\u200b\u4e2d\u200b

                  \u200b\u53e6\u200b\u4e00\u79cd\u200b\u66f4\u200b\u65b9\u4fbf\u200b\u7684\u200b\u65b9\u6848\u200b

                  \u200b\u5728\u200b\u53ef\u4ee5\u200b\u7528\u200b\u5bc6\u7801\u200b\u767b\u5f55\u200b\u4e86\u200b\u4e4b\u540e\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200bssh-copy-id\u200b\u547d\u4ee4\u200b\u4e00\u952e\u200b\u628a\u200b\u5bc6\u94a5\u200b\u653e\u7f6e\u200b\u5230\u200b\u670d\u52a1\u5668\u200b\u5e76\u200b\u505a\u597d\u200b\u76f8\u5e94\u200b\u7684\u200b\u8bbe\u7f6e\u200b

                  ssh-copy-id -i ~/.ssh/id_rsa.pub stormckey@localhost -p 2333\n

                  \u200b\u63a5\u7740\u200b\u914d\u7f6e\u200b\u5bb9\u5668\u200b\u7684\u200b sshd: vim /etc/ssh/sshd_config

                  \u200b\u53bb\u6389\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u6ce8\u91ca\u200b\uff1a \u200b\u6ce8\u610f\u200b\u7b2c\u4e8c\u5f20\u200b\u56fe\u4e2d\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e00\u5b9a\u200b\u662f\u200b\u4f60\u200b\u4e4b\u524d\u200b\u653e\u516c\u94a5\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u8def\u5f84\u200b\u4ece\u200b\u7528\u6237\u200b\u6839\u76ee\u5f55\u200b\u5f00\u59cb\u200b

                  \u200b\u66f4\u6539\u200b\u5b8c\u200b\u914d\u7f6e\u200b\u540e\u200b\u542f\u52a8\u200b/\u200b\u91cd\u542f\u200b sshd

                  service ssh start\n
                  \u200b\u6211\u4eec\u200b\u6700\u597d\u200b\u628a\u200b\u81ea\u52a8\u200b\u542f\u52a8\u200b ssh \u200b\u670d\u52a1\u200b\u52a0\u5165\u200b bashrc\uff0c\u200b\u8fd9\u6837\u200b\u542f\u52a8\u200b\u5bb9\u5668\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u4f1a\u200b\u81ea\u52a8\u200b\u542f\u52a8\u200b ssh \u200b\u670d\u52a1\u200b\u4e86\u200b
                  echo \"service ssh start\" >> /root/.bashrc\n

                  \u200b\u6b64\u65f6\u200b\u4f60\u200b\u5728\u200b\u5bbf\u4e3b\u673a\u200b\u4e0a\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200bssh stormckey@localhost -p 2333\u200b\u767b\u9646\u200b\u5bb9\u5668\u200b\u4e86\u200b\uff1a

                  "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#33-vscode","title":"3.3 \u200b\u914d\u7f6e\u200b VSCode","text":"

                  \u200b\u4e0b\u8f7d\u200b\u63d2\u4ef6\u200b Remote-SSH \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u70b9\u51fb\u200b\u53f3\u8fb9\u200b\u51fa\u73b0\u200b\u7684\u200b\u63d2\u4ef6\u200b\u56fe\u6807\u200b\uff0c\u200b\u5728\u200b\u4fa7\u680f\u200b\u4e2d\u200b\u9009\u62e9\u200b\u8bbe\u7f6e\u200b SSH\uff1a

                  \u200b\u5199\u5165\u200b\u5982\u4e0b\u200b\u7684\u200b\u914d\u7f6e\u200b\u4fe1\u606f\u200b\uff1a

                  \u200b\u8fde\u63a5\u200b\uff01

                  \u200b\u6b64\u540e\u200b\u5c31\u200b\u6ca1\u6709\u200b\u4ec0\u4e48\u200b\u7279\u522b\u200b\u7684\u200b\u4e86\u200b\uff0c\u200b\u6253\u5f00\u200b\u7ec8\u7aef\u200b\u76f4\u63a5\u200b\u6309\u7167\u200b\u52a9\u6559\u200b\u7684\u200b\u6587\u6863\u200b\u914d\u7f6e\u200b minisql \u200b\u5373\u53ef\u200b\u3002

                  "},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#4","title":"4.\u200b\u66f4\u200b\u591a\u200b\u8bbe\u7f6e","text":"

                  \u200b\u73b0\u5728\u200b\u4f60\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u4e2a\u200b\u7b80\u964b\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5f00\u59cb\u200b\u5de5\u4f5c\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u5982\u679c\u200b\u4f60\u200b\u559c\u6b22\u200b\u7684\u8bdd\u200b\u53ef\u4ee5\u200b\u52a0\u5165\u200b\u66f4\u200b\u591a\u200b\u8bbe\u7f6e\u200b\uff01

                  \u200b\u7ec8\u7aef\u200b\u7f8e\u5316\u200b

                  \u200b\u89c1\u6b64\u200b\u535a\u5ba2\u200b

                  "},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/","title":"\u914d\u7f6e\u200b Github Profile","text":"

                  Abstract

                  \u200b\u6211\u200b\u914d\u7f6e\u200b Github \u200b\u4e3b\u9875\u200b Profile \u200b\u7684\u200b\u65b9\u6848\u200b\uff0c\u200b\u7075\u611f\u200b\u6765\u81ea\u200bTonycrane \u200b\u7684\u200b GitHub \u200b\u4e3b\u9875\u200b

                  "},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/#github-profile_1","title":"\u542f\u7528\u200b Github \u200b\u4e3b\u9875\u200b Profile","text":"

                  \u200b\u6211\u4eec\u200b\u5148\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u8ddf\u200b\u81ea\u5df1\u200b\u8d26\u53f7\u200b\u540c\u540d\u200b\u7684\u200b\u516c\u5f00\u200b\u4ed3\u5e93\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u7684\u200b\u7528\u4f5c\u200b\u4e3b\u9875\u200b\u4ed3\u5e93\u200b Github \u200b\u4f1a\u200b\u5728\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u663e\u793a\u200b\u8fd9\u4e00\u200b\u4ed3\u5e93\u200b\u7684\u200b README \u200b\u6587\u6863\u200b\u4f5c\u4e3a\u200b Profile\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u7f16\u5199\u200b\u8fd9\u4e2a\u200b README \u200b\u6587\u6863\u200b\u5373\u53ef\u200b

                  \u200b\u672c\u4eba\u200b\u4e3b\u9875\u200b\u9884\u89c8\u200b

                  "},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/#metrics-profile","title":"\u542f\u7528\u200b Metrics \u200b\u751f\u6210\u200b Profile \u200b\u56fe\u7247","text":"

                  \u200b\u63a8\u8350\u200b\u4f7f\u7528\u200bMetrics\u200b\u6765\u200b\u751f\u6210\u200b\u597d\u770b\u200b\u7684\u200b Profile

                  Metrics \u200b\u4f7f\u7528\u200b GitHub Action \u200b\u81ea\u52a8\u66f4\u65b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u7167\u7740\u200b\u94fe\u63a5\u200b\u91cc\u200b\u7684\u200b\u4ecb\u7ecd\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b8c\u6210\u200b\u90e8\u7f72\u200b.Metrics \u200b\u8fd8\u200b\u652f\u6301\u200b\u8bb8\u591a\u200b\u4e0d\u540c\u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5927\u5bb6\u200b\u53ef\u4ee5\u200b\u968f\u610f\u200b\u9009\u62e9\u200b\u81ea\u5df1\u200b\u559c\u6b22\u200b\u7684\u200b\uff0c\u200b\u6700\u540e\u200b\u8d34\u200b\u4e0a\u200b\u7b14\u8005\u200b\u6ce8\u91ca\u200b\u7684\u200b\u7684\u200b Action \u200b\u914d\u7f6e\u200b\u548c\u200b README \u200b\u6e90\u4ee3\u7801\u200b\uff0c\u200b\u6b22\u8fce\u200b\u501f\u9274\u200b\u4f7f\u7528\u200b\uff01

                  \u200b\u53c2\u8003\u200b\u914d\u7f6e\u200b Metrics.ymlREADME.md
                  name: Metrics\non:\n# Schedule updates per hour\nschedule: [{cron: \"0 * * * *\"}]\n# (optional) Run workflow manually\nworkflow_dispatch:\n# (optional) Run workflow when pushing on master/main\npush: {branches: [\"master\"\uff0c \"main\"]}\njobs:\n#generate the left picture\ngithub-left-metrics:\n    runs-on: ubuntu-latest\n    permissions:\n    contents: write\n    steps:\n    - name: left\n        # use the official generator\n        uses: lowlighter/metrics@latest\n        with:\n        token: ${{ secrets.METRICS_TOKEN }}\n\n        # the file this action generates\n        filename: matrics-left.svg\n        config_timezone: Asia/Shanghai\n\n\n        # enable plugins\n        plugin_followup: yes\n\n\n        plugin_languages: yes\n        # repositories that wont be accounted\n        plugin_languages_skipped: stormckey/dotfiles\n        plugin_languages_ignored: html\uff0c css\uff0c ruby\uff0c perl\uff0c javascript\n        # show the size of source code and percentage of each language\n        plugin_languages_details: bytes-size\uff0c percentage\n\n\n        plugin_starlists: yes\n        plugin_starlists_languages: yes\n\n\n        config_order: followup\uff0c languages\uff0c starlists\n\ngithub-right-metrics:\n    runs-on: ubuntu-latest\n    permissions:\n    contents: write\n    steps:\n    - name: right\n        uses: lowlighter/metrics@latest\n        with:\n        #disable the basic metrics\n        base: \"\"\n        token: ${{ secrets.METRICS_TOKEN }}\n        filename: matrics-right.svg\n        config_timezone: Asia/Shanghai\n\n        plugin_topics: yes\n        plugin_topics_mode: icons\n\n\n        plugin_isocalendar: yes\n\n\n        plugin_anilist: yes\n        plugin_anilist_user: stormckey\n        plugin_anilist_sections: favorites\uff0c characters\n\n\n        config_order: topics\uff0c isocalendar\uff0c anilist\n
                  <h3 align=\"center\"> Stormckey </h3>\n\n<p align=\"center\">\n<samp>\n    <a href=\"https://stormckey.github.io/\">home page</a> \u2219\n</samp>\n</p>\n\n<p align=\"center\">\n<a href=\"https://github.com/stormckey\">\n    <img width=\"400\" align=\"top\" src=\"https://github.com/stormckey/stormckey/blob/main/matrics-left.svg\" />\n</a>\n&emsp;\n<a href=\"https://github.com/stormckey\">\n    <img width=\"400\" align=\"top\" src=\"https://github.com/stormckey/stormckey/blob/main/matrics-right.svg\" />\n</a>\n</p>\n
                  "},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/","title":"Linux \u200b\u7ec8\u7aef\u200b\u914d\u7f6e","text":"

                  Abstract

                  \u200b\u4e00\u4e9b\u200b\u6781\u5927\u200b\u5730\u200b\u589e\u5f3a\u200b linux \u200b\u7ec8\u7aef\u200b\u6613\u7528\u6027\u200b\u7684\u200b\u5de5\u5177\u200b

                  \u200b\u5bf9\u200b\u6211\u200b\u6765\u8bf4\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u8981\u200b\u65b0\u5f00\u200b\u4e00\u4e2a\u200b\u7528\u200b\u4e00\u6bb5\u65f6\u95f4\u200b\u7684\u200b\u73af\u5883\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u628a\u200b\u8fd9\u4e9b\u200b\u914d\u7f6e\u200b\u5148\u8dd1\u200b\u4e00\u904d\u200b

                  "},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#zsh","title":"\u542f\u7528\u200b zsh","text":"

                  sudo apt install zsh\nchsh -s /bin/zsh\n
                  \u200b\u91cd\u542f\u200b\u7ec8\u7aef\u200b\uff08docker \u200b\u4e2d\u8bf7\u200b\u91cd\u542f\u200b\u5bb9\u5668\u200b\uff09

                  "},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#zsh_1","title":"\u5b89\u88c5\u200b zsh \u200b\u63d2\u4ef6","text":"

                  \u200b\u5b89\u88c5\u200b p10k

                  git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~/.zsh/powerlevel10k\necho 'source ~/.zsh/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc\n
                  \u200b\u91cd\u542f\u200b shell

                  \u200b\u5b89\u88c5\u200b autosuggestion

                  git clone https://gitee.com/renkx/zsh-autosuggestions.git ~/.zsh/plugins/zsh-autosuggestions\necho '#Enable autosuggestion' >> ~/.zshrc\necho 'source ~/.zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc\n

                  \u200b\u5b89\u88c5\u200b syntaxhighlight

                  git clone https://gitee.com/renkx/zsh-syntax-highlighting.git ~/.zsh/plugins/zsh-syntax-highlighting\necho '#Enable syntax highlight' >> ~/.zshrc\necho 'source ~/.zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc\n

                  \u200b\u5b89\u88c5\u200b autojump

                  sudo apt install autojump\necho '#Enable autojump' >> ~/.zshrc\necho 'source  /usr/share/autojump/autojump.sh'>>~/.zshrc\n

                  "},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#vi","title":"\u5728\u200b\u547d\u4ee4\u884c\u200b\u4e2d\u200b\u542f\u7528\u200b vi","text":"
                  git clone https://github.com/soheilpro/zsh-vi-search.git ~/.zsh/plugins/zsh-vi-search\necho \"#Enable vi mode\" >> ~/.zshrc\necho \"bindkey -v\" >> ~/.zshrc\necho \"source ~/.zsh/plugins/zsh-vi-search/src/zsh-vi-search.zsh\" >> ~/.zshrc\n
                  "},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/","title":"\u7528\u200b ssh \u200b\u8fde\u63a5\u200b\u540c\u4e00\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u7684\u200b Wsl2","text":"

                  Abstract

                  \u200b\u4e3a\u4ec0\u4e48\u200b\u4f1a\u200b\u6709\u200b\u8fd9\u4e2a\u200b\u9700\u6c42\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u5927\u5b66\u200b\u5165\u5b66\u200b\u5e26\u200b\u7684\u200b\u7535\u8111\u5ba4\u200b\u662f\u200b\u4e00\u4e2a\u200b\u7eed\u822a\u200b\u7a00\u788e\u200b\u7684\u200b\u5de8\u91cd\u200b\u7684\u200b\u6e38\u620f\u200b\u672c\u200b\uff0c\u200b\u540e\u6765\u200b\u6709\u200b\u4e86\u200b mac \u200b\u4e4b\u540e\u200b\u6e38\u620f\u200b\u672c\u200b\u57fa\u672c\u200b\u6210\u200b\u53f0\u5f0f\u200b\u4e86\u200b\uff08\u200b\u4e0d\u662f\u200b\uff09\uff0c\u200b\u7528\u200b ssh \u200b\u8fde\u4e0a\u53bb\u200b\u4e3b\u8981\u200b\u662f\u200b\u7528\u200b\u4e00\u4e0b\u200b\u663e\u5361\u200b\u5565\u200b\u7684\u200b

                  Abstract

                  \u200b\u57fa\u7840\u200b\u7684\u200b\u6d41\u7a0b\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b\u535a\u5ba2\u200b\u5c31\u200b\u597d\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb0\u5f55\u200b\u4e00\u4e0b\u200b\u8e29\u200b\u7684\u200b\u96f7\u200b\u548c\u200b\u66f4\u200b\u8fdb\u9636\u200b\u7684\u200b\u8bbe\u7f6e\u200b

                  "},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#_1","title":"\u68c0\u67e5\u200b\u901a\u8def","text":"

                  \u200b\u8fd9\u200b\u4e00\u6b65\u200b\u6211\u4eec\u200b\u8981\u200b\u68c0\u67e5\u200b\u6211\u4eec\u200b\u5230\u200b\u8981\u200b\u8fde\u63a5\u200b\u7684\u200b\u7cfb\u7edf\u200b\u7684\u200b\u7f51\u7edc\u200b\u901a\u8def\u200b\u662f\u200b\u6b63\u5e38\u200b\u7684\u200b

                  Windows \u200b\u4f1a\u200b\u7ed9\u200b Wsl2 \u200b\u5206\u914d\u200b\u4e00\u4e2a\u200b\u865a\u62df\u200b\u7684\u200b\u672c\u5730\u200b\u7684\u200b\u5730\u5740\u200b\uff0c\u200b\u5728\u200b Windows \u200b\u8f93\u5165\u200bipconfig\u200b\u4ee5\u200b\u67e5\u770b\u200b\u8be5\u200b\u5730\u5740\u200b\u3002 \u200b\u6211\u4eec\u200b\u5728\u200b Wsl \u200b\u4e2d\u200b\u542f\u7528\u200b ssh \u200b\u670d\u52a1\u200b\u540e\u200b\uff0c\u200b\u60f3\u8981\u200b\u9a8c\u8bc1\u200b Wsl \u200b\u662f\u5426\u200b\u53ef\u200b\u88ab\u200b\u8fde\u63a5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5148\u200b\u5728\u200b Windows \u200b\u4e2d\u8bd5\u200b\u7740\u200b\u7528\u200b ssh \u200b\u8fde\u63a5\u200b ifconfig \u200b\u4e2d\u200b\u770b\u5230\u200b\u7684\u200b\u5730\u5740\u200b

                  \u200b\u968f\u540e\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u4ece\u200b\u5c40\u57df\u7f51\u200b\u8fde\u63a5\u200b Windows \u200b\u4e5f\u200b\u662f\u200b\u901a\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u7528\u200bipconfig\u200b\u5f97\u5230\u200b\u670d\u52a1\u5668\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u8fd9\u53f0\u200b\u673a\u5668\u200b\uff09ip\uff0c\u200b\u5728\u200b\u53e6\u4e00\u53f0\u200b\u673a\u5668\u200b\u4e0a\u200b\uff08\u200b\u5ba2\u6237\u200b\uff09\u200b\u5c1d\u8bd5\u200bping <ip>\u200b\u6765\u8bd5\u200b\u7740\u200b\u8fde\u63a5\u200b\uff0c\u200b\u6216\u8005\u200b\u76f4\u63a5\u200b\u7528\u200b ssh \u200b\u8fde\u63a5\u200b Windows\uff0c\u200b\u4fdd\u8bc1\u200b\u5c40\u57df\u7f51\u200b\u5230\u200b Windows \u200b\u8fd9\u6761\u200b\u8def\u200b\u90fd\u200b\u662f\u200b\u901a\u200b\u7684\u200b\u3002

                  Warning

                  \u200b\u4e00\u4e9b\u200b\u6807\u660e\u200b\u4e3a\u200b\u201cSecure\u201d\u200b\u7684\u200b\u5c40\u57df\u7f51\u200b\u53ef\u80fd\u200b\u4e0d\u200b\u5141\u8bb8\u200b\u5c40\u57df\u7f51\u200b\u5185\u200b\u8fde\u63a5\u200b\uff0c\u200b\u5728\u200b\u8fd9\u4e9b\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u662f\u200b\u4e92\u76f8\u200b ping \u200b\u4e0d\u901a\u200b\u7684\u200b\uff0c\u200b\u5c1d\u8bd5\u200b\u6362\u4e2a\u200b\u5c40\u57df\u7f51\u200b\uff01\u200b\u8fd9\u70b9\u200b\u5751\u200b\u4e86\u200b\u6211\u200b\u5f88\u200b\u4e45\u200b\u3002

                  \u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u786e\u4fdd\u200b\u628a\u200b\u5c40\u57df\u7f51\u200b\uff0cWindows\uff0cwsl \u200b\u90fd\u200b\u8fde\u63a5\u8d77\u6765\u200b\uff0c\u200b\u9700\u8981\u200b Windows \u200b\u628a\u200b\u6211\u4eec\u200b\u4ece\u200b ssh \u200b\u53d1\u6765\u200b\u7684\u200b\u8fde\u63a5\u200b\u8bf7\u6c42\u200b\u8f6c\u200b\u5230\u200b\u5185\u90e8\u200b\u7684\u200b wsl \u200b\u7684\u200b\u7aef\u53e3\u200b\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u901a\u200b\u4e86\u200b.\uff08\u200b\u5bf9\u5e94\u200b\u7684\u200b\u64cd\u4f5c\u200b\u5728\u4e0a\u6587\u200b\u7684\u200b\u535a\u5ba2\u200b\u4e2d\u200b\u5df2\u7ecf\u200b\u63d0\u53ca\u200b\uff0c\u200b\u5982\u679c\u200b\u8fd8\u6709\u200b\u95ee\u9898\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5c1d\u8bd5\u200b\u8fd9\u7bc7\u200b\u770b\u770b\u200b\u662f\u4e0d\u662f\u200b\u5c40\u57df\u7f51\u200b\u5230\u200b Windows \u200b\u7684\u200b\u95ee\u9898\u200b\uff09

                  "},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#_2","title":"\u8bbe\u7f6e\u200b\u514d\u5bc6\u200b\u767b\u9646","text":"

                  \u200b\u514d\u5bc6\u200b\u767b\u9646\u200b\u4e5f\u200b\u53ef\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b

                  \u200b\u6765\u5230\u200b\u5ba2\u6237\u7aef\u200b\uff0c\u200b\u6267\u884c\u200b\u4e0b\u9762\u200b\u547d\u4ee4\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u8f93\u5165\u200b passephrase \u200b\u65f6\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff08\u200b\u4e3a\u7a7a\u200b\uff09

                  ssh-keygen\n

                  \u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u63d0\u793a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e0b\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u9009\u62e9\u200b\u5176\u516c\u94a5\u200b\uff08.pub \u200b\u540e\u7f00\u200b\uff09\uff0c\u200b\u628a\u200b\u5b83\u200b\u5199\u5165\u200b\u670d\u52a1\u5668\u200b\u767b\u9646\u200b\u7528\u6237\u200b\u7684\u200b ssh \u200b\u914d\u7f6e\u200b\u6587\u4ef6\u5939\u200b\u4e0b\u200b\u7684\u200b\u201cauthorized_keys\"\u200b\u6587\u4ef6\u200b\uff08\u200b\u4e00\u822c\u200b\u4e3a\u200b~/.ssh/authorized_keys\uff09\uff0c\u200b\u6ce8\u610f\u200b\u4fee\u6539\u200b\"authorized_keys\"\u200b\u7684\u200b\u6743\u9650\u200b\u6539\u4e3a\u200b 600\uff0c\u200b\u6240\u5728\u200b\u6587\u4ef6\u5939\u200b\u6743\u9650\u200b\u6539\u4e3a\u200b 700.

                  \u200b\u5982\u679c\u200b\u4e0a\u8ff0\u200b\u90fd\u200b\u505a\u200b\u4e86\u200b\u4e4b\u540e\u200b\u4ecd\u7136\u200b\u65e0\u6cd5\u200b\u514d\u5bc6\u200b\u767b\u9646\u200b\uff0c\u200b\u6bd4\u5982\u200bssh -v user@ip -p port\u200b\u540e\u200b\u770b\u5230\u200b\u8fde\u63a5\u200b\u65f6\u200b\u8bd5\u56fe\u200b\u4f7f\u7528\u200b\u516c\u94a5\u200b\u9a8c\u8bc1\u200b\u4f46\u662f\u200b\u5931\u8d25\u200b\u4e86\u200b\uff0c\u200b\u90a3\u4e48\u200b\u9700\u8981\u200b\u518d\u200b\u5b9a\u4f4d\u95ee\u9898\u200b.\u200b\u5728\u200b\u670d\u52a1\u5668\u7aef\u200b\u4f7f\u7528\u200b\u4e0b\u5217\u200b\u8bed\u53e5\u200b\u542f\u7528\u200b sshd \u200b\u76d1\u542c\u200b\u8fde\u63a5\u200b\u67d0\u4e2a\u200b\u7aef\u53e3\u200b

                  sudo /usr/sbin/sshd -d  -p 4444\n
                  \u200b\u6ce8\u610f\u200b\u4e0d\u80fd\u200b\u4f7f\u7528\u200b\u5df2\u7ecf\u200b\u88ab\u200b\u5360\u7528\u200b\u7684\u200b\u7aef\u53e3\u200b \u200b\u542f\u7528\u200b\u540e\u200b\u53bb\u200b powershell \u200b\u8fdb\u884c\u200b\u7aef\u53e3\u200b\u8f6c\u53d1\u200b\uff0c\u200b\u4fbf\u200b\u53ef\u4ee5\u200b\u5728\u200b\u7ec8\u7aef\u200b\u91cc\u200b\u770b\u5230\u200b\u670d\u52a1\u5668\u7aef\u200b\u8ba4\u8bc1\u200b\u7684\u200b\u5168\u8fc7\u7a0b\u200b\u4e86\u200b

                  "},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#wsl2-ip","title":"\u8bbe\u7f6e\u200b Wsl2 \u200b\u9759\u6001\u200b ip","text":"

                  \u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b

                  \u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u987a\u5e26\u200b\u8bbe\u7f6e\u200b\u4e00\u4e0b\u200b Wsl2 \u200b\u5f00\u673a\u200b\u542f\u52a8\u200b\u548c\u200b\u81ea\u52a8\u200b\u5f00\u59cb\u200b ssh \u200b\u670d\u52a1\u200b

                  "},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/","title":"\u5728\u200b WSL2 \u200b\u4e0a\u200b\u542f\u7528\u200b CUDA","text":"

                  Abstract

                  \u200b\u522b\u8bf4\u200b\u4e86\u200b\uff0c\u200b\u5f00\u70bc\u200b\uff01

                  \u200b\u4e3b\u8981\u200b\u662f\u200b\u53c2\u8003\u200b\u4e86\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b

                  "},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/#1-windows","title":"1.\u200b\u5728\u200b Windows \u200b\u4e0a\u200b\u5b89\u88c5\u200b\u663e\u5361\u200b\u9a71\u52a8","text":"

                  \u200b\u8fd9\u6b65\u200b\u5f88\u200b\u7b80\u5355\u200b\uff0c\u200b\u5728\u200b\u5b98\u200b\u7f51\u4e0a\u200b\u627e\u5230\u200b\u9002\u5408\u200b\u81ea\u5df1\u200b\u663e\u5361\u200b\u7684\u200b\u7248\u672c\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\u3002 Download Type \u200b\u9009\u9879\u200b\u9009\u200b Game Ready Driver \u200b\u5c31\u200b\u597d\u200b\u3002 \u200b\u60f3\u8981\u200b\u67e5\u770b\u200b\u81ea\u5df1\u200b\u7535\u8111\u200b\u663e\u5361\u200b\u578b\u53f7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5148\u200b win+R\uff0c\u200b\u8f93\u5165\u200b dxdiag\uff0c\u200b\u9009\u62e9\u200b dispaly \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u4e86\u200b\u3002

                  "},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/#2-wsl","title":"2.\u200b\u5728\u200b wsl \u200b\u4e0a\u200b\u5b89\u88c5\u200b\u9a71\u52a8","text":"

                  \u200b\u4e0a\u200b\u4e00\u6b65\u200b\u7ed3\u675f\u200b\u4e4b\u540e\u200btorch.cuda.is_available()\u200b\u5c31\u200b\u5df2\u7ecf\u200b True \u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u76f4\u63a5\u200b\u6267\u884c\u200b\u8fd8\u662f\u200b\u4f1a\u200b\u62a5\u9519\u200b\u3002 \u200b\u542f\u52a8\u200b wsl\uff0c\u200b\u6267\u884c\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b

                  wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin\nsudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600\nwget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb\nsudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb\nsudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub\napt-get update\nsudo apt-get -y install cuda\n
                  \u200b\u6709\u4e9b\u200b\u5b89\u88c5\u200b\u6bd4\u8f83\u6162\u200b\uff0c\u200b\u6ca1\u6709\u200b\u6362\u200b\u8fc7\u6e90\u200b\u7684\u200b\u53ef\u4ee5\u200b\u6362\u4e0b\u200b\u56fd\u5185\u200b\u955c\u50cf\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200b\u6d59\u5927\u200b\u6e90\u200b

                  \u200b\u7b14\u8005\u200b\u5728\u200b\u4e0a\u9762\u200b\u7684\u200b\u547d\u4ee4\u200b\u6267\u884c\u200b\u4e2d\u200b\u8fd8\u200b\u9047\u5230\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u6700\u540e\u200b\u4e00\u6b65\u200b\u62a5\u9519\u200b liburcu6 \u200b\u6ca1\u6709\u200b\u5b89\u88c5\u200b\u3002 \u200b\u53ef\u4ee5\u200b\u5728\u200b\u5b98\u65b9\u200b\u8f6f\u4ef6\u200b\u6e90\u4e0a\u200b\u53ef\u4ee5\u200b\u4e0b\u8f7d\u200b\uff0c\u200b\u6d4f\u89c8\u5668\u200b\u53ef\u80fd\u200b\u63d0\u793a\u200b\u4e0b\u8f7d\u200b\u4e0d\u200b\u5b89\u5168\u200b.\u200b\u5982\u679c\u200b\u53ef\u4ee5\u200b\u7684\u8bdd\u200b\uff0c\u200b\u9009\u62e9\u200b\u5408\u9002\u200b\u7684\u200b\u7248\u672c\u200b\u4e0b\u8f7d\u200b.\u200b\u7528\u200bcat /proc/version \u200b\u67e5\u770b\u200b\u6211\u4eec\u200b\u7cfb\u7edf\u200b\u7684\u200b\u7248\u672c\u200b\uff0cx86_64 \u200b\u7528\u200b amd64 \u200b\u5373\u53ef\u200b\u3002 \u200b\u5982\u679c\u200b\u65e0\u6cd5\u200b\u89e3\u51b3\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u91cc\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u4f7f\u7528\u200b\u547d\u4ee4\u200b\uff1a

                  sudo add-apt-repository ppa:cloudhan/liburcu6\nsudo apt update\nsudo apt install liburcu6\n
                  \u200b\u7b2c\u4e00\u6761\u200b\u547d\u4ee4\u200b\u4f3c\u4e4e\u200b\u9700\u8981\u200b\u79d1\u5b66\u200b\u4e0a\u7f51\u200b\uff0c\u200b\u6211\u200b\u6ca1\u5f00\u200b\u7684\u200b\u65f6\u5019\u200b\u8fde\u63a5\u200b\u8d85\u65f6\u200b\u4e86\u200b\u3002 \u200b\u968f\u540e\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7ee7\u7eed\u200b\u4e0a\u200b\u4e00\u6b65\u200b\u7684\u200b\u5b89\u88c5\u200b cuda \u200b\u4e86\u200b.\u200b\u5b89\u88c5\u200b\u5b8c\u6bd5\u200b\u540e\u200b\u7528\u200b nvidia-smi \u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u662f\u5426\u200b\u6210\u529f\u200b\u3002

                  \u200b\u6b64\u65f6\u200b\u4ecd\u7136\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b cuda\uff0c\u200b\u9700\u8981\u200b\u518d\u200b\u5b89\u88c5\u200b nvcc\uff0c\u200b\u76f4\u63a5\u200b\u4e0b\u8f7d\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\u3002

                  \u200b\u81f3\u6b64\u200b\u5b89\u88c5\u200b\u7ed3\u675f\u200b\u3002

                  "},{"location":"blog/zsh-%E7%9A%84%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92/","title":"ZSH \u200b\u7684\u200b\u53c2\u6570\u4f20\u9012","text":"

                  Abstract

                  zsh \u200b\u4e2d\u200b\u4e00\u4e2a\u200b\u53c2\u6570\u4f20\u9012\u200b\u7684\u200b\u65f6\u5019\u200b\u9047\u5230\u200b\u7684\u200b\u795e\u79d8\u200b\u95ee\u9898\u200b\ud83e\udd14

                  \u200b\u4eca\u5929\u200b\u5728\u200b\u8c03\u7528\u200b DDPM \u200b\u6a21\u578b\u200b\u7684\u200b\u65f6\u5019\u200b\u4f7f\u7528\u200b\u5b98\u65b9\u200b\u4ee3\u7801\u200b\uff0c\u200b\u7adf\u7136\u200b\u62a5\u9519\u200b\u8bf4\u200b\u53c2\u6570\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff1a \u200b\u547d\u4ee4\u200b\u662f\u200b

                  MODEL_FLAGS=\"--attention_resolutions 32\uff0c16\uff0c8 --class_cond True --diffusion_steps 1000 --dropout 0.1 --image_size 64 --learn_sigma True --noise_schedule cosine --num_channels 192 --num_head_channels 64 --num_res_blocks 3 --resblock_updown True --use_new_attention_order True --use_fp16 True --use_scale_shift_norm True\"\npython classifier_sample.py $MODEL_FLAGS --classifier_scale 1.0 --classifier_path models/64x64_classifier.pt --classifier_depth 4 --model_path models/64x64_diffusion.pt $SAMPLE_FLAGS\n
                  \u200b\u62a5\u9519\u200b\u4e3a\u200b\uff1a
                  python classifier_sample.py $MODEL_FLAGS --classifier_scale 1.0 --classifier_path models/64x64_classifier.pt --classifier_depth 4 --model_path models/64x64_diffusion.pt $SAMPLE_FLAGS\nusage: classifier_sample.py [-h] [--clip_denoised CLIP_DENOISED] [--num_samples NUM_SAMPLES] [--batch_size BATCH_SIZE]\n                            [--use_ddim USE_DDIM] [--model_path MODEL_PATH] [--classifier_path CLASSIFIER_PATH]\n                            [--classifier_scale CLASSIFIER_SCALE] [--image_size IMAGE_SIZE]\n                            [--num_channels NUM_CHANNELS] [--num_res_blocks NUM_RES_BLOCKS] [--num_heads NUM_HEADS]\n                            [--num_heads_upsample NUM_HEADS_UPSAMPLE] [--num_head_channels NUM_HEAD_CHANNELS]\n                            [--attention_resolutions ATTENTION_RESOLUTIONS] [--channel_mult CHANNEL_MULT]\n                            [--dropout DROPOUT] [--class_cond CLASS_COND] [--use_checkpoint USE_CHECKPOINT]\n                            [--use_scale_shift_norm USE_SCALE_SHIFT_NORM] [--resblock_updown RESBLOCK_UPDOWN]\n                            [--use_fp16 USE_FP16] [--use_new_attention_order USE_NEW_ATTENTION_ORDER]\n                            [--learn_sigma LEARN_SIGMA] [--diffusion_steps DIFFUSION_STEPS]\n                            [--noise_schedule NOISE_SCHEDULE] [--timestep_respacing TIMESTEP_RESPACING]\n                            [--use_kl USE_KL] [--predict_xstart PREDICT_XSTART]\n                            [--rescale_timesteps RESCALE_TIMESTEPS] [--rescale_learned_sigmas RESCALE_LEARNED_SIGMAS]\n                            [--classifier_use_fp16 CLASSIFIER_USE_FP16] [--classifier_width CLASSIFIER_WIDTH]\n                            [--classifier_depth CLASSIFIER_DEPTH]\n                            [--classifier_attention_resolutions CLASSIFIER_ATTENTION_RESOLUTIONS]\n                            [--classifier_use_scale_shift_norm CLASSIFIER_USE_SCALE_SHIFT_NORM]\n                            [--classifier_resblock_updown CLASSIFIER_RESBLOCK_UPDOWN]\n                            [--classifier_pool CLASSIFIER_POOL]\nclassifier_sample.py: error: unrecognized arguments: --attention_resolutions 32\uff0c16\uff0c8 --class_cond True --diffusion_steps 1000 --dropout 0.1 --image_size 64 --learn_sigma True --noise_schedule cosine --num_channels 192 --num_head_channels 64 --num_res_blocks 3 --resblock_updown True --use_new_attention_order True --use_fp16 True --use_scale_shift_norm True\n
                  \u200b\u8c8c\u4f3c\u200b\u662f\u56e0\u4e3a\u200b\u7528\u200b\u8fd9\u79cd\u200b\u65b9\u5f0f\u200b\u4f20\u9012\u200b\u7684\u200b\u53c2\u6570\u200b\u4e0d\u4f1a\u200b\u88ab\u200b\u6309\u200b\u7a7a\u683c\u200b\u5206\u5f00\u200b\uff0c\u200b\u6240\u4ee5\u200b\u65e0\u6cd5\u200b\u8bc6\u522b\u200b \u200b\u6211\u200b\u8fd8\u200b\u8bd5\u8fc7\u200b\u6362\u7528\u200b bash\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u4f7f\u7528\u200b\"$FLAG\"\uff0c\u200b\u90fd\u200b\u6ca1\u7528\u200b\ud83d\ude21

                  \u200b\u89e3\u51b3\u200b\u7684\u200b\u529e\u6cd5\u200b\u662f\u200b\u4f7f\u7528\u200b$=FLAG \uff08\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b\u89e3\u7b54\u200b\uff09

                  "},{"location":"blog/archive/2024/","title":"2024","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/archive/2023/","title":"2023","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/arch/","title":"Arch","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/linux/","title":"Linux","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/hyprland/","title":"Hyprland","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/%E6%95%88%E7%8E%87/","title":"\u6548\u7387","text":"

                  \u200b\u7ea6\u200b 2 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/vscode/","title":"VSCode","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/lab/","title":"Lab","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/","title":"\u8ba1\u7b97\u673a\u200b\u4f53\u7cfb\u7ed3\u6784","text":"

                  \u200b\u7ea6\u200b 7 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/os/","title":"OS","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/pl/","title":"PL","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/vim/","title":"Vim","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/%E7%8E%AF%E5%A2%83/","title":"\u73af\u5883","text":"

                  \u200b\u7ea6\u200b 2 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/cool/","title":"Cool","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/category/bug/","title":"Bug","text":"

                  \u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b

                  "},{"location":"blog/page/2/","title":"Blog","text":""},{"location":"blog/page/3/","title":"Blog","text":""},{"location":"blog/archive/2023/page/2/","title":"2023","text":""},{"location":"blog/archive/2023/page/3/","title":"2023","text":""}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 1a1a9b4..8fc7d59 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,422 +2,422 @@ https://stormckey.github.io/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Build_this_website/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Format/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/changelog/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/CO_review/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/ADS/B-Tree_B%2BTree/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/ADS/BST_AVL_Splay/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/ADS/Heap/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/ADS/RBTree/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/Boosting/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/Centering/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/Decision_Tree/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/KNN/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/Logistic_Regression/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/Max_Entropy/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/Naive_Bayesian/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/PCA/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/Perceptron/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/SVD/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Data%20Modeling/Support_Vector_Machine/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Missing%20Semester/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Missing%20Semester/Data/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Missing%20Semester/Git/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Missing%20Semester/Shell/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Missing%20Semester/Vim/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Note/Missing%20Semester/commandline_env/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/PeiPei/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/PeiPei/markdown/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/PeiPei/repository/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/PeiPei/typst/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Research/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Research/Diffusion%20Model/DDIM/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/Research/Diffusion%20Model/DDPM/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/Minisql/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/Minisql/minisql_part0/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/Minisql/minisql_part1/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab5-scoreboard/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E6%88%91%E7%9A%84-cli-%E5%B7%A5%E5%85%B7/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/enable-chatgpt_academic/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab1-%E6%97%B6%E9%92%9F%E4%B8%AD%E6%96%AD/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E5%9C%A8-vscode-%E4%B8%AD%E4%BD%BF%E7%94%A8-conda-%E7%9A%84%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E9%97%AE%E9%A2%98/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/vscode-snippet/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E4%BC%98%E5%8C%96%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/arch-linux-day1/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/arch-linux-day2/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E9%85%8D%E7%BD%AE-github-profile/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/zsh-%E7%9A%84%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/archive/2024/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/archive/2023/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/arch/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/linux/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/hyprland/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/%E6%95%88%E7%8E%87/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/vscode/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/lab/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/os/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/pl/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/vim/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/%E7%8E%AF%E5%A2%83/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/cool/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/category/bug/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/page/2/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/page/3/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/archive/2023/page/2/ - 2024-01-21 + 2024-01-22 daily https://stormckey.github.io/blog/archive/2023/page/3/ - 2024-01-21 + 2024-01-22 daily \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 2bb60e93a35076dde6bdc8ee36b03aee48331e10..d2f8e4a522d6f9c4a7330920f62f61ff4fbe5fab 100644 GIT binary patch delta 1116 zcmV-i1f%&uZGbbsdDzvupje`@Zxmoz3MSYyfc)a z1r_gkk)`d9%k;>$%1AqLuAqywc49MA6(YA2-nFomRE=!$N7}FhXGe=MM$3&CM167y^)=xKh|A=} zBquH{_st@52`y_VtHC*3TH?+9(j~O}x)x2F-ZKi1q-#QVys}xW*Bm6S%E5*WE186# z=oVN-fLn-v<*i$QH#=4oZb5&(=cQYKsVGZQWuPG}W!1q>@HdRZ*J^AfX&y6itgHsv zuv$nC_fJ;CY)`ecRH|;7WTc@x%h4_Q!^2*kAf8hMZ@K(^?I7qIOF?g~E!k>hYhH2r zqi_IWX|8Eans(qA-l4^KQ4*jiLD3K;Gt~%ZD4C*gf#L`yV-zn@I8uMN;t`5t-H3G$ zj7d;1#uyi53l|Cp3HI6ToM1^s!?uDnnbo#VQ4pX|+Zsj+J}o##$ppn<{6sYZ)pnJy zndWQwOw+=!Q>|Hzrk}#p zk@n#*RDP|*CDyEh)=rh&LIb!BgHK`V7{8KO9c^MQ&;hVI{1kr{PB7>xsWM!X+}hW0 zKWWnxKZxehVpC3-igL><0t0X-h(V$x5*!OuQpp7v=v&RkL@@wS?i|;Q8Br$%VTkQ6 z0{yEQ(eh)G1*BCOd5P%%q=GZWW2EH}GA^b3p^ATzCKr0F*2QiKWX0>6wN9j12VUwN zBM4C(>J0=8m>hp&0gJ7DaiP+TcUebZWIWNkZKfU%Y-UCkgmA&D{S(f}Y3K}6-wmXA zcdDC0MM1rB6Xg#oJ0Eok4g53-Kn(5SIlpsahhzfoHzpAu=nXJYu`-TuSG&Oqb2A!sgCMSP9OUj)&&8}4O$jGUwx`3mp zQiMqe2G2DK-GCrz;$&CaFk|AEWAafJZsa`*=-aGE?XTDA!agGwTk@Bt@0`m_RNM?q zm1v@lttN&>gL7JHxt8+-^Ar#_VA`y)l(Z~YZ$<5Wwf7dM7FHL4KIa)OVC|H^#3_*W zVCDj9bB0WD!fDCY4LA5tZt1ptZ^S=R2bh^YuJpcd>0u_P) delta 1116 zcmV-i1f%>;l=6Fd(~r*cxNa- z3o738B1_vHm+6shm63MhTtOFU?ZjrLDnxE4ylY`AsT$ehkF;S2&W;vijFuZO#&->4 zX^i|>HEc(_xl5z_@9Cy4$jNf7zcJ8NyCL4%&iRtG1o?xt$XEe!&LO0+5VC)D3-W?h zEobG=FsT;YA@pnVlqOZ%i2CFZ>TALe5SPh` zNlsi^?wdvA5?au$Z#wcE*aHM~3#Um8Qx)JLh z7?Yr2j4>|A7A_PH66~|vIl+>OhHV9DGOKN!q98z_wl$0td|Ggfk_n2z_=#!+s_iOY zGtJlVnWlwd$HyI$@k$#$Mp2-9U-su%XR(>7B3L1$hKe@ zrfu`OO$j9#D>=2A(vE)=ToQ_3eDeUCDq~nN9uH73($ud|IKh-^_5&2enm-u6vV7lx zW`I+5in92iC@bTtL#)R_-xMVw3Vpbv9|Fsl`qmU0pTbmMGY!<4UD=U&rdqQaO+SUH zBkjXssQg-qORQN1t(_{lg$8gN2A{&zF@7bnI@-iqpaWoa_$hxZoM6yXQf0U%xwWt1 ze$u8Xeh|&0#ipDv73G#!1P0(v5Q9WXBsdnRq>>9T(6^e6iDCev+&QipGonrk!VueC z1o~GqqUFaV3rMRn@)FViNd;$$$4JW|WL!%5LlyrbO)m6Ut&80f$cooBYn@234!qPk zMi8Pn)EfvGFgbt50v22Q;zFev@3M}-$atc6+e|$k*vyP72;qWP`zM@{)6f~Dz8gsK z?o>C0ih_FMCdwaFc0TG78u)1vfEe1tbAIQ<4#@=EZ%iUS&>LW)Vr3lRu6Bbzs+QG; zg^CW91?a!;I`f=SQz4vig6-bsLUK)V iNWp9eIC3SAwSGB2qWvG%R$nA*=YIq2L(I=aJpcfEb{|Io